annotate core/modules/media/tests/src/Functional/MediaSourceFileTest.php @ 9:1fc0ff908d1f

Add another data file
author Chris Cannam
date Mon, 05 Feb 2018 12:34:32 +0000
parents 4c8ae668cc8c
children 1fec387a4317
rev   line source
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 }