You are here

public function OpenIdConnectSessionTest::testSaveDestinationUserPath in OpenID Connect / OAuth client 2.x

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

Test the saveDestination() method with the /user/login path.

File

tests/src/Unit/OpenIdConnectSessionTest.php, line 137

Class

OpenIdConnectSessionTest
@coversDefaultClass \Drupal\openid_connect\OpenIDConnectSession @group openid_connect

Namespace

Drupal\Tests\openid_connect\Unit

Code

public function testSaveDestinationUserPath() : void {

  // Setup our expected results.
  $expectedDestination = 'user';
  $immutableConfig = $this
    ->createMock(ImmutableConfig::class);
  $this->configFactory
    ->expects($this
    ->once())
    ->method('get')
    ->with('openid_connect.settings')
    ->willReturn($immutableConfig);

  // Mock the get method with the user login path.
  $this->redirectDestination
    ->expects($this
    ->once())
    ->method('get')
    ->willReturn(self::TEST_USER_PATH);

  // Mock the get method for the 'session' service.
  $this->session
    ->expects($this
    ->exactly(2))
    ->method('get')
    ->willReturnOnConsecutiveCalls($expectedDestination, 'und');
  $language = $this
    ->createMock(LanguageInterface::class);
  $language
    ->expects($this
    ->once())
    ->method('getId')
    ->willReturn('und');
  $this->languageManager
    ->expects($this
    ->once())
    ->method('getCurrentLanguage')
    ->willReturn($language);

  // Create a class to test with.
  $session = new OpenIDConnectSession($this->configFactory, $this->redirectDestination, $this->session, $this->languageManager);

  // Call the saveDestination method.
  $session
    ->saveDestination();

  // Call the retrieveDestination method.
  $destination = $session
    ->retrieveDestination();

  // Assert the destination matches our expectations.
  $this
    ->assertEquals($destination, [
    'destination' => $expectedDestination,
    'langcode' => 'und',
  ]);
}