From b9a29883fa1bb7c5e187cd3c39106c9ae70c4671 Mon Sep 17 00:00:00 2001 From: cnathe Date: Fri, 25 Sep 2026 15:52:53 -0500 Subject: [PATCH] GitHub Issue #1528: Encode group name for Delete Empty Group --- src/org/labkey/test/tests/GroupTest.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/org/labkey/test/tests/GroupTest.java b/src/org/labkey/test/tests/GroupTest.java index ea8ec811e1..0842a9957b 100644 --- a/src/org/labkey/test/tests/GroupTest.java +++ b/src/org/labkey/test/tests/GroupTest.java @@ -57,6 +57,7 @@ public class GroupTest extends BaseWebDriverTest protected static final String BAD_GROUP = "group3"; protected static final String CHILD_GROUP = "group4"; protected static final String EMPTY_GROUP = "emptyGroupToDelete"; + protected static final String SCRIPT_NAME_GROUP = "scriptGroup'+alert(1)+'"; protected static final String[] TEST_USERS_FOR_GROUP = {"user1_grouptest@" + SIMPLE_GROUP + ".group.test", "user2_grouptest@" + SIMPLE_GROUP + ".group.test", "user3_grouptest@" + COMPOUND_GROUP + ".group.test"}; protected static final String[] TEST_DISPLAY_NAMES_FOR_GROUP = {"user1 grouptest", "user2 grouptest", "user3 grouptest"}; protected static final String SITE_USER_IN_GROUP = "useringroup"; @@ -89,6 +90,7 @@ protected void doCleanup(boolean afterTest) throws TestTimeoutException permissionsHelper.deleteGroup(SITE_USER_GROUP); permissionsHelper.deleteGroup(API_SITE_GROUP); permissionsHelper.deleteGroup(EMPTY_GROUP); + permissionsHelper.deleteGroup(SCRIPT_NAME_GROUP); _userHelper.deleteUsers(false, TEST_USERS_FOR_GROUP); _userHelper.deleteUsers(false, SITE_USER_EMAILS); _containerHelper.deleteProject(getProjectName(), afterTest); @@ -412,6 +414,20 @@ public void testSiteUserGroupFilters() Assert.assertNotEquals("User in group should be in filtered list", -1, table.getRowIndex("Display Name", SITE_USER_IN_GROUP)); } + // GH Issue 1528 + @Test + public void testDeleteGroupWithScriptInName() throws IOException, CommandException + { + new ApiPermissionsHelper(this).createGlobalPermissionsGroup(SCRIPT_NAME_GROUP); + + _permissionsHelper.deleteGlobalGroupFromDetailsPage(SCRIPT_NAME_GROUP); + + SelectRowsCommand selectRowsCommand = new SelectRowsCommand("core", "Groups"); + selectRowsCommand.setFilters(List.of(new Filter("Name", SCRIPT_NAME_GROUP))); + SelectRowsResponse response = selectRowsCommand.execute(createDefaultConnection(), "/"); + assertEquals(SCRIPT_NAME_GROUP + " should have been deleted", 0, response.getRows().size()); + } + @Override protected BrowserType bestBrowser() { return BrowserType.CHROME;