You are here

public function ThemingExampleTest::testThemingPage in Examples for Developers 3.x

Verify the functionality of the example module.

File

modules/theming_example/tests/src/Functional/ThemingExampleTest.php, line 39

Class

ThemingExampleTest
Verify the tablesort functionality.

Namespace

Drupal\Tests\theming_example\Functional

Code

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
    ->assertRaw('Some examples of pages and forms that are run through theme functions.</h1>');
  $this
    ->assertRaw('examples/theming_example/form_select">Simple form 1</a>');
  $this
    ->assertRaw('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
    ->assertRaw('<h3 data-drupal-selector="edit-title">Choose which ordering you want</h3>');

  // Choice element should be wrapped with <strong> tag.
  $this
    ->assertRaw('<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
    ->assertText('Please input something!');
}