Browse Source

adding routing tests.

Taylor Otwell 13 years ago
parent
commit
d6e21a4186
1 changed files with 71 additions and 0 deletions
  1. 71 0
      tests/cases/laravel/routing.test.php

+ 71 - 0
tests/cases/laravel/routing.test.php

@@ -0,0 +1,71 @@
+<?php
+
+use Laravel\Routing\Router;
+
+class RoutingTest extends PHPUnit_Framework_TestCase {
+
+	/**
+	 * Destroy the testing environment.
+	 */
+	public function tearDown()
+	{
+		Router::$names = array();
+		Router::$routes = array();
+	}
+
+	/**
+	 * Test the basic routing mechanism.
+	 *
+	 * @group laravel
+	 */
+	public function testBasicRouteCanBeRouted()
+	{
+		Router::register('GET /', function() {});
+		Router::register('GET /home', function() {});
+
+		$this->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);
+	}
+
+}