ComponentRenderTest.php

Same filename in this branch
  1. 11.x core/modules/sdc/tests/src/Kernel/ComponentRenderTest.php
  2. 11.x core/modules/sdc/tests/src/Functional/ComponentRenderTest.php
  3. 11.x core/tests/Drupal/KernelTests/Components/ComponentRenderTest.php
  4. 11.x core/tests/Drupal/FunctionalTests/Components/ComponentRenderTest.php
  5. 11.x core/tests/Drupal/FunctionalJavascriptTests/Components/ComponentRenderTest.php
Same filename 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\Tests\sdc\FunctionalJavascript

File

core/modules/sdc/tests/src/FunctionalJavascript/ComponentRenderTest.php

View source
<?php

declare (strict_types=1);
namespace Drupal\Tests\sdc\FunctionalJavascript;

use Drupal\FunctionalJavascriptTests\WebDriverTestBase;

/**
 * Tests the correct rendering of components.
 *
 * @group sdc
 *
 * @internal
 */
final class ComponentRenderTest extends WebDriverTestBase {
    
    /**
     * {@inheritdoc}
     */
    protected static $modules = [
        'sdc',
        '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() {
        $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() {
        $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.