function OpenIDRegistrationTest::testRegisterUserWithoutEmailVerification

Test OpenID auto-registration with e-mail verification disabled.

File

drupal/core/modules/openid/lib/Drupal/openid/Tests/OpenIDRegistrationTest.php, line 101
Definition of Drupal\openid\Tests\OpenIDRegistrationTest.

Class

OpenIDRegistrationTest
Test account registration using Simple Registration and Attribute Exchange.

Namespace

Drupal\openid\Tests

Code

function testRegisterUserWithoutEmailVerification() {
  config('user.settings')
    ->set('verify_mail', FALSE)
    ->save();
  config('system.date')
    ->set('timezone.user.configurable', 1)
    ->set('timezone.default', 'Europe/Brussels')
    ->save();

  // Tell openid_test.module to respond with these SREG fields.
  state()
    ->set('openid_test.response', array(
    'openid.sreg.nickname' => 'john',
    'openid.sreg.email' => 'john@example.com',
    'openid.sreg.language' => 'pt-BR',
    'openid.sreg.timezone' => 'Europe/London',
  ));

  // Save Portuguese, Brazil as an optional language. The process should pick
  // 'pt-br' based on the sreg.language later.
  $language = new Language(array(
    'langcode' => 'pt-br',
  ));
  language_save($language);

  // Use a User-supplied Identity that is the URL of an XRDS document.
  $identity = url('openid-test/yadis/xrds', array(
    'absolute' => TRUE,
  ));
  $this
    ->submitLoginForm($identity);
  $this
    ->assertLink(t('Log out'), 0, 'User was logged in.');
  $user = user_load_by_name('john');
  $this
    ->assertTrue($user, 'User was registered with right username.');
  $this
    ->assertEqual($user->mail, 'john@example.com', 'User was registered with right email address.');
  $this
    ->assertEqual($user->timezone, 'Europe/London', 'User was registered with right timezone.');
  $this
    ->assertEqual($user->preferred_langcode, 'pt-br', 'User was registered with right language.');
  $this
    ->drupalLogout();
  $this
    ->submitLoginForm($identity);
  $this
    ->assertLink(t('Log out'), 0, 'User was logged in.');
}