You are here

public function R4032LoginSubscriberTest::testAuthenticatedRedirect in Redirect 403 to User Login 8

Same name and namespace in other branches
  1. 2.x tests/src/Unit/R4032LoginSubscriberTest.php \Drupal\Tests\r4032login\Unit\R4032LoginSubscriberTest::testAuthenticatedRedirect()

Tests RedirectResponse for authenticated users.

@covers ::on403

@dataProvider providerRequests

Parameters

Request $request: The request object.

array $config_values: The configuration values.

string $expected_url: The expected target URL.

File

tests/src/Unit/R4032LoginSubscriberTest.php, line 172

Class

R4032LoginSubscriberTest
@coversDefaultClass \Drupal\r4032login\EventSubscriber\R4032LoginSubscriber @group r4032login

Namespace

Drupal\Tests\r4032login\Unit

Code

public function testAuthenticatedRedirect(Request $request, array $config_values, $expected_url) {
  $config = $this
    ->getConfigFactoryStub([
    'r4032login.settings' => $config_values,
  ]);
  $this->currentUser
    ->expects($this
    ->any())
    ->method('isAuthenticated')
    ->willReturn(TRUE);
  $r4032login = new R4032LoginSubscriber($config, $this->currentUser, $this->requestStack, $this->pathMatcher, $this->eventDispatcher);
  $event = new GetResponseForExceptionEvent($this->kernel, $request, HttpKernelInterface::MASTER_REQUEST, new AccessDeniedHttpException());
  $dispatcher = new EventDispatcher();
  $dispatcher
    ->addListener(KernelEvents::EXCEPTION, [
    $r4032login,
    'on403',
  ]);
  $dispatcher
    ->dispatch(KernelEvents::EXCEPTION, $event);
  $response = $event
    ->getResponse();
  $this
    ->assertInstanceOf('\\Symfony\\Component\\HttpFoundation\\RedirectResponse', $response);
  $this
    ->assertEquals($config_values['default_redirect_code'], $response
    ->getStatusCode());
  $this
    ->assertEquals($expected_url, $response
    ->getTargetUrl());
}