function AddItemToToolbarConfigActionTest::testAddItemToToolbar

Same name and namespace in other branches
  1. 11.x core/modules/ckeditor5/tests/src/Kernel/ConfigAction/AddItemToToolbarConfigActionTest.php \Drupal\Tests\ckeditor5\Kernel\ConfigAction\AddItemToToolbarConfigActionTest::testAddItemToToolbar()

@testWith ["sourceEditing", ["heading", "bold", "italic", "sourceEditing"]]
[{"item_name": "sourceEditing"}, ["heading", "bold", "italic", "sourceEditing"]]
[{"item_name": "sourceEditing", "position": 1}, ["heading", "sourceEditing", "bold", "italic"]]
[{"item_name": "sourceEditing", "position": 1, "replace": true}, ["heading", "sourceEditing", "italic"]]

Parameters

string|array<string, mixed> $action: The value to pass to the config action.

string[] $expected_toolbar_items: The items which should be in the editor toolbar, in the expected order.

File

core/modules/ckeditor5/tests/src/Kernel/ConfigAction/AddItemToToolbarConfigActionTest.php, line 73

Class

AddItemToToolbarConfigActionTest
@covers \Drupal\ckeditor5\Plugin\ConfigAction\AddItemToToolbar[[api-linebreak]] @group ckeditor5 @group Recipe

Namespace

Drupal\Tests\ckeditor5\Kernel\ConfigAction

Code

public function testAddItemToToolbar(string|array $action, array $expected_toolbar_items) : void {
  $recipe = $this->createRecipe([
    'name' => 'CKEditor 5 toolbar item test',
    'config' => [
      'actions' => [
        'editor.editor.filter_test' => [
          'addItemToToolbar' => $action,
        ],
      ],
    ],
  ]);
  RecipeRunner::processRecipe($recipe);
  /** @var array{toolbar: array{items: string[]}, plugins: array<string, array<mixed>>} $settings */
  $settings = Editor::load('filter_test')?->getSettings();
  $this->assertSame($expected_toolbar_items, $settings['toolbar']['items']);
  // The plugin's default settings should have been added.
  $this->assertSame([], $settings['plugins']['ckeditor5_sourceEditing']['allowed_tags']);
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.