diff core/modules/node/tests/src/FunctionalJavascript/NodePreviewLinkTest.php @ 17:129ea1e6d783

Update, including to Drupal core 8.6.10
author Chris Cannam
date Thu, 28 Feb 2019 13:21:36 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/core/modules/node/tests/src/FunctionalJavascript/NodePreviewLinkTest.php	Thu Feb 28 13:21:36 2019 +0000
@@ -0,0 +1,60 @@
+<?php
+
+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}
+   */
+  public static $modules = ['node', 'filter'];
+
+  /**
+   * {@inheritdoc}
+   */
+  public function setUp() {
+    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);
+  }
+
+  /**
+   * Test the behavior of clicking preview links.
+   */
+  public function testPreviewLinks() {
+    $assertSession = $this->assertSession();
+    $this->drupalPostForm('node/add/test', [
+      'title[0][value]' => 'Test node',
+      'body[0][value]' => '<a href="#foo">Anchor link</a><a href="/foo">Normal link</a>',
+    ], t('Preview'));
+    $this->clickLink('Anchor link');
+    $assertSession->pageTextNotContains('Leave preview?');
+    $this->clickLink('Normal link');
+    $assertSession->pageTextContains('Leave preview?');
+    $this->click('button:contains("Leave preview")');
+    $this->assertStringEndsWith('/foo', $this->getUrl());
+  }
+
+}