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\EntityViewDisplay;
|
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 EntityViewDisplayResourceTestBase 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_view_display';
|
Chris@16
|
20
|
Chris@16
|
21 /**
|
Chris@16
|
22 * {@inheritdoc}
|
Chris@16
|
23 */
|
Chris@16
|
24 protected static $patchProtectedFieldNames = [];
|
Chris@16
|
25
|
Chris@16
|
26 /**
|
Chris@16
|
27 * @var \Drupal\Core\Entity\Display\EntityViewDisplayInterface
|
Chris@16
|
28 */
|
Chris@16
|
29 protected $entity;
|
Chris@16
|
30
|
Chris@16
|
31 /**
|
Chris@16
|
32 * {@inheritdoc}
|
Chris@16
|
33 */
|
Chris@16
|
34 protected function setUpAuthorization($method) {
|
Chris@16
|
35 $this->grantPermissionsToTestedRole(['administer node display']);
|
Chris@16
|
36 }
|
Chris@16
|
37
|
Chris@16
|
38 /**
|
Chris@16
|
39 * {@inheritdoc}
|
Chris@16
|
40 */
|
Chris@16
|
41 protected function createEntity() {
|
Chris@16
|
42 // Create a "Camelids" node type.
|
Chris@16
|
43 $camelids = NodeType::create([
|
Chris@16
|
44 'name' => 'Camelids',
|
Chris@16
|
45 'type' => 'camelids',
|
Chris@16
|
46 ]);
|
Chris@16
|
47 $camelids->save();
|
Chris@16
|
48
|
Chris@16
|
49 // Create a view display.
|
Chris@16
|
50 $view_display = EntityViewDisplay::create([
|
Chris@16
|
51 'targetEntityType' => 'node',
|
Chris@16
|
52 'bundle' => 'camelids',
|
Chris@16
|
53 'mode' => 'default',
|
Chris@16
|
54 'status' => TRUE,
|
Chris@16
|
55 ]);
|
Chris@16
|
56 $view_display->save();
|
Chris@16
|
57
|
Chris@16
|
58 return $view_display;
|
Chris@16
|
59 }
|
Chris@16
|
60
|
Chris@16
|
61 /**
|
Chris@16
|
62 * {@inheritdoc}
|
Chris@16
|
63 */
|
Chris@16
|
64 protected function getExpectedNormalizedEntity() {
|
Chris@16
|
65 return [
|
Chris@16
|
66 'bundle' => 'camelids',
|
Chris@16
|
67 'content' => [
|
Chris@16
|
68 'links' => [
|
Chris@16
|
69 'region' => 'content',
|
Chris@16
|
70 'weight' => 100,
|
Chris@16
|
71 ],
|
Chris@16
|
72 ],
|
Chris@16
|
73 'dependencies' => [
|
Chris@16
|
74 'config' => [
|
Chris@16
|
75 'node.type.camelids',
|
Chris@16
|
76 ],
|
Chris@16
|
77 'module' => [
|
Chris@16
|
78 'user',
|
Chris@16
|
79 ],
|
Chris@16
|
80 ],
|
Chris@16
|
81 'hidden' => [],
|
Chris@16
|
82 'id' => 'node.camelids.default',
|
Chris@16
|
83 'langcode' => 'en',
|
Chris@16
|
84 'mode' => 'default',
|
Chris@16
|
85 'status' => TRUE,
|
Chris@16
|
86 'targetEntityType' => 'node',
|
Chris@16
|
87 'uuid' => $this->entity->uuid(),
|
Chris@16
|
88 ];
|
Chris@16
|
89 }
|
Chris@16
|
90
|
Chris@16
|
91 /**
|
Chris@16
|
92 * {@inheritdoc}
|
Chris@16
|
93 */
|
Chris@16
|
94 protected function getNormalizedPostEntity() {
|
Chris@16
|
95 // @todo Update in https://www.drupal.org/node/2300677.
|
Chris@16
|
96 }
|
Chris@16
|
97
|
Chris@16
|
98 /**
|
Chris@16
|
99 * {@inheritdoc}
|
Chris@16
|
100 */
|
Chris@16
|
101 protected function getExpectedCacheContexts() {
|
Chris@16
|
102 return [
|
Chris@16
|
103 'user.permissions',
|
Chris@16
|
104 ];
|
Chris@16
|
105 }
|
Chris@16
|
106
|
Chris@16
|
107 /**
|
Chris@16
|
108 * {@inheritdoc}
|
Chris@16
|
109 */
|
Chris@16
|
110 protected function getExpectedUnauthorizedAccessMessage($method) {
|
Chris@16
|
111 if ($this->config('rest.settings')->get('bc_entity_resource_permissions')) {
|
Chris@16
|
112 return parent::getExpectedUnauthorizedAccessMessage($method);
|
Chris@16
|
113 }
|
Chris@16
|
114
|
Chris@16
|
115 return "The 'administer node display' permission is required.";
|
Chris@16
|
116 }
|
Chris@16
|
117
|
Chris@16
|
118 }
|