CKEditor5UpdateCodeBlockConfigurationTest.php

Same filename and directory in other branches
  1. 10 core/modules/ckeditor5/tests/src/Functional/Update/CKEditor5UpdateCodeBlockConfigurationTest.php

Namespace

Drupal\Tests\ckeditor5\Functional\Update

File

core/modules/ckeditor5/tests/src/Functional/Update/CKEditor5UpdateCodeBlockConfigurationTest.php

View source
<?php

declare (strict_types=1);
namespace Drupal\Tests\ckeditor5\Functional\Update;

use Drupal\editor\Entity\Editor;
use Drupal\FunctionalTests\Update\UpdatePathTestBase;

/**
 * @covers ckeditor5_post_update_code_block
 * @group Update
 * @group ckeditor5
 */
class CKEditor5UpdateCodeBlockConfigurationTest extends UpdatePathTestBase {
    
    /**
     * {@inheritdoc}
     */
    protected $defaultTheme = 'stark';
    
    /**
     * {@inheritdoc}
     */
    protected function setDatabaseDumpFiles() {
        $this->databaseDumpFiles = [
            __DIR__ . '/../../../../../system/tests/fixtures/update/drupal-9.4.0.filled.standard.php.gz',
        ];
    }
    
    /**
     * Ensure default configuration for the CKEditor 5 codeBlock plugin is added.
     */
    public function testUpdateCodeBlockConfigurationPostUpdate() : void {
        $editor = Editor::load('full_html');
        $settings = $editor->getSettings();
        $this->assertArrayNotHasKey('ckeditor5_codeBlock', $settings['plugins']);
        $this->runUpdates();
        $editor = Editor::load('full_html');
        $settings = $editor->getSettings();
        $this->assertArrayHasKey('ckeditor5_codeBlock', $settings['plugins']);
        // @see \Drupal\ckeditor5\Plugin\CKEditor5Plugin\CodeBlock::defaultConfiguration()
        $this->assertSame([
            'languages' => [
                [
                    'label' => 'Plain text',
                    'language' => 'plaintext',
                ],
                [
                    'label' => 'C',
                    'language' => 'c',
                ],
                [
                    'label' => 'C#',
                    'language' => 'cs',
                ],
                [
                    'label' => 'C++',
                    'language' => 'cpp',
                ],
                [
                    'label' => 'CSS',
                    'language' => 'css',
                ],
                [
                    'label' => 'Diff',
                    'language' => 'diff',
                ],
                [
                    'label' => 'HTML',
                    'language' => 'html',
                ],
                [
                    'label' => 'Java',
                    'language' => 'java',
                ],
                [
                    'label' => 'JavaScript',
                    'language' => 'javascript',
                ],
                [
                    'label' => 'PHP',
                    'language' => 'php',
                ],
                [
                    'label' => 'Python',
                    'language' => 'python',
                ],
                [
                    'label' => 'Ruby',
                    'language' => 'ruby',
                ],
                [
                    'label' => 'TypeScript',
                    'language' => 'typescript',
                ],
                [
                    'label' => 'XML',
                    'language' => 'xml',
                ],
            ],
        ], $settings['plugins']['ckeditor5_codeBlock']);
    }

}

Classes

Title Deprecated Summary
CKEditor5UpdateCodeBlockConfigurationTest @covers ckeditor5_post_update_code_block @group Update @group ckeditor5

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