Chris@16
|
1 <?php
|
Chris@16
|
2
|
Chris@16
|
3 namespace Drupal\FunctionalTests\Rest;
|
Chris@16
|
4
|
Chris@16
|
5 use Drupal\Core\Entity\Entity\EntityFormDisplay;
|
Chris@16
|
6 use Drupal\node\Entity\NodeType;
|
Chris@16
|
7 use Drupal\Tests\rest\Functional\EntityResource\EntityResourceTestBase;
|
Chris@16
|
8
|
Chris@16
|
9 abstract class EntityFormDisplayResourceTestBase extends EntityResourceTestBase {
|
Chris@16
|
10
|
Chris@16
|
11 /**
|
Chris@16
|
12 * {@inheritdoc}
|
Chris@16
|
13 */
|
Chris@16
|
14 public static $modules = ['node'];
|
Chris@16
|
15
|
Chris@16
|
16 /**
|
Chris@16
|
17 * {@inheritdoc}
|
Chris@16
|
18 */
|
Chris@16
|
19 protected static $entityTypeId = 'entity_form_display';
|
Chris@16
|
20
|
Chris@16
|
21 /**
|
Chris@16
|
22 * @var \Drupal\Core\Entity\Display\EntityFormDisplayInterface
|
Chris@16
|
23 */
|
Chris@16
|
24 protected $entity;
|
Chris@16
|
25
|
Chris@16
|
26 /**
|
Chris@16
|
27 * {@inheritdoc}
|
Chris@16
|
28 */
|
Chris@16
|
29 protected function setUpAuthorization($method) {
|
Chris@16
|
30 $this->grantPermissionsToTestedRole(['administer node form display']);
|
Chris@16
|
31 }
|
Chris@16
|
32
|
Chris@16
|
33 /**
|
Chris@16
|
34 * {@inheritdoc}
|
Chris@16
|
35 */
|
Chris@16
|
36 protected function createEntity() {
|
Chris@16
|
37 // Create a "Camelids" node type.
|
Chris@16
|
38 $camelids = NodeType::create([
|
Chris@16
|
39 'name' => 'Camelids',
|
Chris@16
|
40 'type' => 'camelids',
|
Chris@16
|
41 ]);
|
Chris@16
|
42
|
Chris@16
|
43 $camelids->save();
|
Chris@16
|
44
|
Chris@16
|
45 // Create a form display.
|
Chris@16
|
46 $form_display = EntityFormDisplay::create([
|
Chris@16
|
47 'targetEntityType' => 'node',
|
Chris@16
|
48 'bundle' => 'camelids',
|
Chris@16
|
49 'mode' => 'default',
|
Chris@16
|
50 ]);
|
Chris@16
|
51 $form_display->save();
|
Chris@16
|
52
|
Chris@16
|
53 return $form_display;
|
Chris@16
|
54 }
|
Chris@16
|
55
|
Chris@16
|
56 /**
|
Chris@16
|
57 * {@inheritdoc}
|
Chris@16
|
58 */
|
Chris@16
|
59 protected function getExpectedNormalizedEntity() {
|
Chris@16
|
60 return [
|
Chris@16
|
61 'bundle' => 'camelids',
|
Chris@16
|
62 'content' => [
|
Chris@16
|
63 'created' => [
|
Chris@16
|
64 'type' => 'datetime_timestamp',
|
Chris@16
|
65 'weight' => 10,
|
Chris@16
|
66 'region' => 'content',
|
Chris@16
|
67 'settings' => [],
|
Chris@16
|
68 'third_party_settings' => [],
|
Chris@16
|
69 ],
|
Chris@16
|
70 'promote' => [
|
Chris@16
|
71 'type' => 'boolean_checkbox',
|
Chris@16
|
72 'settings' => [
|
Chris@16
|
73 'display_label' => TRUE,
|
Chris@16
|
74 ],
|
Chris@16
|
75 'weight' => 15,
|
Chris@16
|
76 'region' => 'content',
|
Chris@16
|
77 'third_party_settings' => [],
|
Chris@16
|
78 ],
|
Chris@16
|
79 'status' => [
|
Chris@16
|
80 'type' => 'boolean_checkbox',
|
Chris@16
|
81 'weight' => 120,
|
Chris@16
|
82 'region' => 'content',
|
Chris@16
|
83 'settings' => [
|
Chris@16
|
84 'display_label' => TRUE,
|
Chris@16
|
85 ],
|
Chris@16
|
86 'third_party_settings' => [],
|
Chris@16
|
87 ],
|
Chris@16
|
88 'sticky' => [
|
Chris@16
|
89 'type' => 'boolean_checkbox',
|
Chris@16
|
90 'settings' => [
|
Chris@16
|
91 'display_label' => TRUE,
|
Chris@16
|
92 ],
|
Chris@16
|
93 'weight' => 16,
|
Chris@16
|
94 'region' => 'content',
|
Chris@16
|
95 'third_party_settings' => [],
|
Chris@16
|
96 ],
|
Chris@16
|
97 'title' => [
|
Chris@16
|
98 'type' => 'string_textfield',
|
Chris@16
|
99 'weight' => -5,
|
Chris@16
|
100 'region' => 'content',
|
Chris@16
|
101 'settings' => [
|
Chris@16
|
102 'size' => 60,
|
Chris@16
|
103 'placeholder' => '',
|
Chris@16
|
104 ],
|
Chris@16
|
105 'third_party_settings' => [],
|
Chris@16
|
106 ],
|
Chris@16
|
107 'uid' => [
|
Chris@16
|
108 'type' => 'entity_reference_autocomplete',
|
Chris@16
|
109 'weight' => 5,
|
Chris@16
|
110 'settings' => [
|
Chris@16
|
111 'match_operator' => 'CONTAINS',
|
Chris@16
|
112 'size' => 60,
|
Chris@16
|
113 'placeholder' => '',
|
Chris@16
|
114 ],
|
Chris@16
|
115 'region' => 'content',
|
Chris@16
|
116 'third_party_settings' => [],
|
Chris@16
|
117 ],
|
Chris@16
|
118 ],
|
Chris@16
|
119 'dependencies' => [
|
Chris@16
|
120 'config' => [
|
Chris@16
|
121 'node.type.camelids',
|
Chris@16
|
122 ],
|
Chris@16
|
123 ],
|
Chris@16
|
124 'hidden' => [],
|
Chris@16
|
125 'id' => 'node.camelids.default',
|
Chris@16
|
126 'langcode' => 'en',
|
Chris@16
|
127 'mode' => 'default',
|
Chris@16
|
128 'status' => NULL,
|
Chris@16
|
129 'targetEntityType' => 'node',
|
Chris@16
|
130 'uuid' => $this->entity->uuid(),
|
Chris@16
|
131 ];
|
Chris@16
|
132 }
|
Chris@16
|
133
|
Chris@16
|
134 /**
|
Chris@16
|
135 * {@inheritdoc}
|
Chris@16
|
136 */
|
Chris@16
|
137 protected function getNormalizedPostEntity() {
|
Chris@16
|
138 // @todo Update in https://www.drupal.org/node/2300677.
|
Chris@16
|
139 }
|
Chris@16
|
140
|
Chris@16
|
141 /**
|
Chris@16
|
142 * {@inheritdoc}
|
Chris@16
|
143 */
|
Chris@16
|
144 protected function getExpectedCacheContexts() {
|
Chris@16
|
145 return [
|
Chris@16
|
146 'user.permissions',
|
Chris@16
|
147 ];
|
Chris@16
|
148 }
|
Chris@16
|
149
|
Chris@16
|
150 /**
|
Chris@16
|
151 * {@inheritdoc}
|
Chris@16
|
152 */
|
Chris@16
|
153 protected function getExpectedUnauthorizedAccessMessage($method) {
|
Chris@16
|
154 if ($this->config('rest.settings')->get('bc_entity_resource_permissions')) {
|
Chris@16
|
155 return parent::getExpectedUnauthorizedAccessMessage($method);
|
Chris@16
|
156 }
|
Chris@16
|
157
|
Chris@16
|
158 return "The 'administer node form display' permission is required.";
|
Chris@16
|
159 }
|
Chris@16
|
160
|
Chris@16
|
161 }
|