X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs-website;a=blobdiff_plain;f=web%2Fcore%2Fmodules%2Fbig_pipe%2Ftests%2Fmodules%2Fbig_pipe_test%2Fsrc%2FBigPipePlaceholderTestCases.php;fp=web%2Fcore%2Fmodules%2Fbig_pipe%2Ftests%2Fmodules%2Fbig_pipe_test%2Fsrc%2FBigPipePlaceholderTestCases.php;h=e3da529ea46d6cda33df3bef2b7e2865ab610ff6;hp=0000000000000000000000000000000000000000;hb=9917807b03b64faf00f6a1f29dcb6eafc454efa5;hpb=aea91e65e895364e460983b890e295aa5d5540a5
diff --git a/web/core/modules/big_pipe/tests/modules/big_pipe_test/src/BigPipePlaceholderTestCases.php b/web/core/modules/big_pipe/tests/modules/big_pipe_test/src/BigPipePlaceholderTestCases.php
new file mode 100644
index 000000000..e3da529ea
--- /dev/null
+++ b/web/core/modules/big_pipe/tests/modules/big_pipe_test/src/BigPipePlaceholderTestCases.php
@@ -0,0 +1,406 @@
+ 0,
+ 'contexts' => ['session.exists'],
+ ];
+ $cacheability_depends_on_session_and_nojs_cookie = [
+ 'max-age' => 0,
+ 'contexts' => ['session.exists', 'cookies:big_pipe_nojs'],
+ ];
+
+ // 1. Real-world example of HTML placeholder.
+ $status_messages = new BigPipePlaceholderTestCase(
+ ['#type' => 'status_messages'],
+ '',
+ [
+ '#lazy_builder' => [
+ 'Drupal\Core\Render\Element\StatusMessages::renderMessages',
+ [NULL]
+ ],
+ ]
+ );
+ $status_messages->bigPipePlaceholderId = 'callback=Drupal%5CCore%5CRender%5CElement%5CStatusMessages%3A%3ArenderMessages&args%5B0%5D&token=_HAdUpwWmet0TOTe2PSiJuMntExoshbm1kh2wQzzzAA';
+ $status_messages->bigPipePlaceholderRenderArray = [
+ '#markup' => '',
+ '#cache' => $cacheability_depends_on_session_and_nojs_cookie,
+ '#attached' => [
+ 'library' => ['big_pipe/big_pipe'],
+ 'drupalSettings' => [
+ 'bigPipePlaceholderIds' => [
+ 'callback=Drupal%5CCore%5CRender%5CElement%5CStatusMessages%3A%3ArenderMessages&args%5B0%5D&token=_HAdUpwWmet0TOTe2PSiJuMntExoshbm1kh2wQzzzAA' => TRUE,
+ ],
+ ],
+ 'big_pipe_placeholders' => [
+ 'callback=Drupal%5CCore%5CRender%5CElement%5CStatusMessages%3A%3ArenderMessages&args%5B0%5D&token=_HAdUpwWmet0TOTe2PSiJuMntExoshbm1kh2wQzzzAA' => $status_messages->placeholderRenderArray,
+ ],
+ ],
+ ];
+ $status_messages->bigPipeNoJsPlaceholder = '';
+ $status_messages->bigPipeNoJsPlaceholderRenderArray = [
+ '#markup' => '',
+ '#cache' => $cacheability_depends_on_session_and_nojs_cookie,
+ '#attached' => [
+ 'big_pipe_nojs_placeholders' => [
+ '' => $status_messages->placeholderRenderArray,
+ ],
+ ],
+ ];
+ if ($container && $user) {
+ $status_messages->embeddedAjaxResponseCommands = [
+ [
+ 'command' => 'insert',
+ 'method' => 'replaceWith',
+ 'selector' => '[data-big-pipe-placeholder-id="callback=Drupal%5CCore%5CRender%5CElement%5CStatusMessages%3A%3ArenderMessages&args%5B0%5D&token=_HAdUpwWmet0TOTe2PSiJuMntExoshbm1kh2wQzzzAA"]',
+ 'data' => '
' . "\n" . '
Status message
' . "\n" . ' Hello from BigPipe!' . "\n" . ' ' . "\n ",
+ 'settings' => NULL,
+ ],
+ ];
+ $status_messages->embeddedHtmlResponse = '' . "\n" . '
Status message
' . "\n" . ' Hello from BigPipe!' . "\n" . ' ' . "\n \n";
+ }
+
+ // 2. Real-world example of HTML attribute value placeholder: form action.
+ $form_action = new BigPipePlaceholderTestCase(
+ $container ? $container->get('form_builder')->getForm('Drupal\big_pipe_test\Form\BigPipeTestForm') : [],
+ 'form_action_cc611e1d',
+ [
+ '#lazy_builder' => ['form_builder:renderPlaceholderFormAction', []],
+ ]
+ );
+ $form_action->bigPipeNoJsPlaceholder = 'big_pipe_nojs_placeholder_attribute_safe:form_action_cc611e1d';
+ $form_action->bigPipeNoJsPlaceholderRenderArray = [
+ '#markup' => 'big_pipe_nojs_placeholder_attribute_safe:form_action_cc611e1d',
+ '#cache' => $cacheability_depends_on_session_only,
+ '#attached' => [
+ 'big_pipe_nojs_placeholders' => [
+ 'big_pipe_nojs_placeholder_attribute_safe:form_action_cc611e1d' => $form_action->placeholderRenderArray,
+ ],
+ ],
+ ];
+ if ($container) {
+ $form_action->embeddedHtmlResponse = '