Mercurial > hg > isophonics-drupal-site
comparison core/modules/media/tests/src/FunctionalJavascript/MediaSourceFileTest.php @ 0:4c8ae668cc8c
Initial import (non-working)
author | Chris Cannam |
---|---|
date | Wed, 29 Nov 2017 16:09:58 +0000 |
parents | |
children | 1fec387a4317 |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:4c8ae668cc8c |
---|---|
1 <?php | |
2 | |
3 namespace Drupal\Tests\media\FunctionalJavascript; | |
4 | |
5 use Drupal\media\Entity\Media; | |
6 use Drupal\media\Entity\MediaType; | |
7 | |
8 /** | |
9 * Tests the file media source. | |
10 * | |
11 * @group media | |
12 */ | |
13 class MediaSourceFileTest extends MediaSourceTestBase { | |
14 | |
15 /** | |
16 * {@inheritdoc} | |
17 */ | |
18 protected function setUp() { | |
19 parent::setUp(); | |
20 | |
21 // We need to test without any default configuration in place. | |
22 // @TODO: Remove this as part of https://www.drupal.org/node/2883813. | |
23 MediaType::load('file')->delete(); | |
24 } | |
25 | |
26 /** | |
27 * Tests the file media source. | |
28 */ | |
29 public function testMediaFileSource() { | |
30 $media_type_id = 'test_media_file_type'; | |
31 $source_field_id = 'field_media_file'; | |
32 | |
33 $session = $this->getSession(); | |
34 $page = $session->getPage(); | |
35 $assert_session = $this->assertSession(); | |
36 | |
37 $this->doTestCreateMediaType($media_type_id, 'file'); | |
38 | |
39 // Hide the name field widget to test default name generation. | |
40 $this->hideMediaTypeFieldWidget('name', $media_type_id); | |
41 | |
42 $test_filename = $this->randomMachineName() . '.txt'; | |
43 $test_filepath = 'public://' . $test_filename; | |
44 file_put_contents($test_filepath, $this->randomMachineName()); | |
45 | |
46 // Create a media item. | |
47 $this->drupalGet("media/add/{$media_type_id}"); | |
48 $page->attachFileToField("files[{$source_field_id}_0]", \Drupal::service('file_system')->realpath($test_filepath)); | |
49 $result = $assert_session->waitForButton('Remove'); | |
50 $this->assertNotEmpty($result); | |
51 $page->pressButton('Save'); | |
52 | |
53 $assert_session->addressEquals('media/1'); | |
54 | |
55 // Make sure the thumbnail is displayed. | |
56 $assert_session->elementAttributeContains('css', '.image-style-thumbnail', 'src', 'generic.png'); | |
57 | |
58 // Make sure checkbox changes the visibility of log message field. | |
59 $this->drupalGet("media/1/edit"); | |
60 $page->uncheckField('revision'); | |
61 $assert_session->elementAttributeContains('css', '.field--name-revision-log-message', 'style', 'display: none'); | |
62 $page->checkField('revision'); | |
63 $assert_session->elementAttributeNotContains('css', '.field--name-revision-log-message', 'style', 'display'); | |
64 | |
65 // Load the media and check if the label was properly populated. | |
66 $media = Media::load(1); | |
67 $this->assertEquals($test_filename, $media->getName()); | |
68 | |
69 // Test the MIME type icon. | |
70 $icon_base = \Drupal::config('media.settings')->get('icon_base_uri'); | |
71 file_unmanaged_copy($icon_base . '/generic.png', $icon_base . '/text--plain.png'); | |
72 $this->drupalGet("media/add/{$media_type_id}"); | |
73 $page->attachFileToField("files[{$source_field_id}_0]", \Drupal::service('file_system')->realpath($test_filepath)); | |
74 $result = $assert_session->waitForButton('Remove'); | |
75 $this->assertNotEmpty($result); | |
76 $page->pressButton('Save'); | |
77 $assert_session->elementAttributeContains('css', '.image-style-thumbnail', 'src', 'text--plain.png'); | |
78 } | |
79 | |
80 } |