diff --git a/src/org/labkey/test/BaseWebDriverTest.java b/src/org/labkey/test/BaseWebDriverTest.java index 20f5be1fe4..6b34832353 100644 --- a/src/org/labkey/test/BaseWebDriverTest.java +++ b/src/org/labkey/test/BaseWebDriverTest.java @@ -221,7 +221,7 @@ public abstract class BaseWebDriverTest extends LabKeySiteWrapper implements Cle public static final double DELTA = 10E-10; public static final String ALL_ILLEGAL_QUERY_KEY_CHARACTERS = StringUtils.join(FieldKey.getIllegalChars(), ""); - // See TSVWriter.shouldQuote. Generally we are not able to use the tab and new line characters when creating field names in the UI, but including here for completeness + // See TSVWriter.shouldQuote. Generally, we are not able to use the tab and new line characters when creating field names in the UI, but including here for completeness public static final String[] TRICKY_IMPORT_FIELD_CHARACTERS = {"\\", "\"", "\\t", ",", "\\n", "\\r"}; public static final String TRICKY_CHARACTERS = "><&/%\\' \"1\u00E4\u00F6\u00FC\u00C5"; diff --git a/src/org/labkey/test/components/ui/FolderArchiveDialog.java b/src/org/labkey/test/components/ui/FolderArchiveDialog.java new file mode 100644 index 0000000000..f65b6d3a92 --- /dev/null +++ b/src/org/labkey/test/components/ui/FolderArchiveDialog.java @@ -0,0 +1,51 @@ +package org.labkey.test.components.ui; + +import org.jetbrains.annotations.NotNull; +import org.labkey.test.WebDriverWrapper; +import org.labkey.test.components.UpdatingComponent; +import org.labkey.test.components.bootstrap.ModalDialog; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.ui.ExpectedConditions; + +import java.util.function.Function; +import java.util.function.Supplier; + +public class FolderArchiveDialog extends ModalDialog +{ + + private final Function _confirmationSynchronizationFunction; + + public FolderArchiveDialog(@NotNull WebDriverWrapper sourcePage, WebElement staleOnConfirmElement, Supplier confirmPageSupplier) + { + + // Dialog finder stumbles with 'tricky characters' so limiting the search to just the word 'Archive'. + super(new ModalDialog.ModalDialogFinder(sourcePage.getDriver()).withTitleIgnoreCase("Archive")); + + UpdatingComponent updatingComponent = runnable -> { + runnable.run(); + sourcePage.longWait().until(ExpectedConditions.stalenessOf(staleOnConfirmElement)); + }; + + _confirmationSynchronizationFunction = runnable -> { + updatingComponent.doAndWaitForUpdate(runnable); + return confirmPageSupplier.get(); + }; + + } + + public ConfirmPage clickYesArchive() + { + return clickYesArchive(10); + } + + public ConfirmPage clickYesArchive(Integer waitSeconds) + { + return _confirmationSynchronizationFunction.apply(() -> this.dismiss( "Yes, Archive Folder", waitSeconds)); + } + + public void clickCancel() + { + this.dismiss("Cancel"); + } + +} diff --git a/src/org/labkey/test/components/ui/grids/ResponsiveGrid.java b/src/org/labkey/test/components/ui/grids/ResponsiveGrid.java index 4ffc4d2151..f0f9055b95 100644 --- a/src/org/labkey/test/components/ui/grids/ResponsiveGrid.java +++ b/src/org/labkey/test/components/ui/grids/ResponsiveGrid.java @@ -305,7 +305,7 @@ public FieldSelectionDialog insertColumn(CharSequence columnIdentifier) return new FieldSelectionDialog(getDriver(), this); } - protected void clickColumnMenuItem(CharSequence columnIdentifier, String menuText, boolean waitForUpdate) + public void clickColumnMenuItem(CharSequence columnIdentifier, String menuText, boolean waitForUpdate) { if(hasLockedColumn()) diff --git a/src/org/labkey/test/components/ui/navigation/NavBar.java b/src/org/labkey/test/components/ui/navigation/NavBar.java index 8cf05226df..4879569b13 100644 --- a/src/org/labkey/test/components/ui/navigation/NavBar.java +++ b/src/org/labkey/test/components/ui/navigation/NavBar.java @@ -23,7 +23,7 @@ public abstract class NavBar extends WebDriverComponent protected NavBar(WebDriver driver) { - this(Locator.tagWithClass("nav", "navbar-container").findElement(driver), driver); + this(Locator.tagWithClass("nav", "navbar").findElement(driver), driver); } protected NavBar(WebElement element, WebDriver driver) diff --git a/src/org/labkey/test/components/ui/search/SampleFinder.java b/src/org/labkey/test/components/ui/search/SampleFinder.java index 3e7dd53e88..905777a5b0 100644 --- a/src/org/labkey/test/components/ui/search/SampleFinder.java +++ b/src/org/labkey/test/components/ui/search/SampleFinder.java @@ -58,7 +58,7 @@ public WebDriver getDriver() } /** - * Waits for initial state (empty filter card panel) or for search results grid to appear + * Waits for the initial state (empty filter card panel) or for the search results grid to appear */ @Override public void waitForReady() @@ -70,10 +70,10 @@ public void waitForReady() /** * Open the entity filter dialog for the specified filter type. * - * @param filterKind "Source" or "Parent" or "Assay" in SM. "Registry Parent" or "Sample Parent" or "Assay" in Biologics + * @param filterKind "Sample", "Source" or "Parent" or "Assay" in SM. "Registry Parent" or "Sample Parent" or "Assay" in Biologics * @return component wrapper for the EntityFieldFilterModal */ - public EntityFieldFilterModal clickAddParent(String filterKind) + public EntityFieldFilterModal clickAddSearchCard(String filterKind) { elementCache().findFilterKindButton(filterKind).click(); return new EntityFieldFilterModal(getDriver(), this::doAndWaitForUpdate); @@ -110,7 +110,7 @@ public void removeSearchCard(String queryName) } /** - * Reset sample finder to its initial state, with no search criteria + * Reset the sample finder to its initial state, with no search criteria */ public void removeAllSearchCards() {