public function WidgetViewsTest::testWidgetViews in Drupal 10
Same name and namespace in other branches
- 8 core/modules/media_library/tests/src/FunctionalJavascript/WidgetViewsTest.php \Drupal\Tests\media_library\FunctionalJavascript\WidgetViewsTest::testWidgetViews()
- 9 core/modules/media_library/tests/src/FunctionalJavascript/WidgetViewsTest.php \Drupal\Tests\media_library\FunctionalJavascript\WidgetViewsTest::testWidgetViews()
Tests that the views in the Media library's widget work as expected.
File
- core/
modules/ media_library/ tests/ src/ FunctionalJavascript/ WidgetViewsTest.php, line 73
Class
- WidgetViewsTest
- Tests the views in the media library widget.
Namespace
Drupal\Tests\media_library\FunctionalJavascriptCode
public function testWidgetViews() {
$assert_session = $this
->assertSession();
$page = $this
->getSession()
->getPage();
$this
->drupalGet('node/add/basic_page');
$this
->openMediaLibraryForField('field_unlimited_media');
// Assert the 'Apply filter' button is not moved to the button pane.
$button_pane = $assert_session
->elementExists('css', '.ui-dialog-buttonpane');
$assert_session
->buttonExists('Insert selected', $button_pane);
$assert_session
->buttonNotExists('Apply filters', $button_pane);
// Assert the pager works as expected.
// An active pager item is not linked and contains "Page #" as text.
$assert_session
->elementTextContains('css', '.js-media-library-view .js-pager__items > li:nth-of-type(1)', 'Page 1');
$assert_session
->elementNotExists('css', '.js-media-library-view .js-pager__items > li:nth-of-type(1) a');
$assert_session
->elementExists('css', '.js-media-library-view .js-pager__items > li:nth-of-type(2) a');
$this
->assertCount(24, $this
->getCheckboxes());
$page
->clickLink('Next page');
$this
->waitForElementTextContains('.js-media-library-view .js-pager__items > li:nth-of-type(2)', 'Page 2');
$assert_session
->elementExists('css', '.js-media-library-view .js-pager__items > li:nth-of-type(1) a');
$assert_session
->elementNotExists('css', '.js-media-library-view .js-pager__items > li:nth-of-type(2) a');
$this
->assertCount(1, $this
->getCheckboxes());
$page
->clickLink('Previous page');
$this
->waitForElementTextContains('.js-media-library-view .js-pager__items > li:nth-of-type(1)', 'Page 1');
$this
->assertCount(24, $this
->getCheckboxes());
$this
->switchToMediaLibraryTable();
// Assert the 'Apply filter' button is not moved to the button pane.
$assert_session
->buttonExists('Insert selected', $button_pane);
$assert_session
->buttonNotExists('Apply filters', $button_pane);
$assert_session
->pageTextContains('Dog');
$assert_session
->pageTextContains('Bear');
$assert_session
->pageTextNotContains('Turtle');
// Assert the exposed filters can be applied.
$page
->fillField('Name', 'Dog');
$page
->pressButton('Apply filters');
$this
->waitForText('Dog');
$this
->waitForNoText('Bear');
$assert_session
->pageTextNotContains('Turtle');
$page
->checkField('Select Dog');
$assert_session
->linkExists('Table');
$this
->switchToMediaLibraryGrid();
// Assert the exposed filters are persisted when changing display.
$this
->assertSame('Dog', $page
->findField('Name')
->getValue());
$assert_session
->pageTextContains('Dog');
$assert_session
->pageTextNotContains('Bear');
$assert_session
->pageTextNotContains('Turtle');
$assert_session
->linkExists('Grid');
$this
->switchToMediaLibraryTable();
// Select the item.
$this
->pressInsertSelected('Added one media item.');
// Ensure that the selection completed successfully.
$assert_session
->pageTextContains('Dog');
$assert_session
->pageTextNotContains('Bear');
$assert_session
->pageTextNotContains('Turtle');
}