You are here

function OpenIDInvalidIdentifierTransitionTestCase::testStrippedFragmentAccountAutoUpdateSreg in Drupal 7

Test OpenID auto transition with e-mail.

File

modules/openid/openid.test, line 633
Tests for openid.module.

Class

OpenIDInvalidIdentifierTransitionTestCase
Test account registration using Simple Registration and Attribute Exchange.

Code

function testStrippedFragmentAccountAutoUpdateSreg() {
  $this
    ->drupalLogin($this->web_user);

  // Use a User-supplied Identity that is the URL of an XRDS document.
  $identity = url('openid-test/yadis/xrds', array(
    'absolute' => TRUE,
    'fragment' => $this
      ->randomName(),
  ));
  $identity_stripped = preg_replace('/#.*/', '', $identity);

  // Add invalid identifier to the authmap (identifier has stripped fragment).
  $this
    ->addIdentity($identity_stripped);
  $this
    ->drupalLogout();

  // Test logging in via the login form, provider will respond with full
  // identifier (including fragment) but with different email, so we can't
  // provide auto-update.
  variable_set('openid_test_response', array(
    'openid.claimed_id' => $identity,
    'openid.sreg.nickname' => $this->web_user->name,
    'openid.sreg.email' => $this->web_user->mail,
  ));
  $this
    ->submitLoginForm($identity_stripped);

  // Verify user was redirected away from user login to an accessible page.
  $this
    ->assertResponse(200);

  // Verify the message.
  $this
    ->assertRaw(t('New OpenID identifier %identity was added as a replacement for invalid identifier %invalid_identity.', array(
    '%invalid_identity' => $identity_stripped,
    '%identity' => $identity,
  )), 'Message that OpenID identifier was added automatically was displayed.');
}