Mercurial > hg > isophonics-drupal-site
comparison core/modules/responsive_image/src/Tests/ResponsiveImageFieldUiTest.php @ 0:4c8ae668cc8c
Initial import (non-working)
author | Chris Cannam |
---|---|
date | Wed, 29 Nov 2017 16:09:58 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:4c8ae668cc8c |
---|---|
1 <?php | |
2 | |
3 namespace Drupal\responsive_image\Tests; | |
4 | |
5 use Drupal\field_ui\Tests\FieldUiTestTrait; | |
6 use Drupal\simpletest\WebTestBase; | |
7 use Drupal\responsive_image\Entity\ResponsiveImageStyle; | |
8 | |
9 /** | |
10 * Tests the "Responsive Image" formatter settings form. | |
11 * | |
12 * @group responsive_image | |
13 */ | |
14 class ResponsiveImageFieldUiTest extends WebTestBase { | |
15 | |
16 use FieldUiTestTrait; | |
17 | |
18 /** | |
19 * Modules to install. | |
20 * | |
21 * @var array | |
22 */ | |
23 public static $modules = ['node', 'field_ui', 'image', 'responsive_image', 'responsive_image_test_module', 'block']; | |
24 | |
25 /** | |
26 * {@inheritdoc} | |
27 */ | |
28 protected function setUp() { | |
29 parent::setUp(); | |
30 $this->drupalPlaceBlock('system_breadcrumb_block'); | |
31 // Create a test user. | |
32 $admin_user = $this->drupalCreateUser(['access content', 'administer content types', 'administer node fields', 'administer node form display', 'administer node display', 'bypass node access']); | |
33 $this->drupalLogin($admin_user); | |
34 | |
35 // Create content type, with underscores. | |
36 $type_name = strtolower($this->randomMachineName(8)) . '_test'; | |
37 $type = $this->drupalCreateContentType(['name' => $type_name, 'type' => $type_name]); | |
38 $this->type = $type->id(); | |
39 } | |
40 | |
41 /** | |
42 * Tests formatter settings. | |
43 */ | |
44 public function testResponsiveImageFormatterUI() { | |
45 $manage_fields = 'admin/structure/types/manage/' . $this->type; | |
46 $manage_display = $manage_fields . '/display'; | |
47 | |
48 // Create a field, and a node with some data for the field. | |
49 $this->fieldUIAddNewField($manage_fields, 'image', 'Image field', 'image'); | |
50 // Display the "Manage display". | |
51 $this->drupalGet($manage_display); | |
52 | |
53 // Change the formatter and check that the summary is updated. | |
54 $edit = [ | |
55 'fields[field_image][type]' => 'responsive_image', | |
56 'fields[field_image][region]' => 'content', | |
57 'refresh_rows' => 'field_image', | |
58 ]; | |
59 $this->drupalPostAjaxForm(NULL, $edit, ['op' => t('Refresh')]); | |
60 $this->assertText("Select a responsive image style.", 'The expected summary is displayed.'); | |
61 | |
62 // Submit the form. | |
63 $this->drupalPostForm(NULL, [], t('Save')); | |
64 $this->assertText("Select a responsive image style.", 'The expected summary is displayed.'); | |
65 | |
66 // Create responsive image styles. | |
67 $responsive_image_style = ResponsiveImageStyle::create([ | |
68 'id' => 'style_one', | |
69 'label' => 'Style One', | |
70 'breakpoint_group' => 'responsive_image_test_module', | |
71 'fallback_image_style' => 'thumbnail', | |
72 ]); | |
73 $responsive_image_style | |
74 ->addImageStyleMapping('responsive_image_test_module.mobile', '1x', [ | |
75 'image_mapping_type' => 'image_style', | |
76 'image_mapping' => 'thumbnail', | |
77 ]) | |
78 ->addImageStyleMapping('responsive_image_test_module.narrow', '1x', [ | |
79 'image_mapping_type' => 'image_style', | |
80 'image_mapping' => 'medium' | |
81 ]) | |
82 // Test the normal output of mapping to an image style. | |
83 ->addImageStyleMapping('responsive_image_test_module.wide', '1x', [ | |
84 'image_mapping_type' => 'image_style', | |
85 'image_mapping' => 'large', | |
86 ]) | |
87 ->save(); | |
88 \Drupal::entityManager()->clearCachedFieldDefinitions(); | |
89 // Refresh the page. | |
90 $this->drupalGet($manage_display); | |
91 $this->assertText("Select a responsive image style.", 'The expected summary is displayed.'); | |
92 | |
93 // Click on the formatter settings button to open the formatter settings | |
94 // form. | |
95 $this->drupalPostAjaxForm(NULL, [], "field_image_settings_edit"); | |
96 | |
97 // Assert that the correct fields are present. | |
98 $fieldnames = [ | |
99 'fields[field_image][settings_edit_form][settings][responsive_image_style]', | |
100 'fields[field_image][settings_edit_form][settings][image_link]', | |
101 ]; | |
102 foreach ($fieldnames as $fieldname) { | |
103 $this->assertField($fieldname); | |
104 } | |
105 $edit = [ | |
106 'fields[field_image][settings_edit_form][settings][responsive_image_style]' => 'style_one', | |
107 'fields[field_image][settings_edit_form][settings][image_link]' => 'content', | |
108 ]; | |
109 $this->drupalPostAjaxForm(NULL, $edit, "field_image_plugin_settings_update"); | |
110 | |
111 // Save the form to save the settings. | |
112 $this->drupalPostForm(NULL, [], t('Save')); | |
113 $this->assertText('Responsive image style: Style One'); | |
114 $this->assertText('Linked to content'); | |
115 | |
116 // Click on the formatter settings button to open the formatter settings | |
117 // form. | |
118 $this->drupalPostAjaxForm(NULL, [], "field_image_settings_edit"); | |
119 $edit = [ | |
120 'fields[field_image][settings_edit_form][settings][responsive_image_style]' => 'style_one', | |
121 'fields[field_image][settings_edit_form][settings][image_link]' => 'file', | |
122 ]; | |
123 $this->drupalPostAjaxForm(NULL, $edit, "field_image_plugin_settings_update"); | |
124 | |
125 // Save the form to save the third party settings. | |
126 $this->drupalPostForm(NULL, [], t('Save')); | |
127 $this->assertText('Responsive image style: Style One'); | |
128 $this->assertText('Linked to file'); | |
129 } | |
130 | |
131 } |