Issue #2843756 by vaplas, brentschuddinck, Wim Leers: EntityResource: Provide comprehensive test coverage for FieldStorageConfig entity
parent
66c750c6c7
commit
df2fd66d59
|
@ -18,6 +18,7 @@ use Drupal\field\FieldStorageConfigInterface;
|
||||||
* id = "field_storage_config",
|
* id = "field_storage_config",
|
||||||
* label = @Translation("Field storage"),
|
* label = @Translation("Field storage"),
|
||||||
* handlers = {
|
* handlers = {
|
||||||
|
* "access" = "Drupal\field\FieldStorageConfigAccessControlHandler",
|
||||||
* "storage" = "Drupal\field\FieldStorageConfigStorage"
|
* "storage" = "Drupal\field\FieldStorageConfigStorage"
|
||||||
* },
|
* },
|
||||||
* config_prefix = "storage",
|
* config_prefix = "storage",
|
||||||
|
|
|
@ -0,0 +1,10 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Drupal\field;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Defines the access control handler for the field storage config entity type.
|
||||||
|
*
|
||||||
|
* @see \Drupal\field\Entity\FieldStorageConfig
|
||||||
|
*/
|
||||||
|
class FieldStorageConfigAccessControlHandler extends FieldConfigAccessControlHandler {}
|
|
@ -0,0 +1,30 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Drupal\Tests\hal\Functional\EntityResource\FieldStorageConfig;
|
||||||
|
|
||||||
|
use Drupal\Tests\rest\Functional\AnonResourceTestTrait;
|
||||||
|
use Drupal\Tests\rest\Functional\EntityResource\FieldStorageConfig\FieldStorageConfigResourceTestBase;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @group hal
|
||||||
|
*/
|
||||||
|
class FieldStorageConfigHalJsonAnonTest extends FieldStorageConfigResourceTestBase {
|
||||||
|
|
||||||
|
use AnonResourceTestTrait;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
public static $modules = ['hal'];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
protected static $format = 'hal_json';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
protected static $mimeType = 'application/hal+json';
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,35 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Drupal\Tests\hal\Functional\EntityResource\FieldStorageConfig;
|
||||||
|
|
||||||
|
use Drupal\Tests\rest\Functional\BasicAuthResourceTestTrait;
|
||||||
|
use Drupal\Tests\rest\Functional\EntityResource\FieldStorageConfig\FieldStorageConfigResourceTestBase;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @group hal
|
||||||
|
*/
|
||||||
|
class FieldStorageConfigHalJsonBasicAuthTest extends FieldStorageConfigResourceTestBase {
|
||||||
|
|
||||||
|
use BasicAuthResourceTestTrait;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
public static $modules = ['hal', 'basic_auth'];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
protected static $format = 'hal_json';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
protected static $mimeType = 'application/hal+json';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
protected static $auth = 'basic_auth';
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,35 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Drupal\Tests\hal\Functional\EntityResource\FieldStorageConfig;
|
||||||
|
|
||||||
|
use Drupal\Tests\rest\Functional\CookieResourceTestTrait;
|
||||||
|
use Drupal\Tests\rest\Functional\EntityResource\FieldStorageConfig\FieldStorageConfigResourceTestBase;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @group hal
|
||||||
|
*/
|
||||||
|
class FieldStorageConfigHalJsonCookieTest extends FieldStorageConfigResourceTestBase {
|
||||||
|
|
||||||
|
use CookieResourceTestTrait;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
public static $modules = ['hal'];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
protected static $format = 'hal_json';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
protected static $mimeType = 'application/hal+json';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
protected static $auth = 'cookie';
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,24 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Drupal\Tests\rest\Functional\EntityResource\FieldStorageConfig;
|
||||||
|
|
||||||
|
use Drupal\Tests\rest\Functional\AnonResourceTestTrait;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @group rest
|
||||||
|
*/
|
||||||
|
class FieldStorageConfigJsonAnonTest extends FieldStorageConfigResourceTestBase {
|
||||||
|
|
||||||
|
use AnonResourceTestTrait;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
protected static $format = 'json';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
protected static $mimeType = 'application/json';
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,34 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Drupal\Tests\rest\Functional\EntityResource\FieldStorageConfig;
|
||||||
|
|
||||||
|
use Drupal\Tests\rest\Functional\BasicAuthResourceTestTrait;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @group rest
|
||||||
|
*/
|
||||||
|
class FieldStorageConfigJsonBasicAuthTest extends FieldStorageConfigResourceTestBase {
|
||||||
|
|
||||||
|
use BasicAuthResourceTestTrait;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
public static $modules = ['basic_auth'];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
protected static $format = 'json';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
protected static $mimeType = 'application/json';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
protected static $auth = 'basic_auth';
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,29 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Drupal\Tests\rest\Functional\EntityResource\FieldStorageConfig;
|
||||||
|
|
||||||
|
use Drupal\Tests\rest\Functional\CookieResourceTestTrait;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @group rest
|
||||||
|
*/
|
||||||
|
class FieldStorageConfigJsonCookieTest extends FieldStorageConfigResourceTestBase {
|
||||||
|
|
||||||
|
use CookieResourceTestTrait;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
protected static $format = 'json';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
protected static $mimeType = 'application/json';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
protected static $auth = 'cookie';
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,104 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Drupal\Tests\rest\Functional\EntityResource\FieldStorageConfig;
|
||||||
|
|
||||||
|
use Drupal\field\Entity\FieldStorageConfig;
|
||||||
|
use Drupal\Tests\rest\Functional\EntityResource\EntityResourceTestBase;
|
||||||
|
|
||||||
|
abstract class FieldStorageConfigResourceTestBase extends EntityResourceTestBase {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
public static $modules = ['node'];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
protected static $entityTypeId = 'field_storage_config';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var \Drupal\field\FieldConfigStorage
|
||||||
|
*/
|
||||||
|
protected $entity;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
protected function setUpAuthorization($method) {
|
||||||
|
$this->grantPermissionsToTestedRole(['administer node fields']);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
protected function createEntity() {
|
||||||
|
$field_storage = FieldStorageConfig::create([
|
||||||
|
'field_name' => 'true_llama',
|
||||||
|
'entity_type' => 'node',
|
||||||
|
'type' => 'boolean',
|
||||||
|
]);
|
||||||
|
$field_storage->save();
|
||||||
|
return $field_storage;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
protected function getExpectedNormalizedEntity() {
|
||||||
|
return [
|
||||||
|
'cardinality' => 1,
|
||||||
|
'custom_storage' => FALSE,
|
||||||
|
'dependencies' => [
|
||||||
|
'module' => ['node'],
|
||||||
|
],
|
||||||
|
'entity_type' => 'node',
|
||||||
|
'field_name' => 'true_llama',
|
||||||
|
'id' => 'node.true_llama',
|
||||||
|
'indexes' => [],
|
||||||
|
'langcode' => 'en',
|
||||||
|
'locked' => FALSE,
|
||||||
|
'module' => 'core',
|
||||||
|
'persist_with_no_fields' => FALSE,
|
||||||
|
'settings' => [],
|
||||||
|
'status' => TRUE,
|
||||||
|
'translatable' => TRUE,
|
||||||
|
'type' => 'boolean',
|
||||||
|
'uuid' => $this->entity->uuid(),
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
protected function getNormalizedPostEntity() {
|
||||||
|
// @todo Update in https://www.drupal.org/node/2300677.
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@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 'administer node fields' permission is required.";
|
||||||
|
|
||||||
|
default:
|
||||||
|
return parent::getExpectedUnauthorizedAccessMessage($method);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
protected function getExpectedCacheContexts() {
|
||||||
|
return [
|
||||||
|
'user.permissions',
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue