ThemingExampleTest.php

Same filename and directory in other branches
  1. 4.0.x modules/theming_example/tests/src/Functional/ThemingExampleTest.php

Namespace

Drupal\Tests\theming_example\Functional

File

modules/theming_example/tests/src/Functional/ThemingExampleTest.php

View source
<?php

namespace Drupal\Tests\theming_example\Functional;

use Drupal\Tests\examples\Functional\ExamplesBrowserTestBase;

/**
 * Verify the tablesort functionality.
 *
 * @group tablesort_example
 * @group examples
 *
 * @ingroup tablesort_example
 */
class ThemingExampleTest extends ExamplesBrowserTestBase {
  
  /**
   * {@inheritdoc}
   */
  protected $defaultTheme = 'stark';
  
  /**
   * {@inheritdoc}
   */
  protected static $modules = [
    'theming_example',
  ];
  
  /**
   * The installation profile to use with this test.
   *
   * We need the 'minimal' profile in order to make sure the Tool block is
   * available.
   *
   * @var string
   */
  protected $profile = 'minimal';
  
  /**
   * Verify the functionality of the example module.
   */
  public function testThemingPage() {
    // No need to login for this test.
    // Check that the main page has been themed (first line with <b>) and has
    // content.
    $this->drupalGet('/examples/theming_example');
    $this->assertSession()
      ->responseContains('Some examples of pages and forms that are run through theme functions.</h1>');
    $this->assertSession()
      ->responseContains('examples/theming_example/form_select">Simple form 1</a>');
    $this->assertSession()
      ->responseContains('examples/theming_example/form_text">Simple form 2</a>');
    // Visit the list demonstration page and check that css gets loaded
    // and do some spot checks on how the two lists were themed.
    $this->drupalGet('/examples/theming_example/list');
    // CSS should be always injected, because preprocess is set to false in *.libraries.yml.
    $this->assertSession()
      ->responseMatches('/<link rel="stylesheet".*theming_example.css/');
    $li_list = $this->xpath('//ul[contains(@class,"render-version-list")]/li');
    $this->assertTrue($li_list[0]->getText() == 'First item');
    $li_list = $this->xpath('//ol[contains(@class,"theming-example-list")]/li');
    $this->assertTrue($li_list[1]->getText() == 'Second item');
    // Visit the select form page to do spot checks.
    $this->drupalGet('/examples/theming_example/form_select');
    // Choice element title should be output separately, as h3 header.
    $this->assertSession()
      ->responseContains('<h3 data-drupal-selector="edit-title">Choose which ordering you want</h3>');
    // Choice element should be wrapped with <strong> tag.
    $this->assertSession()
      ->responseContains('<strong>Choose which ordering you want</strong>');
    // Form elements should be wrapped with container-inline div.
    $this->assertSession()
      ->responseMatches('/<div class="container-inline choice-wrapper"><div class="[a-zA-Z- ]* form-item-choice/');
    $this->assertSession()
      ->responseNotMatches('/<link rel="stylesheet".*theming_example.css/');
    // Visit the text form page and do spot checks.
    $this->drupalGet('/examples/theming_example/form_text');
    $this->assertSession()
      ->pageTextContains('Please input something!');
  }

}

Classes

Title Deprecated Summary
ThemingExampleTest Verify the tablesort functionality.