public function BigPipeStrategyTest::testProcessPlaceholders in Drupal 8
Same name and namespace in other branches
- 9 core/modules/big_pipe/tests/src/Unit/Render/Placeholder/BigPipeStrategyTest.php \Drupal\Tests\big_pipe\Unit\Render\Placeholder\BigPipeStrategyTest::testProcessPlaceholders()
@covers ::processPlaceholders
@dataProvider placeholdersProvider
File
- core/
modules/ big_pipe/ tests/ src/ Unit/ Render/ Placeholder/ BigPipeStrategyTest.php, line 26
Class
- BigPipeStrategyTest
- @coversDefaultClass \Drupal\big_pipe\Render\Placeholder\BigPipeStrategy @group big_pipe
Namespace
Drupal\Tests\big_pipe\Unit\Render\PlaceholderCode
public function testProcessPlaceholders(array $placeholders, $method, $route_match_has_no_big_pipe_option, $request_has_session, $request_has_big_pipe_nojs_cookie, array $expected_big_pipe_placeholders) {
$request = new Request();
$request
->setMethod($method);
if ($request_has_big_pipe_nojs_cookie) {
$request->cookies
->set(BigPipeStrategy::NOJS_COOKIE, 1);
}
$request_stack = $this
->prophesize(RequestStack::class);
$request_stack
->getCurrentRequest()
->willReturn($request);
$session_configuration = $this
->prophesize(SessionConfigurationInterface::class);
$session_configuration
->hasSession(Argument::type(Request::class))
->willReturn($request_has_session);
$route = $this
->prophesize(Route::class);
$route
->getOption('_no_big_pipe')
->willReturn($route_match_has_no_big_pipe_option);
$route_match = $this
->prophesize(RouteMatchInterface::class);
$route_match
->getRouteObject()
->willReturn($route);
$big_pipe_strategy = new BigPipeStrategy($session_configuration
->reveal(), $request_stack
->reveal(), $route_match
->reveal());
$processed_placeholders = $big_pipe_strategy
->processPlaceholders($placeholders);
if ($request
->isMethodCacheable() && !$route_match_has_no_big_pipe_option && $request_has_session) {
$this
->assertSameSize($expected_big_pipe_placeholders, $processed_placeholders, 'BigPipe is able to deliver all placeholders.');
foreach (array_keys($placeholders) as $placeholder) {
$this
->assertSame($expected_big_pipe_placeholders[$placeholder], $processed_placeholders[$placeholder], "Verifying how BigPipeStrategy handles the placeholder '{$placeholder}'");
}
}
else {
$this
->assertCount(0, $processed_placeholders);
}
}