src/Tests/BigPipeNoJsDetectionTest.php | 42 +++++++++++++++++++++++++++++++--- 1 file changed, 39 insertions(+), 3 deletions(-) diff --git a/src/Tests/BigPipeNoJsDetectionTest.php b/src/Tests/BigPipeNoJsDetectionTest.php index f037a37..8eec073 100644 --- a/src/Tests/BigPipeNoJsDetectionTest.php +++ b/src/Tests/BigPipeNoJsDetectionTest.php @@ -7,6 +7,7 @@ namespace Drupal\big_pipe\Tests; +use Drupal\Component\Serialization\Json; use Drupal\Component\Utility\Html; use Drupal\Core\Url; use Drupal\simpletest\WebTestBase; @@ -115,12 +116,47 @@ 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:form_action_cc611e1d' => '
' '[{"command":"settings","settings":{"ajaxPageState":{"theme":"classy","libraries":"big_pipe\/big_pipe,classy\/base,classy\/messages,core\/drupal.active-link,core\/html5shiv,core\/normalize,system\/base"},"pluralDelimiter":"\u0003","user":{"uid":"1","permissionsHash":"' . $this->container->get('user_permissions_hash_generator')->generate($this->rootUser) . '"}},"merge":true},{"command":"add_css","data":"\u003Clink rel=\u0022stylesheet\u0022 href=\u0022\/core\/themes\/classy\/css\/components\/messages.css?' . $this->container->get('state')->get('system.css_js_query_string') . '\u0022 media=\u0022all\u0022 \/\u003E\n"},{"command":"insert","method":"replaceWith","selector":"[data-big-pipe-placeholder-id=\u0022callback=Drupal%5CCore%5CRender%5CElement%5CStatusMessages%3A%3ArenderMessages\u0026args[0]\u0026token=a8c34b5e\u0022]","data":"\n \u003Cdiv role=\u0022contentinfo\u0022 aria-label=\u0022Status message\u0022 class=\u0022messages messages--status\u0022\u003E\n \u003Ch2 class=\u0022visually-hidden\u0022\u003EStatus message\u003C\/h2\u003E\n Hello from BigPipe!\n \u003C\/div\u003E\n \n","settings":null}]', - 'timecurrent-timetime' => '[{"command":"insert","method":"replaceWith","selector":"[data-big-pipe-placeholder-id=\u0022timecurrent-timetime\u0022]","data":"\u003Ctime datetime=1991-03-14\u0022\u003E\u003C\/time\u003E","settings":null}]', + 'callback=Drupal%5CCore%5CRender%5CElement%5CStatusMessages%3A%3ArenderMessages&args[0]&token=a8c34b5e' => Json::encode([ + [ + 'command' => 'settings', + 'settings' => [ + 'ajaxPageState' => [ + 'theme' => 'classy', + 'libraries' => 'big_pipe/big_pipe,classy/base,classy/messages,core/drupal.active-link,core/html5shiv,core/normalize,system/base', + ], + 'pluralDelimiter' => \Drupal\Core\StringTranslation\PluralTranslatableMarkup::DELIMITER, + 'user' => [ + 'uid' => '1', + 'permissionsHash' => $this->container->get('user_permissions_hash_generator')->generate($this->rootUser), + ], + ], + 'merge' => TRUE, + ], + [ + 'command' => 'add_css', + 'data' => '' . "\n" + ], + [ + 'command' => 'insert', + 'method' => 'replaceWith', + 'selector' => '[data-big-pipe-placeholder-id="callback=Drupal%5CCore%5CRender%5CElement%5CStatusMessages%3A%3ArenderMessages&args[0]&token=a8c34b5e"]', + 'data' => "\n" . ' ' . "\n \n", + 'settings' => NULL, + ], + ]), + 'timecurrent-timetime' => Json::encode([ + [ + 'command' => 'insert', + 'method' => 'replaceWith', + 'selector' => '[data-big-pipe-placeholder-id="timecurrent-timetime"]', + 'data' => '', + 'settings' => NULL, + ], + ]), ]; // Verify the expected BigPipe no-JS placeholders have already been replaced