.../standard/tests/src/Functional/StandardTest.php | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/core/profiles/standard/tests/src/Functional/StandardTest.php b/core/profiles/standard/tests/src/Functional/StandardTest.php index bd43f39b9c..232a7ee698 100644 --- a/core/profiles/standard/tests/src/Functional/StandardTest.php +++ b/core/profiles/standard/tests/src/Functional/StandardTest.php @@ -2,7 +2,9 @@ namespace Drupal\Tests\standard\Functional; +use Drupal\ckeditor5\Plugin\Editor\CKEditor5; use Drupal\Component\Utility\Html; +use Drupal\editor\Entity\Editor; use Drupal\media\Entity\MediaType; use Drupal\media\Plugin\media\Source\Image; use Drupal\Tests\SchemaCheckTestTrait; @@ -13,6 +15,7 @@ use Drupal\Tests\BrowserTestBase; use Drupal\Tests\RequirementsPageTrait; use Drupal\user\Entity\Role; +use Symfony\Component\Validator\ConstraintViolation; /** * Tests Standard installation profile expectations. @@ -106,6 +109,25 @@ public function testStandard() { $this->assertConfigSchema($typed_config, $name, $config->get()); } + // Validate all configuration. + // @todo Generalize in https://www.drupal.org/project/drupal/issues/2164373 + foreach (Editor::loadMultiple() as $editor) { + // Currently only text editors using CKEditor 5 can be validated. + if ($editor->getEditor() !== 'ckeditor5') { + continue; + } + + $this->assertSame([], array_map( + function (ConstraintViolation $v) { + return (string) $v->getMessage(); + }, + iterator_to_array(CKEditor5::validatePair( + $editor, + $editor->getFilterFormat() + )) + )); + } + // Ensure that configuration from the Standard profile is not reused when // enabling a module again since it contains configuration that can not be // installed. For example, editor.editor.basic_html is editor configuration