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\system\Entity\Action;
|
Chris@18
|
7 use Drupal\user\RoleInterface;
|
Chris@18
|
8
|
Chris@18
|
9 /**
|
Chris@18
|
10 * JSON:API integration test for the "Action" config entity type.
|
Chris@18
|
11 *
|
Chris@18
|
12 * @group jsonapi
|
Chris@18
|
13 */
|
Chris@18
|
14 class ActionTest extends ResourceTestBase {
|
Chris@18
|
15
|
Chris@18
|
16 /**
|
Chris@18
|
17 * {@inheritdoc}
|
Chris@18
|
18 */
|
Chris@18
|
19 public static $modules = ['user'];
|
Chris@18
|
20
|
Chris@18
|
21 /**
|
Chris@18
|
22 * {@inheritdoc}
|
Chris@18
|
23 */
|
Chris@18
|
24 protected static $entityTypeId = 'action';
|
Chris@18
|
25
|
Chris@18
|
26 /**
|
Chris@18
|
27 * {@inheritdoc}
|
Chris@18
|
28 */
|
Chris@18
|
29 protected static $resourceTypeName = 'action--action';
|
Chris@18
|
30
|
Chris@18
|
31 /**
|
Chris@18
|
32 * {@inheritdoc}
|
Chris@18
|
33 *
|
Chris@18
|
34 * @var \Drupal\system\ActionConfigEntityInterface
|
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 actions']);
|
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 $action = Action::create([
|
Chris@18
|
50 'id' => 'user_add_role_action.' . RoleInterface::ANONYMOUS_ID,
|
Chris@18
|
51 'type' => 'user',
|
Chris@18
|
52 'label' => t('Add the anonymous role to the selected users'),
|
Chris@18
|
53 'configuration' => [
|
Chris@18
|
54 'rid' => RoleInterface::ANONYMOUS_ID,
|
Chris@18
|
55 ],
|
Chris@18
|
56 'plugin' => 'user_add_role_action',
|
Chris@18
|
57 ]);
|
Chris@18
|
58 $action->save();
|
Chris@18
|
59
|
Chris@18
|
60 return $action;
|
Chris@18
|
61 }
|
Chris@18
|
62
|
Chris@18
|
63 /**
|
Chris@18
|
64 * {@inheritdoc}
|
Chris@18
|
65 */
|
Chris@18
|
66 protected function getExpectedDocument() {
|
Chris@18
|
67 $self_url = Url::fromUri('base:/jsonapi/action/action/' . $this->entity->uuid())->setAbsolute()->toString(TRUE)->getGeneratedUrl();
|
Chris@18
|
68 return [
|
Chris@18
|
69 'jsonapi' => [
|
Chris@18
|
70 'meta' => [
|
Chris@18
|
71 'links' => [
|
Chris@18
|
72 'self' => ['href' => 'http://jsonapi.org/format/1.0/'],
|
Chris@18
|
73 ],
|
Chris@18
|
74 ],
|
Chris@18
|
75 'version' => '1.0',
|
Chris@18
|
76 ],
|
Chris@18
|
77 'links' => [
|
Chris@18
|
78 'self' => ['href' => $self_url],
|
Chris@18
|
79 ],
|
Chris@18
|
80 'data' => [
|
Chris@18
|
81 'id' => $this->entity->uuid(),
|
Chris@18
|
82 'type' => 'action--action',
|
Chris@18
|
83 'links' => [
|
Chris@18
|
84 'self' => ['href' => $self_url],
|
Chris@18
|
85 ],
|
Chris@18
|
86 'attributes' => [
|
Chris@18
|
87 'configuration' => [
|
Chris@18
|
88 'rid' => 'anonymous',
|
Chris@18
|
89 ],
|
Chris@18
|
90 'dependencies' => [
|
Chris@18
|
91 'config' => ['user.role.anonymous'],
|
Chris@18
|
92 'module' => ['user'],
|
Chris@18
|
93 ],
|
Chris@18
|
94 'label' => 'Add the anonymous role to the selected users',
|
Chris@18
|
95 'langcode' => 'en',
|
Chris@18
|
96 'plugin' => 'user_add_role_action',
|
Chris@18
|
97 'status' => TRUE,
|
Chris@18
|
98 'action_type' => 'user',
|
Chris@18
|
99 'drupal_internal__id' => 'user_add_role_action.anonymous',
|
Chris@18
|
100 ],
|
Chris@18
|
101 ],
|
Chris@18
|
102 ];
|
Chris@18
|
103 }
|
Chris@18
|
104
|
Chris@18
|
105 /**
|
Chris@18
|
106 * {@inheritdoc}
|
Chris@18
|
107 */
|
Chris@18
|
108 protected function getPostDocument() {
|
Chris@18
|
109 // @todo Update in https://www.drupal.org/node/2300677.
|
Chris@18
|
110 }
|
Chris@18
|
111
|
Chris@18
|
112 }
|