function MediaTypeCreationTest::testSourceChangeOnMediaTypeCreationForm

Same name and namespace in other branches
  1. 9 core/modules/media/tests/src/FunctionalJavascript/MediaTypeCreationTest.php \Drupal\Tests\media\FunctionalJavascript\MediaTypeCreationTest::testSourceChangeOnMediaTypeCreationForm()
  2. 8.9.x core/modules/media/tests/src/FunctionalJavascript/MediaTypeCreationTest.php \Drupal\Tests\media\FunctionalJavascript\MediaTypeCreationTest::testSourceChangeOnMediaTypeCreationForm()
  3. 11.x core/modules/media/tests/src/FunctionalJavascript/MediaTypeCreationTest.php \Drupal\Tests\media\FunctionalJavascript\MediaTypeCreationTest::testSourceChangeOnMediaTypeCreationForm()

Tests the source field behavior on the add media type form.

File

core/modules/media/tests/src/FunctionalJavascript/MediaTypeCreationTest.php, line 26

Class

MediaTypeCreationTest
Tests the media type creation.

Namespace

Drupal\Tests\media\FunctionalJavascript

Code

public function testSourceChangeOnMediaTypeCreationForm() : void {
  $session = $this->getSession();
  $page = $session->getPage();
  $assert_session = $this->assertSession();
  $label = 'Type with Default Field';
  $mediaTypeMachineName = str_replace(' ', '_', strtolower($label));
  $this->drupalGet('admin/structure/media/add');
  // Fill in a label to the media type.
  $page->fillField('label', $label);
  $this->assertNotEmpty($assert_session->waitForElementVisible('css', '.machine-name-value'));
  // Select the media source used by our media type.
  $assert_session->selectExists('Media source')
    ->selectOption('test_different_displays');
  $this->assertNotEmpty($assert_session->waitForElementVisible('css', 'fieldset[data-drupal-selector="edit-source-configuration"]'));
  // Change the media source.
  $assert_session->selectExists('Media source')
    ->selectOption('test');
  $this->assertNotEmpty($assert_session->waitForElement('css', 'fieldset[data-drupal-selector="edit-source-configuration"] .fieldset-wrapper .placeholder:contains("Text (plain)")'));
  $page->pressButton('Save');
  // Check that source can not be changed anymore.
  $this->drupalGet("admin/structure/media/manage/{$mediaTypeMachineName}");
  $assert_session->pageTextContains('The media source cannot be changed after the media type is created');
  $assert_session->fieldDisabled('Media source');
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.