.../src/FunctionalJavascript/SourceEditingTest.php | 39 ++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/core/modules/ckeditor5/tests/src/FunctionalJavascript/SourceEditingTest.php b/core/modules/ckeditor5/tests/src/FunctionalJavascript/SourceEditingTest.php index d9a057fcb6..daa76c4851 100644 --- a/core/modules/ckeditor5/tests/src/FunctionalJavascript/SourceEditingTest.php +++ b/core/modules/ckeditor5/tests/src/FunctionalJavascript/SourceEditingTest.php @@ -114,6 +114,45 @@ function (ConstraintViolation $v) { $this->drupalLogin($this->adminUser); } + /** + * @covers \Drupal\ckeditor5\Plugin\CKEditor5Plugin\SourceEditing::buildConfigurationForm + */ + public function testSourceEditingSettingsForm() { + $this->drupalLogin($this->drupalCreateUser(['administer filters'])); + + $page = $this->getSession()->getPage(); + $assert_session = $this->assertSession(); + + $this->createNewTextFormat($page, $assert_session); + $assert_session->assertWaitOnAjaxRequest(); + + // The Source Editing plugin settings form should not be present. + $assert_session->elementNotExists('css', '[data-drupal-selector="edit-editor-settings-plugins-ckeditor5-sourceediting"]'); + + $this->assertNotEmpty($assert_session->waitForElement('css', '.ckeditor5-toolbar-item-sourceEditing')); + $this->triggerKeyUp('.ckeditor5-toolbar-item-sourceEditing', 'ArrowDown'); + $assert_session->assertWaitOnAjaxRequest(); + + // The Source Editing plugin settings form should now be present and should + // have no allowed tags configured. + $element = $assert_session->elementExists('css', '[data-drupal-selector="edit-editor-settings-plugins-ckeditor5-sourceediting"]'); + $page->clickLink('Source editing'); + $source_editing_allowed_tags_textarea = $element->find('css', 'textarea'); + $this->assertSame('', $source_editing_allowed_tags_textarea->getValue()); + + // Configure it. + $source_editing_allowed_tags_textarea->setValue('
'); + + // Immediately save the configuration. + $page->pressButton('Save configuration'); + + // Verify that the configuration was saved. + $this->drupalGet('admin/config/content/formats/manage/ckeditor5'); + $page->clickLink('Source editing'); + $textarea = $element->find('css', 'textarea'); + $this->assertSame('
', $textarea->getValue()); + } + /** * Tests allowing extra attributes on already supported tags using GHS. *