NodePreviewLinkTest.php
Same filename in other branches
Namespace
Drupal\Tests\node\FunctionalJavascriptFile
-
core/
modules/ node/ tests/ src/ FunctionalJavascript/ NodePreviewLinkTest.php
View source
<?php
declare (strict_types=1);
namespace Drupal\Tests\node\FunctionalJavascript;
use Drupal\filter\Entity\FilterFormat;
use Drupal\FunctionalJavascriptTests\WebDriverTestBase;
/**
* Tests the JavaScript prevention of navigation away from node previews.
*
* @group node
*/
class NodePreviewLinkTest extends WebDriverTestBase {
/**
* {@inheritdoc}
*/
protected static $modules = [
'node',
'filter',
];
/**
* {@inheritdoc}
*/
protected $defaultTheme = 'stark';
/**
* {@inheritdoc}
*/
protected function setUp() : void {
parent::setUp();
$filtered_html_format = FilterFormat::create([
'format' => 'filtered_html',
'name' => 'Filtered HTML',
]);
$filtered_html_format->save();
$this->drupalCreateContentType([
'type' => 'test',
]);
$user = $this->drupalCreateUser([
'access content',
'edit own test content',
'create test content',
$filtered_html_format->getPermissionName(),
]);
$this->drupalLogin($user);
}
/**
* Tests the behavior of clicking preview links.
*/
public function testPreviewLinks() : void {
$assertSession = $this->assertSession();
$this->drupalGet('node/add/test');
$this->submitForm([
'title[0][value]' => 'Test anchor link',
'body[0][value]' => '<a href="#foo">Anchor link</a>',
], 'Preview');
$this->clickLink('Anchor link');
$assertSession->pageTextNotContains('Leave preview?');
$this->drupalGet('node/add/test');
$this->submitForm([
'title[0][value]' => 'Test normal link',
'body[0][value]' => '<a href="/foo">Normal link</a>',
], 'Preview');
$this->clickLink('Normal link');
$assertSession->pageTextContains('Leave preview?');
$this->click('button:contains("Leave preview")');
$this->assertStringEndsWith('/foo', $this->getUrl());
$this->drupalGet('node/add/test');
$this->submitForm([
'title[0][value]' => 'Test child element link',
'body[0][value]' => '<a href="/foo" class="preview-child-element"><span>Child element link</span></a>',
], 'Preview');
$this->getSession()
->getPage()
->find('css', '.preview-child-element span')
->click();
$assertSession->pageTextContains('Leave preview?');
$this->click('button:contains("Leave preview")');
$this->assertStringEndsWith('/foo', $this->getUrl());
}
}
Classes
Title | Deprecated | Summary |
---|---|---|
NodePreviewLinkTest | Tests the JavaScript prevention of navigation away from node previews. |
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.