src/Tests/BigPipeNoJsDetectionTest.php | 1 + .../big_pipe_test/src/BigPipeTestController.php | 23 ++++++++++++++++++++-- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/src/Tests/BigPipeNoJsDetectionTest.php b/src/Tests/BigPipeNoJsDetectionTest.php index 4deb9a2..75366d0 100644 --- a/src/Tests/BigPipeNoJsDetectionTest.php +++ b/src/Tests/BigPipeNoJsDetectionTest.php @@ -121,6 +121,7 @@ class BigPipeNoJsDetectionTest extends WebTestBase { // Keys: BigPipe no-JS placeholder markup. Values: expected replacement markup. $expected_big_pipe_nojs_placeholders = [ + 'big_pipe_nojs_placeholder_attribute_safe:<hello' => 'Yarhar llamas forever!', 'big_pipe_nojs_placeholder_attribute_safe:form_action_cc611e1d' => '
$this->container->get('csrf_token')->get('admin/appearance/default'), ]; diff --git a/tests/modules/big_pipe_test/src/BigPipeTestController.php b/tests/modules/big_pipe_test/src/BigPipeTestController.php index 3b7701c..9149483 100644 --- a/tests/modules/big_pipe_test/src/BigPipeTestController.php +++ b/tests/modules/big_pipe_test/src/BigPipeTestController.php @@ -58,10 +58,17 @@ class BigPipeTestController extends ControllerBase { // 4. Edge case: custom string to be considered as a placeholder that // happens to not be valid HTML. - // @todo + $build['edge_case__invalid_html'] = [ + '#markup' => Markup::create(' [ + 'placeholders' => [ + ' ['#lazy_builder' => [__CLASS__ . '::helloOrYarhar', []]], + ] + ] + ]; // 5. Edge case: non-#lazy_builder placeholder. - $build['html_non_lazy_builder'] = [ + $build['edge_case__html_non_lazy_builder'] = [ '#markup' => Markup::create(''), '#attached' => [ 'placeholders' => [ @@ -91,4 +98,16 @@ class BigPipeTestController extends ControllerBase { ]; } + /** + * #lazy_builder callback; says "hello" or "yarhar". + * + * @return array + */ + public static function helloOrYarhar() { + return [ + '#markup' => Markup::create('Yarhar llamas forever!'), + '#cache' => ['max-age' => 0], + ]; + } + }