You are here

public function AnonymousLoginSubscriberTest::testRedirectLogic in Anonymous login 8.2

Same name and namespace in other branches
  1. 8 tests/src/Unit/AnonymousLoginSubscriberTest.php \Drupal\Tests\anonymous_login\Unit\AnonymousLoginSubscriberTest::testRedirectLogic()

@covers ::redirect @dataProvider getRedirectData

File

tests/src/Unit/AnonymousLoginSubscriberTest.php, line 24

Class

AnonymousLoginSubscriberTest
Tests the redirect logic.

Namespace

Drupal\Tests\anonymous_login\Unit

Code

public function testRedirectLogic($request_uri, $redirect_uri, $alias = '') {
  $event = $this
    ->callOnKernelRequestCheckRedirect($request_uri);

  // This is for requests that slipped redirect to the login page.
  if (!$event
    ->hasResponse()) {
    $event
      ->setResponse(new RedirectResponse($request_uri));
  }
  else {
    $alias = empty($alias) ? $request_uri : $alias;
    $redirect_uri = $redirect_uri . '?destination=' . substr($alias, 1);
  }
  $this
    ->assertTrue($event
    ->getResponse() instanceof RedirectResponse);
  $response = $event
    ->getResponse();
  $this
    ->assertEquals($redirect_uri, $response
    ->getTargetUrl());
  $this
    ->assertEquals(302, $response
    ->getStatusCode());
}