public function MediaTypeCreationTest::testMediaTypeCreationReuseSourceField in Drupal 9
Same name and namespace in other branches
- 8 core/modules/media/tests/src/FunctionalJavascript/MediaTypeCreationTest.php \Drupal\Tests\media\FunctionalJavascript\MediaTypeCreationTest::testMediaTypeCreationReuseSourceField()
- 10 core/modules/media/tests/src/FunctionalJavascript/MediaTypeCreationTest.php \Drupal\Tests\media\FunctionalJavascript\MediaTypeCreationTest::testMediaTypeCreationReuseSourceField()
Tests creation of media type, reusing an existing source field.
File
- core/
modules/ media/ tests/ src/ FunctionalJavascript/ MediaTypeCreationTest.php, line 139
Class
- MediaTypeCreationTest
- Tests the media type creation.
Namespace
Drupal\Tests\media\FunctionalJavascriptCode
public function testMediaTypeCreationReuseSourceField() {
$session = $this
->getSession();
$page = $session
->getPage();
$assert_session = $this
->assertSession();
// Create a new media type, which should create a new field we can reuse.
$this
->drupalGet('/admin/structure/media/add');
// Choose the source plugin before setting the label and machine name.
$page
->selectFieldOption('Media source', 'test');
$result = $assert_session
->waitForElementVisible('css', 'fieldset[data-drupal-selector="edit-source-configuration"]');
$this
->assertNotEmpty($result);
$page
->fillField('label', 'Pastafazoul');
$session
->wait(5000, "jQuery('.machine-name-value').text() === 'pastafazoul'");
$page
->pressButton('Save');
$label = 'Type reusing Default Field';
$mediaTypeMachineName = str_replace(' ', '_', strtolower($label));
$this
->drupalGet('admin/structure/media/add');
// Select the media source used by our media type. Do this before setting
// the label and machine name.
$assert_session
->fieldExists('Media source');
$assert_session
->optionExists('Media source', 'test');
$page
->selectFieldOption('Media source', 'test');
$result = $assert_session
->waitForElementVisible('css', 'fieldset[data-drupal-selector="edit-source-configuration"]');
$this
->assertNotEmpty($result);
// Select the existing field for re-use.
$page
->selectFieldOption('source_configuration[source_field]', 'field_media_test');
// Fill in a label to the media type.
$page
->fillField('label', $label);
// Wait for machine name generation. Default: waitUntilVisible(), does not
// work properly.
$session
->wait(5000, "jQuery('.machine-name-value').text() === '{$mediaTypeMachineName}'");
$page
->pressButton('Save');
// Check that no new fields were created.
$this
->drupalGet("admin/structure/media/manage/{$mediaTypeMachineName}/fields");
// The reused field should be present...
$assert_session
->pageTextContains('field_media_test');
// ...not a new, unique one.
$assert_session
->pageTextNotContains('field_media_test_1');
}