You are here

class StandardJavascriptTest in Drupal 10

Same name and namespace in other branches
  1. 8 core/profiles/standard/tests/src/FunctionalJavascript/StandardJavascriptTest.php \Drupal\Tests\standard\FunctionalJavascript\StandardJavascriptTest
  2. 9 core/profiles/standard/tests/src/FunctionalJavascript/StandardJavascriptTest.php \Drupal\Tests\standard\FunctionalJavascript\StandardJavascriptTest

Tests Standard installation profile JavaScript expectations.

@group standard

Hierarchy

Expanded class hierarchy of StandardJavascriptTest

File

core/profiles/standard/tests/src/FunctionalJavascript/StandardJavascriptTest.php, line 13

Namespace

Drupal\Tests\standard\FunctionalJavascript
View source
class StandardJavascriptTest extends WebDriverTestBase {

  /**
   * {@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();
    $node
      ->save();

    // Front page: one placeholder, for messages.
    $this
      ->drupalGet('');
    $this
      ->assertBigPipePlaceholderReplacementCount(1);

    // Node page: 2 placeholders:
    // 1. messages
    // 2. comment form
    $this
      ->drupalGet($node
      ->toUrl());
    $this
      ->assertBigPipePlaceholderReplacementCount(2);
  }

  /**
   * 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) : void {
    $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]'));
  }

}

Members