Beispiel #1
0
 /**
  * @group route_host
  */
 public function testHostnameRouter()
 {
     Route::reset();
     $router = new Router($this->getDi());
     $router->addRoute('localhost/edit', ['route' => '/edit', 'definitions' => ['controller' => 'posts-local', 'action' => 'edit-local']]);
     $router->addRoute('sub-example/edit', ['route' => '/edit', 'definitions' => ['controller' => 'posts-example', 'action' => 'edit-example'], 'host_name' => 'sub.example.com']);
     $router->addRoute('sub1-example/edit', ['route' => '/edit', 'definitions' => ['controller' => 'posts-sub', 'action' => 'edit-sub'], 'host_name' => 'sub1.example.com']);
     $routes = array(array('hostname' => null, 'controller' => 'posts-local'), array('hostname' => 'sub.example.com', 'controller' => 'posts-example'), array('hostname' => 'sub1.example.com', 'controller' => 'posts-sub'));
     foreach ($routes as $route) {
         $_SERVER['HTTP_HOST'] = $route['hostname'];
         $router->handle('/edit');
         $this->assertTrue($router->wasMatched());
         $this->assertEquals($route['controller'], $router->getControllerName());
         $this->assertEquals($route['hostname'], $router->getMatchedRoute()->getHostname());
     }
 }