f15a5e0554403c6cb524a616c54ed3fb5fb4f0bc
[yaffs-website] / web / core / modules / rest / tests / src / Functional / EntityResource / Feed / FeedResourceTestBase.php
1 <?php
2
3 namespace Drupal\Tests\rest\Functional\EntityResource\Feed;
4
5 use Drupal\Tests\rest\Functional\EntityResource\EntityTest\EntityTestResourceTestBase;
6 use Drupal\aggregator\Entity\Feed;
7
8 abstract class FeedResourceTestBase extends EntityTestResourceTestBase {
9
10   /**
11    * {@inheritdoc}
12    */
13   public static $modules = ['aggregator'];
14
15   /**
16    * {@inheritdoc}
17    */
18   public static $entityTypeId = 'aggregator_feed';
19
20   /**
21    * {@inheritdoc}
22    */
23   protected function setUpAuthorization($method) {
24     switch ($method) {
25       case 'GET':
26         $this->grantPermissionsToTestedRole(['access news feeds']);
27         break;
28       case 'POST':
29       case 'PATCH':
30       case 'DELETE':
31         $this->grantPermissionsToTestedRole(['administer news feeds']);
32         break;
33     }
34   }
35
36   /**
37    * {@inheritdoc}
38    */
39   public function createEntity() {
40     $feed = Feed::create();
41     $feed->set('fid', 1)
42       ->set('uuid', 'abcdefg')
43       ->setTitle('Feed')
44       ->setUrl('http://example.com/rss.xml')
45       ->setDescription('Feed Resource Test 1')
46       ->setRefreshRate(900)
47       ->setLastCheckedTime(123456789)
48       ->setQueuedTime(123456789)
49       ->setWebsiteUrl('http://example.com')
50       ->setImage('http://example.com/feed_logo')
51       ->setHash('abcdefg')
52       ->setEtag('hijklmn')
53       ->setLastModified(123456789)
54       ->save();
55
56     return $feed;
57   }
58
59   /**
60    * {@inheritdoc}
61    */
62   protected function getExpectedNormalizedEntity() {
63     return [
64       'uuid' => [
65         [
66           'value' => 'abcdefg'
67         ]
68       ],
69       'fid' => [
70         [
71           'value' => 1
72         ]
73       ],
74       'langcode' => [
75         [
76           'value' => 'en'
77         ]
78       ],
79       'url' => [
80         [
81           'value' => 'http://example.com/rss.xml'
82         ]
83       ],
84       'title' => [
85         [
86           'value' => 'Feed'
87         ]
88       ],
89       'refresh' => [
90         [
91           'value' => 900
92         ]
93       ],
94       'checked' => [
95         [
96           'value' => 123456789
97         ]
98       ],
99       'queued' => [
100         [
101           'value' => 123456789
102         ]
103       ],
104       'link' => [
105         [
106           'value' => 'http://example.com'
107         ]
108       ],
109       'description' => [
110         [
111           'value' => 'Feed Resource Test 1'
112         ]
113       ],
114       'image' => [
115         [
116           'value' => 'http://example.com/feed_logo'
117         ]
118       ],
119       'hash' => [
120         [
121           'value' => 'abcdefg'
122         ]
123       ],
124       'etag' => [
125         [
126           'value' => 'hijklmn'
127         ]
128       ],
129       'modified' => [
130         [
131           'value' => 123456789
132         ]
133       ],
134     ];
135   }
136
137   /**
138    * {@inheritdoc}
139    */
140   protected function getNormalizedPostEntity() {
141     return [
142       'title' => [
143         [
144           'value' => 'Feed Resource Post Test'
145         ]
146       ],
147       'url' => [
148         [
149           'value' => 'http://example.com/feed'
150         ]
151       ],
152       'refresh' => [
153         [
154           'value' => 900
155         ]
156       ],
157       'description' => [
158         [
159           'value' => 'Feed Resource Post Test Description'
160         ]
161       ],
162     ];
163   }
164
165   /**
166    * {@inheritdoc}
167    */
168   protected function getExpectedUnauthorizedAccessMessage($method) {
169     if ($this->config('rest.settings')->get('bc_entity_resource_permissions')) {
170       return parent::getExpectedUnauthorizedAccessMessage($method);
171     }
172
173     switch ($method) {
174       case 'GET':
175         return "The 'access news feeds' permission is required.";
176       case 'POST':
177       case 'PATCH':
178       case 'DELETE':
179         return "The 'administer news feeds' permission is required.";
180       default:
181         return parent::getExpectedUnauthorizedAccessMessage($method);
182     }
183   }
184
185 }