function DisplayAttachmentTest::testAttachmentUI

Same name in other branches
  1. 9 core/modules/views_ui/tests/src/Functional/DisplayAttachmentTest.php \Drupal\Tests\views_ui\Functional\DisplayAttachmentTest::testAttachmentUI()
  2. 10 core/modules/views_ui/tests/src/Functional/DisplayAttachmentTest.php \Drupal\Tests\views_ui\Functional\DisplayAttachmentTest::testAttachmentUI()
  3. 11.x core/modules/views_ui/tests/src/Functional/DisplayAttachmentTest.php \Drupal\Tests\views_ui\Functional\DisplayAttachmentTest::testAttachmentUI()

Tests the attachment UI.

File

core/modules/views_ui/tests/src/Functional/DisplayAttachmentTest.php, line 32

Class

DisplayAttachmentTest
Tests the UI for the attachment display plugin.

Namespace

Drupal\Tests\views_ui\Functional

Code

public function testAttachmentUI() {
    $this->drupalGet('admin/structure/views/view/test_attachment_ui/edit/attachment_1');
    $this->assertText(t('Not defined'), 'The right text appears if there is no attachment selection yet.');
    $attachment_display_url = 'admin/structure/views/nojs/display/test_attachment_ui/attachment_1/displays';
    $this->drupalGet($attachment_display_url);
    // Display labels should be escaped.
    $this->assertEscaped('<em>Page</em>');
    foreach ([
        'default',
        'page-1',
    ] as $display_id) {
        $this->assertNoFieldChecked("edit-displays-{$display_id}", new FormattableMarkup('Make sure the @display_id can be marked as attached', [
            '@display_id' => $display_id,
        ]));
    }
    // Save the attachments and test the value on the view.
    $this->drupalPostForm($attachment_display_url, [
        'displays[page_1]' => 1,
    ], t('Apply'));
    // Options summary should be escaped.
    $this->assertEscaped('<em>Page</em>');
    $this->assertNoRaw('<em>Page</em>');
    $result = $this->xpath('//a[@id = :id]', [
        ':id' => 'views-attachment-1-displays',
    ]);
    $this->assertEqual($result[0]->getAttribute('title'), t('Page'));
    $this->drupalPostForm(NULL, [], t('Save'));
    $view = Views::getView('test_attachment_ui');
    $view->initDisplay();
    $this->assertEqual(array_keys(array_filter($view->displayHandlers
        ->get('attachment_1')
        ->getOption('displays'))), [
        'page_1',
    ], 'The attached displays got saved as expected');
    $this->drupalPostForm($attachment_display_url, [
        'displays[default]' => 1,
        'displays[page_1]' => 1,
    ], t('Apply'));
    $result = $this->xpath('//a[@id = :id]', [
        ':id' => 'views-attachment-1-displays',
    ]);
    $this->assertEqual($result[0]->getAttribute('title'), t('Multiple displays'));
    $this->drupalPostForm(NULL, [], t('Save'));
    $view = Views::getView('test_attachment_ui');
    $view->initDisplay();
    $this->assertEqual(array_keys($view->displayHandlers
        ->get('attachment_1')
        ->getOption('displays')), [
        'default',
        'page_1',
    ], 'The attached displays got saved as expected');
}

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