Chris@16
|
1 <?php
|
Chris@16
|
2
|
Chris@16
|
3 namespace Drupal\FunctionalTests\Rest;
|
Chris@16
|
4
|
Chris@16
|
5 use Drupal\Core\Field\Entity\BaseFieldOverride;
|
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 BaseFieldOverrideResourceTestBase extends EntityResourceTestBase {
|
Chris@16
|
10
|
Chris@16
|
11 /**
|
Chris@16
|
12 * {@inheritdoc}
|
Chris@16
|
13 */
|
Chris@16
|
14 public static $modules = ['field', 'node'];
|
Chris@16
|
15
|
Chris@16
|
16 /**
|
Chris@16
|
17 * {@inheritdoc}
|
Chris@16
|
18 */
|
Chris@16
|
19 protected static $entityTypeId = 'base_field_override';
|
Chris@16
|
20
|
Chris@16
|
21 /**
|
Chris@16
|
22 * @var \Drupal\Core\Field\Entity\BaseFieldOverride
|
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 fields']);
|
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 $camelids = NodeType::create([
|
Chris@16
|
38 'name' => 'Camelids',
|
Chris@16
|
39 'type' => 'camelids',
|
Chris@16
|
40 ]);
|
Chris@16
|
41 $camelids->save();
|
Chris@16
|
42
|
Chris@16
|
43 $entity = BaseFieldOverride::create([
|
Chris@16
|
44 'field_name' => 'promote',
|
Chris@16
|
45 'entity_type' => 'node',
|
Chris@16
|
46 'bundle' => 'camelids',
|
Chris@16
|
47 ]);
|
Chris@16
|
48 $entity->save();
|
Chris@16
|
49
|
Chris@16
|
50 return $entity;
|
Chris@16
|
51 }
|
Chris@16
|
52
|
Chris@16
|
53 /**
|
Chris@16
|
54 * {@inheritdoc}
|
Chris@16
|
55 */
|
Chris@16
|
56 protected function getExpectedNormalizedEntity() {
|
Chris@16
|
57 return [
|
Chris@16
|
58 'bundle' => 'camelids',
|
Chris@16
|
59 'default_value' => [],
|
Chris@16
|
60 'default_value_callback' => '',
|
Chris@16
|
61 'dependencies' => [
|
Chris@16
|
62 'config' => [
|
Chris@16
|
63 'node.type.camelids',
|
Chris@16
|
64 ],
|
Chris@16
|
65 ],
|
Chris@16
|
66 'description' => '',
|
Chris@16
|
67 'entity_type' => 'node',
|
Chris@16
|
68 'field_name' => 'promote',
|
Chris@16
|
69 'field_type' => 'boolean',
|
Chris@16
|
70 'id' => 'node.camelids.promote',
|
Chris@16
|
71 'label' => NULL,
|
Chris@16
|
72 'langcode' => 'en',
|
Chris@16
|
73 'required' => FALSE,
|
Chris@16
|
74 'settings' => [
|
Chris@16
|
75 'on_label' => 'On',
|
Chris@16
|
76 'off_label' => 'Off',
|
Chris@16
|
77 ],
|
Chris@16
|
78 'status' => TRUE,
|
Chris@16
|
79 'translatable' => TRUE,
|
Chris@16
|
80 'uuid' => $this->entity->uuid(),
|
Chris@16
|
81 ];
|
Chris@16
|
82 }
|
Chris@16
|
83
|
Chris@16
|
84 /**
|
Chris@16
|
85 * {@inheritdoc}
|
Chris@16
|
86 */
|
Chris@16
|
87 protected function getNormalizedPostEntity() {
|
Chris@16
|
88 // @todo Update in https://www.drupal.org/node/2300677.
|
Chris@16
|
89 }
|
Chris@16
|
90
|
Chris@16
|
91 /**
|
Chris@16
|
92 * {@inheritdoc}
|
Chris@16
|
93 */
|
Chris@16
|
94 protected function getExpectedCacheContexts() {
|
Chris@16
|
95 return [
|
Chris@16
|
96 'user.permissions',
|
Chris@16
|
97 ];
|
Chris@16
|
98 }
|
Chris@16
|
99
|
Chris@16
|
100 /**
|
Chris@16
|
101 * {@inheritdoc}
|
Chris@16
|
102 */
|
Chris@16
|
103 protected function getExpectedUnauthorizedAccessMessage($method) {
|
Chris@16
|
104 if ($this->config('rest.settings')->get('bc_entity_resource_permissions')) {
|
Chris@16
|
105 return parent::getExpectedUnauthorizedAccessMessage($method);
|
Chris@16
|
106 }
|
Chris@16
|
107
|
Chris@16
|
108 return "The 'administer node fields' permission is required.";
|
Chris@16
|
109 }
|
Chris@16
|
110
|
Chris@16
|
111 }
|