You are here

public function CKEditorMediaBrowserTest::testExposedFilters in Lightning Media 8.3

Tests exposed filters in the media browser.

File

tests/src/FunctionalJavascript/CKEditorMediaBrowserTest.php, line 66

Class

CKEditorMediaBrowserTest
Tests the media browser's integration with CKEditor.

Namespace

Drupal\Tests\lightning_media\FunctionalJavascript

Code

public function testExposedFilters() {
  $assert_session = $this
    ->assertSession();
  $page = $this
    ->getSession()
    ->getPage();
  $media_type = $this
    ->createMediaType('test')
    ->id();
  for ($i = 0; $i < 3; $i++) {
    $this
      ->addMedia([
      'bundle' => $media_type,
      'name' => sprintf('Code Wisdom %d', $i + 1),
      'field_media_test' => $this
        ->randomString(),
    ]);
  }
  $this
    ->drupalGet('/node/add/page');
  $this
    ->open();

  // All items should be visible initially.
  $this
    ->waitForItemsCount(3);

  // Try filtering by media type.
  $page
    ->selectFieldOption('Type', 'Image');
  $page
    ->pressButton('Filter');
  $assert_session
    ->waitForText('There are no media items to display.');
  $assert_session
    ->elementsCount('css', '[data-selectable]', 0);

  // Clear the type filter.
  $page
    ->selectFieldOption('Type', '- Any -');
  $page
    ->pressButton('Filter');
  $this
    ->waitForItemsCount(3);

  // Try filtering by keywords.
  $page
    ->fillField('Keywords', 'Code Wisdom 1');
  $page
    ->pressButton('Filter');
  $this
    ->waitForItemsCount(1);

  // Clear the keyword filter.
  $page
    ->fillField('Keywords', '');
  $page
    ->pressButton('Filter');
  $this
    ->waitForItemsCount(3);
}