3 namespace Drupal\devel\Tests;
5 use Drupal\simpletest\WebTestBase;
8 * Tests Devel controller.
12 class DevelControllerTest extends WebTestBase {
19 public static $modules = array('devel', 'node', 'entity_test', 'devel_entity_test', 'block');
24 protected function setUp() {
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();
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();
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();
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();
51 $this->drupalPlaceBlock('local_tasks_block');
53 $web_user = $this->drupalCreateUser(array(
55 'administer entity_test content',
56 'access devel information',
58 $this->drupalLogin($web_user);
61 function testRouteGeneration() {
62 // Test Devel load and render routes for entities with both route
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);
78 // Test Devel load and render routes for entities with only canonical route
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);
93 // Test Devel load and render routes for entities with only edit route
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);
107 // Test Devel load and render routes for entities with no route
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);