function BigPipeStrategyTest::testProcessPlaceholders
Same name in other branches
- 9 core/modules/big_pipe/tests/src/Unit/Render/Placeholder/BigPipeStrategyTest.php \Drupal\Tests\big_pipe\Unit\Render\Placeholder\BigPipeStrategyTest::testProcessPlaceholders()
- 8.9.x core/modules/big_pipe/tests/src/Unit/Render/Placeholder/BigPipeStrategyTest.php \Drupal\Tests\big_pipe\Unit\Render\Placeholder\BigPipeStrategyTest::testProcessPlaceholders()
- 11.x 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 28
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) : void {
$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);
}
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.