@@ -83,6 +83,7 @@ public class IssuesTest extends BaseWebDriverTest
8383 private static final String USER1 = "user1_issuetest@issues.test" ;
8484 private static final String USER2 = "user2_issuetest@issues.test" ;
8585 private static final String USER3 = "user3_issuetest@issues.test" ;
86+ private static final String USER4 = "user4_issuetest@issues.test" ;
8687 private static final String user = "reader@issues.test" ;
8788 private static final Map <String , String > ISSUE_0 = new HashMap <>(Maps .of ("title" , ISSUE_TITLE_0 , "Priority" , "2" , "comment" , "a bright flash of light" ));
8889 private static final Map <String , String > ISSUE_1 = new HashMap <>(Maps .of ("title" , ISSUE_TITLE_1 , "Priority" , "1" , "comment" , "alien autopsy" ));
@@ -155,7 +156,7 @@ protected String getProjectName()
155156 @ Override
156157 protected void doCleanup (boolean afterTest ) throws TestTimeoutException
157158 {
158- _userHelper .deleteUsers (false , USER1 , USER2 );
159+ _userHelper .deleteUsers (false , USER1 , USER2 , USER3 , USER4 );
159160 _containerHelper .deleteProject (getProjectName (), afterTest );
160161 }
161162
@@ -179,9 +180,11 @@ public void doInit()
179180 _userHelper .createUser (USER1 );
180181 _userHelper .createUser (USER2 );
181182 _userHelper .createUser (USER3 );
183+ _userHelper .createUser (USER4 );
182184 _permissionsHelper .addUserToProjGroup (getUsername (), getProjectName (), TEST_GROUP );
183185 _permissionsHelper .addUserToProjGroup (USER1 , getProjectName (), TEST_GROUP );
184186 _permissionsHelper .addUserToProjGroup (USER3 , getProjectName (), TEST_GROUP );
187+ _permissionsHelper .addUserToProjGroup (USER4 , getProjectName (), TEST_GROUP );
185188
186189 // Create issues
187190 clickProject (getProjectName ());
@@ -954,6 +957,32 @@ public void testAssignedToOnResolveAndClose() throws Exception
954957 assertEquals ("Wrong assignedTo after issue close." , closeTo , closePage .assignedTo ().get ());
955958 ListPage listPage = closePage .save ();
956959 assertEquals ("Wrong assignedTo after issue close." , closeTo , listPage .dataRegion ().getDataAsText (0 , "Assigned To" ));
960+
961+ // Regression for 53713. Close an issue opened by a user no longer valid for the project
962+ String issueId ;
963+ String issueTitle = "Repro for 53713" ;
964+
965+ impersonate (USER4 );
966+ {
967+ detailsPage = _issuesHelper .addIssue (issueTitle , _userHelper .getDisplayNameForEmail (getUsername ()));
968+ issueId = detailsPage .getIssueId ();
969+ }
970+ stopImpersonating ();
971+
972+ clickProject (getProjectName ());
973+ detailsPage = DetailsPage .beginAt (this , issueId );
974+
975+ resolvePage = detailsPage .clickResolve ();
976+ assertEquals ("Wrong assignedTo after issue resolve." , _userHelper .getDisplayNameForEmail (USER4 ), resolvePage .assignedTo ().get ());
977+ resolvePage .save ();
978+
979+ // remove user4
980+ _userHelper .deleteUsers (false , USER4 );
981+ closePage = detailsPage .clickClose ();
982+ closePage .save ();
983+
984+ DetailsPage .beginAt (this , issueId );
985+ assertTextPresent ("closed" , issueTitle );
957986 }
958987
959988 // NOTE: returning string here to avoid extra casting
0 commit comments