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 use Drupal\media\Entity\MediaType;
|
Chris@0
|
7
|
Chris@0
|
8 /**
|
Chris@0
|
9 * Tests the file media source.
|
Chris@0
|
10 *
|
Chris@0
|
11 * @group media
|
Chris@0
|
12 */
|
Chris@0
|
13 class MediaSourceFileTest extends MediaFunctionalTestBase {
|
Chris@0
|
14
|
Chris@0
|
15 /**
|
Chris@0
|
16 * {@inheritdoc}
|
Chris@0
|
17 */
|
Chris@0
|
18 protected function setUp() {
|
Chris@0
|
19 parent::setUp();
|
Chris@0
|
20
|
Chris@0
|
21 // We need to test without any default configuration in place.
|
Chris@0
|
22 // @TODO: Remove this as part of https://www.drupal.org/node/2883813.
|
Chris@0
|
23 MediaType::load('file')->delete();
|
Chris@0
|
24 }
|
Chris@0
|
25
|
Chris@0
|
26 /**
|
Chris@0
|
27 * Test that it's possible to change the allowed file extensions.
|
Chris@0
|
28 */
|
Chris@0
|
29 public function testSourceFieldSettingsEditing() {
|
Chris@0
|
30 $session = $this->getSession();
|
Chris@0
|
31 $page = $session->getPage();
|
Chris@0
|
32 $assert_session = $this->assertSession();
|
Chris@0
|
33
|
Chris@0
|
34 $media_type = $this->createMediaType([], 'file');
|
Chris@0
|
35 $media_type_id = $media_type->id();
|
Chris@0
|
36 $this->assertSame('txt doc docx pdf', FieldConfig::load("media.$media_type_id.field_media_file")->get('settings')['file_extensions']);
|
Chris@0
|
37
|
Chris@0
|
38 $this->drupalGet("admin/structure/media/manage/$media_type_id/fields/media.$media_type_id.field_media_file");
|
Chris@0
|
39
|
Chris@0
|
40 // File extension field exists.
|
Chris@0
|
41 $assert_session->fieldExists('Allowed file extensions');
|
Chris@0
|
42
|
Chris@0
|
43 // Add another extension.
|
Chris@0
|
44 $page->fillField('settings[file_extensions]', 'txt, doc, docx, pdf, odt');
|
Chris@0
|
45
|
Chris@0
|
46 $page->pressButton('Save settings');
|
Chris@0
|
47 $this->drupalGet("admin/structure/media/manage/$media_type_id/fields/media.$media_type_id.field_media_file");
|
Chris@0
|
48
|
Chris@0
|
49 // Verify that new extension is present.
|
Chris@0
|
50 $assert_session->fieldValueEquals('settings[file_extensions]', 'txt, doc, docx, pdf, odt');
|
Chris@0
|
51 $this->assertSame('txt doc docx pdf odt', FieldConfig::load("media.$media_type_id.field_media_file")->get('settings')['file_extensions']);
|
Chris@0
|
52 }
|
Chris@0
|
53
|
Chris@0
|
54 /**
|
Chris@0
|
55 * Ensure source field deletion is not possible.
|
Chris@0
|
56 */
|
Chris@0
|
57 public function testPreventSourceFieldDeletion() {
|
Chris@0
|
58 $media_type = $this->createMediaType([], 'file');
|
Chris@0
|
59 $media_type_id = $media_type->id();
|
Chris@0
|
60
|
Chris@0
|
61 $this->drupalGet("admin/structure/media/manage/$media_type_id/fields/media.$media_type_id.field_media_file/delete");
|
Chris@0
|
62 $this->assertSession()->statusCodeEquals(403);
|
Chris@0
|
63 }
|
Chris@0
|
64
|
Chris@0
|
65 }
|