示例#1
0
 /**
  * @dataProvider hostnamedRegexRoutesProvider
  */
 public function testHostnameRegexRouteGroup($actualHost, $expectedHost, $controller)
 {
     Phalcon\Mvc\Router\Route::reset();
     $di = new Phalcon\DI();
     $di->set('request', function () {
         return new Phalcon\Http\Request();
     });
     $router = new Phalcon\Mvc\Router(false);
     $router->setDI($di);
     $router->add('/edit', array('controller' => 'posts3', 'action' => 'edit3'));
     $group = new Phalcon\Mvc\Router\Group();
     $group->setHostname('([a-z]+).phalconphp.com');
     $group->add('/edit', array('controller' => 'posts', 'action' => 'edit'));
     $router->mount($group);
     $_SERVER['HTTP_HOST'] = $actualHost;
     $router->handle('/edit');
     $this->assertEquals($router->getControllerName(), $controller);
     $this->assertEquals($router->getMatchedRoute()->getHostname(), $expectedHost);
 }
示例#2
0
 public function testHostnameRegexRouteGroup()
 {
     Phalcon\Mvc\Router\Route::reset();
     $di = new Phalcon\DI();
     $di->set('request', function () {
         return new Phalcon\Http\Request();
     });
     $router = new Phalcon\Mvc\Router(false);
     $router->setDI($di);
     $router->add('/edit', array('controller' => 'posts3', 'action' => 'edit3'));
     $group = new Phalcon\Mvc\Router\Group();
     $group->setHostname('([a-z]+).phalconphp.com');
     $group->add('/edit', array('controller' => 'posts', 'action' => 'edit'));
     $router->mount($group);
     $routes = array(array('hostname' => 'localhost', 'controller' => 'posts3'), array('hostname' => 'my.phalconphp.com', 'controller' => 'posts'), array('hostname' => null, 'controller' => 'posts3'));
     foreach ($routes as $route) {
         $_SERVER['HTTP_HOST'] = $route['hostname'];
         $router->handle('/edit');
         $this->assertEquals($router->getControllerName(), $route['controller']);
     }
 }
示例#3
0
 public function testRegex()
 {
     Phalcon\Mvc\Router\Route::reset();
     $router = new Phalcon\Mvc\Router(false);
     $router->add('/:controller/:action/:params', array("controller" => 1, "action" => 2, "params" => 3));
     $router->handle('/c/a/p');
     $this->assertEquals($router->getMatches(), array(0 => '/c/a/p', 1 => 'c', 2 => 'a', 3 => '/p'));
     Phalcon\Mvc\Router\Route::reset();
     $router = new Phalcon\Mvc\Router(false);
     $router->add('/:controller/:action:params', array("controller" => 1, "action" => 2, "params" => 3), array(':controller' => '([a-zA-Z0-9_-]+)', ':action' => '([a-zA-Z0-9_-]+)', ':params' => '(/[a-zA-Z0-9_-]+)?'));
     $router->handle('/c/a/p');
     $this->assertEquals($router->getMatches(), array(0 => '/c/a/p', 1 => 'c', 2 => 'a', 3 => '/p'));
     Phalcon\Mvc\Router\Route::reset();
     $router = new Phalcon\Mvc\Router(false);
     $router->add(':controller:action:params', array("controller" => 1, "action" => 2, "params" => 3), array(':controller' => '/([a-zA-Z0-9_-]+)', ':action' => '/([a-zA-Z0-9_-]+)', ':params' => '(/[a-zA-Z0-9_-]+)?'));
     $router->handle('/c/a/p');
     $this->assertEquals($router->getMatches(), array(0 => '/c/a/p', 1 => 'c', 2 => 'a', 3 => '/p'));
     Phalcon\Mvc\Router\Route::reset();
     $router = new Phalcon\Mvc\Router(false);
     $router->add('/(:controller(/:action(/:params)?)?)?', array("controller" => 2, "action" => 4, "params" => 5), array(':controller' => '([a-zA-Z0-9_-]+)', ':action' => '([a-zA-Z0-9_-]+)', ':params' => '([a-zA-Z0-9_-]+)?'));
     $router->handle('/c/a/p');
     $this->assertEquals($router->getMatches(), array(0 => '/c/a/p', 1 => 'c/a/p', 2 => 'c', 3 => '/a/p', 4 => 'a', 5 => '/p', 6 => 'p'));
     $router->handle('/c/a');
     $this->assertEquals($router->getMatches(), array(0 => '/c/a', 1 => 'c/a', 2 => 'c', 3 => '/a', 4 => 'a'));
     $router->handle('/c');
     $this->assertEquals($router->getMatches(), array(0 => '/c', 1 => 'c', 2 => 'c'));
 }