View source
<?php
namespace Drupal\Tests\media_library_form_element\FunctionalJavascript;
use Drupal\Tests\TestFileCreationTrait;
use Drupal\Tests\media_library\FunctionalJavascript\MediaLibraryTestBase;
class SingleItemTest extends MediaLibraryTestBase {
use TestFileCreationTrait;
protected static $modules = [
'media_library_test',
'media_library_form_element',
'media_library_form_element_test',
];
protected $profile = 'standard';
protected $defaultTheme = 'classy';
protected function setUp() {
$this->strictConfigSchema = NULL;
parent::setUp();
$this
->createMediaItems([
'type_one' => [
'Horse',
'Bear',
'Cat',
'Dog',
],
'type_two' => [
'Crocodile',
'Lizard',
'Snake',
'Turtle',
],
]);
$user = $this
->drupalCreateUser([
'access administration pages',
'access content',
'create type_one media',
'view media',
]);
$this
->drupalLogin($user);
}
public function testForm() {
$assert = $this
->assertSession();
$page = $this
->getSession()
->getPage();
$this
->drupalGet('media-library-form-element-test-form');
$assert
->elementContains('css', '#media-media-library-wrapper--description', 'Upload or select your profile image');
$assert
->elementContains('css', '#media-media-library-wrapper--description', 'One media item remaining');
$page
->pressButton('Add media');
$assert
->assertWaitOnAjaxRequest();
$assert
->elementContains('css', '.media-library-menu a', 'Type One');
$assert
->pageTextContains('Type Two');
$assert
->pageTextNotContains('Type Three');
$assert
->pageTextContains('Horse');
$assert
->pageTextContains('Bear');
$page
->find('css', 'input[name="media_library_select_form[0]"]')
->setValue('1');
$assert
->assertWaitOnAjaxRequest();
$assert
->checkboxChecked('media_library_select_form[0]');
$assert
->elementExists('css', '.ui-dialog-buttonset')
->pressButton('Insert selected');
$assert
->assertWaitOnAjaxRequest();
$assert
->elementContains('css', '.media-library-item__name', 'Dog');
$assert
->elementContains('css', '#media-media-library-wrapper--description', 'The maximum number of media items have been selected.');
$page
->pressButton('Save configuration');
$assert
->pageTextContains('Dog');
$assert
->elementContains('css', '.media-library-item__name', 'Dog');
$page
->pressButton('Remove');
$this
->waitForNoText('Dog');
$page
->pressButton('Save configuration');
$assert
->pageTextNotContains('Dog');
$assert
->elementContains('css', '#media-media-library-wrapper--description', 'One media item remaining');
}
}