public function R4032LoginSubscriberTest::testAnonymousRedirect in Redirect 403 to User Login 8
Same name and namespace in other branches
- 2.x tests/src/Unit/R4032LoginSubscriberTest.php \Drupal\Tests\r4032login\Unit\R4032LoginSubscriberTest::testAnonymousRedirect()
Tests RedirectResponse for anonymous 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 138
Class
- R4032LoginSubscriberTest
- @coversDefaultClass \Drupal\r4032login\EventSubscriber\R4032LoginSubscriber @group r4032login
Namespace
Drupal\Tests\r4032login\UnitCode
public function testAnonymousRedirect(Request $request, array $config_values, $expected_url) {
$config = $this
->getConfigFactoryStub([
'r4032login.settings' => $config_values,
]);
$this->currentUser
->expects($this
->any())
->method('isAnonymous')
->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(Url::fromUserInput($config_values['user_login_path'])
->toString(), $response
->getTargetUrl());
}