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..6140ad3 --- /dev/null +++ b/core/modules/node/lib/Drupal/node/Tests/Views/NodeContextualLinksTest.php @@ -0,0 +1,62 @@ + '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')); + $this->drupalLogin($user); + + $request = Request::create('contextual/render'); + $request->request->set('ids', array('node:node:1:')); + /** @var \Symfony\Component\HttpKernel\HttpKernelInterface $http_kernel */ + $http_kernel = $this->container->get('http_kernel'); + $response = $http_kernel->handle($request); + $data = json_decode($response->getContent()); + + $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