class MediaSourceAudioVideoTest
Same name and namespace in other branches
- 10 core/modules/media/tests/src/FunctionalJavascript/MediaSourceAudioVideoTest.php \Drupal\Tests\media\FunctionalJavascript\MediaSourceAudioVideoTest
- 11.x core/modules/media/tests/src/FunctionalJavascript/MediaSourceAudioVideoTest.php \Drupal\Tests\media\FunctionalJavascript\MediaSourceAudioVideoTest
- 8.9.x core/modules/media/tests/src/FunctionalJavascript/MediaSourceAudioVideoTest.php \Drupal\Tests\media\FunctionalJavascript\MediaSourceAudioVideoTest
Tests the Audio and Video media sources.
@group media
Hierarchy
- class \Drupal\Tests\BrowserTestBase uses \Drupal\Core\Test\FunctionalTestSetupTrait, \Drupal\Tests\UiHelperTrait, \Drupal\Core\Test\TestSetupTrait, \Drupal\Tests\block\Traits\BlockCreationTrait, \Drupal\FunctionalTests\AssertLegacyTrait, \Drupal\Tests\RandomGeneratorTrait, \Drupal\Tests\node\Traits\NodeCreationTrait, \Drupal\Tests\node\Traits\ContentTypeCreationTrait, \Drupal\Tests\ConfigTestTrait, \Drupal\Tests\TestRequirementsTrait, \Drupal\Tests\user\Traits\UserCreationTrait, \Drupal\Tests\XdebugRequestTrait, \Drupal\Tests\Traits\PhpUnitWarnings, \Drupal\Tests\PhpUnitCompatibilityTrait, \Symfony\Bridge\PhpUnit\ExpectDeprecationTrait, \Drupal\Tests\ExtensionListTestTrait extends \PHPUnit\Framework\TestCase
- class \Drupal\FunctionalJavascriptTests\WebDriverTestBase extends \Drupal\Tests\BrowserTestBase
- class \Drupal\Tests\media\FunctionalJavascript\MediaJavascriptTestBase uses \Drupal\Tests\media\Functional\MediaFunctionalTestTrait, \Drupal\Tests\media\Traits\MediaTypeCreationTrait extends \Drupal\FunctionalJavascriptTests\WebDriverTestBase
- class \Drupal\Tests\media\FunctionalJavascript\MediaSourceTestBase extends \Drupal\Tests\media\FunctionalJavascript\MediaJavascriptTestBase
- class \Drupal\Tests\media\FunctionalJavascript\MediaSourceAudioVideoTest extends \Drupal\Tests\media\FunctionalJavascript\MediaSourceTestBase
- class \Drupal\Tests\media\FunctionalJavascript\MediaSourceTestBase extends \Drupal\Tests\media\FunctionalJavascript\MediaJavascriptTestBase
- class \Drupal\Tests\media\FunctionalJavascript\MediaJavascriptTestBase uses \Drupal\Tests\media\Functional\MediaFunctionalTestTrait, \Drupal\Tests\media\Traits\MediaTypeCreationTrait extends \Drupal\FunctionalJavascriptTests\WebDriverTestBase
- class \Drupal\FunctionalJavascriptTests\WebDriverTestBase extends \Drupal\Tests\BrowserTestBase
Expanded class hierarchy of MediaSourceAudioVideoTest
File
-
core/
modules/ media/ tests/ src/ FunctionalJavascript/ MediaSourceAudioVideoTest.php, line 15
Namespace
Drupal\Tests\media\FunctionalJavascriptView source
class MediaSourceAudioVideoTest extends MediaSourceTestBase {
/**
* {@inheritdoc}
*/
protected $defaultTheme = 'stark';
/**
* Check the Audio source functionality.
*/
public function testAudioTypeCreation() {
$assert_session = $this->assertSession();
$page = $this->getSession()
->getPage();
$source_id = 'audio_file';
$type_name = 'audio_type';
$field_name = 'field_media_' . $source_id;
$this->doTestCreateMediaType($type_name, $source_id);
// Check that the source field was created with the correct settings.
$storage = FieldStorageConfig::load("media.{$field_name}");
$this->assertInstanceOf(FieldStorageConfig::class, $storage);
$field = FieldConfig::load("media.{$type_name}.{$field_name}");
$this->assertInstanceOf(FieldConfig::class, $field);
$this->assertSame('mp3 wav aac', FieldConfig::load("media.{$type_name}.{$field_name}")->get('settings')['file_extensions']);
// Check that the display holds the correct formatter configuration.
$display = EntityViewDisplay::load("media.{$type_name}.default");
$this->assertInstanceOf(EntityViewDisplay::class, $display);
$formatter = $display->getComponent($field_name)['type'];
$this->assertSame('file_audio', $formatter);
// Create a media asset.
file_put_contents('public://file.mp3', str_repeat('t', 10));
$file = File::create([
'uri' => 'public://file.mp3',
'filename' => 'file.mp3',
]);
$file->save();
$this->drupalGet("media/add/{$type_name}");
$page->fillField('Name', 'Audio media asset');
$page->attachFileToField("files[{$field_name}_0]", \Drupal::service('file_system')->realpath('public://file.mp3'));
$result = $assert_session->waitForButton('Remove');
$this->assertNotEmpty($result);
$page->pressButton('Save');
// Verify that there is a creation message and that it contains a link to
// the media entity.
$assert_session->pageTextContains("{$type_name} Audio media asset has been created.");
$this->drupalGet($this->assertLinkToCreatedMedia());
// Verify that the <audio> tag is present on the media entity view.
$assert_session->elementExists('css', "audio > source[type='audio/mpeg']");
}
/**
* Check the Video source functionality.
*/
public function testVideoTypeCreation() {
$assert_session = $this->assertSession();
$page = $this->getSession()
->getPage();
$source_id = 'video_file';
$type_name = 'video_type';
$field_name = 'field_media_' . $source_id;
$this->doTestCreateMediaType($type_name, $source_id);
// Check that the source field was created with the correct settings.
$storage = FieldStorageConfig::load("media.{$field_name}");
$this->assertInstanceOf(FieldStorageConfig::class, $storage);
$field = FieldConfig::load("media.{$type_name}.{$field_name}");
$this->assertInstanceOf(FieldConfig::class, $field);
$this->assertSame('mp4', FieldConfig::load("media.{$type_name}.{$field_name}")->getSetting('file_extensions'));
// Check that the display holds the correct formatter configuration.
$display = EntityViewDisplay::load("media.{$type_name}.default");
$this->assertInstanceOf(EntityViewDisplay::class, $display);
$formatter = $display->getComponent($field_name)['type'];
$this->assertSame('file_video', $formatter);
// Create a media asset.
file_put_contents('public://file.mp4', str_repeat('t', 10));
$file = File::create([
'uri' => 'public://file.mp4',
'filename' => 'file.mp4',
]);
$file->save();
$this->drupalGet("media/add/{$type_name}");
$page->fillField('Name', 'Video media asset');
$page->attachFileToField("files[{$field_name}_0]", \Drupal::service('file_system')->realpath('public://file.mp4'));
$result = $assert_session->waitForButton('Remove');
$this->assertNotEmpty($result);
$page->pressButton('Save');
// Verify that there is a creation message and that it contains a link to
// the media entity.
$assert_session->pageTextContains("{$type_name} Video media asset has been created.");
$this->drupalGet($this->assertLinkToCreatedMedia());
// Verify that the <video> tag is present on the media entity view.
$assert_session->elementExists('css', "video > source[type='video/mp4']");
}
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.