Test OpenID auto-registration with e-mail verification disabled.
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.');
}