|
1 | 1 | package org.labkey.test.tests.onprc_ehr; |
2 | 2 |
|
| 3 | +import org.junit.Assert; |
3 | 4 | import org.junit.BeforeClass; |
4 | 5 | import org.junit.Test; |
5 | 6 | import org.junit.experimental.categories.Category; |
|
11 | 12 | import org.labkey.test.pages.issues.DetailsPage; |
12 | 13 | import org.labkey.test.pages.issues.InsertPage; |
13 | 14 | import org.labkey.test.pages.issues.UpdatePage; |
| 15 | +import org.labkey.test.pages.search.SearchResultsPage; |
14 | 16 | import org.labkey.test.util.IssuesHelper; |
| 17 | +import org.labkey.test.util.SearchHelper; |
15 | 18 | import org.labkey.test.util.SqlserverOnlyTest; |
16 | 19 | import org.labkey.test.util.TestUser; |
17 | 20 |
|
@@ -265,4 +268,37 @@ private Locator getIssueLinkLocator(String issueID) |
265 | 268 | { |
266 | 269 | return Locator.tagWithAttributeContaining("a", "href", String.format("issues-details.view?issueId=%s", issueID)); |
267 | 270 | } |
| 271 | + |
| 272 | + @Test |
| 273 | + public void restrictedIssueSearchTest() |
| 274 | + { |
| 275 | + goToProjectHome(); |
| 276 | + |
| 277 | + // create a few issues in the restricted list |
| 278 | + clickAndWait(Locator.linkContainingText(RESTRICTED_ISSUES_LIST)); |
| 279 | + DetailsPage detailsPage = _issuesHelper.addIssue("Restricted issue search test #1", USER1.getUserDisplayName()); |
| 280 | + final String ISSUE_1 = detailsPage.getIssueId(); |
| 281 | + InsertPage insertPage = detailsPage.clickCreateNewIssue(); |
| 282 | + insertPage.title().set("Restricted issue search test #2"); |
| 283 | + insertPage.assignedTo().set(USER2.getUserDisplayName()); |
| 284 | + detailsPage = insertPage.save(); |
| 285 | + final String ISSUE_2 = detailsPage.getIssueId(); |
| 286 | + |
| 287 | + SearchHelper searchHelper = new SearchHelper(this); |
| 288 | + SearchResultsPage resultsPage = searchHelper.searchFor("Restricted issue search test"); |
| 289 | + |
| 290 | + // verify that we can return links even if the user doesn't have permission to view a restricted issue |
| 291 | + Assert.assertTrue("Number of search results not expected", resultsPage.getResults().size() == 2); |
| 292 | + |
| 293 | + // verify assigned to users will see both results but shouldn't be able to see details of issues not assigned to them |
| 294 | + impersonate(USER1.getEmail()); |
| 295 | + verifyIssueAccess(ISSUE_1, true); |
| 296 | + verifyIssueAccess(ISSUE_2, false); |
| 297 | + stopImpersonating(false); |
| 298 | + |
| 299 | + impersonate(USER2.getEmail()); |
| 300 | + verifyIssueAccess(ISSUE_1, false); |
| 301 | + verifyIssueAccess(ISSUE_2, true); |
| 302 | + stopImpersonating(); |
| 303 | + } |
268 | 304 | } |
0 commit comments