public function SingleItemTest::testForm in Media Library Form API Element 2.x
Same name and namespace in other branches
- 8 tests/src/FunctionalJavascript/SingleItemTest.php \Drupal\Tests\media_library_form_element\FunctionalJavascript\SingleItemTest::testForm()
Tests the setting form.
File
- tests/
src/ FunctionalJavascript/ SingleItemTest.php, line 232
Class
- SingleItemTest
- Test using the media library element.
Namespace
Drupal\Tests\media_library_form_element\FunctionalJavascriptCode
public function testForm() {
$assert = $this
->assertSession();
$page = $this
->getSession()
->getPage();
$this
->drupalGet('media-library-form-element-test-form');
/*************************************************/
/* Test for the single cardinality form element. */
/*************************************************/
// Check the initial element state.
$assert
->elementContains('css', '#media_single-media-library-wrapper--description', 'Upload or select your profile image');
$assert
->elementContains('css', '#media_single-media-library-wrapper--description', 'One media item remaining');
// Check that only configured bundles are allowed.
$this
->assertAllowedBundles('css', '#edit-media-single-media-library-open-button', [
'type_one',
'type_two',
]);
// Insert an item and assert that the state updates appropriately.
$this
->insertMediaItem('css', '#edit-media-single-media-library-open-button', 'type_one', 0);
$this
->assertPreviewContains([
'Dog',
]);
$assert
->elementContains('css', '#media_single-media-library-wrapper--description', 'The maximum number of media items have been selected.');
// Save the form and assert that the selection is persisted.
$page
->pressButton('Save configuration');
$this
->assertPreviewContains([
'Dog',
]);
$assert
->elementContains('css', '#media_single-media-library-wrapper--description', 'The maximum number of media items have been selected.');
// Remove all selected items.
$page
->pressButton('Remove');
$this
->waitForNoText('Dog');
$page
->pressButton('Save configuration');
// Check that the form element is reset to its initial state.
$assert
->pageTextNotContains('Dog');
$assert
->elementContains('css', '#media_single-media-library-wrapper--description', 'One media item remaining');
/*************************************************/
/* Test for the single cardinality form element. */
/*************************************************/
// Check the initial element state.
$assert
->elementContains('css', '#media_multiple-media-library-wrapper--description', 'Upload or select multiple images');
$assert
->elementContains('css', '#media_multiple-media-library-wrapper--description', '2 media items remaining');
// Check that only configured bundles are allowed.
$this
->assertAllowedBundles('css', '#edit-media-multiple-media-library-open-button', [
'type_one',
]);
// Insert an item and assert that the state updates appropriately.
$this
->insertMediaItem('css', '#edit-media-multiple-media-library-open-button', 'type_one', 0);
$this
->assertPreviewContains([
'Dog',
]);
$assert
->elementContains('css', '#media_multiple-media-library-wrapper--description', 'One media item remaining');
// Insert a second item and assert that hte state updates appropriately.
$this
->insertMediaItem('css', '[id^="edit-media-multiple-media-library-open-button"]', 'type_one', 1);
$this
->assertPreviewContains([
'Dog',
'Cat',
]);
$assert
->elementContains('css', '#media_multiple-media-library-wrapper--description', 'The maximum number of media items have been selected.');
// Remove all of the items.
foreach ([
'Dog',
'Cat',
] as $item) {
$page
->pressButton('Remove');
$this
->waitForNoText($item);
$page
->pressButton('Save configuration');
// Check that the item was removed.
$assert
->pageTextNotContains($item);
}
// Check that the form element is reset to its initial state.
$assert
->elementContains('css', '#media_multiple-media-library-wrapper--description', 'Upload or select multiple images');
/****************************************************/
/* Test for the unlimited cardinality form element. */
/****************************************************/
// Check the initial element state.
$assert
->elementTextContains('css', '#media_unlimited-media-library-wrapper--description', 'Upload or select unlimited images.');
// Check that only configured bundles are allowed.
$this
->assertAllowedBundles('css', '#edit-media-unlimited-media-library-open-button', [
'type_two',
]);
// Insert an item and assert that the state updates appropriately.
$this
->insertMediaItem('css', '#edit-media-unlimited-media-library-open-button', 'type_two', 0);
$this
->assertPreviewContains([
'Turtle',
]);
$assert
->elementTextContains('css', '#media_unlimited-media-library-wrapper--description', 'Upload or select unlimited images.');
// Insert a second item and assert that the state updates appropriately.
$this
->insertMediaItem('css', '[id^="edit-media-unlimited-media-library-open-button"]', 'type_two', 1);
$this
->assertPreviewContains([
'Turtle',
'Snake',
]);
$assert
->elementTextContains('css', '#media_unlimited-media-library-wrapper--description', 'Upload or select unlimited images.');
// Insert a third item and assert that the state updates appropriately.
$this
->insertMediaItem('css', '[id^="edit-media-unlimited-media-library-open-button"]', 'type_two', 2);
$this
->assertPreviewContains([
'Turtle',
'Snake',
'Lizard',
]);
$assert
->elementTextContains('css', '#media_unlimited-media-library-wrapper--description', 'Upload or select unlimited images.');
// Insert a fourth item and assert that the state updates appropriately.
$this
->insertMediaItem('css', '[id^="edit-media-unlimited-media-library-open-button"]', 'type_two', 3);
$this
->assertPreviewContains([
'Turtle',
'Snake',
'Lizard',
'Crocodile',
]);
$assert
->elementTextContains('css', '#media_unlimited-media-library-wrapper--description', 'Upload or select unlimited images.');
// Remove all of the items.
foreach ([
'Turtle',
'Snake',
'Lizard',
'Crocodile',
] as $item) {
$page
->pressButton('Remove');
$this
->waitForNoText($item);
$page
->pressButton('Save configuration');
// Check that the item was removed.
$assert
->pageTextNotContains($item);
}
// Check that the form element is reset to its initial state.
$assert
->elementContains('css', '#media_unlimited-media-library-wrapper--description', 'Upload or select unlimited images');
}