Example #1
0
 function testGenerateAdvanced()
 {
     $route = new Route('/users/{id}/{action}', '');
     $route->setRequirement('id', '\\d+');
     $generator = new Generator(RequestContext::create());
     $this->assertEquals('http://localhost/users/100/edit', $generator->generate($route, ['id' => 100, 'action' => 'edit']));
 }
Example #2
0
 function testSchemes()
 {
     $routes = new RouteCollection();
     $route = new Route('/foo/{id}/bar/{name}', '');
     $route->setSchemes(['https']);
     $routes->add($route);
     $context = RequestContext::create();
     $context->setScheme('https');
     $this->assertEquals(['https'], $route->getSchemes());
     $this->assertEquals('https', $context->getScheme());
     $matcher = new Matcher($context);
     $this->assertEquals($route, $matcher->match('/foo/100/bar/steven', $routes));
     $context->setScheme('http');
     $this->setExpectedExceptionRegExp('Slince\\Routing\\Exception\\RouteNotFoundException');
     $matcher->match('/foo/100/bar/steven', $routes);
 }
Example #3
0
 function testCompile()
 {
     $route = new Route('/users/{id}/{action}', '');
     $this->assertFalse($route->isCompiled());
     $route->compile();
     $this->assertTrue($route->isCompiled());
     $this->assertEquals('#^/users/(?P<id>.+)/(?P<action>.+)$#i', $route->getPathRegex());
     $this->assertEquals(['id', 'action'], $route->getVariables());
     $route->setHost('{mainDomain}.domain.com');
     $route->compile(true);
     $this->assertTrue($route->isCompiled());
     $this->assertEquals('#^/users/(?P<id>.+)/(?P<action>.+)$#i', $route->getPathRegex());
     $this->assertEquals('#^(?P<mainDomain>.+).domain.com$#i', $route->getHostRegex());
 }