ConfigurablePluginTest.php
Same filename in other branches
Namespace
Drupal\Tests\ckeditor5\KernelFile
-
core/
modules/ ckeditor5/ tests/ src/ Kernel/ ConfigurablePluginTest.php
View source
<?php
declare (strict_types=1);
namespace Drupal\Tests\ckeditor5\Kernel;
use Drupal\ckeditor5\Plugin\CKEditor5PluginDefinition;
use Drupal\KernelTests\KernelTestBase;
/**
* Tests configurable plugins.
*
* @group ckeditor5
* @internal
*/
class ConfigurablePluginTest extends KernelTestBase {
/**
* {@inheritdoc}
*/
protected static $modules = [
'ckeditor5',
// These modules must be installed for ckeditor5_config_schema_info_alter()
// to work, which in turn is necessary for the plugin definition validation
// logic.
// @see \Drupal\ckeditor5\Plugin\CKEditor5PluginDefinition::validateDrupalAspects()
'filter',
'editor',
];
/**
* The manager for "CKEditor 5 plugin" plugins.
*
* @var \Drupal\Component\Plugin\PluginManagerInterface
*/
protected $manager;
/**
* {@inheritdoc}
*/
protected function setUp() : void {
parent::setUp();
$this->manager = $this->container
->get('plugin.manager.ckeditor5.plugin');
}
/**
* Tests default settings for configurable CKEditor 5 plugins.
*/
public function testDefaults() : void {
$all_definitions = $this->manager
->getDefinitions();
$configurable_definitions = array_filter($all_definitions, function (CKEditor5PluginDefinition $definition) : bool {
return $definition->isConfigurable();
});
$default_plugin_settings = [];
foreach (array_keys($configurable_definitions) as $plugin_name) {
$default_plugin_settings[$plugin_name] = $this->manager
->getPlugin($plugin_name, NULL)
->defaultConfiguration();
}
$expected_default_plugin_settings = [
'ckeditor5_heading' => [
'enabled_headings' => [
'heading2',
'heading3',
'heading4',
'heading5',
'heading6',
],
],
'ckeditor5_style' => [
'styles' => [],
],
'ckeditor5_sourceEditing' => [
'allowed_tags' => [],
],
'ckeditor5_codeBlock' => [
'languages' => [
[
'language' => 'plaintext',
'label' => 'Plain text',
],
[
'language' => 'c',
'label' => 'C',
],
[
'language' => 'cs',
'label' => 'C#',
],
[
'language' => 'cpp',
'label' => 'C++',
],
[
'language' => 'css',
'label' => 'CSS',
],
[
'language' => 'diff',
'label' => 'Diff',
],
[
'language' => 'html',
'label' => 'HTML',
],
[
'language' => 'java',
'label' => 'Java',
],
[
'language' => 'javascript',
'label' => 'JavaScript',
],
[
'language' => 'php',
'label' => 'PHP',
],
[
'language' => 'python',
'label' => 'Python',
],
[
'language' => 'ruby',
'label' => 'Ruby',
],
[
'language' => 'typescript',
'label' => 'TypeScript',
],
[
'language' => 'xml',
'label' => 'XML',
],
],
],
'ckeditor5_list' => [
'properties' => [
'reversed' => TRUE,
'startIndex' => TRUE,
],
'multiBlock' => TRUE,
],
'ckeditor5_alignment' => [
'enabled_alignments' => [
0 => 'left',
1 => 'center',
2 => 'right',
3 => 'justify',
],
],
'ckeditor5_image' => [],
'ckeditor5_imageResize' => [
'allow_resize' => TRUE,
],
'ckeditor5_language' => [
'language_list' => 'un',
],
];
$this->assertSame($expected_default_plugin_settings, $default_plugin_settings);
}
}
Classes
Title | Deprecated | Summary |
---|---|---|
ConfigurablePluginTest | Tests configurable plugins. |
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.