From 87afc4cd91e45814d79cdc2bec8da8a2fb9d4565 Mon Sep 17 00:00:00 2001 From: Karl Lum Date: Wed, 3 Sep 2025 14:58:08 -0700 Subject: [PATCH 1/2] Regression for manage views exception (#2657) --- .../test/tests/DataViewsReportOrderingTest.java | 11 +++++++++++ src/org/labkey/test/util/DataRegionTable.java | 7 +++++++ 2 files changed, 18 insertions(+) diff --git a/src/org/labkey/test/tests/DataViewsReportOrderingTest.java b/src/org/labkey/test/tests/DataViewsReportOrderingTest.java index bf6c17c243..e53a35a584 100644 --- a/src/org/labkey/test/tests/DataViewsReportOrderingTest.java +++ b/src/org/labkey/test/tests/DataViewsReportOrderingTest.java @@ -25,6 +25,8 @@ import org.labkey.test.TestTimeoutException; import org.labkey.test.categories.Daily; import org.labkey.test.components.ext4.Window; +import org.labkey.test.pages.reports.ManageViewsPage; +import org.labkey.test.pages.user.ShowUsersPage; import org.labkey.test.util.PortalHelper; import org.openqa.selenium.NoSuchElementException; import org.openqa.selenium.WebDriver; @@ -133,6 +135,15 @@ private String[] reverseReports(List reportsOriginalOrder) return reverseReports; } + @Test + public void testRootFolderAccess() + { + // Regression for issue 53630 + ShowUsersPage showUsersPage = goToSiteUsers(); + ManageViewsPage mvp = showUsersPage.getUsersTable().openManageViews(); + mvp.clickAddReport("R Report"); + } + @Override protected BrowserType bestBrowser() { diff --git a/src/org/labkey/test/util/DataRegionTable.java b/src/org/labkey/test/util/DataRegionTable.java index aacbb3d46d..26d73838ff 100644 --- a/src/org/labkey/test/util/DataRegionTable.java +++ b/src/org/labkey/test/util/DataRegionTable.java @@ -40,6 +40,7 @@ import org.labkey.test.pages.ImportDataPage; import org.labkey.test.pages.TimeChartWizard; import org.labkey.test.pages.query.UpdateQueryRowPage; +import org.labkey.test.pages.reports.ManageViewsPage; import org.labkey.test.params.FieldKey; import org.labkey.test.selenium.LazyWebElement; import org.labkey.test.selenium.RefindingWebElement; @@ -166,6 +167,12 @@ public CustomizeView openCustomizeGrid() return getCustomizeView(); } + public ManageViewsPage openManageViews() + { + getViewsMenu().clickSubMenu(false, "Manage Views"); + return new ManageViewsPage(getDriver()); + } + protected DataRegionExportHelper getExportPanel() { if (_exportHelper == null) From 6f1b477a6b06f0a0649ff33f18f91e0f74651460 Mon Sep 17 00:00:00 2001 From: Trey Chadick Date: Fri, 5 Sep 2025 10:19:16 -0700 Subject: [PATCH 2/2] Regression test for 53629: NavMenu doesn't open in new tab correctly (#2673) --- src/org/labkey/test/WebDriverWrapper.java | 8 +++++ src/org/labkey/test/tests/DataRegionTest.java | 32 +++++++++++++++++-- 2 files changed, 38 insertions(+), 2 deletions(-) diff --git a/src/org/labkey/test/WebDriverWrapper.java b/src/org/labkey/test/WebDriverWrapper.java index 7a2f817cb0..e60c933dcc 100644 --- a/src/org/labkey/test/WebDriverWrapper.java +++ b/src/org/labkey/test/WebDriverWrapper.java @@ -2117,6 +2117,14 @@ public long doAndMaybeWaitForPageToLoad(int msWait, Supplier action) return loadTimer.elapsed().toMillis(); } + public void doAndWaitForNewWindow(Runnable action) + { + Set windows = getDriver().getWindowHandles(); + action.run(); + switchToWindow(windows.size()); + waitForDocument(); + } + public long doAndWaitForWindow(Runnable action, String windowName) { String initialWindow = getDriver().getWindowHandle(); diff --git a/src/org/labkey/test/tests/DataRegionTest.java b/src/org/labkey/test/tests/DataRegionTest.java index f7e3bb1106..02fe1a2220 100644 --- a/src/org/labkey/test/tests/DataRegionTest.java +++ b/src/org/labkey/test/tests/DataRegionTest.java @@ -17,19 +17,23 @@ package org.labkey.test.tests; import org.apache.commons.lang3.tuple.Pair; +import org.assertj.core.api.Assertions; import org.junit.Test; import org.junit.experimental.categories.Category; import org.labkey.test.BaseWebDriverTest; import org.labkey.test.Locator; import org.labkey.test.categories.Daily; import org.labkey.test.categories.Data; +import org.labkey.test.components.ChartTypeDialog; import org.labkey.test.params.FieldDefinition; import org.labkey.test.params.FieldDefinition.ColumnType; import org.labkey.test.util.DataRegionExportHelper; import org.labkey.test.util.DataRegionTable; import org.labkey.test.util.EscapeUtil; +import org.labkey.test.util.selenium.WebDriverUtils; import org.openqa.selenium.NoSuchElementException; import org.openqa.selenium.WebElement; +import org.openqa.selenium.interactions.Actions; import java.net.MalformedURLException; import java.net.URL; @@ -141,12 +145,34 @@ public void testSteps() throws Exception clickAndWait(Locator.linkWithText(LIST_NAME)); URL url = getURL(); dataRegionTest(url, INJECT_CHARS_1); - dataRegionTest(url, INJECT_CHARS_2); + DataRegionTable dataRegionTable = dataRegionTest(url, INJECT_CHARS_2); + testOpenMenuItemInNewTab(dataRegionTable); exportLoggingTest(); testQWPDemoPage(); } + /** + * Regression coverage for Issue 53629: NavMenu doesn't open in new tab correctly + */ + private void testOpenMenuItemInNewTab(DataRegionTable dataRegionTable) + { + WebElement createChartMenuItem = dataRegionTable + .getReportMenu() + .openMenuTo("Create Chart"); + doAndWaitForNewWindow(() -> + new Actions(getDriver()) + .keyDown(WebDriverUtils.MODIFIER_KEY) + .click(createChartMenuItem) + .perform()); + ChartTypeDialog chartTypeDialog = new ChartTypeDialog(getDriver()); + Assertions.assertThat(chartTypeDialog.getColumnList()) + .as("List should be pre-selected for chart") + .containsExactlyInAnyOrder(LIST_KEY_NAME, NAME_COLUMN.getName(), HEX_COLUMN.getName()); + getDriver().close(); + switchToMainWindow(); + } + @Override protected List> getTabSignalsPairs() { @@ -188,7 +214,7 @@ private void createList() _listHelper.uploadData(LIST_DATA); } - private void dataRegionTest(URL url, String dataRegionName) throws MalformedURLException + private DataRegionTable dataRegionTest(URL url, String dataRegionName) throws MalformedURLException { log("** Beginning test for dataRegionName: " + dataRegionName); @@ -281,6 +307,8 @@ private void dataRegionTest(URL url, String dataRegionName) throws MalformedURLE table.rowSelector().showAll(); assertEquals(15, table.getDataRowCount()); + + return table; } private void enableComplianceIfInstalled()