annotate core/modules/media/tests/src/FunctionalJavascript/MediaSourceImageTest.php @ 2:92f882872392

Trusted hosts, + remove migration modules
author Chris Cannam
date Tue, 05 Dec 2017 09:26:43 +0000
parents 4c8ae668cc8c
children 1fec387a4317
rev   line source
Chris@0 1 <?php
Chris@0 2
Chris@0 3 namespace Drupal\Tests\media\FunctionalJavascript;
Chris@0 4
Chris@0 5 use Drupal\media\Entity\Media;
Chris@0 6 use Drupal\media\Entity\MediaType;
Chris@0 7 use Drupal\media\Plugin\media\Source\Image;
Chris@0 8
Chris@0 9 /**
Chris@0 10 * Tests the image media source.
Chris@0 11 *
Chris@0 12 * @group media
Chris@0 13 */
Chris@0 14 class MediaSourceImageTest extends MediaSourceTestBase {
Chris@0 15
Chris@0 16 /**
Chris@0 17 * {@inheritdoc}
Chris@0 18 */
Chris@0 19 protected function setUp() {
Chris@0 20 parent::setUp();
Chris@0 21
Chris@0 22 // We need to test without any default configuration in place.
Chris@0 23 // @TODO: Remove this as part of https://www.drupal.org/node/2883813.
Chris@0 24 MediaType::load('file')->delete();
Chris@0 25 MediaType::load('image')->delete();
Chris@0 26 }
Chris@0 27
Chris@0 28 /**
Chris@0 29 * Tests the image media source.
Chris@0 30 */
Chris@0 31 public function testMediaImageSource() {
Chris@0 32 $media_type_id = 'test_media_image_type';
Chris@0 33 $source_field_id = 'field_media_image';
Chris@0 34 $provided_fields = [
Chris@0 35 Image::METADATA_ATTRIBUTE_WIDTH,
Chris@0 36 Image::METADATA_ATTRIBUTE_HEIGHT,
Chris@0 37 ];
Chris@0 38
Chris@0 39 $session = $this->getSession();
Chris@0 40 $page = $session->getPage();
Chris@0 41 $assert_session = $this->assertSession();
Chris@0 42
Chris@0 43 $this->doTestCreateMediaType($media_type_id, 'image', $provided_fields);
Chris@0 44
Chris@0 45 // Create custom fields for the media type to store metadata attributes.
Chris@0 46 $fields = [
Chris@0 47 'field_string_width' => 'string',
Chris@0 48 'field_string_height' => 'string',
Chris@0 49 ];
Chris@0 50 $this->createMediaTypeFields($fields, $media_type_id);
Chris@0 51
Chris@0 52 // Hide the name field widget to test default name generation.
Chris@0 53 $this->hideMediaTypeFieldWidget('name', $media_type_id);
Chris@0 54
Chris@0 55 $this->drupalGet("admin/structure/media/manage/{$media_type_id}");
Chris@0 56 $page->selectFieldOption("field_map[" . Image::METADATA_ATTRIBUTE_WIDTH . "]", 'field_string_width');
Chris@0 57 $page->selectFieldOption("field_map[" . Image::METADATA_ATTRIBUTE_HEIGHT . "]", 'field_string_height');
Chris@0 58 $page->pressButton('Save');
Chris@0 59
Chris@0 60 // Create a media item.
Chris@0 61 $this->drupalGet("media/add/{$media_type_id}");
Chris@0 62 $page->attachFileToField("files[{$source_field_id}_0]", \Drupal::root() . '/core/modules/media/tests/fixtures/example_1.jpeg');
Chris@0 63 $result = $assert_session->waitForButton('Remove');
Chris@0 64 $this->assertNotEmpty($result);
Chris@0 65 $page->fillField("{$source_field_id}[0][alt]", 'Image Alt Text 1');
Chris@0 66 $page->pressButton('Save');
Chris@0 67
Chris@0 68 $assert_session->addressEquals('media/1');
Chris@0 69
Chris@0 70 // Make sure the thumbnail is displayed from uploaded image.
Chris@0 71 $assert_session->elementAttributeContains('css', '.image-style-thumbnail', 'src', 'example_1.jpeg');
Chris@0 72
Chris@0 73 // Load the media and check that all fields are properly populated.
Chris@0 74 $media = Media::load(1);
Chris@0 75 $this->assertEquals('example_1.jpeg', $media->getName());
Chris@0 76 $this->assertEquals('200', $media->get('field_string_width')->value);
Chris@0 77 $this->assertEquals('89', $media->get('field_string_height')->value);
Chris@0 78 }
Chris@0 79
Chris@0 80 }