danielebarchiesi@0
|
1 <?php
|
danielebarchiesi@0
|
2
|
danielebarchiesi@0
|
3 /**
|
danielebarchiesi@0
|
4 * @file
|
danielebarchiesi@0
|
5 * Tests for contextual.module.
|
danielebarchiesi@0
|
6 */
|
danielebarchiesi@0
|
7
|
danielebarchiesi@0
|
8 /**
|
danielebarchiesi@0
|
9 * Tests accessible links after inaccessible links on dynamic context.
|
danielebarchiesi@0
|
10 */
|
danielebarchiesi@0
|
11 class ContextualDynamicContextTestCase extends DrupalWebTestCase {
|
danielebarchiesi@0
|
12 protected $profile = 'testing';
|
danielebarchiesi@0
|
13
|
danielebarchiesi@0
|
14 public static function getInfo() {
|
danielebarchiesi@0
|
15 return array(
|
danielebarchiesi@0
|
16 'name' => 'Contextual links on node lists',
|
danielebarchiesi@0
|
17 'description' => 'Tests if contextual links are showing on the front page depending on permissions.',
|
danielebarchiesi@0
|
18 'group' => 'Contextual',
|
danielebarchiesi@0
|
19 );
|
danielebarchiesi@0
|
20 }
|
danielebarchiesi@0
|
21
|
danielebarchiesi@0
|
22 function setUp() {
|
danielebarchiesi@0
|
23 parent::setUp(array('contextual', 'node'));
|
danielebarchiesi@0
|
24 $this->drupalCreateContentType(array('type' => 'page', 'name' => 'Basic page'));
|
danielebarchiesi@0
|
25 $this->drupalCreateContentType(array('type' => 'article', 'name' => 'Article'));
|
danielebarchiesi@0
|
26 $web_user = $this->drupalCreateUser(array('access content', 'access contextual links', 'edit any article content'));
|
danielebarchiesi@0
|
27 $this->drupalLogin($web_user);
|
danielebarchiesi@0
|
28 }
|
danielebarchiesi@0
|
29
|
danielebarchiesi@0
|
30 /**
|
danielebarchiesi@0
|
31 * Tests contextual links on node lists with different permissions.
|
danielebarchiesi@0
|
32 */
|
danielebarchiesi@0
|
33 function testNodeLinks() {
|
danielebarchiesi@0
|
34 // Create three nodes in the following order:
|
danielebarchiesi@0
|
35 // - An article, which should be user-editable.
|
danielebarchiesi@0
|
36 // - A page, which should not be user-editable.
|
danielebarchiesi@0
|
37 // - A second article, which should also be user-editable.
|
danielebarchiesi@0
|
38 $node1 = $this->drupalCreateNode(array('type' => 'article', 'promote' => 1));
|
danielebarchiesi@0
|
39 $node2 = $this->drupalCreateNode(array('type' => 'page', 'promote' => 1));
|
danielebarchiesi@0
|
40 $node3 = $this->drupalCreateNode(array('type' => 'article', 'promote' => 1));
|
danielebarchiesi@0
|
41
|
danielebarchiesi@0
|
42 // Now, on the front page, all article nodes should have contextual edit
|
danielebarchiesi@0
|
43 // links. The page node in between should not.
|
danielebarchiesi@0
|
44 $this->drupalGet('node');
|
danielebarchiesi@0
|
45 $this->assertRaw('node/' . $node1->nid . '/edit', 'Edit link for oldest article node showing.');
|
danielebarchiesi@0
|
46 $this->assertNoRaw('node/' . $node2->nid . '/edit', 'No edit link for page nodes.');
|
danielebarchiesi@0
|
47 $this->assertRaw('node/' . $node3->nid . '/edit', 'Edit link for most recent article node showing.');
|
danielebarchiesi@0
|
48 }
|
danielebarchiesi@0
|
49 }
|