Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 16 additions & 1 deletion src/org/labkey/test/tests/GroupTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,10 @@
import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.experimental.categories.Category;
import org.labkey.remoteapi.CommandException;
import org.labkey.remoteapi.query.Filter;
import org.labkey.remoteapi.query.SelectRowsCommand;
import org.labkey.remoteapi.query.SelectRowsResponse;
import org.labkey.test.BaseWebDriverTest;
import org.labkey.test.Locator;
import org.labkey.test.TestTimeoutException;
Expand All @@ -32,6 +36,7 @@
import org.labkey.test.util.PortalHelper;
import org.labkey.test.util.WikiHelper;

import java.io.IOException;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
Expand All @@ -48,6 +53,7 @@ public class GroupTest extends BaseWebDriverTest
protected static final String COMPOUND_GROUP = "group2";
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[] 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";
Expand Down Expand Up @@ -79,6 +85,7 @@ protected void doCleanup(boolean afterTest) throws TestTimeoutException
permissionsHelper.deleteGroup(CHILD_GROUP);
permissionsHelper.deleteGroup(SITE_USER_GROUP);
permissionsHelper.deleteGroup(API_SITE_GROUP);
permissionsHelper.deleteGroup(EMPTY_GROUP);
_userHelper.deleteUsers(false, TEST_USERS_FOR_GROUP);
_userHelper.deleteUsers(false, SITE_USER_EMAILS);
_containerHelper.deleteProject(getProjectName(), afterTest);
Expand All @@ -93,7 +100,7 @@ public static void setup()
}

@Test
public void testSteps()
public void testSteps() throws IOException, CommandException
{
for (String user : TEST_USERS_FOR_GROUP)
{
Expand All @@ -110,6 +117,7 @@ public void testSteps()

_permissionsHelper.createGlobalPermissionsGroup(SIMPLE_GROUP, TEST_USERS_FOR_GROUP[0], TEST_USERS_FOR_GROUP[1]);
_permissionsHelper.createGlobalPermissionsGroup(COMPOUND_GROUP, SIMPLE_GROUP, TEST_USERS_FOR_GROUP[2]);
_permissionsHelper.createGlobalPermissionsGroup(EMPTY_GROUP);

verifyExportFunction();

Expand All @@ -135,6 +143,13 @@ public void testSteps()
waitForText("Author");
_securityHelper.setSiteGroupPermissions("All Site Users", "Author");

// Ensure that deleting from the group's page works too. Issue 52614
_permissionsHelper.deleteGlobalGroupFromDetailsPage(EMPTY_GROUP);
SelectRowsCommand selectRowsCommand = new SelectRowsCommand("core", "Groups");
selectRowsCommand.setFilters(List.of(new Filter("Name", EMPTY_GROUP)));
SelectRowsResponse response = selectRowsCommand.execute(createDefaultConnection(), "/");
assertEquals(EMPTY_GROUP + " should have been deleted", 0, response.getRows().size());

permissionsReportTest();

goToProjectHome();
Expand Down
18 changes: 17 additions & 1 deletion src/org/labkey/test/util/UIPermissionsHelper.java
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,17 @@ public void startCreateGlobalPermissionsGroup(@LoggedParam String groupName, boo
_driver._extHelper.waitForExtDialog(groupName + " Information");
}

@LogMethod
public void deleteGlobalGroupFromDetailsPage(@LoggedParam String groupName)
{
goToSiteGroupScreen(groupName);
Locator.XPathLocator deleteButton = Locator.lkButton("Delete Empty Group");
_driver.waitForElement(deleteButton);
_driver.click(deleteButton);
_driver.assertAlert("Permanently delete group /" + groupName + "?");
_driver.waitForElement(Ext4Helper.Locators.ext4Button("Save and Finish"));
}

@LogMethod
public Integer createGlobalPermissionsGroup(@LoggedParam String groupName, boolean failIfAlreadyExists, @LoggedParam String... users)
{
Expand Down Expand Up @@ -227,6 +238,12 @@ private void _selectPermission(String userOrGroupName, String group, String perm

@Override
public void addUserToSiteGroup(String userName, String groupName)
{
goToSiteGroupScreen(groupName);
addUserToGroupFromGroupScreen(userName);
}

private void goToSiteGroupScreen(String groupName)
{
_driver.ensureAdminMode();
switch (groupName)
Expand All @@ -244,7 +261,6 @@ public void addUserToSiteGroup(String userName, String groupName)
_driver.click(groupLoc);
_driver.clickAndWait(Locator.linkContainingText("manage group"));
}
addUserToGroupFromGroupScreen(userName);
}

@Override
Expand Down