Chris@18
|
1 <?php
|
Chris@18
|
2
|
Chris@18
|
3 namespace Drupal\Tests\jsonapi\Functional;
|
Chris@18
|
4
|
Chris@18
|
5 use Drupal\Core\Url;
|
Chris@18
|
6 use Drupal\responsive_image\Entity\ResponsiveImageStyle;
|
Chris@18
|
7
|
Chris@18
|
8 /**
|
Chris@18
|
9 * JSON:API integration test for the "ResponsiveImageStyle" config entity type.
|
Chris@18
|
10 *
|
Chris@18
|
11 * @group jsonapi
|
Chris@18
|
12 */
|
Chris@18
|
13 class ResponsiveImageStyleTest extends ResourceTestBase {
|
Chris@18
|
14
|
Chris@18
|
15 /**
|
Chris@18
|
16 * {@inheritdoc}
|
Chris@18
|
17 */
|
Chris@18
|
18 public static $modules = ['responsive_image'];
|
Chris@18
|
19
|
Chris@18
|
20 /**
|
Chris@18
|
21 * {@inheritdoc}
|
Chris@18
|
22 */
|
Chris@18
|
23 protected static $entityTypeId = 'responsive_image_style';
|
Chris@18
|
24
|
Chris@18
|
25 /**
|
Chris@18
|
26 * {@inheritdoc}
|
Chris@18
|
27 */
|
Chris@18
|
28 protected static $resourceTypeName = 'responsive_image_style--responsive_image_style';
|
Chris@18
|
29
|
Chris@18
|
30 /**
|
Chris@18
|
31 * {@inheritdoc}
|
Chris@18
|
32 *
|
Chris@18
|
33 * @var \Drupal\responsive_image\ResponsiveImageStyleInterface
|
Chris@18
|
34 */
|
Chris@18
|
35 protected $entity;
|
Chris@18
|
36
|
Chris@18
|
37 /**
|
Chris@18
|
38 * {@inheritdoc}
|
Chris@18
|
39 */
|
Chris@18
|
40 protected function setUpAuthorization($method) {
|
Chris@18
|
41 $this->grantPermissionsToTestedRole(['administer responsive images']);
|
Chris@18
|
42 }
|
Chris@18
|
43
|
Chris@18
|
44 /**
|
Chris@18
|
45 * {@inheritdoc}
|
Chris@18
|
46 */
|
Chris@18
|
47 protected function createEntity() {
|
Chris@18
|
48 // Create a "Camelids" responsive image style.
|
Chris@18
|
49 $camelids = ResponsiveImageStyle::create([
|
Chris@18
|
50 'id' => 'camelids',
|
Chris@18
|
51 'label' => 'Camelids',
|
Chris@18
|
52 ]);
|
Chris@18
|
53 $camelids->setBreakpointGroup('test_group');
|
Chris@18
|
54 $camelids->setFallbackImageStyle('fallback');
|
Chris@18
|
55 $camelids->addImageStyleMapping('test_breakpoint', '1x', [
|
Chris@18
|
56 'image_mapping_type' => 'image_style',
|
Chris@18
|
57 'image_mapping' => 'small',
|
Chris@18
|
58 ]);
|
Chris@18
|
59 $camelids->addImageStyleMapping('test_breakpoint', '2x', [
|
Chris@18
|
60 'image_mapping_type' => 'sizes',
|
Chris@18
|
61 'image_mapping' => [
|
Chris@18
|
62 'sizes' => '(min-width:700px) 700px, 100vw',
|
Chris@18
|
63 'sizes_image_styles' => [
|
Chris@18
|
64 'medium' => 'medium',
|
Chris@18
|
65 'large' => 'large',
|
Chris@18
|
66 ],
|
Chris@18
|
67 ],
|
Chris@18
|
68 ]);
|
Chris@18
|
69 $camelids->save();
|
Chris@18
|
70
|
Chris@18
|
71 return $camelids;
|
Chris@18
|
72 }
|
Chris@18
|
73
|
Chris@18
|
74 /**
|
Chris@18
|
75 * {@inheritdoc}
|
Chris@18
|
76 */
|
Chris@18
|
77 protected function getExpectedDocument() {
|
Chris@18
|
78 $self_url = Url::fromUri('base:/jsonapi/responsive_image_style/responsive_image_style/' . $this->entity->uuid())->setAbsolute()->toString(TRUE)->getGeneratedUrl();
|
Chris@18
|
79 return [
|
Chris@18
|
80 'jsonapi' => [
|
Chris@18
|
81 'meta' => [
|
Chris@18
|
82 'links' => [
|
Chris@18
|
83 'self' => ['href' => 'http://jsonapi.org/format/1.0/'],
|
Chris@18
|
84 ],
|
Chris@18
|
85 ],
|
Chris@18
|
86 'version' => '1.0',
|
Chris@18
|
87 ],
|
Chris@18
|
88 'links' => [
|
Chris@18
|
89 'self' => ['href' => $self_url],
|
Chris@18
|
90 ],
|
Chris@18
|
91 'data' => [
|
Chris@18
|
92 'id' => $this->entity->uuid(),
|
Chris@18
|
93 'type' => 'responsive_image_style--responsive_image_style',
|
Chris@18
|
94 'links' => [
|
Chris@18
|
95 'self' => ['href' => $self_url],
|
Chris@18
|
96 ],
|
Chris@18
|
97 'attributes' => [
|
Chris@18
|
98 'breakpoint_group' => 'test_group',
|
Chris@18
|
99 'dependencies' => [
|
Chris@18
|
100 'config' => [
|
Chris@18
|
101 'image.style.large',
|
Chris@18
|
102 'image.style.medium',
|
Chris@18
|
103 ],
|
Chris@18
|
104 ],
|
Chris@18
|
105 'fallback_image_style' => 'fallback',
|
Chris@18
|
106 'image_style_mappings' => [
|
Chris@18
|
107 0 => [
|
Chris@18
|
108 'breakpoint_id' => 'test_breakpoint',
|
Chris@18
|
109 'image_mapping' => 'small',
|
Chris@18
|
110 'image_mapping_type' => 'image_style',
|
Chris@18
|
111 'multiplier' => '1x',
|
Chris@18
|
112 ],
|
Chris@18
|
113 1 => [
|
Chris@18
|
114 'breakpoint_id' => 'test_breakpoint',
|
Chris@18
|
115 'image_mapping' => [
|
Chris@18
|
116 'sizes' => '(min-width:700px) 700px, 100vw',
|
Chris@18
|
117 'sizes_image_styles' => [
|
Chris@18
|
118 'large' => 'large',
|
Chris@18
|
119 'medium' => 'medium',
|
Chris@18
|
120 ],
|
Chris@18
|
121 ],
|
Chris@18
|
122 'image_mapping_type' => 'sizes',
|
Chris@18
|
123 'multiplier' => '2x',
|
Chris@18
|
124 ],
|
Chris@18
|
125 ],
|
Chris@18
|
126 'label' => 'Camelids',
|
Chris@18
|
127 'langcode' => 'en',
|
Chris@18
|
128 'status' => TRUE,
|
Chris@18
|
129 'drupal_internal__id' => 'camelids',
|
Chris@18
|
130 ],
|
Chris@18
|
131 ],
|
Chris@18
|
132 ];
|
Chris@18
|
133 }
|
Chris@18
|
134
|
Chris@18
|
135 /**
|
Chris@18
|
136 * {@inheritdoc}
|
Chris@18
|
137 */
|
Chris@18
|
138 protected function getPostDocument() {
|
Chris@18
|
139 // @todo Update in https://www.drupal.org/node/2300677.
|
Chris@18
|
140 }
|
Chris@18
|
141
|
Chris@18
|
142 }
|