You are here

public function DomainTestBase::domainLogin in Domain Access 8

Login a user on a specific domain.

Parameters

\Drupal\domain\DomainInterface $domain: The domain to log the user into.

\Drupal\Core\Session\AccountInterface $account: The user account to login.

2 calls to DomainTestBase::domainLogin()
DomainAccessPermissionsTest::testDomainAccessCreatePermissions in domain_access/tests/src/Functional/DomainAccessPermissionsTest.php
Tests domain access create permissions.
DomainAccessPermissionsTest::testDomainAccessLimitedCreatePermissions in domain_access/tests/src/Functional/DomainAccessPermissionsTest.php
Tests domain access limited create permissions.

File

domain/tests/src/Functional/DomainTestBase.php, line 244

Class

DomainTestBase
Class DomainTestBase.

Namespace

Drupal\Tests\domain\Functional

Code

public function domainLogin(DomainInterface $domain, AccountInterface $account) {

  // Due to a quirk in session handling that we cannot directly access, it
  // works if we login, then logout, and then login to a specific domain.
  $this
    ->drupalLogin($account);
  if ($this->loggedInUser) {
    $this
      ->drupalLogout();
  }

  // Login.
  $url = $domain
    ->getPath() . 'user/login';
  $this
    ->submitForm([
    'name' => $account
      ->getAccountName(),
    'pass' => $account->passRaw,
  ], t('Log in'));

  // @see BrowserTestBase::drupalUserIsLoggedIn()
  $account->sessionId = $this
    ->getSession()
    ->getCookie($this
    ->getSessionName());
  $this
    ->assertTrue($this
    ->drupalUserIsLoggedIn($account), 'User successfully logged in.');
  $this->loggedInUser = $account;
  $this->container
    ->get('current_user')
    ->setAccount($account);
}