Mercurial > hg > isophonics-drupal-site
diff core/profiles/standard/tests/src/FunctionalJavascript/StandardJavascriptTest.php @ 14:1fec387a4317
Update Drupal core to 8.5.2 via Composer
author | Chris Cannam |
---|---|
date | Mon, 23 Apr 2018 09:46:53 +0100 |
parents | |
children | 129ea1e6d783 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/core/profiles/standard/tests/src/FunctionalJavascript/StandardJavascriptTest.php Mon Apr 23 09:46:53 2018 +0100 @@ -0,0 +1,62 @@ +<?php + +namespace Drupal\Tests\standard\FunctionalJavascript; + +use Drupal\FunctionalJavascriptTests\JavascriptTestBase; +use Drupal\node\Entity\Node; + +/** + * Tests Standard installation profile JavaScript expectations. + * + * @group standard + */ +class StandardJavascriptTest extends JavascriptTestBase { + + /** + * {@inheritdoc} + */ + protected $profile = 'standard'; + + /** + * Tests BigPipe accelerates particular Standard installation profile routes. + */ + public function testBigPipe() { + $this->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]')); + } + +}