File tree Expand file tree Collapse file tree 3 files changed +41
-0
lines changed
Expand file tree Collapse file tree 3 files changed +41
-0
lines changed Original file line number Diff line number Diff line change @@ -372,6 +372,7 @@ public function getPIGroupGIDs(): array
372372 */
373373 public function requestAccountDeletion (): void
374374 {
375+ $ this ->SQL ->deleteRequestsByUser ($ this ->uid );
375376 $ this ->SQL ->addAccountDeletionRequest ($ this ->uid );
376377 $ this ->MAILER ->sendMail ("admin " , "account_deletion_request_admin " , [
377378 "user " => $ this ->uid ,
Original file line number Diff line number Diff line change @@ -40,4 +40,33 @@ public function testRequestAccountDeletionUserHasGroup()
4040 $ this ->assertNumberAccountDeletionRequests (0 );
4141 }
4242 }
43+
44+ /* when you request account deletion, any other requests should be deleted */
45+ public function testRequestAccountDeletionUserHasRequest ()
46+ {
47+ global $ USER , $ SQL ;
48+ $ pi_args = getUserIsPIHasNoMembersNoMemberRequests ();
49+ switchUser (...$ pi_args );
50+ $ pi = $ USER ;
51+ $ pi_group = $ USER ->getPIGroup ();
52+ $ this ->assertEqualsCanonicalizing ([$ pi ->uid ], $ pi_group ->getGroupMemberUIDs ());
53+ $ user_args = getBlankUser ();
54+ switchUser (...$ user_args );
55+ $ this ->assertEmpty ($ USER ->getPIGroupGIDs ());
56+ $ this ->assertNumberAccountDeletionRequests (0 );
57+ $ this ->assertNumberRequests (0 );
58+ try {
59+ $ pi_group ->newUserRequest ($ USER );
60+ $ this ->assertNumberRequests (1 );
61+ http_post (__DIR__ . "/../../webroot/panel/account.php " , [
62+ "form_type " => "account_deletion_request " ,
63+ ]);
64+ $ this ->assertNumberAccountDeletionRequests (1 );
65+ $ this ->assertNumberRequests (0 );
66+ } finally {
67+ $ SQL ->deleteAccountDeletionRequest ($ USER ->uid );
68+ $ this ->assertNumberAccountDeletionRequests (0 );
69+ ensureUserNotInPIGroup ($ pi_group );
70+ }
71+ }
4372}
Original file line number Diff line number Diff line change @@ -425,4 +425,15 @@ public function assertNumberPiBecomeRequests(int $x)
425425 }
426426 $ this ->assertEquals ($ x , $ this ->getNumberPiBecomeRequests ());
427427 }
428+
429+ public function getNumberRequests ()
430+ {
431+ global $ USER , $ SQL ;
432+ return count ($ SQL ->getRequestsByUser ($ USER ->uid ));
433+ }
434+
435+ public function assertNumberRequests (int $ x )
436+ {
437+ $ this ->assertEquals ($ x , $ this ->getNumberRequests ());
438+ }
428439}
You can’t perform that action at this time.
0 commit comments