Version 1
[yaffs-website] / web / modules / contrib / devel / src / Tests / DevelControllerTest.php
1 <?php
2
3 namespace Drupal\devel\Tests;
4
5 use Drupal\simpletest\WebTestBase;
6
7 /**
8  * Tests Devel controller.
9  *
10  * @group devel
11  */
12 class DevelControllerTest extends WebTestBase {
13
14   /**
15    * Modules to enable.
16    *
17    * @var array
18    */
19   public static $modules = array('devel', 'node', 'entity_test', 'devel_entity_test', 'block');
20
21   /**
22    * {@inheritdoc}
23    */
24   protected function setUp() {
25     parent::setUp();
26
27     // Create a test entity.
28     $random_label = $this->randomMachineName();
29     $data = array('type' => 'entity_test', 'name' => $random_label);
30     $this->entity = entity_create('entity_test', $data);
31     $this->entity->save();
32
33     // Create a test entity with only canonical route.
34     $random_label = $this->randomMachineName();
35     $data = array('type' => 'devel_entity_test_canonical', 'name' => $random_label);
36     $this->entity_canonical = entity_create('devel_entity_test_canonical', $data);
37     $this->entity_canonical->save();
38
39     // Create a test entity with only edit route.
40     $random_label = $this->randomMachineName();
41     $data = array('type' => 'devel_entity_test_edit', 'name' => $random_label);
42     $this->entity_edit = entity_create('devel_entity_test_edit', $data);
43     $this->entity_edit->save();
44
45     // Create a test entity with no routes.
46     $random_label = $this->randomMachineName();
47     $data = array('type' => 'devel_entity_test_no_links', 'name' => $random_label);
48     $this->entity_no_links = entity_create('devel_entity_test_no_links', $data);
49     $this->entity_no_links->save();
50
51     $this->drupalPlaceBlock('local_tasks_block');
52
53     $web_user = $this->drupalCreateUser(array(
54       'view test entity',
55       'administer entity_test content',
56       'access devel information',
57     ));
58     $this->drupalLogin($web_user);
59   }
60
61   function testRouteGeneration() {
62     // Test Devel load and render routes for entities with both route
63     // definitions.
64     $this->drupalGet('entity_test/' . $this->entity->id());
65     $this->assertText('Devel', 'Devel tab is present');
66     $this->drupalGet('devel/entity_test/' . $this->entity->id());
67     $this->assertResponse(200);
68     $this->assertText('Definition', 'Devel definition tab is present');
69     $this->assertText('Load', 'Devel load tab is present');
70     $this->assertText('Render', 'Devel load tab is present');
71     $this->assertLinkByHref('devel/entity_test/' . $this->entity->id() . '/render');
72     $this->drupalGet('devel/entity_test/' . $this->entity->id() . '/render');
73     $this->assertResponse(200);
74     $this->assertLinkByHref('devel/entity_test/' . $this->entity->id() . '/definition');
75     $this->drupalGet('devel/entity_test/' . $this->entity->id() . '/definition');
76     $this->assertResponse(200);
77
78     // Test Devel load and render routes for entities with only canonical route
79     // definitions.
80     $this->drupalGet('devel_entity_test_canonical/' . $this->entity_canonical->id());
81     $this->assertText('Devel', 'Devel tab is present');
82     //TODO this fail since assertNoLinkByHref search by partial value.
83     //$this->assertNoLinkByHref('devel/devel_entity_test_canonical/' . $this->entity_canonical->id());
84     $this->assertLinkByHref('devel/devel_entity_test_canonical/' . $this->entity_canonical->id() . '/render');
85     $this->drupalGet('devel/devel_entity_test_canonical/' . $this->entity_canonical->id());
86     $this->assertResponse(404);
87     $this->drupalGet('devel/devel_entity_test_canonical/' . $this->entity_canonical->id() . '/render');
88     $this->assertResponse(200);
89     $this->assertLinkByHref('devel/devel_entity_test_canonical/' . $this->entity_canonical->id() . '/definition');
90     $this->drupalGet('devel/devel_entity_test_canonical/' . $this->entity_canonical->id() . '/definition');
91     $this->assertResponse(200);
92
93     // Test Devel load and render routes for entities with only edit route
94     // definitions.
95     $this->drupalGet('devel_entity_test_edit/manage/' . $this->entity_edit->id());
96     $this->assertText('Devel', 'Devel tab is present');
97     $this->assertLinkByHref('devel/devel_entity_test_edit/' . $this->entity_edit->id());
98     $this->assertNoLinkByHref('devel/devel_entity_test_edit/' . $this->entity_edit->id() . '/render');
99     $this->assertNoLinkByHref('devel/devel_entity_test_edit/' . $this->entity_edit->id() . '/definition');
100     $this->drupalGet('devel/devel_entity_test_edit/' . $this->entity_edit->id());
101     $this->assertResponse(200);
102     $this->drupalGet('devel/devel_entity_test_edit/' . $this->entity_edit->id() . '/render');
103     $this->assertResponse(404);
104     $this->drupalGet('devel/devel_entity_test_edit/' . $this->entity_edit->id() . '/definition');
105     $this->assertResponse(200);
106
107     // Test Devel load and render routes for entities with no route
108     // definitions.
109     $this->drupalGet('devel_entity_test_no_links/' . $this->entity_edit->id());
110     $this->assertNoText('Devel', 'Devel tab is not present');
111     $this->assertNoLinkByHref('devel/devel_entity_test_no_links/' . $this->entity_no_links->id());
112     $this->assertNoLinkByHref('devel/devel_entity_test_no_links/' . $this->entity_no_links->id() . '/render');
113     $this->assertNoLinkByHref('devel/devel_entity_test_no_links/' . $this->entity_no_links->id() . '/definition');
114     $this->drupalGet('devel/devel_entity_test_no_links/' . $this->entity_no_links->id());
115     $this->assertResponse(404);
116     $this->drupalGet('devel/devel_entity_test_no_links/' . $this->entity_no_links->id() . '/render');
117     $this->assertResponse(404);
118     $this->drupalGet('devel/devel_entity_test_no_links/' . $this->entity_no_links->id() . '/definition');
119     $this->assertResponse(404);
120   }
121
122 }