function UrlGeneratorTest::setUp

File

drupal/core/tests/Drupal/Tests/Core/Routing/UrlGeneratorTest.php, line 45
Contains Drupal\Tests\Core\Routing\UrlGeneratorTest.

Class

UrlGeneratorTest
Basic tests for the Route.

Namespace

Drupal\Tests\Core\Routing

Code

function setUp() {
  $routes = new RouteCollection();
  $first_route = new Route('/test/one');
  $second_route = new Route('/test/two/{narf}');
  $routes
    ->add('test_1', $first_route);
  $routes
    ->add('test_2', $second_route);

  // Create a route provider stub.
  $provider = $this
    ->getMockBuilder('Drupal\\Core\\Routing\\RouteProvider')
    ->disableOriginalConstructor()
    ->getMock();
  $route_name_return_map = array(
    array(
      'test_1',
      array(),
      $first_route,
    ),
    array(
      'test_2',
      array(
        'narf' => '5',
      ),
      $second_route,
    ),
  );
  $provider
    ->expects($this
    ->any())
    ->method('getRouteByName')
    ->will($this
    ->returnValueMap($route_name_return_map));
  $routes_names_return_map = array(
    array(
      array(
        'test_1',
      ),
      array(),
      array(
        $first_route,
      ),
    ),
    array(
      array(
        'test_2',
      ),
      array(
        'narf' => '5',
      ),
      array(
        $second_route,
      ),
    ),
  );
  $provider
    ->expects($this
    ->any())
    ->method('getRoutesByNames')
    ->will($this
    ->returnValueMap($routes_names_return_map));

  // Create an alias manager stub.
  $alias_manager = $this
    ->getMockBuilder('Drupal\\Core\\Path\\AliasManager')
    ->disableOriginalConstructor()
    ->getMock();
  $alias_map = array(
    array(
      'test/one',
      NULL,
      'hello/world',
    ),
    array(
      'test/two/5',
      NULL,
      'goodbye/cruel/world',
    ),
    array(
      'node/123',
      NULL,
      'node/123',
    ),
  );
  $alias_manager
    ->expects($this
    ->any())
    ->method('getPathAlias')
    ->will($this
    ->returnValueMap($alias_map));
  $this->aliasManager = $alias_manager;
  $context = new RequestContext();
  $context
    ->fromRequest(Request::create('/some/path'));
  $processor = new PathProcessorAlias($this->aliasManager);
  $processor_manager = new PathProcessorManager();
  $processor_manager
    ->addOutbound($processor, 1000);
  $config_factory_stub = $this
    ->getConfigFactoryStub(array(
    'system.filter' => array(
      'protocols' => array(
        'http',
        'https',
      ),
    ),
  ));
  $generator = new UrlGenerator($provider, $processor_manager, $config_factory_stub, new Settings(array()));
  $generator
    ->setContext($context);
  $this->generator = $generator;
}