.../Render/Placeholder/BigPipeStrategyTest.php | 40 +++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/tests/src/Unit/Render/Placeholder/BigPipeStrategyTest.php b/tests/src/Unit/Render/Placeholder/BigPipeStrategyTest.php index 65e7255..35babb8 100644 --- a/tests/src/Unit/Render/Placeholder/BigPipeStrategyTest.php +++ b/tests/src/Unit/Render/Placeholder/BigPipeStrategyTest.php @@ -42,9 +42,15 @@ class BigPipeStrategyTest extends UnitTestCase { $big_pipe_strategy = new BigPipeStrategy($session_configuration->reveal(), $request_stack->reveal()); $processed_placeholders = $big_pipe_strategy->processPlaceholders($placeholders); - $this->assertSame($expected_big_pipe_placeholders, $processed_placeholders); + if ($request_has_session) { $this->assertSameSize($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->assertSame(0, count($processed_placeholders)); } } @@ -142,6 +148,36 @@ class BigPipeStrategyTest extends UnitTestCase { ], ]; + // Edge case: non-#lazy_builder placeholder. + $placeholders[''] = [ + '#pre_render' => ['current_time'], + ]; + $current_time_big_pipe_placeholder = [ + '#markup' => '
', + '#cache' => $cacheability_depends_on_session_and_nojs_cookie, + '#attached' => [ + 'library' => ['big_pipe/big_pipe'], + 'drupalSettings' => [ + 'bigPipePlaceholderIds' => [ + 'timecurrent-timetime' => TRUE, + ], + ], + 'big_pipe_placeholders' => [ + 'timecurrent-timetime' => $placeholders[''], + ], + ], + ]; + $current_time_big_pipe_nojs_placeholder = [ + '#markup' => '', + '#cache' => $cacheability_depends_on_session_and_nojs_cookie, + '#attached' => [ + 'big_pipe_nojs_placeholders' => [ + '' => $placeholders[''], + ], + ], + ]; + + return [ 'no session, no-JS cookie absent' => [$placeholders, FALSE, FALSE, []], 'no session, no-JS cookie present' => [$placeholders, FALSE, TRUE, []], @@ -150,12 +186,14 @@ class BigPipeStrategyTest extends UnitTestCase { 'form_action_cc611e1d' => $form_action_big_pipe_nojs_placeholder, '22dcc695f4a22e809a62d8eb7addd6fccecfbf31' => $csrf_token_big_pipe_nojs_placeholder, '