Skip to content

Commit a9b4434

Browse files
committed
Expand assigned-to list test and correct for new behavior
1 parent ab0120b commit a9b4434

1 file changed

Lines changed: 46 additions & 9 deletions

File tree

src/org/labkey/test/tests/issues/IssuesAdminTest.java

Lines changed: 46 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,10 @@
1818
import org.junit.BeforeClass;
1919
import org.junit.Test;
2020
import org.junit.experimental.categories.Category;
21+
import org.labkey.api.security.permissions.UpdatePermission;
22+
import org.labkey.remoteapi.CommandException;
23+
import org.labkey.remoteapi.CommandResponse;
24+
import org.labkey.remoteapi.SimpleGetCommand;
2125
import org.labkey.test.BaseWebDriverTest;
2226
import org.labkey.test.Locator;
2327
import org.labkey.test.TestTimeoutException;
@@ -37,10 +41,13 @@
3741
import org.labkey.test.util.PermissionsHelper;
3842
import org.labkey.test.util.PortalHelper;
3943

44+
import java.io.IOException;
4045
import java.util.Arrays;
41-
import java.util.Collections;
46+
import java.util.HashSet;
4247
import java.util.List;
4348
import java.util.Map;
49+
import java.util.Set;
50+
import java.util.stream.Collectors;
4451

4552
import static org.junit.Assert.assertEquals;
4653
import static org.labkey.test.util.PermissionsHelper.EDITOR_ROLE;
@@ -88,12 +95,12 @@ private void doSetup()
8895

8996
_issuesHelper.createNewIssuesList(ISSUE_LIST_NAME, _containerHelper);
9097
IssuesAdminPage adminPage = IssuesAdminPage.beginAt(this, getProjectName(), ISSUE_LIST_NAME);
91-
adminPage.setAssignedTo(null); // All Project Users
98+
adminPage.setAssignedTo(null); // All users with update permission in this project
9299
adminPage.clickSave();
93100
}
94101

95102
@Test
96-
public void testEmptyAssignedToList() throws Exception
103+
public void testAssignedToList() throws IOException, CommandException
97104
{
98105
goToProjectHome();
99106
final String group = "AssignedToGroup";
@@ -102,19 +109,49 @@ public void testEmptyAssignedToList() throws Exception
102109
_permissionsHelper.createProjectGroup(group, getProjectName());
103110
goToModule("Issues");
104111
OptionSelect assignedTo = new ListPage(getDriver())
105-
.clickNewIssue()
106-
.assignedTo();
112+
.clickNewIssue()
113+
.assignedTo();
114+
115+
// Nobody should be assigned in new issue
116+
assertEquals("", assignedTo.get());
117+
118+
// By default, all users with update permissions should appear in the assigned-to list
119+
SimpleGetCommand command = new SimpleGetCommand("user", "getUsersWithPermissions");
120+
command.setParameters(Map.of("permissions", UpdatePermission.class.getName()));
121+
CommandResponse response = command.execute(createDefaultConnection(), getProjectName());
122+
List<Map<String, Object>> users = response.getProperty("users");
123+
Set<String> expected = users.stream()
124+
.map(m -> (String)m.get("displayName"))
125+
.collect(Collectors.toCollection(HashSet::new)); // Assure mutable
126+
expected.add(""); // Empty option is always there
127+
log(expected.toString());
128+
assertEquals(expected, new HashSet<>(getTexts(assignedTo.getOptions())));
129+
130+
// Set an empty assigned-to group and ensure no users in the assigned-to list
131+
IssuesAdminPage adminPage = IssuesAdminPage.beginAt(this, getProjectName(), ISSUE_LIST_NAME);
132+
adminPage.setAssignedTo(group); // Just the users in this group
133+
adminPage.clickSave();
134+
assignedTo = new ListPage(getDriver())
135+
.clickNewIssue()
136+
.assignedTo();
107137
assertEquals("", assignedTo.get());
108-
assertEquals(Collections.singletonList(""), getTexts(assignedTo.getOptions()));
138+
assertEquals(Arrays.asList(""), getTexts(assignedTo.getOptions())); // Empty list
139+
140+
// Add a user to the group and ensure they now appear as an option
109141
_permissionsHelper.addUserToProjGroup(ADMIN_USER, getProjectName(), group);
110142
refresh();
111143
assignedTo = new InsertPage(getDriver()).assignedTo();
112144
assertEquals("", assignedTo.get());
113145
assertEquals(Arrays.asList("", _userHelper.getDisplayNameForEmail(ADMIN_USER)), getTexts(assignedTo.getOptions()));
146+
147+
// Reset assigned-to list back to all users with update permission in this project
148+
adminPage = IssuesAdminPage.beginAt(this, getProjectName(), ISSUE_LIST_NAME);
149+
adminPage.setAssignedTo(null);
150+
adminPage.clickSave();
114151
}
115152

116153
@Test
117-
public void testIssueDefinitionRequiresModule() throws Exception
154+
public void testIssueDefinitionRequiresModule()
118155
{
119156
_containerHelper.createProject(PROJECT2, null);
120157
_issuesHelper.goToIssueListDefinitions(PROJECT2)
@@ -169,7 +206,7 @@ public void customIssueNameTest()
169206
}
170207

171208
@Test
172-
public void testProtectedFields() throws Exception
209+
public void testProtectedFields()
173210
{
174211
goToProjectHome();
175212
clickAndWait(Locator.linkWithText(ISSUE_LIST_NAME));
@@ -186,7 +223,7 @@ public void testProtectedFields() throws Exception
186223
}
187224

188225
@Test
189-
public void testRelatedIssuesComments() throws Exception
226+
public void testRelatedIssuesComments()
190227
{
191228
log("Adding the test user to test group to appear in assigned to drop down");
192229
if (!_permissionsHelper.isUserInGroup(TEST_USER, TEST_GROUP,getProjectName(), PermissionsHelper.PrincipalType.USER))

0 commit comments

Comments
 (0)