Mercurial > hg > cmmr2012-drupal-site
diff core/tests/Drupal/FunctionalTests/Rest/BaseFieldOverrideResourceTestBase.php @ 0:c75dbcec494b
Initial commit from drush-created site
author | Chris Cannam |
---|---|
date | Thu, 05 Jul 2018 14:24:15 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/core/tests/Drupal/FunctionalTests/Rest/BaseFieldOverrideResourceTestBase.php Thu Jul 05 14:24:15 2018 +0000 @@ -0,0 +1,111 @@ +<?php + +namespace Drupal\FunctionalTests\Rest; + +use Drupal\Core\Field\Entity\BaseFieldOverride; +use Drupal\node\Entity\NodeType; +use Drupal\Tests\rest\Functional\EntityResource\EntityResourceTestBase; + +abstract class BaseFieldOverrideResourceTestBase extends EntityResourceTestBase { + + /** + * {@inheritdoc} + */ + public static $modules = ['field', 'node']; + + /** + * {@inheritdoc} + */ + protected static $entityTypeId = 'base_field_override'; + + /** + * @var \Drupal\Core\Field\Entity\BaseFieldOverride + */ + protected $entity; + + /** + * {@inheritdoc} + */ + protected function setUpAuthorization($method) { + $this->grantPermissionsToTestedRole(['administer node fields']); + } + + /** + * {@inheritdoc} + */ + protected function createEntity() { + $camelids = NodeType::create([ + 'name' => 'Camelids', + 'type' => 'camelids', + ]); + $camelids->save(); + + $entity = BaseFieldOverride::create([ + 'field_name' => 'promote', + 'entity_type' => 'node', + 'bundle' => 'camelids', + ]); + $entity->save(); + + return $entity; + } + + /** + * {@inheritdoc} + */ + protected function getExpectedNormalizedEntity() { + return [ + 'bundle' => 'camelids', + 'default_value' => [], + 'default_value_callback' => '', + 'dependencies' => [ + 'config' => [ + 'node.type.camelids', + ], + ], + 'description' => '', + 'entity_type' => 'node', + 'field_name' => 'promote', + 'field_type' => 'boolean', + 'id' => 'node.camelids.promote', + 'label' => NULL, + 'langcode' => 'en', + 'required' => FALSE, + 'settings' => [ + 'on_label' => 'On', + 'off_label' => 'Off', + ], + 'status' => TRUE, + 'translatable' => TRUE, + 'uuid' => $this->entity->uuid(), + ]; + } + + /** + * {@inheritdoc} + */ + protected function getNormalizedPostEntity() { + // @todo Update in https://www.drupal.org/node/2300677. + } + + /** + * {@inheritdoc} + */ + protected function getExpectedCacheContexts() { + return [ + 'user.permissions', + ]; + } + + /** + * {@inheritdoc} + */ + protected function getExpectedUnauthorizedAccessMessage($method) { + if ($this->config('rest.settings')->get('bc_entity_resource_permissions')) { + return parent::getExpectedUnauthorizedAccessMessage($method); + } + + return "The 'administer node fields' permission is required."; + } + +}