ComponentRenderTest.php

Same filename in this branch
  1. 11.x core/modules/sdc/tests/src/FunctionalJavascript/ComponentRenderTest.php
  2. 11.x core/modules/sdc/tests/src/Kernel/ComponentRenderTest.php
  3. 11.x core/modules/sdc/tests/src/Functional/ComponentRenderTest.php
  4. 11.x core/tests/Drupal/KernelTests/Components/ComponentRenderTest.php
  5. 11.x core/tests/Drupal/FunctionalTests/Components/ComponentRenderTest.php
  6. 11.x core/tests/Drupal/KernelTests/Component/ComponentRenderTest.php
Same filename and directory in other branches
  1. 10 core/modules/sdc/tests/src/FunctionalJavascript/ComponentRenderTest.php
  2. 10 core/modules/sdc/tests/src/Kernel/ComponentRenderTest.php
  3. 10 core/modules/sdc/tests/src/Functional/ComponentRenderTest.php
  4. 10 core/tests/Drupal/KernelTests/Components/ComponentRenderTest.php
  5. 10 core/tests/Drupal/FunctionalTests/Components/ComponentRenderTest.php
  6. 10 core/tests/Drupal/FunctionalJavascriptTests/Components/ComponentRenderTest.php

Namespace

Drupal\FunctionalJavascriptTests\Components

File

core/tests/Drupal/FunctionalJavascriptTests/Components/ComponentRenderTest.php

View source
<?php

declare (strict_types=1);
namespace Drupal\FunctionalJavascriptTests\Components;

use Drupal\FunctionalJavascriptTests\WebDriverTestBase;

/**
 * Tests the correct rendering of components.
 *
 * @group sdc
 */
class ComponentRenderTest extends WebDriverTestBase {
  
  /**
   * {@inheritdoc}
   */
  protected static $modules = [
    'system',
    'sdc_test',
  ];
  
  /**
   * {@inheritdoc}
   */
  protected $defaultTheme = 'sdc_theme_test';
  
  /**
   * Tests that the correct libraries are put on the page using CSS.
   *
   * This also covers all the path translations necessary to produce the correct
   * path to the assets.
   */
  public function testCssLibraryAttachesCorrectly() : void {
    $build = [
      '#type' => 'inline_template',
      '#template' => "{{ include('sdc_theme_test:lib-overrides') }}",
    ];
    \Drupal::state()->set('sdc_test_component', $build);
    $this->drupalGet('sdc-test-component');
    $wrapper = $this->getSession()
      ->getPage()
      ->find('css', '#sdc-wrapper');
    // Opacity is set to 0 in the CSS file (see another-stylesheet.css).
    $this->assertFalse($wrapper->isVisible());
  }
  
  /**
   * Tests that the correct libraries are put on the page using JS.
   *
   * This also covers all the path translations necessary to produce the correct
   * path to the assets.
   */
  public function testJsLibraryAttachesCorrectly() : void {
    $build = [
      '#type' => 'inline_template',
      '#template' => "{{ include('sdc_test:my-button', {\n        text: 'Click'\n      }, with_context = false) }}",
    ];
    \Drupal::state()->set('sdc_test_component', $build);
    $this->drupalGet('sdc-test-component');
    $page = $this->getSession()
      ->getPage();
    $page->find('css', '[data-component-id="sdc_test:my-button"]')
      ->click();
    $this->assertSame('Click power (1)', $page->find('css', '[data-component-id="sdc_test:my-button"]')
      ->getText());
  }

}

Classes

Title Deprecated Summary
ComponentRenderTest Tests the correct rendering of components.

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.