X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs-website;a=blobdiff_plain;f=web%2Fmodules%2Fcontrib%2Fdrupalmoduleupgrader%2Ftests%2Fsrc%2FUnit%2FRouting%2FDrupal7%2FRouterTest.php;fp=web%2Fmodules%2Fcontrib%2Fdrupalmoduleupgrader%2Ftests%2Fsrc%2FUnit%2FRouting%2FDrupal7%2FRouterTest.php;h=f65ccd08bfa506e44df5d184279c177239e18f2b;hp=0000000000000000000000000000000000000000;hb=8acec36f19c470dfcda1ae2336826a782f41874c;hpb=e0411c4e83ba0d079034db83c3f7f55be24a0e35 diff --git a/web/modules/contrib/drupalmoduleupgrader/tests/src/Unit/Routing/Drupal7/RouterTest.php b/web/modules/contrib/drupalmoduleupgrader/tests/src/Unit/Routing/Drupal7/RouterTest.php new file mode 100644 index 000000000..f65ccd08b --- /dev/null +++ b/web/modules/contrib/drupalmoduleupgrader/tests/src/Unit/Routing/Drupal7/RouterTest.php @@ -0,0 +1,171 @@ +router = new Router(); + + foreach ($this->hookMenu() as $path => $item) { + $route = new RouteWrapper($path, $item); + $this->router->addRoute($route); + } + } + + public function testOfType() { + $this->assertCount(8, $this->router->ofType('MENU_LOCAL_TASK, MENU_DEFAULT_LOCAL_TASK')); + } + + public function testGetAllLinks() { + $this->assertCount(9, $this->router->getAllLinks()); + } + + public function testGetLinks() { + $this->assertCount(1, $this->router->getLinks()); + } + + public function testGetLocalTasks() { + $this->assertCount(5, $this->router->getLocalTasks()); + } + + public function testGetDefaultLocalTasks() { + $this->assertCount(3, $this->router->getDefaultLocalTasks()); + } + + public function testGetLocalActions() { + $this->assertCount(0, $this->router->getLocalActions()); + } + + public function testGetContextualLinks() { + $this->assertCount(0, $this->router->getContextualLinks()); + } + + public function testFinalize() { + $this->router->finalize(); + + $list_revisions = $this->router['node/%node/revisions/list']; + $this->assertFalse($list_revisions->hasParent()); + $this->assertFalse($list_revisions->hasChildren()); + $this->assertTrue($list_revisions->hasSiblings()); + $this->assertTrue($list_revisions->getSiblings()->containsKey('node/%node/revisions/view')); + + $view_revisions = $this->router['node/%node/revisions/view']; + $this->assertFalse($view_revisions->hasParent()); + $this->assertTrue($view_revisions->hasChildren()); + $this->assertTrue($view_revisions->getChildren()->containsKey('node/%node/revisions/view/latest')); + $this->assertTrue($view_revisions->hasSiblings()); + $this->assertTrue($view_revisions->getSiblings()->containsKey('node/%node/revisions/list')); + + $diff_fields = $this->router['admin/config/content/diff/fields']; + $this->assertTrue($diff_fields->hasParent()); + $this->assertEquals('admin/config/content/diff', $diff_fields->getParent()->getPath()); + } + + /** + * The Diff module's hook_menu() implementation. It's a nice mix of things + * to test on. + * + * @return array + */ + private function hookMenu() { + $items = []; + $items['node/%node/revisions/list'] = array( + 'title' => 'List revisions', + 'page callback' => 'diff_diffs_overview', + 'type' => 'MENU_DEFAULT_LOCAL_TASK', + 'access callback' => 'diff_node_revision_access', + 'access arguments' => array(1), + 'file' => 'diff.pages.inc', + ); + $items['node/%node/revisions/view'] = array( + 'title' => 'Compare revisions', + 'page callback' => 'diff_diffs_show', + 'page arguments' => array(1, 4, 5, 6), + 'type' => 'MENU_LOCAL_TASK', + 'access callback' => 'diff_node_revision_access', + 'access arguments' => array(1), + 'tab_parent' => 'node/%/revisions/list', + 'file' => 'diff.pages.inc', + ); + $items['node/%node/revisions/view/latest'] = array( + 'title' => 'Show latest difference', + 'page callback' => 'diff_latest', + 'page arguments' => array(1), + 'type' => 'MENU_LOCAL_TASK', + 'access arguments' => array('access content'), + 'tab_parent' => 'node/%/revisions/view', + 'file' => 'diff.pages.inc', + ); + $items['admin/config/content/diff'] = array( + 'title' => 'Diff', + 'description' => 'Diff settings.', + 'file' => 'diff.admin.inc', + 'page callback' => 'drupal_get_form', + 'page arguments' => array('diff_admin_settings'), + 'access arguments' => array('administer site configuration'), + ); + $items['admin/config/content/diff/settings'] = array( + 'title' => 'Settings', + 'type' => 'MENU_DEFAULT_LOCAL_TASK', + 'weight' => -10, + ); + $items['admin/config/content/diff/fields'] = array( + 'title' => 'Fields', + 'description' => 'Field support and settings overview.', + 'file' => 'diff.admin.inc', + 'page callback' => 'diff_admin_field_overview', + 'access arguments' => array('administer site configuration'), + 'type' => 'MENU_LOCAL_TASK', + ); + $items['admin/config/content/diff/fields/%'] = array( + 'title' => 'Global field settings', + 'page callback' => 'drupal_get_form', + 'page arguments' => array('diff_admin_global_field_settings', 5), + 'access arguments' => array('administer site configuration'), + 'type' => 'MENU_VISIBLE_IN_BREADCRUMB', + 'file' => 'diff.admin.inc', + ); + $items['admin/config/content/diff/entities'] = array( + 'title' => 'Entities', + 'description' => 'Entity settings.', + 'file' => 'diff.admin.inc', + 'page callback' => 'drupal_get_form', + 'page arguments' => array('diff_admin_global_entity_settings', 'node'), + 'access arguments' => array('administer site configuration'), + 'type' => 'MENU_LOCAL_TASK', + ); + $items['admin/config/content/diff/entities/node'] = array( + 'title' => 'Nodes', + 'description' => 'Node comparison settings.', + 'type' => 'MENU_DEFAULT_LOCAL_TASK', + 'weight' => -10, + ); + $items['admin/config/content/diff/entities/user'] = array( + 'title' => 'Users', + 'description' => 'User diff settings.', + 'file' => 'diff.admin.inc', + 'page callback' => 'drupal_get_form', + 'page arguments' => array('diff_admin_global_entity_settings', 'user'), + 'access arguments' => array('administer site configuration'), + 'type' => 'MENU_LOCAL_TASK', + ); + + return $items; + } + +}