public function ActiveLinkResponseFilterTest::testOnlyHtml in Drupal 8
Same name and namespace in other branches
- 9 core/tests/Drupal/Tests/Core/EventSubscriber/ActiveLinkResponseFilterTest.php \Drupal\Tests\Core\EventSubscriber\ActiveLinkResponseFilterTest::testOnlyHtml()
Tests ActiveLinkResponseFilter only affects HTML responses.
@covers ::onResponse
File
- core/
tests/ Drupal/ Tests/ Core/ EventSubscriber/ ActiveLinkResponseFilterTest.php, line 418
Class
- ActiveLinkResponseFilterTest
- @coversDefaultClass \Drupal\Core\EventSubscriber\ActiveLinkResponseFilter @group EventSubscriber
Namespace
Drupal\Tests\Core\EventSubscriberCode
public function testOnlyHtml() {
$session = new AnonymousUserSession();
$language_manager = new LanguageManager(new LanguageDefault([]));
$request_stack = new RequestStack();
$request_stack
->push(new Request());
$current_path_stack = new CurrentPathStack($request_stack);
// Make sure path matcher isn't called and we didn't get to the link logic.
$path_matcher = $this
->prophesize(PathMatcherInterface::class);
$path_matcher
->isFrontPage()
->shouldNotBeCalled();
$subscriber = new ActiveLinkResponseFilter($session, $current_path_stack, $path_matcher
->reveal(), $language_manager);
// A link that might otherwise be set 'active'.
$content = '<a data-drupal-link-system-path="otherpage">Other page</a>';
// Assert response with non-html content type gets ignored.
$response = new Response();
$response
->setContent($content);
$response->headers
->get('Content-Type', 'application/json');
$subscriber
->onResponse(new FilterResponseEvent($this
->prophesize(KernelInterface::class)
->reveal(), $request_stack
->getCurrentRequest(), HttpKernelInterface::MASTER_REQUEST, $response));
$this
->assertSame($response
->getContent(), $content);
}