Project

General

Profile

Paste
Download (1.88 KB) Statistics
| Branch: | Revision:

root / drupal7 / modules / contextual / contextual.test @ 27e02aed

1
<?php
2

    
3
/**
4
 * @file
5
 * Tests for contextual.module.
6
 */
7

    
8
/**
9
 * Tests accessible links after inaccessible links on dynamic context.
10
 */
11
class ContextualDynamicContextTestCase extends DrupalWebTestCase {
12
  protected $profile = 'testing';
13

    
14
  public static function getInfo() {
15
    return array(
16
      'name' => 'Contextual links on node lists',
17
      'description' => 'Tests if contextual links are showing on the front page depending on permissions.',
18
      'group' => 'Contextual',
19
    );
20
  }
21

    
22
  function setUp() {
23
    parent::setUp(array('contextual', 'node'));
24
    $this->drupalCreateContentType(array('type' => 'page', 'name' => 'Basic page'));
25
    $this->drupalCreateContentType(array('type' => 'article', 'name' => 'Article'));
26
    $web_user = $this->drupalCreateUser(array('access content', 'access contextual links', 'edit any article content'));
27
    $this->drupalLogin($web_user);
28
  }
29

    
30
  /**
31
   * Tests contextual links on node lists with different permissions.
32
   */
33
  function testNodeLinks() {
34
    // Create three nodes in the following order:
35
    // - An article, which should be user-editable.
36
    // - A page, which should not be user-editable.
37
    // - A second article, which should also be user-editable.
38
    $node1 = $this->drupalCreateNode(array('type' => 'article', 'promote' => 1));
39
    $node2 = $this->drupalCreateNode(array('type' => 'page', 'promote' => 1));
40
    $node3 = $this->drupalCreateNode(array('type' => 'article', 'promote' => 1));
41

    
42
    // Now, on the front page, all article nodes should have contextual edit
43
    // links. The page node in between should not.
44
    $this->drupalGet('node');
45
    $this->assertRaw('node/' . $node1->nid . '/edit', 'Edit link for oldest article node showing.');
46
    $this->assertNoRaw('node/' . $node2->nid . '/edit', 'No edit link for page nodes.');
47
    $this->assertRaw('node/' . $node3->nid . '/edit', 'Edit link for most recent article node showing.');
48
  }
49
}