Further modules included.
[yaffs-website] / web / modules / contrib / drupalmoduleupgrader / tests / src / Unit / Routing / Drupal7 / RouterTest.php
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 (file)
index 0000000..f65ccd0
--- /dev/null
@@ -0,0 +1,171 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\Tests\drupalmoduleupgrader\Unit\Converter\Routing\Drupal7\RouterTest.
+ */
+
+namespace Drupal\Tests\drupalmoduleupgrader\Unit\Routing\Drupal7;
+
+use Drupal\drupalmoduleupgrader\Routing\Drupal7\Router;
+use Drupal\drupalmoduleupgrader\Routing\Drupal7\RouteWrapper;
+use Drupal\Tests\UnitTestCase;
+
+/**
+ * @group DMU.Routing
+ */
+class RouterTest extends UnitTestCase {
+
+  private $router;
+
+  public function __construct() {
+    $this->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;
+  }
+
+}