Mercurial > hg > isophonics-drupal-site
comparison core/modules/media/tests/src/FunctionalJavascript/MediaSourceFileTest.php @ 17:129ea1e6d783
Update, including to Drupal core 8.6.10
author | Chris Cannam |
---|---|
date | Thu, 28 Feb 2019 13:21:36 +0000 |
parents | 1fec387a4317 |
children | af1871eacc83 |
comparison
equal
deleted
inserted
replaced
16:c2387f117808 | 17:129ea1e6d783 |
---|---|
17 */ | 17 */ |
18 public function testMediaFileSource() { | 18 public function testMediaFileSource() { |
19 $media_type_id = 'test_media_file_type'; | 19 $media_type_id = 'test_media_file_type'; |
20 $source_field_id = 'field_media_file'; | 20 $source_field_id = 'field_media_file'; |
21 $provided_fields = [ | 21 $provided_fields = [ |
22 File::METADATA_ATTRIBUTE_NAME, | |
22 File::METADATA_ATTRIBUTE_SIZE, | 23 File::METADATA_ATTRIBUTE_SIZE, |
23 File::METADATA_ATTRIBUTE_MIME, | 24 File::METADATA_ATTRIBUTE_MIME, |
24 ]; | 25 ]; |
25 | 26 |
26 $session = $this->getSession(); | 27 $session = $this->getSession(); |
38 | 39 |
39 // Hide the name field widget to test default name generation. | 40 // Hide the name field widget to test default name generation. |
40 $this->hideMediaTypeFieldWidget('name', $media_type_id); | 41 $this->hideMediaTypeFieldWidget('name', $media_type_id); |
41 | 42 |
42 $this->drupalGet("admin/structure/media/manage/{$media_type_id}"); | 43 $this->drupalGet("admin/structure/media/manage/{$media_type_id}"); |
44 $page->selectFieldOption("field_map[" . File::METADATA_ATTRIBUTE_NAME . "]", 'name'); | |
43 $page->selectFieldOption("field_map[" . File::METADATA_ATTRIBUTE_SIZE . "]", 'field_string_file_size'); | 45 $page->selectFieldOption("field_map[" . File::METADATA_ATTRIBUTE_SIZE . "]", 'field_string_file_size'); |
44 $page->selectFieldOption("field_map[" . File::METADATA_ATTRIBUTE_MIME . "]", 'field_string_mime_type'); | 46 $page->selectFieldOption("field_map[" . File::METADATA_ATTRIBUTE_MIME . "]", 'field_string_mime_type'); |
45 $page->pressButton('Save'); | 47 $page->pressButton('Save'); |
46 | 48 |
47 $test_filename = $this->randomMachineName() . '.txt'; | 49 $test_filename = $this->randomMachineName() . '.txt'; |
53 $page->attachFileToField("files[{$source_field_id}_0]", \Drupal::service('file_system')->realpath($test_filepath)); | 55 $page->attachFileToField("files[{$source_field_id}_0]", \Drupal::service('file_system')->realpath($test_filepath)); |
54 $result = $assert_session->waitForButton('Remove'); | 56 $result = $assert_session->waitForButton('Remove'); |
55 $this->assertNotEmpty($result); | 57 $this->assertNotEmpty($result); |
56 $page->pressButton('Save'); | 58 $page->pressButton('Save'); |
57 | 59 |
58 $assert_session->addressEquals('media/1'); | 60 $assert_session->addressEquals('admin/content/media'); |
61 | |
62 // Get the media entity view URL from the creation message. | |
63 $this->drupalGet($this->assertLinkToCreatedMedia()); | |
59 | 64 |
60 // Make sure the thumbnail is displayed. | 65 // Make sure the thumbnail is displayed. |
61 $assert_session->elementAttributeContains('css', '.image-style-thumbnail', 'src', 'generic.png'); | 66 $assert_session->elementAttributeContains('css', '.image-style-thumbnail', 'src', 'generic.png'); |
62 | 67 |
63 // Make sure checkbox changes the visibility of log message field. | 68 // Make sure checkbox changes the visibility of log message field. |
67 $page->checkField('revision'); | 72 $page->checkField('revision'); |
68 $assert_session->elementAttributeNotContains('css', '.field--name-revision-log-message', 'style', 'display'); | 73 $assert_session->elementAttributeNotContains('css', '.field--name-revision-log-message', 'style', 'display'); |
69 | 74 |
70 // Load the media and check that all the fields are properly populated. | 75 // Load the media and check that all the fields are properly populated. |
71 $media = Media::load(1); | 76 $media = Media::load(1); |
72 $this->assertEquals($test_filename, $media->getName()); | 77 $this->assertSame($test_filename, $media->getName()); |
73 $this->assertEquals('8', $media->get('field_string_file_size')->value); | 78 $this->assertSame('8', $media->get('field_string_file_size')->value); |
74 $this->assertEquals('text/plain', $media->get('field_string_mime_type')->value); | 79 $this->assertSame('text/plain', $media->get('field_string_mime_type')->value); |
75 | 80 |
76 // Test the MIME type icon. | 81 // Test the MIME type icon. |
77 $icon_base = \Drupal::config('media.settings')->get('icon_base_uri'); | 82 $icon_base = \Drupal::config('media.settings')->get('icon_base_uri'); |
78 file_unmanaged_copy($icon_base . '/generic.png', $icon_base . '/text--plain.png'); | 83 file_unmanaged_copy($icon_base . '/generic.png', $icon_base . '/text--plain.png'); |
79 $this->drupalGet("media/add/{$media_type_id}"); | 84 $this->drupalGet("media/add/{$media_type_id}"); |
80 $page->attachFileToField("files[{$source_field_id}_0]", \Drupal::service('file_system')->realpath($test_filepath)); | 85 $page->attachFileToField("files[{$source_field_id}_0]", \Drupal::service('file_system')->realpath($test_filepath)); |
81 $result = $assert_session->waitForButton('Remove'); | 86 $result = $assert_session->waitForButton('Remove'); |
82 $this->assertNotEmpty($result); | 87 $this->assertNotEmpty($result); |
83 $page->pressButton('Save'); | 88 $page->pressButton('Save'); |
84 $assert_session->elementAttributeContains('css', '.image-style-thumbnail', 'src', 'text--plain.png'); | 89 $assert_session->elementAttributeContains('css', '.image-style-thumbnail', 'src', 'text--plain.png'); |
90 | |
91 // Check if the mapped name is automatically updated. | |
92 $new_filename = $this->randomMachineName() . '.txt'; | |
93 $new_filepath = 'public://' . $new_filename; | |
94 file_put_contents($new_filepath, $this->randomMachineName()); | |
95 $this->drupalGet("media/1/edit"); | |
96 $page->pressButton('Remove'); | |
97 $result = $assert_session->waitForField("files[{$source_field_id}_0]"); | |
98 $this->assertNotEmpty($result); | |
99 $page->attachFileToField("files[{$source_field_id}_0]", \Drupal::service('file_system')->realpath($new_filepath)); | |
100 $result = $assert_session->waitForButton('Remove'); | |
101 $this->assertNotEmpty($result); | |
102 $page->pressButton('Save'); | |
103 /** @var \Drupal\media\MediaInterface $media */ | |
104 $media = \Drupal::entityTypeManager()->getStorage('media')->loadUnchanged(1); | |
105 $this->assertEquals($new_filename, $media->getName()); | |
106 $assert_session->pageTextContains("$new_filename has been updated."); | |
85 } | 107 } |
86 | 108 |
87 } | 109 } |