public function RouteCollectionTest::testAddCollection

File

drupal/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/RouteCollectionTest.php, line 104

Class

RouteCollectionTest

Namespace

Symfony\Component\Routing\Tests

Code

public function testAddCollection() {
  if (!class_exists('Symfony\\Component\\Config\\Resource\\FileResource')) {
    $this
      ->markTestSkipped('The "Config" component is not available');
  }
  $collection = new RouteCollection();
  $collection
    ->add('foo', $foo = new Route('/foo'));
  $collection1 = new RouteCollection();
  $collection1
    ->add('foo', $foo1 = new Route('/foo1'));
  $collection1
    ->add('bar', $bar1 = new Route('/bar1'));
  $collection
    ->addCollection($collection1);
  $this
    ->assertEquals(array(
    'foo' => $foo1,
    'bar' => $bar1,
  ), $collection
    ->all(), '->addCollection() adds routes from another collection');
  $collection = new RouteCollection();
  $collection
    ->add('foo', $foo = new Route('/foo'));
  $collection1 = new RouteCollection();
  $collection1
    ->add('foo', $foo1 = new Route('/foo1'));
  $collection
    ->addCollection($collection1, '/{foo}', array(
    'foo' => 'foo',
  ), array(
    'foo' => '\\d+',
  ), array(
    'foo' => 'bar',
  ));
  $this
    ->assertEquals('/{foo}/foo1', $collection
    ->get('foo')
    ->getPattern(), '->addCollection() can add a prefix to all merged routes');
  $this
    ->assertEquals(array(
    'foo' => 'foo',
  ), $collection
    ->get('foo')
    ->getDefaults(), '->addCollection() can add a prefix to all merged routes');
  $this
    ->assertEquals(array(
    'foo' => '\\d+',
  ), $collection
    ->get('foo')
    ->getRequirements(), '->addCollection() can add a prefix to all merged routes');
  $this
    ->assertEquals(array(
    'foo' => 'bar',
    'compiler_class' => 'Symfony\\Component\\Routing\\RouteCompiler',
  ), $collection
    ->get('foo')
    ->getOptions(), '->addCollection() can add an option to all merged routes');
  $collection = new RouteCollection();
  $collection
    ->addResource($foo = new FileResource(__DIR__ . '/Fixtures/foo.xml'));
  $collection1 = new RouteCollection();
  $collection1
    ->addResource($foo1 = new FileResource(__DIR__ . '/Fixtures/foo1.xml'));
  $collection
    ->addCollection($collection1);
  $this
    ->assertEquals(array(
    $foo,
    $foo1,
  ), $collection
    ->getResources(), '->addCollection() merges resources');
}