CKEditorToolbarButtonTest.php
Same filename in other branches
Namespace
Drupal\Tests\ckeditor\FunctionalFile
-
core/
modules/ ckeditor/ tests/ src/ Functional/ CKEditorToolbarButtonTest.php
View source
<?php
namespace Drupal\Tests\ckeditor\Functional;
use Drupal\filter\Entity\FilterFormat;
use Drupal\editor\Entity\Editor;
use Drupal\Tests\BrowserTestBase;
use Drupal\Component\Serialization\Json;
/**
* Tests CKEditor toolbar buttons when the language direction is RTL.
*
* @group ckeditor
* @group legacy
*/
class CKEditorToolbarButtonTest extends BrowserTestBase {
/**
* Modules to enable for this test.
*
* @var array
*/
protected static $modules = [
'filter',
'editor',
'ckeditor',
'locale',
];
/**
* {@inheritdoc}
*/
protected $defaultTheme = 'stark';
/**
* The admin user.
*
* @var \Drupal\user\Entity\User
*/
protected $adminUser;
/**
* {@inheritdoc}
*/
protected function setUp() : void {
parent::setUp();
// Create a text format and associate this with CKEditor.
FilterFormat::create([
'format' => 'full_html',
'name' => 'Full HTML',
'weight' => 1,
'filters' => [],
])->save();
Editor::create([
'format' => 'full_html',
'editor' => 'ckeditor',
])->save();
// Create a new user with admin rights.
$this->adminUser = $this->drupalCreateUser([
'administer languages',
'access administration pages',
'administer site configuration',
'administer filters',
]);
}
/**
* Method tests CKEditor image buttons.
*/
public function testImageButtonDisplay() {
$this->drupalLogin($this->adminUser);
// Install the Arabic language (which is RTL) and configure as the default.
$edit = [];
$edit['predefined_langcode'] = 'ar';
$this->drupalGet('admin/config/regional/language/add');
$this->submitForm($edit, 'Add language');
$edit = [
'site_default_language' => 'ar',
];
$this->drupalGet('admin/config/regional/language');
$this->submitForm($edit, 'Save configuration');
// Once the default language is changed, go to the tested text format
// configuration page.
$this->drupalGet('admin/config/content/formats/manage/full_html');
// Check if any image button is loaded in CKEditor json.
$json_encode = function ($html) {
return trim(Json::encode($html), '"');
};
/** @var \Drupal\Core\File\FileUrlGeneratorInterface $file_url_generator */
$file_url_generator = \Drupal::service('file_url_generator');
$markup = $json_encode($file_url_generator->generateString('core/modules/ckeditor/js/plugins/drupalimage/icons/drupalimage.png'));
$this->assertSession()
->responseContains($markup);
}
}
Classes
Title | Deprecated | Summary |
---|---|---|
CKEditorToolbarButtonTest | Tests CKEditor toolbar buttons when the language direction is RTL. |
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.