function UiHelperTrait::drupalLogin

Same name and namespace in other branches
  1. 11.x core/tests/Drupal/Tests/UiHelperTrait.php \Drupal\Tests\UiHelperTrait::drupalLogin()
  2. 10 core/tests/Drupal/Tests/UiHelperTrait.php \Drupal\Tests\UiHelperTrait::drupalLogin()
  3. 9 core/tests/Drupal/Tests/UiHelperTrait.php \Drupal\Tests\UiHelperTrait::drupalLogin()

Logs in a user using the Mink controlled browser.

If a user is already logged in, then the current user is logged out before logging in the specified user.

Please note that neither the current user nor the passed-in user object is populated with data of the logged in user. If you need full access to the user object after logging in, it must be updated manually. If you also need access to the plain-text password of the user (set by drupalCreateUser()), e.g. to log in the same user again, then it must be re-assigned manually. For example:

// Create a user.
$account = $this->drupalCreateUser(array());
$this->drupalLogin($account);
// Load real user object.
$pass_raw = $account->passRaw;
$account = User::load($account->id());
$account->passRaw = $pass_raw;

Parameters

\Drupal\Core\Session\AccountInterface $account: User object representing the user to log in.

See also

drupalCreateUser()

159 calls to UiHelperTrait::drupalLogin()
AdminTest::setUp in core/modules/system/tests/src/Functional/System/AdminTest.php
AdminTest::testAdminPages in core/modules/system/tests/src/Functional/System/AdminTest.php
Tests output on administrative listing pages.
AjaxFormCacheTest::testBlockForms in core/tests/Drupal/FunctionalJavascriptTests/Ajax/AjaxFormCacheTest.php
Tests AJAX forms in blocks.
AjaxFormCacheTest::testFormCacheUsage in core/tests/Drupal/FunctionalJavascriptTests/Ajax/AjaxFormCacheTest.php
Tests the usage of form cache for AJAX forms.
AjaxFormCacheTest::testQueryString in core/tests/Drupal/FunctionalJavascriptTests/Ajax/AjaxFormCacheTest.php
Tests AJAX forms on pages with a query string.

... See full list

File

core/tests/Drupal/Tests/UiHelperTrait.php, line 241

Class

UiHelperTrait
Provides UI helper methods.

Namespace

Drupal\Tests

Code

protected function drupalLogin(AccountInterface $account) {
  if ($this->loggedInUser) {
    $this->drupalLogout();
  }
  $this->drupalGet(Url::fromRoute('user.login'));
  $this->submitForm([
    'name' => $account->getAccountName(),
    'pass' => $account->passRaw,
  ], t('Log in'));
  // @see ::drupalUserIsLoggedIn()
  $account->sessionId = $this->getSession()
    ->getCookie(\Drupal::service('session_configuration')->getOptions(\Drupal::request())['name']);
  $this->assertTrue($this->drupalUserIsLoggedIn($account), new FormattableMarkup('User %name successfully logged in.', [
    '%name' => $account->getAccountName(),
  ]));
  $this->loggedInUser = $account;
  $this->container
    ->get('current_user')
    ->setAccount($account);
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.