Chris@17
|
1 <?php
|
Chris@17
|
2
|
Chris@17
|
3 namespace Drupal\Tests\node\FunctionalJavascript;
|
Chris@17
|
4
|
Chris@17
|
5 use Drupal\filter\Entity\FilterFormat;
|
Chris@17
|
6 use Drupal\FunctionalJavascriptTests\WebDriverTestBase;
|
Chris@17
|
7
|
Chris@17
|
8 /**
|
Chris@17
|
9 * Tests the JavaScript prevention of navigation away from node previews.
|
Chris@17
|
10 *
|
Chris@17
|
11 * @group node
|
Chris@17
|
12 */
|
Chris@17
|
13 class NodePreviewLinkTest extends WebDriverTestBase {
|
Chris@17
|
14
|
Chris@17
|
15 /**
|
Chris@17
|
16 * {@inheritdoc}
|
Chris@17
|
17 */
|
Chris@17
|
18 public static $modules = ['node', 'filter'];
|
Chris@17
|
19
|
Chris@17
|
20 /**
|
Chris@17
|
21 * {@inheritdoc}
|
Chris@17
|
22 */
|
Chris@17
|
23 public function setUp() {
|
Chris@17
|
24 parent::setUp();
|
Chris@17
|
25
|
Chris@17
|
26 $filtered_html_format = FilterFormat::create([
|
Chris@17
|
27 'format' => 'filtered_html',
|
Chris@17
|
28 'name' => 'Filtered HTML',
|
Chris@17
|
29 ]);
|
Chris@17
|
30 $filtered_html_format->save();
|
Chris@17
|
31
|
Chris@17
|
32 $this->drupalCreateContentType(['type' => 'test']);
|
Chris@17
|
33
|
Chris@17
|
34 $user = $this->drupalCreateUser([
|
Chris@17
|
35 'access content',
|
Chris@17
|
36 'edit own test content',
|
Chris@17
|
37 'create test content',
|
Chris@17
|
38 $filtered_html_format->getPermissionName(),
|
Chris@17
|
39 ]);
|
Chris@17
|
40 $this->drupalLogin($user);
|
Chris@17
|
41 }
|
Chris@17
|
42
|
Chris@17
|
43 /**
|
Chris@17
|
44 * Test the behavior of clicking preview links.
|
Chris@17
|
45 */
|
Chris@17
|
46 public function testPreviewLinks() {
|
Chris@17
|
47 $assertSession = $this->assertSession();
|
Chris@17
|
48 $this->drupalPostForm('node/add/test', [
|
Chris@17
|
49 'title[0][value]' => 'Test node',
|
Chris@17
|
50 'body[0][value]' => '<a href="#foo">Anchor link</a><a href="/foo">Normal link</a>',
|
Chris@17
|
51 ], t('Preview'));
|
Chris@17
|
52 $this->clickLink('Anchor link');
|
Chris@17
|
53 $assertSession->pageTextNotContains('Leave preview?');
|
Chris@17
|
54 $this->clickLink('Normal link');
|
Chris@17
|
55 $assertSession->pageTextContains('Leave preview?');
|
Chris@17
|
56 $this->click('button:contains("Leave preview")');
|
Chris@17
|
57 $this->assertStringEndsWith('/foo', $this->getUrl());
|
Chris@17
|
58 }
|
Chris@17
|
59
|
Chris@17
|
60 }
|