Skip to content

Commit bc5f7d2

Browse files
committed
Merge 25.7 to develop
2 parents 748fc04 + 15872c1 commit bc5f7d2

14 files changed

Lines changed: 446 additions & 80 deletions
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package org.labkey.serverapi.util;
2+
3+
/**
4+
* org.labkey.api.util.UsageReportingLevel
5+
*/
6+
public enum UsageReportingLevel
7+
{
8+
NONE,
9+
ON,
10+
ON_WITHOUT_UPGRADE_MESSAGE
11+
}
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
package org.labkey.test.pages.admin;
2+
3+
import org.labkey.test.Locator;
4+
import org.labkey.test.WebDriverWrapper;
5+
import org.labkey.test.WebTestHelper;
6+
import org.labkey.test.pages.LabKeyPage;
7+
import org.labkey.test.pages.pipeline.PipelineStatusDetailsPage;
8+
import org.openqa.selenium.WebDriver;
9+
10+
public class ConfigureSystemMaintenancePage extends LabKeyPage<ConfigureSystemMaintenancePage.ElementCache>
11+
{
12+
public ConfigureSystemMaintenancePage(WebDriver driver)
13+
{
14+
super(driver);
15+
}
16+
17+
public static ConfigureSystemMaintenancePage beginAt(WebDriverWrapper webDriverWrapper)
18+
{
19+
webDriverWrapper.beginAt(WebTestHelper.buildURL("admin", "configureSystemMaintenance"));
20+
return new ConfigureSystemMaintenancePage(webDriverWrapper.getDriver());
21+
}
22+
23+
/**
24+
* Run the specified maintenance task and switch to the window that opens
25+
* @param description task description
26+
*/
27+
public PipelineStatusDetailsPage runMaintenanceTask(String description)
28+
{
29+
click(Locator.tagWithAttribute("input", "type", "checkbox")
30+
.followingSibling("a").withText(description));
31+
getDriver().switchTo().window("systemMaintenance");
32+
33+
PipelineStatusDetailsPage pipelineStatusDetailsPage = new PipelineStatusDetailsPage(getDriver());
34+
pipelineStatusDetailsPage.waitForComplete();
35+
return pipelineStatusDetailsPage;
36+
}
37+
38+
@Override
39+
protected ElementCache newElementCache()
40+
{
41+
return new ElementCache();
42+
}
43+
44+
protected class ElementCache extends LabKeyPage<ElementCache>.ElementCache
45+
{
46+
}
47+
}
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
/*
2+
* Copyright (c) 2017-2019 LabKey Corporation
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
package org.labkey.test.pages.admin;
17+
18+
import org.apache.commons.lang3.StringUtils;
19+
import org.labkey.test.Locator;
20+
import org.labkey.test.pages.LabKeyPage;
21+
import org.openqa.selenium.WebDriver;
22+
import org.openqa.selenium.WebElement;
23+
24+
import java.util.Arrays;
25+
import java.util.List;
26+
27+
public class FolderAliasesPage extends LabKeyPage<FolderAliasesPage.ElementCache>
28+
{
29+
public FolderAliasesPage(WebDriver driver)
30+
{
31+
super(driver);
32+
}
33+
34+
public List<String> getAliases()
35+
{
36+
String aliases = getFormElement(elementCache().aliases);
37+
return Arrays.asList(aliases.split("\\R"));
38+
}
39+
40+
public FolderAliasesPage setAliases(List<String> aliases)
41+
{
42+
setFormElement(elementCache().aliases, StringUtils.join(aliases, "\n"));
43+
return this;
44+
}
45+
46+
public FolderManagementPage clickSave()
47+
{
48+
elementCache().saveBtn.click();
49+
return new FolderManagementPage(getDriver());
50+
}
51+
public FolderManagementPage clickCancel()
52+
{
53+
elementCache().cancelBtn.click();
54+
return new FolderManagementPage(getDriver());
55+
}
56+
57+
@Override
58+
protected ElementCache newElementCache()
59+
{
60+
return new ElementCache();
61+
}
62+
63+
protected class ElementCache extends LabKeyPage<?>.ElementCache
64+
{
65+
WebElement aliases = Locator.textarea("aliases").findWhenNeeded(this);
66+
67+
WebElement saveBtn = Locator.lkButton("Save Aliases").refindWhenNeeded(this);
68+
WebElement cancelBtn = Locator.button("Cancel").refindWhenNeeded(this);
69+
}
70+
}

src/org/labkey/test/pages/admin/FolderManagementPage.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,12 @@ protected ElementCache newElementCache()
166166
return new ElementCache();
167167
}
168168

169+
public FolderAliasesPage goToAliases()
170+
{
171+
beginAt(WebTestHelper.buildRelativeUrl("admin", getCurrentContainerPath(), "folderAliases"));
172+
return new FolderAliasesPage(getDriver());
173+
}
174+
169175
protected class ElementCache extends LabKeyPage.ElementCache
170176
{
171177
private final Map<String, WebElement> tabs = new HashMap<>();

src/org/labkey/test/pages/assay/SampleTypeImportPage.java

Lines changed: 0 additions & 55 deletions
This file was deleted.

src/org/labkey/test/pages/core/admin/ShowAdminPage.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import org.labkey.test.components.DomainDesignerPage;
2222
import org.labkey.test.pages.ConfigureReportsAndScriptsPage;
2323
import org.labkey.test.pages.LabKeyPage;
24+
import org.labkey.test.pages.admin.ConfigureSystemMaintenancePage;
2425
import org.labkey.test.pages.admin.ExternalSourcesPage;
2526
import org.labkey.test.pages.compliance.ComplianceSettingsAccountsPage;
2627
import org.labkey.test.pages.core.login.LoginConfigurePage;
@@ -230,10 +231,11 @@ public void clickSiteWideTerms()
230231
clickAndWait(elementCache().siteWideTermsLink);
231232
}
232233

233-
public void clickSystemMaintenance()
234+
public ConfigureSystemMaintenancePage clickSystemMaintenance()
234235
{
235236
goToSettingsSection();
236237
clickAndWait(elementCache().systemMaintenanceLink);
238+
return new ConfigureSystemMaintenancePage(getDriver());
237239
}
238240

239241
public void clickSystemProperties()

src/org/labkey/test/tests/FolderTest.java

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
import org.labkey.test.categories.Hosting;
3535
import org.labkey.test.components.ext4.Window;
3636
import org.labkey.test.pages.FolderManagementFolderTree;
37+
import org.labkey.test.pages.admin.FolderAliasesPage;
3738
import org.labkey.test.pages.admin.FolderManagementPage;
3839
import org.labkey.test.pages.admin.ReorderFoldersPage;
3940
import org.labkey.test.pages.list.BeginPage;
@@ -44,9 +45,11 @@
4445
import org.labkey.test.util.LoggedParam;
4546
import org.labkey.test.util.PasswordUtil;
4647
import org.labkey.test.util.PortalHelper;
48+
import org.labkey.test.util.WikiHelper;
4749
import org.labkey.test.util.WorkbookHelper;
4850
import org.openqa.selenium.WebElement;
4951

52+
import java.util.ArrayList;
5053
import java.util.Arrays;
5154
import java.util.HashMap;
5255
import java.util.HashSet;
@@ -99,6 +102,70 @@ public static void testSetup()
99102
init.moveTestProjectToTop();
100103
}
101104

105+
@Test
106+
public void testAliases()
107+
{
108+
String firstContent = "This is the first folder";
109+
String secondContent = "This is the second folder";
110+
String originalName1 = "OriginalName1" + TRICKY_CHARACTERS_FOR_PROJECT_NAMES;
111+
String originalName2 = "OriginalName2" + TRICKY_CHARACTERS_FOR_PROJECT_NAMES;
112+
String newName = "NewName" + TRICKY_CHARACTERS_FOR_PROJECT_NAMES;
113+
String additionalAlias = "AdditionalAlias" + TRICKY_CHARACTERS_FOR_PROJECT_NAMES;
114+
115+
// Create folders and give them a wiki as content so we can be sure we land in the right spot when following an alias
116+
_containerHelper.createSubfolder(getProjectName(), originalName1);
117+
createWikiAndAddToPortal(firstContent, originalName1);
118+
_containerHelper.createSubfolder(getProjectName(), originalName2);
119+
createWikiAndAddToPortal(secondContent, originalName2);
120+
121+
_containerHelper.renameFolder(getProjectName(), originalName1, newName, true);
122+
navigateToFolder(getProjectName(), newName);
123+
assertTextPresent(firstContent);
124+
125+
// Ensure the alias was created and works
126+
beginAt(WebTestHelper.buildURL("project", getProjectName() + "/" + originalName1 , "begin"));
127+
assertTextPresent(firstContent);
128+
FolderAliasesPage aliasesPage = goToFolderManagement().goToAliases();
129+
List<String> aliases = new ArrayList<>(aliasesPage.getAliases());
130+
// Ensure it's being saved as lower case
131+
assertEquals(Arrays.asList(("/" + getProjectName() + "/" + originalName1).toLowerCase()), aliases);
132+
aliases.add("/" + getProjectName() + "/" + additionalAlias);
133+
aliasesPage.setAliases(aliases);
134+
aliasesPage.clickSave();
135+
136+
beginAt(WebTestHelper.buildURL("project", getProjectName() + "/" + originalName1 , "begin"));
137+
assertTextPresent(firstContent);
138+
beginAt(WebTestHelper.buildURL("project", getProjectName() + "/" + additionalAlias , "begin"));
139+
assertTextPresent(firstContent);
140+
141+
// Steal the alias in another folder
142+
navigateToFolder(getProjectName(), originalName2);
143+
assertTextPresent(secondContent);
144+
aliasesPage = goToFolderManagement().goToAliases();
145+
aliasesPage.setAliases(Arrays.asList("/" + getProjectName() + "/" + additionalAlias));
146+
aliasesPage.clickSave();
147+
beginAt(WebTestHelper.buildURL("project", getProjectName() + "/" + additionalAlias , "begin"));
148+
assertTextPresent(secondContent);
149+
}
150+
151+
private void createWikiAndAddToPortal(String body, String folderName)
152+
{
153+
navigateToFolder(getProjectName(), folderName);
154+
WikiHelper wikiHelper = new WikiHelper(this);
155+
wikiHelper.createNewWikiPage("HTML");
156+
String pageName = "ReferencePoint";
157+
wikiHelper.setWikiName(pageName);
158+
wikiHelper.setWikiTitle(pageName);
159+
wikiHelper.setWikiBody(body);
160+
wikiHelper.saveWikiPage();
161+
162+
navigateToFolder(getProjectName(), folderName);
163+
PortalHelper portalHelper = new PortalHelper(this);
164+
portalHelper.addBodyWebPart("Wiki");
165+
wikiHelper.clickChooseAPage();
166+
wikiHelper.saveChosenPage();
167+
}
168+
102169
@LogMethod
103170
private void moveTestProjectToTop() // todo: use FolderManagementPage, ReorderFoldersPage
104171
{

0 commit comments

Comments
 (0)