Update to Drupal 8.2.5. For more information, see https://www.drupal.org/project/drupal/releases/8.2.5
This commit is contained in:
parent
8544b60b39
commit
db56c09587
86 changed files with 2413 additions and 488 deletions
|
@ -0,0 +1,121 @@
|
|||
<?php
|
||||
|
||||
namespace Drupal\Tests\ckeditor\FunctionalJavascript;
|
||||
|
||||
use Drupal\Core\Entity\Entity\EntityFormDisplay;
|
||||
use Drupal\editor\Entity\Editor;
|
||||
use Drupal\field\Entity\FieldConfig;
|
||||
use Drupal\field\Entity\FieldStorageConfig;
|
||||
use Drupal\filter\Entity\FilterFormat;
|
||||
use Drupal\FunctionalJavascriptTests\JavascriptTestBase;
|
||||
use Drupal\node\Entity\NodeType;
|
||||
|
||||
/**
|
||||
* Tests the integration of CKEditor.
|
||||
*
|
||||
* @group ckeditor
|
||||
*/
|
||||
class CKEditorIntegrationTest extends JavascriptTestBase {
|
||||
|
||||
/**
|
||||
* The account.
|
||||
*
|
||||
* @var \Drupal\user\UserInterface
|
||||
*/
|
||||
protected $account;
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public static $modules = ['node', 'ckeditor', 'filter'];
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function setUp() {
|
||||
parent::setUp();
|
||||
|
||||
// Create a text format and associate CKEditor.
|
||||
$filtered_html_format = FilterFormat::create([
|
||||
'format' => 'filtered_html',
|
||||
'name' => 'Filtered HTML',
|
||||
'weight' => 0,
|
||||
]);
|
||||
$filtered_html_format->save();
|
||||
|
||||
Editor::create([
|
||||
'format' => 'filtered_html',
|
||||
'editor' => 'ckeditor',
|
||||
])->save();
|
||||
|
||||
// Create a node type for testing.
|
||||
NodeType::create(['type' => 'page', 'name' => 'page'])->save();
|
||||
|
||||
$field_storage = FieldStorageConfig::loadByName('node', 'body');
|
||||
|
||||
// Create a body field instance for the 'page' node type.
|
||||
FieldConfig::create([
|
||||
'field_storage' => $field_storage,
|
||||
'bundle' => 'page',
|
||||
'label' => 'Body',
|
||||
'settings' => ['display_summary' => TRUE],
|
||||
'required' => TRUE,
|
||||
])->save();
|
||||
|
||||
// Assign widget settings for the 'default' form mode.
|
||||
EntityFormDisplay::create([
|
||||
'targetEntityType' => 'node',
|
||||
'bundle' => 'page',
|
||||
'mode' => 'default',
|
||||
'status' => TRUE,
|
||||
])->setComponent('body', ['type' => 'text_textarea_with_summary'])
|
||||
->save();
|
||||
|
||||
$this->account = $this->drupalCreateUser([
|
||||
'administer nodes',
|
||||
'create page content',
|
||||
'use text format filtered_html',
|
||||
]);
|
||||
$this->drupalLogin($this->account);
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests if the fragment link to a textarea works with CKEditor enabled.
|
||||
*/
|
||||
public function testFragmentLink() {
|
||||
$session = $this->getSession();
|
||||
$web_assert = $this->assertSession();
|
||||
$ckeditor_id = '#cke_edit-body-0-value';
|
||||
|
||||
$this->drupalGet('node/add/page');
|
||||
|
||||
$session->getPage();
|
||||
|
||||
// Add a bottom margin to the title field to be sure the body field is not
|
||||
// visible. PhantomJS runs with a resolution of 1024x768px.
|
||||
$session->executeScript("document.getElementById('edit-title-0-value').style.marginBottom = '800px';");
|
||||
|
||||
// Check that the CKEditor-enabled body field is currently not visible in
|
||||
// the viewport.
|
||||
$web_assert->assertNotVisibleInViewport('css', $ckeditor_id, 'topLeft', 'CKEditor-enabled body field is visible.');
|
||||
|
||||
$before_url = $session->getCurrentUrl();
|
||||
|
||||
// Trigger a hash change with as target the hidden textarea.
|
||||
$session->executeScript("location.hash = '#edit-body-0-value';");
|
||||
|
||||
// Check that the CKEditor-enabled body field is visible in the viewport.
|
||||
$web_assert->assertVisibleInViewport('css', $ckeditor_id, 'topLeft', 'CKEditor-enabled body field is not visible.');
|
||||
|
||||
// Use JavaScript to go back in the history instead of
|
||||
// \Behat\Mink\Session::back() because that function doesn't work after a
|
||||
// hash change.
|
||||
$session->executeScript("history.back();");
|
||||
|
||||
$after_url = $session->getCurrentUrl();
|
||||
|
||||
// Check that going back in the history worked.
|
||||
self::assertEquals($before_url, $after_url, 'History back works.');
|
||||
}
|
||||
|
||||
}
|
Reference in a new issue