X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs-website;a=blobdiff_plain;f=web%2Fcore%2Fmodules%2Fmedia%2Ftests%2Fsrc%2FFunctionalJavascript%2FMediaSourceFileTest.php;fp=web%2Fcore%2Fmodules%2Fmedia%2Ftests%2Fsrc%2FFunctionalJavascript%2FMediaSourceFileTest.php;h=21954d8a92f5986fe6034537cacd01b19a9a99e3;hp=c638f830ca46a5741cad0e214272609cd33d69ec;hb=af6d1fb995500ae68849458ee10d66abbdcfb252;hpb=680c79a86e3ed402f263faeac92e89fb6d9edcc0 diff --git a/web/core/modules/media/tests/src/FunctionalJavascript/MediaSourceFileTest.php b/web/core/modules/media/tests/src/FunctionalJavascript/MediaSourceFileTest.php index c638f830c..21954d8a9 100644 --- a/web/core/modules/media/tests/src/FunctionalJavascript/MediaSourceFileTest.php +++ b/web/core/modules/media/tests/src/FunctionalJavascript/MediaSourceFileTest.php @@ -3,7 +3,7 @@ namespace Drupal\Tests\media\FunctionalJavascript; use Drupal\media\Entity\Media; -use Drupal\media\Entity\MediaType; +use Drupal\media\Plugin\media\Source\File; /** * Tests the file media source. @@ -12,33 +12,38 @@ use Drupal\media\Entity\MediaType; */ class MediaSourceFileTest extends MediaSourceTestBase { - /** - * {@inheritdoc} - */ - protected function setUp() { - parent::setUp(); - - // We need to test without any default configuration in place. - // @TODO: Remove this as part of https://www.drupal.org/node/2883813. - MediaType::load('file')->delete(); - } - /** * Tests the file media source. */ public function testMediaFileSource() { $media_type_id = 'test_media_file_type'; $source_field_id = 'field_media_file'; + $provided_fields = [ + File::METADATA_ATTRIBUTE_SIZE, + File::METADATA_ATTRIBUTE_MIME, + ]; $session = $this->getSession(); $page = $session->getPage(); $assert_session = $this->assertSession(); - $this->doTestCreateMediaType($media_type_id, 'file'); + $this->doTestCreateMediaType($media_type_id, 'file', $provided_fields); + + // Create custom fields for the media type to store metadata attributes. + $fields = [ + 'field_string_file_size' => 'string', + 'field_string_mime_type' => 'string', + ]; + $this->createMediaTypeFields($fields, $media_type_id); // Hide the name field widget to test default name generation. $this->hideMediaTypeFieldWidget('name', $media_type_id); + $this->drupalGet("admin/structure/media/manage/{$media_type_id}"); + $page->selectFieldOption("field_map[" . File::METADATA_ATTRIBUTE_SIZE . "]", 'field_string_file_size'); + $page->selectFieldOption("field_map[" . File::METADATA_ATTRIBUTE_MIME . "]", 'field_string_mime_type'); + $page->pressButton('Save'); + $test_filename = $this->randomMachineName() . '.txt'; $test_filepath = 'public://' . $test_filename; file_put_contents($test_filepath, $this->randomMachineName()); @@ -62,9 +67,11 @@ class MediaSourceFileTest extends MediaSourceTestBase { $page->checkField('revision'); $assert_session->elementAttributeNotContains('css', '.field--name-revision-log-message', 'style', 'display'); - // Load the media and check if the label was properly populated. + // Load the media and check that all the fields are properly populated. $media = Media::load(1); $this->assertEquals($test_filename, $media->getName()); + $this->assertEquals('8', $media->get('field_string_file_size')->value); + $this->assertEquals('text/plain', $media->get('field_string_mime_type')->value); // Test the MIME type icon. $icon_base = \Drupal::config('media.settings')->get('icon_base_uri');