OSDN Git Service

(try to) fix unit tests
[php-libraries/Router.git] / tests / src / PHPRouterTest / RouterTest.php
index 541e452..1852d6c 100644 (file)
@@ -34,7 +34,15 @@ class RouterTest extends PHPUnit_Framework_TestCase
      */
     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()
@@ -49,19 +57,33 @@ class RouterTest extends PHPUnit_Framework_TestCase
     {
         $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()
@@ -70,7 +92,7 @@ class RouterTest extends PHPUnit_Framework_TestCase
         $route = new Route(
             '/page/:page_id',
             array(
-                '_controller' => 'PHPRouter\Test\SomeController::page',
+                '_controller' => '\PHPRouter\Test\Fixtures\SomeController::page',
                 'methods' => 'GET'
             )
         );
@@ -90,7 +112,7 @@ class RouterTest extends PHPUnit_Framework_TestCase
         $route = new Route(
             '/js/:filename.js',
             array(
-                '_controller' => 'PHPRouter\Test\SomeController::dynamicFilterUrlMatch',
+                '_controller' => '\PHPRouter\Test\Fixtures\SomeController::dynamicFilterUrlMatch',
                 'methods' => 'GET',
             )
         );
@@ -144,17 +166,17 @@ class RouterTest extends PHPUnit_Framework_TestCase
     {
         $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'
         )));
@@ -174,6 +196,7 @@ class RouterTest extends PHPUnit_Framework_TestCase
             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),
         );
@@ -197,6 +220,7 @@ class RouterTest extends PHPUnit_Framework_TestCase
             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),
         );