Issue #2843782 by arshadcn: EntityResource: Provide comprehensive test coverage for Editor entity
parent
c0933a14b1
commit
af81a985ea
|
@ -0,0 +1,30 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Drupal\Tests\hal\Functional\EntityResource\Editor;
|
||||||
|
|
||||||
|
use Drupal\Tests\rest\Functional\AnonResourceTestTrait;
|
||||||
|
use Drupal\Tests\rest\Functional\EntityResource\Editor\EditorResourceTestBase;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @group hal
|
||||||
|
*/
|
||||||
|
class EditorHalJsonAnonTest extends EditorResourceTestBase {
|
||||||
|
|
||||||
|
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\Editor;
|
||||||
|
|
||||||
|
use Drupal\Tests\rest\Functional\BasicAuthResourceTestTrait;
|
||||||
|
use Drupal\Tests\rest\Functional\EntityResource\Editor\EditorResourceTestBase;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @group hal
|
||||||
|
*/
|
||||||
|
class EditorHalJsonBasicAuthTest extends EditorResourceTestBase {
|
||||||
|
|
||||||
|
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\Editor;
|
||||||
|
|
||||||
|
use Drupal\Tests\rest\Functional\CookieResourceTestTrait;
|
||||||
|
use Drupal\Tests\rest\Functional\EntityResource\Editor\EditorResourceTestBase;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @group hal
|
||||||
|
*/
|
||||||
|
class EditorHalJsonCookieTest extends EditorResourceTestBase {
|
||||||
|
|
||||||
|
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\Editor;
|
||||||
|
|
||||||
|
use Drupal\Tests\rest\Functional\AnonResourceTestTrait;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @group rest
|
||||||
|
*/
|
||||||
|
class EditorJsonAnonTest extends EditorResourceTestBase {
|
||||||
|
|
||||||
|
use AnonResourceTestTrait;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
protected static $format = 'json';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
protected static $mimeType = 'application/json';
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,34 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Drupal\Tests\rest\Functional\EntityResource\Editor;
|
||||||
|
|
||||||
|
use Drupal\Tests\rest\Functional\BasicAuthResourceTestTrait;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @group rest
|
||||||
|
*/
|
||||||
|
class EditorJsonBasicAuthTest extends EditorResourceTestBase {
|
||||||
|
|
||||||
|
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\Editor;
|
||||||
|
|
||||||
|
use Drupal\Tests\rest\Functional\CookieResourceTestTrait;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @group rest
|
||||||
|
*/
|
||||||
|
class EditorJsonCookieTest extends EditorResourceTestBase {
|
||||||
|
|
||||||
|
use CookieResourceTestTrait;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
protected static $format = 'json';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
protected static $mimeType = 'application/json';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
protected static $auth = 'cookie';
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,184 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Drupal\Tests\rest\Functional\EntityResource\Editor;
|
||||||
|
|
||||||
|
use Drupal\editor\Entity\Editor;
|
||||||
|
use Drupal\filter\Entity\FilterFormat;
|
||||||
|
use Drupal\Tests\rest\Functional\EntityResource\EntityResourceTestBase;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ResourceTestBase for Editor entity.
|
||||||
|
*/
|
||||||
|
abstract class EditorResourceTestBase extends EntityResourceTestBase {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
public static $modules = ['ckeditor', 'editor'];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
protected static $entityTypeId = 'editor';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The Editor entity.
|
||||||
|
*
|
||||||
|
* @var \Drupal\editor\EditorInterface
|
||||||
|
*/
|
||||||
|
protected $entity;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
protected function setUpAuthorization($method) {
|
||||||
|
$this->grantPermissionsToTestedRole(['administer filters']);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
protected function createEntity() {
|
||||||
|
// Create a "Llama" filter format.
|
||||||
|
$llama_format = FilterFormat::create([
|
||||||
|
'name' => 'Llama',
|
||||||
|
'format' => 'llama',
|
||||||
|
'langcode' => 'es',
|
||||||
|
'filters' => [
|
||||||
|
'filter_html' => [
|
||||||
|
'status' => TRUE,
|
||||||
|
'settings' => [
|
||||||
|
'allowed_html' => '<p> <a> <b> <lo>',
|
||||||
|
],
|
||||||
|
],
|
||||||
|
],
|
||||||
|
]);
|
||||||
|
|
||||||
|
$llama_format->save();
|
||||||
|
|
||||||
|
// Create a "Camelids" editor.
|
||||||
|
$camelids = Editor::create([
|
||||||
|
'format' => 'llama',
|
||||||
|
'editor' => 'ckeditor',
|
||||||
|
]);
|
||||||
|
$camelids
|
||||||
|
->setImageUploadSettings([
|
||||||
|
'status' => FALSE,
|
||||||
|
'scheme' => file_default_scheme(),
|
||||||
|
'directory' => 'inline-images',
|
||||||
|
'max_size' => '',
|
||||||
|
'max_dimensions' => [
|
||||||
|
'width' => '',
|
||||||
|
'height' => '',
|
||||||
|
],
|
||||||
|
])
|
||||||
|
->save();
|
||||||
|
|
||||||
|
return $camelids;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
protected function getExpectedNormalizedEntity() {
|
||||||
|
return [
|
||||||
|
'dependencies' => [
|
||||||
|
'config' => [
|
||||||
|
'filter.format.llama',
|
||||||
|
],
|
||||||
|
'module' => [
|
||||||
|
'ckeditor',
|
||||||
|
],
|
||||||
|
],
|
||||||
|
'editor' => 'ckeditor',
|
||||||
|
'format' => 'llama',
|
||||||
|
'image_upload' => [
|
||||||
|
'status' => FALSE,
|
||||||
|
'scheme' => 'public',
|
||||||
|
'directory' => 'inline-images',
|
||||||
|
'max_size' => '',
|
||||||
|
'max_dimensions' => [
|
||||||
|
'width' => NULL,
|
||||||
|
'height' => NULL,
|
||||||
|
],
|
||||||
|
],
|
||||||
|
'langcode' => 'en',
|
||||||
|
'settings' => [
|
||||||
|
'toolbar' => [
|
||||||
|
'rows' => [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
'name' => 'Formatting',
|
||||||
|
'items' => [
|
||||||
|
'Bold',
|
||||||
|
'Italic',
|
||||||
|
],
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'name' => 'Links',
|
||||||
|
'items' => [
|
||||||
|
'DrupalLink',
|
||||||
|
'DrupalUnlink',
|
||||||
|
],
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'name' => 'Lists',
|
||||||
|
'items' => [
|
||||||
|
'BulletedList',
|
||||||
|
'NumberedList',
|
||||||
|
],
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'name' => 'Media',
|
||||||
|
'items' => [
|
||||||
|
'Blockquote',
|
||||||
|
'DrupalImage',
|
||||||
|
],
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'name' => 'Tools',
|
||||||
|
'items' => [
|
||||||
|
'Source',
|
||||||
|
],
|
||||||
|
],
|
||||||
|
],
|
||||||
|
],
|
||||||
|
],
|
||||||
|
'plugins' => [
|
||||||
|
'language' => [
|
||||||
|
'language_list' => 'un',
|
||||||
|
],
|
||||||
|
],
|
||||||
|
],
|
||||||
|
'status' => TRUE,
|
||||||
|
'uuid' => $this->entity->uuid(),
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
protected function getNormalizedPostEntity() {
|
||||||
|
// @todo Update in https://www.drupal.org/node/2300677.
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
protected function getExpectedCacheContexts() {
|
||||||
|
// @see ::createEntity()
|
||||||
|
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 filters' permission is required.";
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue