*/
public function testMatch($router, $path, $expected)
{
- $this->assertEquals($expected, (bool)$router->match($path));
+ $result = $router->match($path);
+
+ $this->assertEquals($expected, $result);
+ }
+
+ public function testMatchWrongMethod()
+ {
+ $router = $this->getRouter();
+ $this->assertFalse($router->match('/users', 'POST'));
}
public function testBasePathConfigIsSettedProperly()
{
$collection = new RouteCollection();
$collection->attach(new Route('/users/', array(
- '_controller' => 'PHPRouter\Test\SomeController::usersCreate',
+ '_controller' => '\PHPRouter\Test\Fixtures\SomeController::usersCreate',
'methods' => 'GET'
)));
$router = new Router($collection);
$router->setBasePath('/localhost/webroot');
- $_SERVER = array();
- $_SERVER['REQUEST_METHOD'] = 'GET';
- $_SERVER['REQUEST_URI'] = '/localhost/webroot/users/';
- $_SERVER['SCRIPT_NAME'] = 'index.php';
+ foreach ($this->serverProvider() as $server) {
+ $_SERVER = $server;
+ $this->assertTrue((bool)$router->matchCurrentRequest());
+ }
+ }
- $this->assertTrue((bool)$router->matchCurrentRequest());
+ private function serverProvider()
+ {
+ return array(
+ array(
+ 'REQUEST_METHOD' => 'GET',
+ 'REQUEST_URI' => '/localhost/webroot/users/',
+ 'SCRIPT_NAME' => 'index.php'
+ ),
+ array(
+ 'REQUEST_METHOD' => 'GET',
+ 'REQUEST_URI' => '/localhost/webroot/users/?foo=bar&bar=foo',
+ 'SCRIPT_NAME' => 'index.php'
+ ),
+ );
}
public function testGetParamsInsideControllerMethod()
$route = new Route(
'/page/:page_id',
array(
- '_controller' => 'PHPRouter\Test\SomeController::page',
+ '_controller' => '\PHPRouter\Test\Fixtures\SomeController::page',
'methods' => 'GET'
)
);
$route = new Route(
'/js/:filename.js',
array(
- '_controller' => 'PHPRouter\Test\SomeController::dynamicFilterUrlMatch',
+ '_controller' => '\PHPRouter\Test\Fixtures\SomeController::dynamicFilterUrlMatch',
'methods' => 'GET',
)
);
{
$collection = new RouteCollection();
$collection->attachRoute(new Route('/users/', array(
- '_controller' => 'PHPRouter\Test\SomeController::usersCreate',
+ '_controller' => '\PHPRouter\Test\Fixtures\SomeController::usersCreate',
'methods' => 'GET',
'name' => 'users'
)));
$collection->attachRoute(new Route('/user/:id', array(
- '_controller' => 'PHPRouter\Test\SomeController::user',
+ '_controller' => '\PHPRouter\Test\Fixtures\SomeController::user',
'methods' => 'GET',
'name' => 'user'
)));
$collection->attachRoute(new Route('/', array(
- '_controller' => 'PHPRouter\Test\SomeController::indexAction',
+ '_controller' => '\PHPRouter\Test\Fixtures\SomeController::indexAction',
'methods' => 'GET',
'name' => 'index'
)));
array($router, '/', true),
array($router, '/aaa', false),
array($router, '/users', true),
+ array($router, '/usersssss', false),
array($router, '/user/1', true),
array($router, '/user/%E3%81%82', true),
);
array($router, '/api', true),
array($router, '/api/aaa', false),
array($router, '/api/users', true),
+ array($router, '/api/userssss', false),
array($router, '/api/user/1', true),
array($router, '/api/user/%E3%81%82', true),
);