function DevelSwitchUserTest::testSwitchUserFunctionality
Same name in other branches
- 4.x tests/src/Functional/DevelSwitchUserTest.php \Drupal\Tests\devel\Functional\DevelSwitchUserTest::testSwitchUserFunctionality()
Tests switch user basic functionality.
File
-
tests/
src/ Functional/ DevelSwitchUserTest.php, line 60
Class
- DevelSwitchUserTest
- Tests switch user.
Namespace
Drupal\Tests\devel\FunctionalCode
public function testSwitchUserFunctionality() : void {
$this->drupalLogin($this->webUser);
$this->drupalGet('');
$this->assertSession()
->pageTextNotContains($this->block
->label());
// Ensure that a token is required to switch user.
$this->drupalGet('/devel/switch/' . $this->webUser
->getDisplayName());
$this->assertSession()
->statusCodeEquals(403);
$this->drupalLogin($this->develUser);
$this->drupalGet('');
$this->assertSession()
->pageTextContains($this->block
->label());
// Ensure that if name in not passed the controller returns access denied.
$this->drupalGet('/devel/switch');
$this->assertSession()
->statusCodeEquals(403);
// Ensure that a token is required to switch user.
$this->drupalGet('/devel/switch/' . $this->switchUser
->getDisplayName());
$this->assertSession()
->statusCodeEquals(403);
// Switch to another user account.
$this->drupalGet('/user/' . $this->switchUser
->id());
$this->clickLink($this->switchUser
->getDisplayName());
$this->assertSessionByUid($this->switchUser
->id());
$this->assertNoSessionByUid($this->develUser
->id());
// Switch back to initial account.
$this->clickLink($this->develUser
->getDisplayName());
$this->assertNoSessionByUid($this->switchUser
->id());
$this->assertSessionByUid($this->develUser
->id());
// Use the search form to switch to another account.
$edit = [
'userid' => $this->switchUser
->getDisplayName(),
];
$this->submitForm($edit, 'Switch');
$this->assertSessionByUid($this->switchUser
->id());
$this->assertNoSessionByUid($this->develUser
->id());
// Use the form with username of the maximum length. Mimic the autofill
// result by adding " (userid)" at the end.
$edit = [
'userid' => $this->longUser
->getDisplayName() . sprintf(' (%s)', $this->longUser
->id()),
];
$this->submitForm($edit, 'Switch');
$this->assertSessionByUid($this->longUser
->id());
$this->assertNoSessionByUid($this->switchUser
->id());
}