You are here

class RenameAdminPathEventSubscriberTest in Rename Admin Paths 8.2

@group tests

Hierarchy

Expanded class hierarchy of RenameAdminPathEventSubscriberTest

File

tests/src/Unit/EventSubscriber/RenameAdminPathEventSubscriberTest.php, line 15

Namespace

Drupal\Tests\rename_admin_paths\Unit\EventSubscriber
View source
class RenameAdminPathEventSubscriberTest extends UnitTestCase {
  public function testGetSubscribedEvents() {
    $events = RenameAdminPathsEventSubscriber::getSubscribedEvents();
    $this
      ->assertInternalType('array', $events);
    $this
      ->assertCount(1, $events);
  }
  public function testDoNotRenamePaths() {
    $this
      ->assertRoutePaths([], [
      'home' => '/',
      'about' => '/about',
      'admin' => '/admin',
      'admin_slashed' => '/admin/',
      'admin_sub' => '/admin/sub',
      'admin_sub_sub' => '/admin/sub/sub',
      'admin_admin' => '/admin/admin',
      'admin_sub_admin' => '/admin/sub/admin',
      'admins' => '/admins',
      'admins_sub' => '/admins/sub',
      'user' => '/user',
      'user_slashed' => '/user/',
      'user_sub' => '/user/sub',
      'user_sub_sub' => '/user/sub/sub',
      'user_admin' => '/user/user',
      'user_sub_admin' => '/user/sub/user',
      'users' => '/users',
      'users_sub' => '/users/sub',
    ]);
  }
  public function testRenameAdminPath() {
    $this
      ->assertRoutePaths([
      'admin_path' => TRUE,
      'admin_path_value' => 'backend',
    ], [
      'home' => '/',
      'about' => '/about',
      'admin' => '/backend',
      'admin_slashed' => '/backend/',
      'admin_sub' => '/backend/sub',
      'admin_sub_sub' => '/backend/sub/sub',
      'admin_admin' => '/backend/admin',
      'admin_sub_admin' => '/backend/sub/admin',
      'admins' => '/admins',
      'admins_sub' => '/admins/sub',
      'user' => '/user',
      'user_slashed' => '/user/',
      'user_sub' => '/user/sub',
      'user_sub_sub' => '/user/sub/sub',
      'user_admin' => '/user/user',
      'user_sub_admin' => '/user/sub/user',
      'users' => '/users',
      'users_sub' => '/users/sub',
    ]);
  }
  public function testRenameUserPath() {
    $this
      ->assertRoutePaths([
      'user_path' => TRUE,
      'user_path_value' => 'member',
    ], [
      'home' => '/',
      'about' => '/about',
      'admin' => '/admin',
      'admin_slashed' => '/admin/',
      'admin_sub' => '/admin/sub',
      'admin_sub_sub' => '/admin/sub/sub',
      'admin_admin' => '/admin/admin',
      'admin_sub_admin' => '/admin/sub/admin',
      'admins' => '/admins',
      'admins_sub' => '/admins/sub',
      'user' => '/member',
      'user_slashed' => '/member/',
      'user_sub' => '/member/sub',
      'user_sub_sub' => '/member/sub/sub',
      'user_admin' => '/member/user',
      'user_sub_admin' => '/member/sub/user',
      'users' => '/users',
    ]);
  }
  public function testRenameAdminPaths() {
    $this
      ->assertRoutePaths([
      'admin_path' => TRUE,
      'admin_path_value' => 'backend',
      'user_path' => TRUE,
      'user_path_value' => 'member',
    ], [
      'home' => '/',
      'about' => '/about',
      'admin' => '/backend',
      'admin_slashed' => '/backend/',
      'admin_sub' => '/backend/sub',
      'admin_sub_sub' => '/backend/sub/sub',
      'admin_admin' => '/backend/admin',
      'admin_sub_admin' => '/backend/sub/admin',
      'admins' => '/admins',
      'admins_sub' => '/admins/sub',
      'user' => '/member',
      'user_slashed' => '/member/',
      'user_sub' => '/member/sub',
      'user_sub_sub' => '/member/sub/sub',
      'user_admin' => '/member/user',
      'user_sub_admin' => '/member/sub/user',
      'users' => '/users',
      'users_sub' => '/users/sub',
    ]);
  }

