annotate 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
rev   line source
Chris@14 1 <?php
Chris@14 2
Chris@14 3 namespace Drupal\Tests\standard\FunctionalJavascript;
Chris@14 4
Chris@14 5 use Drupal\FunctionalJavascriptTests\JavascriptTestBase;
Chris@14 6 use Drupal\node\Entity\Node;
Chris@14 7
Chris@14 8 /**
Chris@14 9 * Tests Standard installation profile JavaScript expectations.
Chris@14 10 *
Chris@14 11 * @group standard
Chris@14 12 */
Chris@14 13 class StandardJavascriptTest extends JavascriptTestBase {
Chris@14 14
Chris@14 15 /**
Chris@14 16 * {@inheritdoc}
Chris@14 17 */
Chris@14 18 protected $profile = 'standard';
Chris@14 19
Chris@14 20 /**
Chris@14 21 * Tests BigPipe accelerates particular Standard installation profile routes.
Chris@14 22 */
Chris@14 23 public function testBigPipe() {
Chris@14 24 $this->drupalLogin($this->drupalCreateUser([
Chris@14 25 'access content',
Chris@14 26 'post comments',
Chris@14 27 'skip comment approval',
Chris@14 28 ]));
Chris@14 29
Chris@14 30 $node = Node::create(['type' => 'article'])
Chris@14 31 ->setTitle($this->randomMachineName())
Chris@14 32 ->setPromoted(TRUE)
Chris@14 33 ->setPublished(TRUE);
Chris@14 34 $node->save();
Chris@14 35
Chris@14 36 // Front page: one placeholder, for messages.
Chris@14 37 $this->drupalGet('');
Chris@14 38 $this->assertBigPipePlaceholderReplacementCount(1);
Chris@14 39
Chris@14 40 // Node page: 3 placeholders:
Chris@14 41 // 1. messages
Chris@14 42 // 2. local tasks block
Chris@14 43 // 3. comment form
Chris@14 44 $this->drupalGet($node->toUrl());
Chris@14 45 $this->assertBigPipePlaceholderReplacementCount(3);
Chris@14 46 }
Chris@14 47
Chris@14 48 /**
Chris@14 49 * Asserts the number of BigPipe placeholders that are replaced on the page.
Chris@14 50 *
Chris@14 51 * @param int $expected_count
Chris@14 52 * The expected number of BigPipe placeholders.
Chris@14 53 */
Chris@14 54 protected function assertBigPipePlaceholderReplacementCount($expected_count) {
Chris@14 55 $web_assert = $this->assertSession();
Chris@14 56 $web_assert->waitForElement('css', 'script[data-big-pipe-event="stop"]');
Chris@14 57 $page = $this->getSession()->getPage();
Chris@14 58 $this->assertCount($expected_count, $this->getDrupalSettings()['bigPipePlaceholderIds']);
Chris@14 59 $this->assertCount($expected_count, $page->findAll('css', 'script[data-big-pipe-replacement-for-placeholder-with-id]'));
Chris@14 60 }
Chris@14 61
Chris@14 62 }