X-Git-Url: http://www.aleph1.co.uk/gitweb/?a=blobdiff_plain;ds=sidebyside;f=web%2Fcore%2Fprofiles%2Fstandard%2Ftests%2Fsrc%2FFunctionalJavascript%2FStandardJavascriptTest.php;fp=web%2Fcore%2Fprofiles%2Fstandard%2Ftests%2Fsrc%2FFunctionalJavascript%2FStandardJavascriptTest.php;h=81cc1481ee370fbb9531d96cb6344faa575f6cef;hb=af6d1fb995500ae68849458ee10d66abbdcfb252;hp=0000000000000000000000000000000000000000;hpb=680c79a86e3ed402f263faeac92e89fb6d9edcc0;p=yaffs-website diff --git a/web/core/profiles/standard/tests/src/FunctionalJavascript/StandardJavascriptTest.php b/web/core/profiles/standard/tests/src/FunctionalJavascript/StandardJavascriptTest.php new file mode 100644 index 000000000..81cc1481e --- /dev/null +++ b/web/core/profiles/standard/tests/src/FunctionalJavascript/StandardJavascriptTest.php @@ -0,0 +1,62 @@ +drupalLogin($this->drupalCreateUser([ + 'access content', + 'post comments', + 'skip comment approval', + ])); + + $node = Node::create(['type' => 'article']) + ->setTitle($this->randomMachineName()) + ->setPromoted(TRUE) + ->setPublished(TRUE); + $node->save(); + + // Front page: one placeholder, for messages. + $this->drupalGet(''); + $this->assertBigPipePlaceholderReplacementCount(1); + + // Node page: 3 placeholders: + // 1. messages + // 2. local tasks block + // 3. comment form + $this->drupalGet($node->toUrl()); + $this->assertBigPipePlaceholderReplacementCount(3); + } + + /** + * Asserts the number of BigPipe placeholders that are replaced on the page. + * + * @param int $expected_count + * The expected number of BigPipe placeholders. + */ + protected function assertBigPipePlaceholderReplacementCount($expected_count) { + $web_assert = $this->assertSession(); + $web_assert->waitForElement('css', 'script[data-big-pipe-event="stop"]'); + $page = $this->getSession()->getPage(); + $this->assertCount($expected_count, $this->getDrupalSettings()['bigPipePlaceholderIds']); + $this->assertCount($expected_count, $page->findAll('css', 'script[data-big-pipe-replacement-for-placeholder-with-id]')); + } + +}