Chris@18
|
1 <?php
|
Chris@18
|
2
|
Chris@18
|
3 namespace Drupal\Tests\jsonapi\Functional;
|
Chris@18
|
4
|
Chris@18
|
5 use Drupal\Core\Entity\Entity\EntityViewDisplay;
|
Chris@18
|
6 use Drupal\Core\Url;
|
Chris@18
|
7 use Drupal\node\Entity\NodeType;
|
Chris@18
|
8
|
Chris@18
|
9 /**
|
Chris@18
|
10 * JSON:API integration test for the "EntityViewDisplay" config entity type.
|
Chris@18
|
11 *
|
Chris@18
|
12 * @group jsonapi
|
Chris@18
|
13 */
|
Chris@18
|
14 class EntityViewDisplayTest extends ResourceTestBase {
|
Chris@18
|
15
|
Chris@18
|
16 /**
|
Chris@18
|
17 * {@inheritdoc}
|
Chris@18
|
18 */
|
Chris@18
|
19 public static $modules = ['node'];
|
Chris@18
|
20
|
Chris@18
|
21 /**
|
Chris@18
|
22 * {@inheritdoc}
|
Chris@18
|
23 */
|
Chris@18
|
24 protected static $entityTypeId = 'entity_view_display';
|
Chris@18
|
25
|
Chris@18
|
26 /**
|
Chris@18
|
27 * {@inheritdoc}
|
Chris@18
|
28 */
|
Chris@18
|
29 protected static $resourceTypeName = 'entity_view_display--entity_view_display';
|
Chris@18
|
30
|
Chris@18
|
31 /**
|
Chris@18
|
32 * {@inheritdoc}
|
Chris@18
|
33 *
|
Chris@18
|
34 * @var \Drupal\Core\Entity\Display\EntityViewDisplayInterface
|
Chris@18
|
35 */
|
Chris@18
|
36 protected $entity;
|
Chris@18
|
37
|
Chris@18
|
38 /**
|
Chris@18
|
39 * {@inheritdoc}
|
Chris@18
|
40 */
|
Chris@18
|
41 protected function setUpAuthorization($method) {
|
Chris@18
|
42 $this->grantPermissionsToTestedRole(['administer node display']);
|
Chris@18
|
43 }
|
Chris@18
|
44
|
Chris@18
|
45 /**
|
Chris@18
|
46 * {@inheritdoc}
|
Chris@18
|
47 */
|
Chris@18
|
48 protected function createEntity() {
|
Chris@18
|
49 // Create a "Camelids" node type.
|
Chris@18
|
50 $camelids = NodeType::create([
|
Chris@18
|
51 'name' => 'Camelids',
|
Chris@18
|
52 'type' => 'camelids',
|
Chris@18
|
53 ]);
|
Chris@18
|
54 $camelids->save();
|
Chris@18
|
55
|
Chris@18
|
56 // Create a view display.
|
Chris@18
|
57 $view_display = EntityViewDisplay::create([
|
Chris@18
|
58 'targetEntityType' => 'node',
|
Chris@18
|
59 'bundle' => 'camelids',
|
Chris@18
|
60 'mode' => 'default',
|
Chris@18
|
61 'status' => TRUE,
|
Chris@18
|
62 ]);
|
Chris@18
|
63 $view_display->save();
|
Chris@18
|
64
|
Chris@18
|
65 return $view_display;
|
Chris@18
|
66 }
|
Chris@18
|
67
|
Chris@18
|
68 /**
|
Chris@18
|
69 * {@inheritdoc}
|
Chris@18
|
70 */
|
Chris@18
|
71 protected function getExpectedDocument() {
|
Chris@18
|
72 $self_url = Url::fromUri('base:/jsonapi/entity_view_display/entity_view_display/' . $this->entity->uuid())->setAbsolute()->toString(TRUE)->getGeneratedUrl();
|
Chris@18
|
73 return [
|
Chris@18
|
74 'jsonapi' => [
|
Chris@18
|
75 'meta' => [
|
Chris@18
|
76 'links' => [
|
Chris@18
|
77 'self' => ['href' => 'http://jsonapi.org/format/1.0/'],
|
Chris@18
|
78 ],
|
Chris@18
|
79 ],
|
Chris@18
|
80 'version' => '1.0',
|
Chris@18
|
81 ],
|
Chris@18
|
82 'links' => [
|
Chris@18
|
83 'self' => ['href' => $self_url],
|
Chris@18
|
84 ],
|
Chris@18
|
85 'data' => [
|
Chris@18
|
86 'id' => $this->entity->uuid(),
|
Chris@18
|
87 'type' => 'entity_view_display--entity_view_display',
|
Chris@18
|
88 'links' => [
|
Chris@18
|
89 'self' => ['href' => $self_url],
|
Chris@18
|
90 ],
|
Chris@18
|
91 'attributes' => [
|
Chris@18
|
92 'bundle' => 'camelids',
|
Chris@18
|
93 'content' => [
|
Chris@18
|
94 'links' => [
|
Chris@18
|
95 'region' => 'content',
|
Chris@18
|
96 'weight' => 100,
|
Chris@18
|
97 'settings' => [],
|
Chris@18
|
98 'third_party_settings' => [],
|
Chris@18
|
99 ],
|
Chris@18
|
100 ],
|
Chris@18
|
101 'dependencies' => [
|
Chris@18
|
102 'config' => [
|
Chris@18
|
103 'node.type.camelids',
|
Chris@18
|
104 ],
|
Chris@18
|
105 'module' => [
|
Chris@18
|
106 'user',
|
Chris@18
|
107 ],
|
Chris@18
|
108 ],
|
Chris@18
|
109 'hidden' => [],
|
Chris@18
|
110 'langcode' => 'en',
|
Chris@18
|
111 'mode' => 'default',
|
Chris@18
|
112 'status' => TRUE,
|
Chris@18
|
113 'targetEntityType' => 'node',
|
Chris@18
|
114 'drupal_internal__id' => 'node.camelids.default',
|
Chris@18
|
115 ],
|
Chris@18
|
116 ],
|
Chris@18
|
117 ];
|
Chris@18
|
118 }
|
Chris@18
|
119
|
Chris@18
|
120 /**
|
Chris@18
|
121 * {@inheritdoc}
|
Chris@18
|
122 */
|
Chris@18
|
123 protected function getPostDocument() {
|
Chris@18
|
124 // @todo Update in https://www.drupal.org/node/2300677.
|
Chris@18
|
125 }
|
Chris@18
|
126
|
Chris@18
|
127 /**
|
Chris@18
|
128 * {@inheritdoc}
|
Chris@18
|
129 */
|
Chris@18
|
130 protected function getExpectedUnauthorizedAccessMessage($method) {
|
Chris@18
|
131 return "The 'administer node display' permission is required.";
|
Chris@18
|
132 }
|
Chris@18
|
133
|
Chris@18
|
134 /**
|
Chris@18
|
135 * {@inheritdoc}
|
Chris@18
|
136 */
|
Chris@18
|
137 protected function createAnotherEntity($key) {
|
Chris@18
|
138 NodeType::create([
|
Chris@18
|
139 'name' => 'Pachyderms',
|
Chris@18
|
140 'type' => 'pachyderms',
|
Chris@18
|
141 ])->save();
|
Chris@18
|
142
|
Chris@18
|
143 $entity = EntityViewDisplay::create([
|
Chris@18
|
144 'targetEntityType' => 'node',
|
Chris@18
|
145 'bundle' => 'pachyderms',
|
Chris@18
|
146 'mode' => 'default',
|
Chris@18
|
147 'status' => TRUE,
|
Chris@18
|
148 ]);
|
Chris@18
|
149 $entity->save();
|
Chris@18
|
150
|
Chris@18
|
151 return $entity;
|
Chris@18
|
152 }
|
Chris@18
|
153
|
Chris@18
|
154 }
|