From d6e21a4186b05edff53222b2fea282bee3bf8f10 Mon Sep 17 00:00:00 2001 From: Taylor Otwell Date: Fri, 27 Jan 2012 11:10:14 -0600 Subject: [PATCH] adding routing tests. --- tests/cases/laravel/routing.test.php | 71 ++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 tests/cases/laravel/routing.test.php diff --git a/tests/cases/laravel/routing.test.php b/tests/cases/laravel/routing.test.php new file mode 100644 index 00000000..2e090e86 --- /dev/null +++ b/tests/cases/laravel/routing.test.php @@ -0,0 +1,71 @@ +assertEquals('GET /', Router::route('GET', '/')->key); + $this->assertEquals('GET /home', Router::route('GET', '/home')->key); + } + + /** + * Test that the router can handle basic wildcards. + * + * @group laravel + */ + public function testWildcardRoutesCanBeRouted() + { + Router::register('GET /user/(:num)', function() {}); + Router::register('GET /profile/(:any)/(:num)', function() {}); + + $this->assertNull(Router::route('GET', 'user/1.5')); + $this->assertNull(Router::route('GET', 'user/taylor')); + $this->assertEquals('GET /user/(:num)', Router::route('GET', 'user/1')->key); + + $this->assertNull(Router::route('GET', 'profile/1/otwell')); + $this->assertNull(Router::route('POST', 'profile/taylor/1')); + $this->assertNull(Router::route('GET', 'profile/taylor/otwell')); + $this->assertNull(Router::route('GET', 'profile/taylor/1/otwell')); + $this->assertEquals('GET /profile/(:any)/(:num)', Router::route('GET', 'profile/taylor/1')->key); + } + + /** + * Test that optional wildcards can be routed. + * + * @group laravel + */ + public function testOptionalWildcardsCanBeRouted() + { + Router::register('GET /user/(:num?)', function() {}); + Router::register('GET /profile/(:any)/(:any?)', function() {}); + + $this->assertNull(Router::route('GET', 'user/taylor')); + $this->assertEquals('GET /user/(:num?)', Router::route('GET', 'user')->key); + $this->assertEquals('GET /user/(:num?)', Router::route('GET', 'user/1')->key); + + $this->assertNull(Router::route('GET', 'profile/taylor/otwell/test')); + $this->assertEquals('GET /profile/(:any)/(:any?)', Router::route('GET', 'profile/taylor')->key); + $this->assertEquals('GET /profile/(:any)/(:any?)', Router::route('GET', 'profile/taylor/25')->key); + $this->assertEquals('GET /profile/(:any)/(:any?)', Router::route('GET', 'profile/taylor/otwell')->key); + } + +} \ No newline at end of file