3 namespace Drupal\Tests\media\Functional;
5 use Drupal\field\Entity\FieldConfig;
8 * Tests the file media source.
12 class MediaSourceFileTest extends MediaFunctionalTestBase {
15 * Test that it's possible to change the allowed file extensions.
17 public function testSourceFieldSettingsEditing() {
18 $session = $this->getSession();
19 $page = $session->getPage();
20 $assert_session = $this->assertSession();
22 $media_type = $this->createMediaType('file');
23 $media_type_id = $media_type->id();
24 $this->assertSame('txt doc docx pdf', FieldConfig::load("media.$media_type_id.field_media_file")->get('settings')['file_extensions']);
26 $this->drupalGet("admin/structure/media/manage/$media_type_id/fields/media.$media_type_id.field_media_file");
28 // File extension field exists.
29 $assert_session->fieldExists('Allowed file extensions');
31 // Add another extension.
32 $page->fillField('settings[file_extensions]', 'txt, doc, docx, pdf, odt');
34 $page->pressButton('Save settings');
35 $this->drupalGet("admin/structure/media/manage/$media_type_id/fields/media.$media_type_id.field_media_file");
37 // Verify that new extension is present.
38 $assert_session->fieldValueEquals('settings[file_extensions]', 'txt, doc, docx, pdf, odt');
39 $this->assertSame('txt doc docx pdf odt', FieldConfig::load("media.$media_type_id.field_media_file")->get('settings')['file_extensions']);
43 * Ensure source field deletion is not possible.
45 public function testPreventSourceFieldDeletion() {
46 $media_type = $this->createMediaType('file');
47 $media_type_id = $media_type->id();
49 $this->drupalGet("admin/structure/media/manage/$media_type_id/fields/media.$media_type_id.field_media_file/delete");
50 $this->assertSession()->statusCodeEquals(403);