5 * Contains \Drupal\Tests\drupalmoduleupgrader\Unit\Converter\Routing\Drupal7\RouterTest.
8 namespace Drupal\Tests\drupalmoduleupgrader\Unit\Routing\Drupal7;
10 use Drupal\drupalmoduleupgrader\Routing\Drupal7\Router;
11 use Drupal\drupalmoduleupgrader\Routing\Drupal7\RouteWrapper;
12 use Drupal\Tests\UnitTestCase;
17 class RouterTest extends UnitTestCase {
21 public function __construct() {
22 $this->router = new Router();
24 foreach ($this->hookMenu() as $path => $item) {
25 $route = new RouteWrapper($path, $item);
26 $this->router->addRoute($route);
30 public function testOfType() {
31 $this->assertCount(8, $this->router->ofType('MENU_LOCAL_TASK, MENU_DEFAULT_LOCAL_TASK'));
34 public function testGetAllLinks() {
35 $this->assertCount(9, $this->router->getAllLinks());
38 public function testGetLinks() {
39 $this->assertCount(1, $this->router->getLinks());
42 public function testGetLocalTasks() {
43 $this->assertCount(5, $this->router->getLocalTasks());
46 public function testGetDefaultLocalTasks() {
47 $this->assertCount(3, $this->router->getDefaultLocalTasks());
50 public function testGetLocalActions() {
51 $this->assertCount(0, $this->router->getLocalActions());
54 public function testGetContextualLinks() {
55 $this->assertCount(0, $this->router->getContextualLinks());
58 public function testFinalize() {
59 $this->router->finalize();
61 $list_revisions = $this->router['node/%node/revisions/list'];
62 $this->assertFalse($list_revisions->hasParent());
63 $this->assertFalse($list_revisions->hasChildren());
64 $this->assertTrue($list_revisions->hasSiblings());
65 $this->assertTrue($list_revisions->getSiblings()->containsKey('node/%node/revisions/view'));
67 $view_revisions = $this->router['node/%node/revisions/view'];
68 $this->assertFalse($view_revisions->hasParent());
69 $this->assertTrue($view_revisions->hasChildren());
70 $this->assertTrue($view_revisions->getChildren()->containsKey('node/%node/revisions/view/latest'));
71 $this->assertTrue($view_revisions->hasSiblings());
72 $this->assertTrue($view_revisions->getSiblings()->containsKey('node/%node/revisions/list'));
74 $diff_fields = $this->router['admin/config/content/diff/fields'];
75 $this->assertTrue($diff_fields->hasParent());
76 $this->assertEquals('admin/config/content/diff', $diff_fields->getParent()->getPath());
80 * The Diff module's hook_menu() implementation. It's a nice mix of things
85 private function hookMenu() {
87 $items['node/%node/revisions/list'] = array(
88 'title' => 'List revisions',
89 'page callback' => 'diff_diffs_overview',
90 'type' => 'MENU_DEFAULT_LOCAL_TASK',
91 'access callback' => 'diff_node_revision_access',
92 'access arguments' => array(1),
93 'file' => 'diff.pages.inc',
95 $items['node/%node/revisions/view'] = array(
96 'title' => 'Compare revisions',
97 'page callback' => 'diff_diffs_show',
98 'page arguments' => array(1, 4, 5, 6),
99 'type' => 'MENU_LOCAL_TASK',
100 'access callback' => 'diff_node_revision_access',
101 'access arguments' => array(1),
102 'tab_parent' => 'node/%/revisions/list',
103 'file' => 'diff.pages.inc',
105 $items['node/%node/revisions/view/latest'] = array(
106 'title' => 'Show latest difference',
107 'page callback' => 'diff_latest',
108 'page arguments' => array(1),
109 'type' => 'MENU_LOCAL_TASK',
110 'access arguments' => array('access content'),
111 'tab_parent' => 'node/%/revisions/view',
112 'file' => 'diff.pages.inc',
114 $items['admin/config/content/diff'] = array(
116 'description' => 'Diff settings.',
117 'file' => 'diff.admin.inc',
118 'page callback' => 'drupal_get_form',
119 'page arguments' => array('diff_admin_settings'),
120 'access arguments' => array('administer site configuration'),
122 $items['admin/config/content/diff/settings'] = array(
123 'title' => 'Settings',
124 'type' => 'MENU_DEFAULT_LOCAL_TASK',
127 $items['admin/config/content/diff/fields'] = array(
129 'description' => 'Field support and settings overview.',
130 'file' => 'diff.admin.inc',
131 'page callback' => 'diff_admin_field_overview',
132 'access arguments' => array('administer site configuration'),
133 'type' => 'MENU_LOCAL_TASK',
135 $items['admin/config/content/diff/fields/%'] = array(
136 'title' => 'Global field settings',
137 'page callback' => 'drupal_get_form',
138 'page arguments' => array('diff_admin_global_field_settings', 5),
139 'access arguments' => array('administer site configuration'),
140 'type' => 'MENU_VISIBLE_IN_BREADCRUMB',
141 'file' => 'diff.admin.inc',
143 $items['admin/config/content/diff/entities'] = array(
144 'title' => 'Entities',
145 'description' => 'Entity settings.',
146 'file' => 'diff.admin.inc',
147 'page callback' => 'drupal_get_form',
148 'page arguments' => array('diff_admin_global_entity_settings', 'node'),
149 'access arguments' => array('administer site configuration'),
150 'type' => 'MENU_LOCAL_TASK',
152 $items['admin/config/content/diff/entities/node'] = array(
154 'description' => 'Node comparison settings.',
155 'type' => 'MENU_DEFAULT_LOCAL_TASK',
158 $items['admin/config/content/diff/entities/user'] = array(
160 'description' => 'User diff settings.',
161 'file' => 'diff.admin.inc',
162 'page callback' => 'drupal_get_form',
163 'page arguments' => array('diff_admin_global_entity_settings', 'user'),
164 'access arguments' => array('administer site configuration'),
165 'type' => 'MENU_LOCAL_TASK',