function UserAuthTest::testAddCheckToUrlForTrustedRedirectResponse

Same name and namespace in other branches
  1. 9 core/modules/user/tests/src/Unit/UserAuthTest.php \Drupal\Tests\user\Unit\UserAuthTest::testAddCheckToUrlForTrustedRedirectResponse()
  2. 10 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 238

Class

UserAuthTest
@coversDefaultClass <a href="/api/drupal/core%21modules%21user%21src%21UserAuth.php/class/UserAuth/11.x" title="Validates user authentication credentials." class="local">\Drupal\user\UserAuth</a> @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 = new ResponseEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST, $response);
    $request->setSession($session_mock);
    $this->getMockBuilder(Cookie::class)
        ->disableOriginalConstructor()
        ->onlyMethods([])
        ->getMock()
        ->addCheckToUrl($event);
    $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.