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 }
|