function RenderElementTypesTest::testSystemCompactLink

Same name and namespace in other branches
  1. 9 core/tests/Drupal/KernelTests/Core/Render/Element/RenderElementTypesTest.php \Drupal\KernelTests\Core\Render\Element\RenderElementTypesTest::testSystemCompactLink()
  2. 10 core/tests/Drupal/KernelTests/Core/Render/Element/RenderElementTypesTest.php \Drupal\KernelTests\Core\Render\Element\RenderElementTypesTest::testSystemCompactLink()
  3. 11.x core/tests/Drupal/KernelTests/Core/Render/Element/RenderElementTypesTest.php \Drupal\KernelTests\Core\Render\Element\RenderElementTypesTest::testSystemCompactLink()

Tests system #type 'system_compact_link'.

File

core/tests/Drupal/KernelTests/Core/Render/Element/RenderElementTypesTest.php, line 200

Class

RenderElementTypesTest
Tests the markup of core render element types passed to <a href="/api/drupal/core%21includes%21common.inc/function/drupal_render/8.9.x" title="Renders HTML given a structured array tree." class="local">drupal_render</a>().

Namespace

Drupal\KernelTests\Core\Render\Element

Code

public function testSystemCompactLink() {
    $elements = [
        [
            'name' => "#type 'system_compact_link' when admin compact mode is off",
            'value' => [
                '#type' => 'system_compact_link',
            ],
            'expected' => '//div[@class="compact-link"]/a[contains(@href, "admin/compact/on?") and text()="Hide descriptions"]',
        ],
        [
            'name' => "#type 'system_compact_link' when adding extra attributes",
            'value' => [
                '#type' => 'system_compact_link',
                '#attributes' => [
                    'class' => [
                        'kittens-rule',
                    ],
                ],
            ],
            'expected' => '//div[@class="compact-link"]/a[contains(@href, "admin/compact/on?") and @class="kittens-rule" and text()="Hide descriptions"]',
        ],
    ];
    foreach ($elements as $element) {
        $xml = new \SimpleXMLElement(\Drupal::service('renderer')->renderRoot($element['value']));
        $result = $xml->xpath($element['expected']);
        $this->assertNotEmpty($result, '"' . $element['name'] . '" is rendered correctly by drupal_render().');
    }
    // Set admin compact mode on for additional tests.
    \Drupal::request()->cookies
        ->set('Drupal_visitor_admin_compact_mode', TRUE);
    $element = [
        'name' => "#type 'system_compact_link' when admin compact mode is on",
        'value' => [
            '#type' => 'system_compact_link',
        ],
        'expected' => '//div[@class="compact-link"]/a[contains(@href, "admin/compact?") and text()="Show descriptions"]',
    ];
    $xml = new \SimpleXMLElement(\Drupal::service('renderer')->renderRoot($element['value']));
    $result = $xml->xpath($element['expected']);
    $this->assertNotEmpty($result, '"' . $element['name'] . '" is rendered correctly by drupal_render().');
}

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