public function InsertFileWidgetTest::testMultipleInsertOperations in Insert 8
File
- tests/
src/ FunctionalJavaScript/ InsertFileWidgetTest.php, line 64
Class
- InsertFileWidgetTest
- @group insert
Namespace
Drupal\Tests\insert\FunctionalJavascriptCode
public function testMultipleInsertOperations() {
$field_name = strtolower($this
->randomMachineName());
$this
->createFileField($field_name, 'article');
$files = $this
->drupalGetTestFiles('text');
$this
->drupalGet('node/add/article');
$page = $this
->getSession()
->getPage();
$page
->attachFileToField('files[' . $field_name . '_0]', \Drupal::service('file_system')
->realpath($files[0]->uri));
$this
->assertSession()
->waitForField($field_name . '[0][fids]');
$body = $page
->find('css', '#edit-body-0-value');
$page
->findButton('Insert')
->click();
$this
->assertEquals(1, preg_match_all('!<a [^>]+>[^<]+</a>!', $body
->getValue()), 'Verified inserted HTML after inserting once: "' . $body
->getValue() . '"');
$page
->findButton('Insert')
->click();
$this
->assertEquals(2, preg_match_all('!<a [^>]+>[^<]+</a>!', $body
->getValue()), 'Verified inserted HTML after inserting twice: "' . $body
->getValue() . '"');
$body
->setValue($body
->getValue() . 'insert after');
// Simulate updated caret position:
$this
->getSession()
->executeScript("var textarea = jQuery('#edit-body-0-value').get(0); textarea.selectionStart = textarea.selectionEnd = textarea.selectionStart + 'insert after'.length;");
$page
->findButton('Insert')
->click();
$this
->assertEquals(1, preg_match('!^<a [^>]+>[^<]+</a><a [^>]+>[^<]+</a>insert after<a [^>]+>[^<]+</a>$!', $body
->getValue()), 'Verified HTML after inserting three times: "' . $body
->getValue() . '"');
$body
->setValue('insert before');
$this
->getSession()
->executeScript("var textarea = jQuery('#edit-body-0-value').get(0); textarea.selectionStart = textarea.selectionEnd = 0;");
$page
->findButton('Insert')
->click();
$this
->assertEquals(1, preg_match('!^<a [^>]+>[^<]+</a>insert before$!', $body
->getValue()), 'Verified HTML inserted before existing content: "' . $body
->getValue() . '"');
}