3 namespace Drupal\Tests\media\Functional;
5 use Drupal\field\Entity\FieldConfig;
6 use Drupal\media\Entity\MediaType;
9 * Tests the file media source.
13 class MediaSourceFileTest extends MediaFunctionalTestBase {
18 protected function setUp() {
21 // We need to test without any default configuration in place.
22 // @TODO: Remove this as part of https://www.drupal.org/node/2883813.
23 MediaType::load('file')->delete();
27 * Test that it's possible to change the allowed file extensions.
29 public function testSourceFieldSettingsEditing() {
30 $session = $this->getSession();
31 $page = $session->getPage();
32 $assert_session = $this->assertSession();
34 $media_type = $this->createMediaType([], 'file');
35 $media_type_id = $media_type->id();
36 $this->assertSame('txt doc docx pdf', FieldConfig::load("media.$media_type_id.field_media_file")->get('settings')['file_extensions']);
38 $this->drupalGet("admin/structure/media/manage/$media_type_id/fields/media.$media_type_id.field_media_file");
40 // File extension field exists.
41 $assert_session->fieldExists('Allowed file extensions');
43 // Add another extension.
44 $page->fillField('settings[file_extensions]', 'txt, doc, docx, pdf, odt');
46 $page->pressButton('Save settings');
47 $this->drupalGet("admin/structure/media/manage/$media_type_id/fields/media.$media_type_id.field_media_file");
49 // Verify that new extension is present.
50 $assert_session->fieldValueEquals('settings[file_extensions]', 'txt, doc, docx, pdf, odt');
51 $this->assertSame('txt doc docx pdf odt', FieldConfig::load("media.$media_type_id.field_media_file")->get('settings')['file_extensions']);
55 * Ensure source field deletion is not possible.
57 public function testPreventSourceFieldDeletion() {
58 $media_type = $this->createMediaType([], 'file');
59 $media_type_id = $media_type->id();
61 $this->drupalGet("admin/structure/media/manage/$media_type_id/fields/media.$media_type_id.field_media_file/delete");
62 $this->assertSession()->statusCodeEquals(403);