function UserAuthTest::testAddCheckToUrlForTrustedRedirectResponse

Same name and namespace in other branches
  1. 10 core/modules/user/tests/src/Unit/UserAuthTest.php \Drupal\Tests\user\Unit\UserAuthTest::testAddCheckToUrlForTrustedRedirectResponse()
  2. 11.x core/modules/user/tests/src/Unit/UserAuthTest.php \Drupal\Tests\user\Unit\UserAuthTest::testAddCheckToUrlForTrustedRedirectResponse()

Tests the auth that ends in a redirect from subdomain to TLD.

File

core/modules/user/tests/src/Unit/UserAuthTest.php, line 233

Class

UserAuthTest
@coversDefaultClass \Drupal\user\UserAuth[[api-linebreak]] @group user

Namespace

Drupal\Tests\user\Unit

Code

public function testAddCheckToUrlForTrustedRedirectResponse() : void {
  $site_domain = 'site.com';
  $frontend_url = "https://{$site_domain}";
  $backend_url = "https://api.{$site_domain}";
  $request = Request::create($backend_url);
  $response = new TrustedRedirectResponse($frontend_url);
  $request_context = $this->createMock(RequestContext::class);
  $request_context->method('getCompleteBaseUrl')
    ->willReturn($backend_url);
  $container = new ContainerBuilder();
  $container->set('router.request_context', $request_context);
  \Drupal::setContainer($container);
  $session_mock = $this->createMock(SessionInterface::class);
  $session_mock->expects($this->once())
    ->method('has')
    ->with('check_logged_in')
    ->willReturn(TRUE);
  $session_mock->expects($this->once())
    ->method('remove')
    ->with('check_logged_in');
  $event_mock = $this->createMock(ResponseEvent::class);
  $event_mock->expects($this->once())
    ->method('getResponse')
    ->willReturn($response);
  $event_mock->expects($this->exactly(3))
    ->method('getRequest')
    ->willReturn($request);
  $request->setSession($session_mock);
  $this->getMockBuilder(Cookie::class)
    ->disableOriginalConstructor()
    ->onlyMethods([])
    ->getMock()
    ->addCheckToUrl($event_mock);
  $this->assertSame("{$frontend_url}?check_logged_in=1", $response->getTargetUrl());
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.