diff --git a/core/modules/node/lib/Drupal/node/Tests/Views/NodeContextualLinksTest.php b/core/modules/node/lib/Drupal/node/Tests/Views/NodeContextualLinksTest.php
new file mode 100644
index 0000000..8589bf7
--- /dev/null
+++ b/core/modules/node/lib/Drupal/node/Tests/Views/NodeContextualLinksTest.php
@@ -0,0 +1,58 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\node\Tests\Views\NodeContextualLinksTest.
+ */
+
+namespace Drupal\node\Tests\Views;
+
+use Symfony\Component\HttpFoundation\Request;
+
+/**
+ * Tests contextual links provided by views on nodes.
+ */
+class NodeContextualLinksTest extends NodeTestBase {
+
+  /**
+   * Modules to enable.
+   *
+   * @var array
+   */
+  public static $modules = array('contextual');
+
+  /**
+   * Views used by this test.
+   *
+   * @var array
+   */
+  public static $testViews = array('test_contextual_links');
+
+  public static function getInfo() {
+    return array(
+      'name' => 'Node: contextual links',
+      'description' => 'Tests contextual links provided by views on nodes.',
+      'group' => 'Views module integration',
+    );
+  }
+
+  /**
+   * Test contextual links.
+   */
+  public function testNodeContextualLinks() {
+    $this->drupalCreateNode(array('promote' => 1));
+    $this->drupalGet('node');
+
+    $user = $this->drupalCreateUser(array('administer nodes', 'access contextual links'));
+    $this->drupalLogin($user);
+
+    $data = $this->drupalPostAJAX('contextual/render', array('ids' => array('node:node:1:')), NULL, NULL, array(), array(), NULL, array());
+
+    $this->drupalSetContent($data->{'node:node:1:'});
+
+    $result = $this->xpath("//a[contains(@href, 'node/1/contextual-links')]");
+    $this->assertEqual(count($result), 1, 'One contextual link found.');
+    $this->assertEqual((string) $result[0], 'Test contextual link', 'Ensure the right link text was returned');
+  }
+
+}
diff --git a/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_contextual_links.yml b/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_contextual_links.yml
new file mode 100644
index 0000000..c9fde45
--- /dev/null
+++ b/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_contextual_links.yml
@@ -0,0 +1,98 @@
+base_field: nid
+base_table: node
+core: 8.x
+description: ''
+status: '1'
+display:
+  default:
+    display_options:
+      access:
+        type: perm
+        options:
+          perm: 'access content'
+      cache:
+        type: none
+        options: {  }
+      pager:
+        type: full
+        options:
+          items_per_page: '10'
+          offset: '0'
+          id: '0'
+          total_pages: ''
+          expose:
+            items_per_page: '0'
+            items_per_page_label: 'Items per page'
+            items_per_page_options: '5, 10, 20, 40, 60'
+            items_per_page_options_all: '0'
+            items_per_page_options_all_label: '- All -'
+            offset: '0'
+            offset_label: Offset
+          tags:
+            previous: '‹ previous'
+            next: 'next ›'
+            first: '« first'
+            last: 'last »'
+          quantity: '9'
+      query:
+        type: views_query
+        options:
+          disable_sql_rewrite: '0'
+          distinct: '0'
+          slave: '0'
+          query_comment: ''
+          query_tags: {  }
+      row:
+        type: 'entity:node'
+        options:
+          build_mode: teaser
+          comments: '0'
+          links: '1'
+          view_mode: teaser
+      style:
+        type: default
+        options:
+          grouping: {  }
+          row_class: ''
+          default_row_class: '1'
+          row_class_special: '1'
+          uses_fields: '0'
+      title: ''
+      header: {  }
+      footer: {  }
+      relationships: {  }
+      fields: {  }
+      arguments: {  }
+    display_plugin: default
+    display_title: Master
+    id: default
+    position: '0'
+  page_1:
+    display_options:
+      path: node/%/contextual-links
+      defaults:
+        arguments: '0'
+      arguments:
+        nid:
+          field: nid
+          id: nid
+          relationship: none
+          table: node
+          plugin_id: numeric
+          provider: views
+      menu:
+        type: tab
+        title: 'Test contextual link'
+        description: ''
+        name: tools
+        weight: '0'
+        context: '1'
+    display_plugin: page
+    display_title: Page
+    id: page_1
+    position: '1'
+label: Frontpage
+module: node
+id: test_contextual_links
+tag: default
+langcode: en
