You are here

public function OpenIDConnectTest::dataProviderForConnectCurrentUser in OpenID Connect / OAuth client 2.x

Same name and namespace in other branches
  1. 8 tests/src/Unit/OpenIDConnectTest.php \Drupal\Tests\openid_connect\Unit\OpenIDConnectTest::dataProviderForConnectCurrentUser()

Data provider for the testConnectCurrentUser method.

Return value

array|array[] Array of parameters to pass to testConnectCurrentUser().

File

tests/src/Unit/OpenIDConnectTest.php, line 1219

Class

OpenIDConnectTest
Provides tests for the OpenID Connect module.

Namespace

Drupal\Tests\openid_connect\Unit

Code

public function dataProviderForConnectCurrentUser() : array {
  $sub = $this
    ->randomMachineName();
  $user_data = [
    'sub' => $sub,
  ];
  $id_token = implode('.', [
    $this
      ->randomMachineName(),
    base64_encode(Json::encode($user_data)),
    $this
      ->randomMachineName(),
  ]);
  $tokens = [
    "id_token" => $id_token,
    "access_token" => $this
      ->randomMachineName(),
  ];
  return [
    [
      FALSE,
      [],
      [],
      [],
      FALSE,
    ],
    [
      TRUE,
      [
        'id_token' => $this
          ->randomMachineName(),
        'access_token' => $this
          ->randomMachineName(),
      ],
      [],
      [],
      FALSE,
    ],
    [
      TRUE,
      $tokens,
      [],
      [
        'email' => FALSE,
      ],
      FALSE,
    ],
    [
      TRUE,
      $tokens,
      [
        'sub' => 'invalid',
      ],
      [
        'email' => 'valid@email.com',
      ],
      FALSE,
    ],
    [
      TRUE,
      $tokens,
      [
        'sub' => 'different_account',
      ],
      [
        'email' => 'valid@email.com',
      ],
      FALSE,
    ],
    [
      TRUE,
      $tokens,
      [
        'sub' => $sub,
        'always_save' => FALSE,
      ],
      [
        'email' => 'valid@email.com',
      ],
      TRUE,
    ],
    [
      TRUE,
      $tokens,
      [
        'sub' => $sub,
        'always_save' => TRUE,
      ],
      [
        'email' => 'valid@email.com',
        'name' => $this
          ->randomMachineName(),
      ],
      TRUE,
    ],
    [
      TRUE,
      $tokens,
      [
        'sub' => $sub,
        'always_save' => TRUE,
      ],
      [
        'name' => $this
          ->randomMachineName(),
        'field_string' => 'This is a string',
        'email' => 'valid@email.com',
      ],
      TRUE,
    ],
    [
      TRUE,
      $tokens,
      [
        'sub' => $sub,
        'always_save' => TRUE,
      ],
      [
        'field_string_long' => 'This is long text.',
        'email' => 'valid@email.com',
        'name' => $this
          ->randomMachineName(),
      ],
      TRUE,
    ],
    [
      TRUE,
      $tokens,
      [
        'sub' => $sub,
        'always_save' => TRUE,
      ],
      [
        'field_datetime' => '2020-05-20',
        'email' => 'valid@email.com',
        'name' => $this
          ->randomMachineName(),
      ],
      TRUE,
    ],
    [
      TRUE,
      $tokens,
      [
        'sub' => $sub,
        'always_save' => TRUE,
      ],
      [
        'name' => $this
          ->randomMachineName(),
        'field_image' => realpath(__DIR__) . '/image.png',
        'email' => 'valid@email.com',
      ],
      TRUE,
    ],
    [
      TRUE,
      $tokens,
      [
        'sub' => $sub,
        'always_save' => TRUE,
      ],
      [
        'name' => $this
          ->randomMachineName(),
        'field_invalid' => 'does_not_exist',
        'email' => 'valid@email.com',
      ],
      TRUE,
    ],
    [
      TRUE,
      $tokens,
      [
        'sub' => $sub,
        'always_save' => TRUE,
      ],
      [
        'name' => $this
          ->randomMachineName(),
        'field_image_exception' => new \stdClass(),
        'email' => 'valid@email.com',
      ],
      TRUE,
    ],
  ];
}