Mercurial > hg > isophonics-drupal-site
diff core/modules/media/tests/src/Functional/MediaSourceFileTest.php @ 0:4c8ae668cc8c
Initial import (non-working)
author | Chris Cannam |
---|---|
date | Wed, 29 Nov 2017 16:09:58 +0000 |
parents | |
children | 1fec387a4317 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/core/modules/media/tests/src/Functional/MediaSourceFileTest.php Wed Nov 29 16:09:58 2017 +0000 @@ -0,0 +1,65 @@ +<?php + +namespace Drupal\Tests\media\Functional; + +use Drupal\field\Entity\FieldConfig; +use Drupal\media\Entity\MediaType; + +/** + * Tests the file media source. + * + * @group media + */ +class MediaSourceFileTest extends MediaFunctionalTestBase { + + /** + * {@inheritdoc} + */ + protected function setUp() { + parent::setUp(); + + // We need to test without any default configuration in place. + // @TODO: Remove this as part of https://www.drupal.org/node/2883813. + MediaType::load('file')->delete(); + } + + /** + * Test that it's possible to change the allowed file extensions. + */ + public function testSourceFieldSettingsEditing() { + $session = $this->getSession(); + $page = $session->getPage(); + $assert_session = $this->assertSession(); + + $media_type = $this->createMediaType([], 'file'); + $media_type_id = $media_type->id(); + $this->assertSame('txt doc docx pdf', FieldConfig::load("media.$media_type_id.field_media_file")->get('settings')['file_extensions']); + + $this->drupalGet("admin/structure/media/manage/$media_type_id/fields/media.$media_type_id.field_media_file"); + + // File extension field exists. + $assert_session->fieldExists('Allowed file extensions'); + + // Add another extension. + $page->fillField('settings[file_extensions]', 'txt, doc, docx, pdf, odt'); + + $page->pressButton('Save settings'); + $this->drupalGet("admin/structure/media/manage/$media_type_id/fields/media.$media_type_id.field_media_file"); + + // Verify that new extension is present. + $assert_session->fieldValueEquals('settings[file_extensions]', 'txt, doc, docx, pdf, odt'); + $this->assertSame('txt doc docx pdf odt', FieldConfig::load("media.$media_type_id.field_media_file")->get('settings')['file_extensions']); + } + + /** + * Ensure source field deletion is not possible. + */ + public function testPreventSourceFieldDeletion() { + $media_type = $this->createMediaType([], 'file'); + $media_type_id = $media_type->id(); + + $this->drupalGet("admin/structure/media/manage/$media_type_id/fields/media.$media_type_id.field_media_file/delete"); + $this->assertSession()->statusCodeEquals(403); + } + +}