Further modules included.
[yaffs-website] / web / modules / contrib / drupalmoduleupgrader / tests / src / Unit / Routing / Drupal7 / RouterTest.php
1 <?php
2
3 /**
4  * @file
5  * Contains \Drupal\Tests\drupalmoduleupgrader\Unit\Converter\Routing\Drupal7\RouterTest.
6  */
7
8 namespace Drupal\Tests\drupalmoduleupgrader\Unit\Routing\Drupal7;
9
10 use Drupal\drupalmoduleupgrader\Routing\Drupal7\Router;
11 use Drupal\drupalmoduleupgrader\Routing\Drupal7\RouteWrapper;
12 use Drupal\Tests\UnitTestCase;
13
14 /**
15  * @group DMU.Routing
16  */
17 class RouterTest extends UnitTestCase {
18
19   private $router;
20
21   public function __construct() {
22     $this->router = new Router();
23
24     foreach ($this->hookMenu() as $path => $item) {
25       $route = new RouteWrapper($path, $item);
26       $this->router->addRoute($route);
27     }
28   }
29
30   public function testOfType() {
31     $this->assertCount(8, $this->router->ofType('MENU_LOCAL_TASK, MENU_DEFAULT_LOCAL_TASK'));
32   }
33
34   public function testGetAllLinks() {
35     $this->assertCount(9, $this->router->getAllLinks());
36   }
37
38   public function testGetLinks() {
39     $this->assertCount(1, $this->router->getLinks());
40   }
41
42   public function testGetLocalTasks() {
43     $this->assertCount(5, $this->router->getLocalTasks());
44   }
45
46   public function testGetDefaultLocalTasks() {
47     $this->assertCount(3, $this->router->getDefaultLocalTasks());
48   }
49
50   public function testGetLocalActions() {
51     $this->assertCount(0, $this->router->getLocalActions());
52   }
53
54   public function testGetContextualLinks() {
55     $this->assertCount(0, $this->router->getContextualLinks());
56   }
57
58   public function testFinalize() {
59     $this->router->finalize();
60
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'));
66
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'));
73
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());
77   }
78
79   /**
80    * The Diff module's hook_menu() implementation. It's a nice mix of things
81    * to test on.
82    *
83    * @return array
84    */
85   private function hookMenu() {
86     $items = [];
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',
94     );
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',
104     );
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',
113     );
114     $items['admin/config/content/diff'] = array(
115       'title' => 'Diff',
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'),
121     );
122     $items['admin/config/content/diff/settings'] = array(
123       'title' => 'Settings',
124       'type' => 'MENU_DEFAULT_LOCAL_TASK',
125       'weight' => -10,
126     );
127     $items['admin/config/content/diff/fields'] = array(
128       'title' => 'Fields',
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',
134     );
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',
142     );
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',
151     );
152     $items['admin/config/content/diff/entities/node'] = array(
153       'title' => 'Nodes',
154       'description' => 'Node comparison settings.',
155       'type' => 'MENU_DEFAULT_LOCAL_TASK',
156       'weight' => -10,
157     );
158     $items['admin/config/content/diff/entities/user'] = array(
159       'title' => 'Users',
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',
166     );
167
168     return $items;
169   }
170
171 }