function ViewsUiIntegrationTest::testViewsAdmin

Same name in other branches
  1. 9 core/modules/media_library/tests/src/FunctionalJavascript/ViewsUiIntegrationTest.php \Drupal\Tests\media_library\FunctionalJavascript\ViewsUiIntegrationTest::testViewsAdmin()
  2. 8.9.x core/modules/media_library/tests/src/FunctionalJavascript/ViewsUiIntegrationTest.php \Drupal\Tests\media_library\FunctionalJavascript\ViewsUiIntegrationTest::testViewsAdmin()
  3. 11.x core/modules/media_library/tests/src/FunctionalJavascript/ViewsUiIntegrationTest.php \Drupal\Tests\media_library\FunctionalJavascript\ViewsUiIntegrationTest::testViewsAdmin()

Tests that the integration with Views works correctly.

File

core/modules/media_library/tests/src/FunctionalJavascript/ViewsUiIntegrationTest.php, line 53

Class

ViewsUiIntegrationTest
Tests Media Library's integration with Views UI.

Namespace

Drupal\Tests\media_library\FunctionalJavascript

Code

public function testViewsAdmin() : void {
    $page = $this->getSession()
        ->getPage();
    // Assert that the widget can be seen and that there are 8 items.
    $this->drupalGet('/admin/structure/views/view/media_library/edit/widget');
    $this->waitForElementsCount('css', '.js-media-library-item', 8);
    // Assert that filtering works in live preview.
    $page->find('css', '.js-media-library-view')
        ->fillField('name', 'snake');
    $page->find('css', '.js-media-library-view')
        ->pressButton('Apply filters');
    $this->waitForElementsCount('css', '.js-media-library-item', 1);
    // Test the same routine but in the view for the table widget.
    $this->drupalGet('/admin/structure/views/view/media_library/edit/widget_table');
    $this->waitForElementsCount('css', '.js-media-library-item', 8);
    // Assert that filtering works in live preview.
    $page->find('css', '.js-media-library-view')
        ->fillField('name', 'snake');
    $page->find('css', '.js-media-library-view')
        ->pressButton('Apply filters');
    $this->waitForElementsCount('css', '.js-media-library-item', 1);
    // We cannot test clicking the 'Insert selected' button in either view
    // because we expect an AJAX error, which would always throw an exception
    // on ::tearDown even if we try to catch it here. If there is an API for
    // marking certain elements 'unsuitable for previewing', we could test that
    // here.
    // @see https://www.drupal.org/project/drupal/issues/3060852
}

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