function CKEditor5Test::testSave
Same name in other branches
- 11.x core/modules/ckeditor5/tests/src/FunctionalJavascript/CKEditor5Test.php \Drupal\Tests\ckeditor5\FunctionalJavascript\CKEditor5Test::testSave()
Ensures that changes are saved in CKEditor 5.
File
-
core/
modules/ ckeditor5/ tests/ src/ FunctionalJavascript/ CKEditor5Test.php, line 646
Class
- CKEditor5Test
- Tests for CKEditor 5.
Namespace
Drupal\Tests\ckeditor5\FunctionalJavascriptCode
public function testSave() : void {
// To replicate the bug from https://www.drupal.org/i/3396742
// We need 2 or more text formats and node edit page.
FilterFormat::create([
'format' => 'ckeditor5',
'name' => 'CKEditor 5 HTML',
'roles' => [
RoleInterface::AUTHENTICATED_ID,
],
])->save();
Editor::create([
'format' => 'ckeditor5',
'editor' => 'ckeditor5',
'settings' => [
'toolbar' => [
'items' => [
'sourceEditing',
],
],
'plugins' => [
'ckeditor5_sourceEditing' => [
'allowed_tags' => [],
],
],
],
])->save();
$this->assertSame([], array_map(function (ConstraintViolation $v) {
return (string) $v->getMessage();
}, iterator_to_array(CKEditor5::validatePair(Editor::load('ckeditor5'), FilterFormat::load('ckeditor5')))));
FilterFormat::create([
'format' => 'ckeditor5_2',
'name' => 'CKEditor 5 HTML 2',
'roles' => [
RoleInterface::AUTHENTICATED_ID,
],
])->save();
Editor::create([
'format' => 'ckeditor5_2',
'editor' => 'ckeditor5',
])->save();
$this->assertSame([], array_map(function (ConstraintViolation $v) {
return (string) $v->getMessage();
}, iterator_to_array(CKEditor5::validatePair(Editor::load('ckeditor5_2'), FilterFormat::load('ckeditor5_2')))));
$this->drupalCreateNode([
'title' => 'My test content',
]);
// Test that entered text is saved.
$this->drupalGet('node/1/edit');
$page = $this->getSession()
->getPage();
$this->waitForEditor();
$editor = $page->find('css', '.ck-content');
$editor->setValue('Very important information');
$page->pressButton('Save');
$this->assertSession()
->responseContains('Very important information');
// Test that changes only in source are saved.
$this->drupalGet('node/1/edit');
$page = $this->getSession()
->getPage();
$this->waitForEditor();
$this->pressEditorButton('Source');
$editor = $page->find('css', '.ck-source-editing-area textarea');
$editor->setValue('Text hidden in the source');
$page->pressButton('Save');
$this->assertSession()
->responseContains('Text hidden in the source');
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.