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