From 36e9422aef289691cc3f420bec4ceee6c60a5618 Mon Sep 17 00:00:00 2001
From: Dries <dries@buytaert.net>
Date: Mon, 6 Feb 2012 17:25:12 -0500
Subject: [PATCH] - Patch #1425280 by Niklas Fiekas, swentel: no contextual
 links in node lists after a node without contextual links.

---
 core/modules/contextual/contextual.test | 47 +++++++++++++++++++++++++
 1 file changed, 47 insertions(+)
 create mode 100644 core/modules/contextual/contextual.test

diff --git a/core/modules/contextual/contextual.test b/core/modules/contextual/contextual.test
new file mode 100644
index 000000000000..a1b94cc08cb8
--- /dev/null
+++ b/core/modules/contextual/contextual.test
@@ -0,0 +1,47 @@
+<?php
+
+/**
+ * @file
+ * Tests for contextual.module.
+ */
+
+/**
+ * Tests accessible links after inaccessible links on dynamic context.
+ */
+class ContextualDynamicContextTestCase extends DrupalWebTestCase {
+  protected $profile = 'testing';
+
+  public static function getInfo() {
+    return array(
+      'name' => 'Contextual links on node lists',
+      'description' => 'Tests if contextual links are showing on the front page depending on permissions.',
+      'group' => 'Contextual',
+    );
+  }
+
+  function setUp() {
+    parent::setUp(array('contextual', 'node'));
+    $this->drupalCreateContentType(array('type' => 'page', 'name' => 'Basic page'));
+    $this->drupalCreateContentType(array('type' => 'article', 'name' => 'Article'));
+    $web_user = $this->drupalCreateUser(array('access content', 'access contextual links', 'edit any article content'));
+    $this->drupalLogin($web_user);
+  }
+
+  /**
+   * Tests contextual links on node lists with different permissions.
+   */
+  function testNodeLinks() {
+    // Promote nodes to the front page. One article node the user can edit, one
+    // page node he can not edit and another article node he can edit.
+    $node1 = $this->drupalCreateNode(array('type' => 'article', 'promote' => 1));
+    $node2 = $this->drupalCreateNode(array('type' => 'page', 'promote' => 1));
+    $node3 = $this->drupalCreateNode(array('type' => 'article', 'promote' => 1));
+
+    // Now, on the front page, all article nodes should have contextual edit
+    // links. The page node in between should not.
+    $this->drupalGet('node');
+    $this->assertRaw('node/' . $node1->nid . '/edit', 'Edit link for oldest article node showing.');
+    $this->assertNoRaw('node/' . $node2->nid . '/edit', 'No edit link for page nodes.');
+    $this->assertRaw('node/' . $node3->nid . '/edit', 'Edit link for most recent article node showing.');
+  }
+}
-- 
GitLab