function UserCancelTest::testUserCancelByAdmin
Same name and namespace in other branches
- 9 core/modules/user/tests/src/Functional/UserCancelTest.php \Drupal\Tests\user\Functional\UserCancelTest::testUserCancelByAdmin()
- 8.9.x core/modules/user/tests/src/Functional/UserCancelTest.php \Drupal\Tests\user\Functional\UserCancelTest::testUserCancelByAdmin()
- 10 core/modules/user/tests/src/Functional/UserCancelTest.php \Drupal\Tests\user\Functional\UserCancelTest::testUserCancelByAdmin()
Create an administrative user and delete other users.
File
-
core/
modules/ user/ tests/ src/ Functional/ UserCancelTest.php, line 519
Class
- UserCancelTest
- Ensure that account cancellation methods work as expected.
Namespace
Drupal\Tests\user\FunctionalCode
public function testUserCancelByAdmin() : void {
$this->config('user.settings')
->set('cancel_method', 'user_cancel_reassign')
->save();
// Create administrative user.
$admin_user = $this->drupalCreateUser([
'administer users',
]);
$this->drupalLogin($admin_user);
// Test deletion of a user account without email confirmation.
$account1 = $this->drupalCreateUser([]);
// Delete regular user.
$this->drupalGet('user/' . $account1->id() . '/cancel');
$this->assertSession()
->pageTextContains("Are you sure you want to cancel the account {$account1->getAccountName()}?");
$this->assertSession()
->pageTextContains('Cancellation method');
// Confirm deletion.
$this->submitForm([], 'Confirm');
$this->assertSession()
->pageTextContains("Account {$account1->getAccountName()} has been deleted.");
$this->assertNull(User::load($account1->id()), 'User is not found in the database.');
// Test deletion of a user account with email confirmation.
$account2 = $this->drupalCreateUser([]);
// Delete regular user.
$this->drupalGet('user/' . $account2->id() . '/cancel');
$this->assertSession()
->pageTextContains("Are you sure you want to cancel the account {$account2->getAccountName()}?");
$this->assertSession()
->pageTextContains('Cancellation method');
// Confirm deletion.
$this->submitForm([
'edit-user-cancel-confirm' => 1,
], 'Confirm');
$this->assertSession()
->pageTextContains("A confirmation request to cancel the account {$account2->getAccountName()} has been sent to the user's email address.");
$this->assertNotNull(User::load($account2->id()), 'User is found in the database.');
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.