Update to Drupal 8.1.2. For more information, see https://www.drupal.org/project/drupal/releases/8.1.2

This commit is contained in:
Pantheon Automation 2016-06-02 15:56:09 -07:00 committed by Greg Anderson
parent 9eae24d844
commit 28556d630e
1322 changed files with 6699 additions and 2064 deletions

View file

@ -44,7 +44,7 @@ function hook_ckeditor_plugin_info_alter(array &$plugins) {
*
* @param array &$css
* An array of CSS files, passed by reference. This is a flat list of file
* paths relative to the Drupal root.
* paths which can be either relative to the Drupal root or external URLs.
* @param $editor
* The text editor object as returned by editor_load(), for which these files
* are being loaded. Based on this information, it is possible to load the

View file

@ -5,6 +5,7 @@
* Provides integration with the CKEditor WYSIWYG editor.
*/
use Drupal\Component\Utility\UrlHelper;
use Drupal\Core\Routing\RouteMatchInterface;
use Drupal\editor\Entity\Editor;
@ -85,8 +86,13 @@ function _ckeditor_theme_css($theme = NULL) {
$info = system_get_info('theme', $theme);
if (isset($info['ckeditor_stylesheets'])) {
$css = $info['ckeditor_stylesheets'];
foreach ($css as $key => $path) {
$css[$key] = $theme_path . '/' . $path;
foreach ($css as $key => $url) {
if (UrlHelper::isExternal($url)) {
$css[$key] = $url;
}
else {
$css[$key] = $theme_path . '/' . $url;
}
}
}
if (isset($info['base theme'])) {

View file

@ -50,4 +50,5 @@ abstract class CKEditorPluginBase extends PluginBase implements CKEditorPluginIn
function getLibraries(Editor $editor) {
return array();
}
}

View file

@ -95,4 +95,5 @@ interface CKEditorPluginInterface extends PluginInspectionInterface {
* A keyed array, whose keys will end up as keys under CKEDITOR.config.
*/
public function getConfig(Editor $editor);
}

View file

@ -194,6 +194,36 @@ class CKEditorLoadingTest extends WebTestBase {
$this->assertTrue(isset($editor_settings['disallowedContent']));
}
/**
* Tests loading of theme's CKEditor stylesheets defined in the .info file.
*/
function testExternalStylesheets() {
$theme_handler = \Drupal::service('theme_handler');
// Case 1: Install theme which has an absolute external CSS URL.
$theme_handler->install(['test_ckeditor_stylesheets_external']);
$theme_handler->setDefault('test_ckeditor_stylesheets_external');
$expected = [
'https://fonts.googleapis.com/css?family=Open+Sans',
];
$this->assertIdentical($expected, _ckeditor_theme_css('test_ckeditor_stylesheets_external'));
// Case 2: Install theme which has an external protocol-relative CSS URL.
$theme_handler->install(['test_ckeditor_stylesheets_protocol_relative']);
$theme_handler->setDefault('test_ckeditor_stylesheets_protocol_relative');
$expected = [
'//fonts.googleapis.com/css?family=Open+Sans',
];
$this->assertIdentical($expected, _ckeditor_theme_css('test_ckeditor_stylesheets_protocol_relative'));
// Case 3: Install theme which has a relative CSS URL.
$theme_handler->install(['test_ckeditor_stylesheets_relative']);
$theme_handler->setDefault('test_ckeditor_stylesheets_relative');
$expected = [
'core/modules/system/tests/themes/test_ckeditor_stylesheets_relative/css/yokotsoko.css',
];
$this->assertIdentical($expected, _ckeditor_theme_css('test_ckeditor_stylesheets_relative'));
}
protected function getThingsToCheck() {
$settings = $this->getDrupalSettings();
return array(
@ -211,4 +241,5 @@ class CKEditorLoadingTest extends WebTestBase {
$this->xpath('//select[contains(@class, "filter-list")]'),
);
}
}