function LanguageTest::test

Same name in this branch
  1. 10 core/modules/ckeditor5/tests/src/FunctionalJavascript/LanguageTest.php \Drupal\Tests\ckeditor5\FunctionalJavascript\LanguageTest::test()
Same name in other branches
  1. 9 core/modules/ckeditor5/tests/src/FunctionalJavascript/LanguageTest.php \Drupal\Tests\ckeditor5\FunctionalJavascript\LanguageTest::test()
  2. 9 core/modules/ckeditor5/tests/src/Kernel/LanguageTest.php \Drupal\Tests\ckeditor5\Kernel\LanguageTest::test()
  3. 11.x core/modules/ckeditor5/tests/src/FunctionalJavascript/LanguageTest.php \Drupal\Tests\ckeditor5\FunctionalJavascript\LanguageTest::test()
  4. 11.x core/modules/ckeditor5/tests/src/Kernel/LanguageTest.php \Drupal\Tests\ckeditor5\Kernel\LanguageTest::test()

Ensure that languages are resolved correctly.

@dataProvider provider

Parameters

string $drupal_langcode: The language code in Drupal.

string $cke5_langcode: The language code in CKEditor 5.

bool $is_missing_mapping: Whether this mapping is expected to be missing from language.mappings.

File

core/modules/ckeditor5/tests/src/Kernel/LanguageTest.php, line 72

Class

LanguageTest
Tests language resolving for CKEditor 5.

Namespace

Drupal\Tests\ckeditor5\Kernel

Code

public function test(string $drupal_langcode, string $cke5_langcode, bool $is_missing_mapping = FALSE) : void {
    $editor = Editor::load('basic_html');
    ConfigurableLanguage::createFromLangcode($drupal_langcode)->save();
    $this->config('system.site')
        ->set('default_langcode', $drupal_langcode)
        ->save();
    if ($is_missing_mapping) {
        // CKEditor 5's UI language falls back to English, until the language
        // mapping is expanded.
        $settings = $this->ckeditor5
            ->getJSSettings($editor);
        $this->assertSame('en', $settings['language']['ui']);
        // Expand the language mapping.
        $config = $this->config('language.mappings');
        $mapping = $config->get('map');
        $mapping += [
            $cke5_langcode => $drupal_langcode,
        ];
        $config->set('map', $mapping)
            ->save();
    }
    $settings = $this->ckeditor5
        ->getJSSettings($editor);
    $this->assertSame($cke5_langcode, $settings['language']['ui']);
}

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