You are here

class UrlMatcherTest in Zircon Profile 8.0

Same name in this branch
  1. 8.0 vendor/symfony-cmf/routing/Tests/NestedMatcher/UrlMatcherTest.php \Symfony\Cmf\Component\Routing\Tests\NestedMatcher\UrlMatcherTest
  2. 8.0 vendor/symfony/routing/Tests/Matcher/UrlMatcherTest.php \Symfony\Component\Routing\Tests\Matcher\UrlMatcherTest
Same name and namespace in other branches
  1. 8 vendor/symfony-cmf/routing/Tests/NestedMatcher/UrlMatcherTest.php \Symfony\Cmf\Component\Routing\Tests\NestedMatcher\UrlMatcherTest

Hierarchy

  • class \Symfony\Cmf\Component\Routing\Test\CmfUnitTestCase extends \Symfony\Cmf\Component\Routing\Test\PHPUnit_Framework_TestCase
    • class \Symfony\Cmf\Component\Routing\Tests\NestedMatcher\UrlMatcherTest

Expanded class hierarchy of UrlMatcherTest

File

vendor/symfony-cmf/routing/Tests/NestedMatcher/UrlMatcherTest.php, line 24

Namespace

Symfony\Cmf\Component\Routing\Tests\NestedMatcher
View source
class UrlMatcherTest extends CmfUnitTestCase {
  protected $routeDocument;
  protected $routeCompiled;
  protected $matcher;
  protected $context;
  protected $request;
  protected $url = '/foo/bar';
  public function setUp() {
    $this->routeDocument = $this
      ->buildMock('Symfony\\Cmf\\Component\\Routing\\Tests\\Routing\\RouteMock', array(
      'getDefaults',
      'getRouteKey',
      'compile',
    ));
    $this->routeCompiled = $this
      ->buildMock('Symfony\\Component\\Routing\\CompiledRoute');
    $this->context = $this
      ->buildMock('Symfony\\Component\\Routing\\RequestContext');
    $this->request = Request::create($this->url);
    $this->matcher = new UrlMatcher(new RouteCollection(), $this->context);
  }
  public function testMatchRouteKey() {
    $this
      ->doTestMatchRouteKey($this->url);
  }
  public function testMatchNoKey() {
    $this
      ->doTestMatchRouteKey(null);
  }
  public function doTestMatchRouteKey($routeKey) {
    $this->routeCompiled
      ->expects($this
      ->atLeastOnce())
      ->method('getStaticPrefix')
      ->will($this
      ->returnValue($this->url));
    $this->routeCompiled
      ->expects($this
      ->atLeastOnce())
      ->method('getRegex')
      ->will($this
      ->returnValue('#' . str_replace('/', '\\/', $this->url) . '#'));
    $this->routeDocument
      ->expects($this
      ->atLeastOnce())
      ->method('compile')
      ->will($this
      ->returnValue($this->routeCompiled));
    $this->routeDocument
      ->expects($this
      ->atLeastOnce())
      ->method('getRouteKey')
      ->will($this
      ->returnValue($routeKey));
    $this->routeDocument
      ->expects($this
      ->atLeastOnce())
      ->method('getDefaults')
      ->will($this
      ->returnValue(array(
      'foo' => 'bar',
    )));
    $mockCompiled = $this
      ->buildMock('Symfony\\Component\\Routing\\CompiledRoute');
    $mockCompiled
      ->expects($this
      ->any())
      ->method('getStaticPrefix')
      ->will($this
      ->returnValue('/no/match'));
    $mockRoute = $this
      ->getMockBuilder('Symfony\\Component\\Routing\\Route')
      ->disableOriginalConstructor()
      ->getMock();
    $mockRoute
      ->expects($this
      ->any())
      ->method('compile')
      ->will($this
      ->returnValue($mockCompiled));
    $routeCollection = new RouteCollection();
    $routeCollection
      ->add('some', $mockRoute);
    $routeCollection
      ->add('_company_more', $this->routeDocument);
    $routeCollection
      ->add('other', $mockRoute);
    $results = $this->matcher
      ->finalMatch($routeCollection, $this->request);
    $expected = array(
      RouteObjectInterface::ROUTE_NAME => $routeKey ? $routeKey : '_company_more',
      RouteObjectInterface::ROUTE_OBJECT => $this->routeDocument,
      'foo' => 'bar',
    );
    $this
      ->assertEquals($expected, $results);
  }
  public function testMatchNoRouteObject() {
    $this->routeCompiled
      ->expects($this
      ->atLeastOnce())
      ->method('getStaticPrefix')
      ->will($this
      ->returnValue($this->url));
    $this->routeCompiled
      ->expects($this
      ->atLeastOnce())
      ->method('getRegex')
      ->will($this
      ->returnValue('#' . str_replace('/', '\\/', $this->url) . '#'));
    $this->routeDocument = $this
      ->getMockBuilder('Symfony\\Component\\Routing\\Route')
      ->disableOriginalConstructor()
      ->getMock();
    $this->routeDocument
      ->expects($this
      ->atLeastOnce())
      ->method('compile')
      ->will($this
      ->returnValue($this->routeCompiled));
    $this->routeDocument
      ->expects($this
      ->never())
      ->method('getRouteKey');
    $this->routeDocument
      ->expects($this
      ->atLeastOnce())
      ->method('getDefaults')
      ->will($this
      ->returnValue(array(
      'foo' => 'bar',
    )));
    $mockCompiled = $this
      ->buildMock('Symfony\\Component\\Routing\\CompiledRoute');
    $mockCompiled
      ->expects($this
      ->any())
      ->method('getStaticPrefix')
      ->will($this
      ->returnValue('/no/match'));
    $mockRoute = $this
      ->getMockBuilder('Symfony\\Component\\Routing\\Route')
      ->disableOriginalConstructor()
      ->getMock();
    $mockRoute
      ->expects($this
      ->any())
      ->method('compile')
      ->will($this
      ->returnValue($mockCompiled));
    $routeCollection = new RouteCollection();
    $routeCollection
      ->add('some', $mockRoute);
    $routeCollection
      ->add('_company_more', $this->routeDocument);
    $routeCollection
      ->add('other', $mockRoute);
    $results = $this->matcher
      ->finalMatch($routeCollection, $this->request);
    $expected = array(
      RouteObjectInterface::ROUTE_NAME => '_company_more',
      RouteObjectInterface::ROUTE_OBJECT => $this->routeDocument,
      'foo' => 'bar',
    );
    $this
      ->assertEquals($expected, $results);
  }

}

Members