X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs-website;a=blobdiff_plain;f=web%2Fcore%2Fmodules%2Faggregator%2Ftests%2Fsrc%2FFunctional%2FRest%2FFeedResourceTestBase.php;fp=web%2Fcore%2Fmodules%2Faggregator%2Ftests%2Fsrc%2FFunctional%2FRest%2FFeedResourceTestBase.php;h=fefa75e1ff26ce2a77d081040f21f02d2341f35e;hp=0000000000000000000000000000000000000000;hb=0bf8d09d2542548982e81a441b1f16e75873a04f;hpb=74df008bdbb3a11eeea356744f39b802369bda3c diff --git a/web/core/modules/aggregator/tests/src/Functional/Rest/FeedResourceTestBase.php b/web/core/modules/aggregator/tests/src/Functional/Rest/FeedResourceTestBase.php new file mode 100644 index 000000000..fefa75e1f --- /dev/null +++ b/web/core/modules/aggregator/tests/src/Functional/Rest/FeedResourceTestBase.php @@ -0,0 +1,192 @@ +grantPermissionsToTestedRole(['access news feeds']); + break; + case 'POST': + case 'PATCH': + case 'DELETE': + $this->grantPermissionsToTestedRole(['administer news feeds']); + break; + } + } + + /** + * {@inheritdoc} + */ + public function createEntity() { + $feed = Feed::create(); + $feed->set('fid', 1) + ->set('uuid', 'abcdefg') + ->setTitle('Feed') + ->setUrl('http://example.com/rss.xml') + ->setDescription('Feed Resource Test 1') + ->setRefreshRate(900) + ->setLastCheckedTime(123456789) + ->setQueuedTime(123456789) + ->setWebsiteUrl('http://example.com') + ->setImage('http://example.com/feed_logo') + ->setHash('abcdefg') + ->setEtag('hijklmn') + ->setLastModified(123456789) + ->save(); + + return $feed; + } + + /** + * {@inheritdoc} + */ + protected function getExpectedNormalizedEntity() { + return [ + 'uuid' => [ + [ + 'value' => 'abcdefg', + ], + ], + 'fid' => [ + [ + 'value' => 1, + ], + ], + 'langcode' => [ + [ + 'value' => 'en', + ], + ], + 'url' => [ + [ + 'value' => 'http://example.com/rss.xml', + ], + ], + 'title' => [ + [ + 'value' => 'Feed', + ], + ], + 'refresh' => [ + [ + 'value' => 900, + ], + ], + 'checked' => [ + $this->formatExpectedTimestampItemValues(123456789), + ], + 'queued' => [ + $this->formatExpectedTimestampItemValues(123456789), + ], + 'link' => [ + [ + 'value' => 'http://example.com', + ], + ], + 'description' => [ + [ + 'value' => 'Feed Resource Test 1', + ], + ], + 'image' => [ + [ + 'value' => 'http://example.com/feed_logo', + ], + ], + 'hash' => [ + [ + 'value' => 'abcdefg', + ], + ], + 'etag' => [ + [ + 'value' => 'hijklmn', + ], + ], + 'modified' => [ + $this->formatExpectedTimestampItemValues(123456789), + ], + ]; + } + + /** + * {@inheritdoc} + */ + protected function getNormalizedPostEntity() { + return [ + 'title' => [ + [ + 'value' => 'Feed Resource Post Test', + ], + ], + 'url' => [ + [ + 'value' => 'http://example.com/feed', + ], + ], + 'refresh' => [ + [ + 'value' => 900, + ], + ], + 'description' => [ + [ + 'value' => 'Feed Resource Post Test Description', + ], + ], + ]; + } + + /** + * {@inheritdoc} + */ + protected function getExpectedUnauthorizedAccessMessage($method) { + if ($this->config('rest.settings')->get('bc_entity_resource_permissions')) { + return parent::getExpectedUnauthorizedAccessMessage($method); + } + + switch ($method) { + case 'GET': + return "The 'access news feeds' permission is required."; + case 'POST': + case 'PATCH': + case 'DELETE': + return "The 'administer news feeds' permission is required."; + default: + return parent::getExpectedUnauthorizedAccessMessage($method); + } + } + +}