function StyleTableTest::testAccessibilitySettings

Same name in other branches
  1. 9 core/modules/views/tests/src/Functional/Plugin/StyleTableTest.php \Drupal\Tests\views\Functional\Plugin\StyleTableTest::testAccessibilitySettings()
  2. 10 core/modules/views/tests/src/Functional/Plugin/StyleTableTest.php \Drupal\Tests\views\Functional\Plugin\StyleTableTest::testAccessibilitySettings()
  3. 11.x core/modules/views/tests/src/Functional/Plugin/StyleTableTest.php \Drupal\Tests\views\Functional\Plugin\StyleTableTest::testAccessibilitySettings()

Test table caption/summary/description.

File

core/modules/views/tests/src/Functional/Plugin/StyleTableTest.php, line 41

Class

StyleTableTest
Tests the table style views plugin.

Namespace

Drupal\Tests\views\Functional\Plugin

Code

public function testAccessibilitySettings() {
    $this->drupalGet('test-table');
    $result = $this->xpath('//caption/child::text()');
    $this->assertNotEmpty($result, 'The caption appears on the table.');
    $this->assertEqual(trim($result[0]->getText()), 'caption-text');
    $result = $this->xpath('//summary/child::text()');
    $this->assertNotEmpty($result, 'The summary appears on the table.');
    $this->assertEqual(trim($result[0]->getText()), 'summary-text');
    // Check that the summary has the right accessibility settings.
    $summary = $this->xpath('//summary')[0];
    $this->assertTrue($summary->hasAttribute('role'));
    $this->assertTrue($summary->hasAttribute('aria-expanded'));
    $result = $this->xpath('//caption/details/child::text()[normalize-space()]');
    $this->assertNotEmpty($result, 'The table description appears on the table.');
    $this->assertEqual(trim($result[0]->getText()), 'description-text');
    // Remove the caption and ensure the caption is not displayed anymore.
    $view = View::load('test_table');
    $display =& $view->getDisplay('default');
    $display['display_options']['style']['options']['caption'] = '';
    $view->save();
    $this->drupalGet('test-table');
    $result = $this->xpath('//caption/child::text()');
    $this->assertEmpty(trim($result[0]->getText()), 'Ensure that the caption disappears.');
    // Remove the table summary.
    $display =& $view->getDisplay('default');
    $display['display_options']['style']['options']['summary'] = '';
    $view->save();
    $this->drupalGet('test-table');
    $result = $this->xpath('//summary/child::text()');
    $this->assertEmpty($result, 'Ensure that the summary disappears.');
    // Remove the table description.
    $display =& $view->getDisplay('default');
    $display['display_options']['style']['options']['description'] = '';
    $view->save();
    $this->drupalGet('test-table');
    $result = $this->xpath('//caption/details/child::text()[normalize-space()]');
    $this->assertEmpty($result, 'Ensure that the description disappears.');
}

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