public function CKEditor5PluginManagerTest::testProvidedElementsInvalidElementSubset in Drupal 10
Tests detection of invalid CKEditor5PluginElementsSubsetInterface classes.
@dataProvider providerProvidedElementsInvalidElementSubset
File
- core/
modules/ ckeditor5/ tests/ src/ Kernel/ CKEditor5PluginManagerTest.php, line 982
Class
- CKEditor5PluginManagerTest
- Tests different ways of enabling CKEditor 5 plugins.
Namespace
Drupal\Tests\ckeditor5\KernelCode
public function testProvidedElementsInvalidElementSubset(array $configured_subset, string $expected_exception_message) : void {
$this
->enableModules([
'ckeditor5_plugin_elements_subset',
]);
// Configure the sneaky superset plugin.
$sneaky_plugin_id = 'ckeditor5_plugin_elements_subset_sneakySuperset';
$text_editor = Editor::create([
'format' => 'dummy',
'editor' => 'ckeditor5',
'settings' => [
'plugins' => [
$sneaky_plugin_id => [
'configured_subset' => $configured_subset,
],
],
],
'image_upload' => [],
]);
// Invalid subsets are allowed on unsaved Text Editor config entities,
// because they may have invalid configuration.
$text_editor
->enforceIsNew(FALSE);
// No exception when getting all provided elements.
$this
->assertGreaterThan(0, count($this->manager
->getProvidedElements()));
// No exception when getting the sneaky plugin's provided elements.
$this
->assertGreaterThan(0, count($this->manager
->getProvidedElements([
$sneaky_plugin_id,
])));
// Exception when getting the sneaky plugin's provided elements *and* a text
// editor config entity is passed: only then can a subset be generated based
// on configuration.
$this
->expectException(\LogicException::class);
$this
->expectExceptionMessage($expected_exception_message);
$this->manager
->getProvidedElements([
$sneaky_plugin_id,
], $text_editor);
}