diff --git a/core/modules/ckeditor/src/Plugin/Editor/CKEditor.php b/core/modules/ckeditor/src/Plugin/Editor/CKEditor.php index 0e237b17e4a7eab02a67877ce549839c604b9642..d5bd0b9a721a36f7664a07eaa1d66288fc781ffb 100644 --- a/core/modules/ckeditor/src/Plugin/Editor/CKEditor.php +++ b/core/modules/ckeditor/src/Plugin/Editor/CKEditor.php @@ -157,7 +157,7 @@ public function settingsForm(array $form, FormStateInterface $form_state, Editor 'library' => array('ckeditor/drupal.ckeditor.admin'), 'drupalSettings' => [ 'ckeditor' => [ - 'toolbarAdmin' => $this->renderer->renderPlain($ckeditor_settings_toolbar), + 'toolbarAdmin' => (string) $this->renderer->renderPlain($ckeditor_settings_toolbar), ], ], ), diff --git a/core/modules/ckeditor/src/Tests/CKEditorAdminTest.php b/core/modules/ckeditor/src/Tests/CKEditorAdminTest.php index d113a7609719e35f60c18c7ede92aac362534a0f..3ce82714a36a8f7a7f628244d9a6df7463673a7d 100644 --- a/core/modules/ckeditor/src/Tests/CKEditorAdminTest.php +++ b/core/modules/ckeditor/src/Tests/CKEditorAdminTest.php @@ -117,6 +117,18 @@ function testExistingFormat() { $editor = entity_load('editor', 'filtered_html'); $this->assertFalse($editor, 'No Editor config entity exists yet.'); + // Ensure that drupalSettings is correct. + $ckeditor_settings_toolbar = array( + '#theme' => 'ckeditor_settings_toolbar', + '#editor' => Editor::create(['editor' => 'ckeditor']), + '#plugins' => $this->container->get('plugin.manager.ckeditor.plugin')->getButtons(), + ); + $this->assertEqual( + $this->drupalSettings['ckeditor']['toolbarAdmin'], + $this->container->get('renderer')->renderPlain($ckeditor_settings_toolbar), + 'CKEditor toolbar settings are rendered as part of drupalSettings.' + ); + // Ensure the toolbar buttons configuration value is initialized to the // expected default value. $expected_buttons_value = json_encode($expected_default_settings['toolbar']['rows']);