public function FieldTest::testFieldWithCkeditor in Drupal 9
Same name and namespace in other branches
- 8 core/modules/quickedit/tests/src/FunctionalJavascript/FieldTest.php \Drupal\Tests\quickedit\FunctionalJavascript\FieldTest::testFieldWithCkeditor()
 - 10 core/modules/quickedit/tests/src/FunctionalJavascript/FieldTest.php \Drupal\Tests\quickedit\FunctionalJavascript\FieldTest::testFieldWithCkeditor()
 
Tests that quickeditor works correctly for field with CKEditor.
File
- core/
modules/ quickedit/ tests/ src/ FunctionalJavascript/ FieldTest.php, line 75  
Class
- FieldTest
 - Tests quickedit.
 
Namespace
Drupal\Tests\quickedit\FunctionalJavascriptCode
public function testFieldWithCkeditor() {
  $body_value = '<p>Sapere aude</p>';
  $node = Node::create([
    'type' => 'page',
    'title' => 'Page node',
    'body' => [
      [
        'value' => $body_value,
        'format' => 'filtered_html',
      ],
    ],
  ]);
  $node
    ->save();
  $page = $this
    ->getSession()
    ->getPage();
  $assert = $this
    ->assertSession();
  $this
    ->drupalGet('node/' . $node
    ->id());
  // Wait "Quick edit" button for node.
  $this
    ->assertSession()
    ->waitForElement('css', '[data-quickedit-entity-id="node/' . $node
    ->id() . '"] .contextual .quickedit');
  // Click by "Quick edit".
  $this
    ->clickContextualLink('[data-quickedit-entity-id="node/' . $node
    ->id() . '"]', 'Quick edit');
  // Switch to body field.
  $page
    ->find('css', '[data-quickedit-field-id="node/' . $node
    ->id() . '/body/en/full"]')
    ->click();
  // Wait and click by "Blockquote" button from editor for body field.
  $this
    ->assertSession()
    ->waitForElementVisible('css', '.cke_button.cke_button__blockquote')
    ->click();
  // Wait and click by "Save" button after body field was changed.
  $this
    ->assertSession()
    ->waitForElementVisible('css', '.quickedit-toolgroup.ops [type="submit"][aria-hidden="false"]')
    ->click();
  // Wait until the save occurs and the editor UI disappears.
  $this
    ->assertSession()
    ->assertNoElementAfterWait('css', '.cke_button.cke_button__blockquote');
  // Ensure that the changes take effect.
  $assert
    ->responseMatches("|<blockquote>\\s*{$body_value}\\s*</blockquote>|");
}