  /**
   * @param array $config
   * @param array $routes
   */
  private function assertRoutePaths(array $config, array $routes) {
    $routeCollection = $this
      ->getRouteCollection();
    $config = new Config($this
      ->getConfigFactoryStub([
      'rename_admin_paths.settings' => $config,
    ]));
    $eventSubscriber = new RenameAdminPathsEventSubscriber($config);
    $eventSubscriber
      ->onRoutesAlter(new RouteBuildEvent($routeCollection));
    foreach ($routes as $name => $path) {
      $this
        ->assertEquals($path, $routeCollection
        ->get($name)
        ->getPath());
    }
  }

  /**
   * @return \Symfony\Component\Routing\RouteCollection
   */
  private function getRouteCollection() {
    $routeCollection = new RouteCollection();
    foreach ([
      'home' => '/',
      'about' => '/about',
      'admin' => '/admin',
      'admin_slashed' => '/admin/',
      'admin_sub' => '/admin/sub',
      'admin_sub_sub' => '/admin/sub/sub',
      'admin_admin' => '/admin/admin',
      'admin_sub_admin' => '/admin/sub/admin',
      'admins' => '/admins',
      'admins_sub' => '/admins/sub',
      'user' => '/user',
      'user_slashed' => '/user/',
      'user_sub' => '/user/sub',
      'user_sub_sub' => '/user/sub/sub',
      'user_admin' => '/user/user',
      'user_sub_admin' => '/user/sub/user',
      'users' => '/users',
      'users_sub' => '/users/sub',
    ] as $name => $path) {
      $routeCollection
        ->add($name, new Route($path));
    }
    return $routeCollection;
  }

}

Members

Namesort descending Modifiers Type Description Overrides
PhpunitCompatibilityTrait::getMock Deprecated public function Returns a mock object for the specified class using the available method.
PhpunitCompatibilityTrait::setExpectedException Deprecated public function Compatibility layer for PHPUnit 6 to support PHPUnit 4 code.
RenameAdminPathEventSubscriberTest::assertRoutePaths private function
RenameAdminPathEventSubscriberTest::getRouteCollection private function
RenameAdminPathEventSubscriberTest::testDoNotRenamePaths public function
RenameAdminPathEventSubscriberTest::testGetSubscribedEvents public function
RenameAdminPathEventSubscriberTest::testRenameAdminPath public function
RenameAdminPathEventSubscriberTest::testRenameAdminPaths public function
RenameAdminPathEventSubscriberTest::testRenameUserPath public function
UnitTestCase::$randomGenerator protected property The random generator.
UnitTestCase::$root protected property The app root. 1
UnitTestCase::assertArrayEquals protected function Asserts if two arrays are equal by sorting them first.
UnitTestCase::getBlockMockWithMachineName Deprecated protected function Mocks a block with a block plugin. 1
UnitTestCase::getClassResolverStub protected function Returns a stub class resolver.
UnitTestCase::getConfigFactoryStub public function Returns a stub config factory that behaves according to the passed array.
UnitTestCase::getConfigStorageStub public function Returns a stub config storage that returns the supplied configuration.
UnitTestCase::getContainerWithCacheTagsInvalidator protected function Sets up a container with a cache tags invalidator.
UnitTestCase::getRandomGenerator protected function Gets the random generator for the utility methods.
UnitTestCase::getStringTranslationStub public function Returns a stub translation manager that just returns the passed string.
UnitTestCase::randomMachineName public function Generates a unique random string containing letters and numbers.
UnitTestCase::setUp protected function 340