1<?php 2 3namespace Drupal\Tests\media\Functional; 4 5use Drupal\field\Entity\FieldConfig; 6 7/** 8 * Tests the file media source. 9 * 10 * @group media 11 */ 12class MediaSourceFileTest extends MediaFunctionalTestBase { 13 14 /** 15 * {@inheritdoc} 16 */ 17 protected $defaultTheme = 'stark'; 18 19 /** 20 * Test that it's possible to change the allowed file extensions. 21 */ 22 public function testSourceFieldSettingsEditing() { 23 $session = $this->getSession(); 24 $page = $session->getPage(); 25 $assert_session = $this->assertSession(); 26 27 $media_type = $this->createMediaType('file'); 28 $media_type_id = $media_type->id(); 29 $this->assertSame('txt doc docx pdf', FieldConfig::load("media.$media_type_id.field_media_file")->get('settings')['file_extensions']); 30 31 $this->drupalGet("admin/structure/media/manage/$media_type_id/fields/media.$media_type_id.field_media_file"); 32 33 // File extension field exists. 34 $assert_session->fieldExists('Allowed file extensions'); 35 36 // Add another extension. 37 $page->fillField('settings[file_extensions]', 'txt, doc, docx, pdf, odt'); 38 39 $page->pressButton('Save settings'); 40 $this->drupalGet("admin/structure/media/manage/$media_type_id/fields/media.$media_type_id.field_media_file"); 41 42 // Verify that new extension is present. 43 $assert_session->fieldValueEquals('settings[file_extensions]', 'txt, doc, docx, pdf, odt'); 44 $this->assertSame('txt doc docx pdf odt', FieldConfig::load("media.$media_type_id.field_media_file")->get('settings')['file_extensions']); 45 } 46 47 /** 48 * Ensure source field deletion is not possible. 49 */ 50 public function testPreventSourceFieldDeletion() { 51 $media_type = $this->createMediaType('file'); 52 $media_type_id = $media_type->id(); 53 54 $this->drupalGet("admin/structure/media/manage/$media_type_id/fields/media.$media_type_id.field_media_file/delete"); 55 $this->assertSession()->statusCodeEquals(403); 56 } 57 58} 59