|
@ -0,0 +1,64 @@ |
|
|
|
|
|
<?php |
|
|
|
|
|
|
|
|
|
|
|
/* |
|
|
|
|
|
* @copyright NetMonsters <team@netmonsters.ru> |
|
|
|
|
|
* @link http://netmonsters.ru |
|
|
|
|
|
* @package Majestic |
|
|
|
|
|
* @subpackage UnitTests |
|
|
|
|
|
* @since 2011-10-31 |
|
|
|
|
|
* |
|
|
|
|
|
* Unit tests for Router class |
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
|
|
|
|
require_once dirname(__FILE__) . '/../../../classes/Env.class.php'; |
|
|
|
|
|
require_once dirname(__FILE__) . '/../../../app/router/Route.php'; |
|
|
|
|
|
require_once dirname(__FILE__) . '/../../../app/router/Router.php'; |
|
|
|
|
|
|
|
|
|
|
|
class RouterTest extends PHPUnit_Framework_TestCase |
|
|
|
|
|
{ |
|
|
|
|
|
public function testGetRouteFirst() |
|
|
|
|
|
{ |
|
|
|
|
|
$router = new Router(); |
|
|
|
|
|
$this->assertNull($router->getRoute()); |
|
|
|
|
|
$this->assertNull($router->getRouteName()); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function testRouterCycle() |
|
|
|
|
|
{ |
|
|
|
|
|
$router = new Router(); |
|
|
|
|
|
$router->add('user', 'user/account/:id', 'user'); |
|
|
|
|
|
$route = $router->route('user/account/213'); |
|
|
|
|
|
$this->assertEquals(1, count($route->getParams())); |
|
|
|
|
|
$this->assertEquals(array('id' => 213), $route->getParams()); |
|
|
|
|
|
$this->assertEquals('user', $router->getRouteName()); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function testRouterMultipleRoutes() |
|
|
|
|
|
{ |
|
|
|
|
|
$router = new Router(); |
|
|
|
|
|
$router->add('user', 'user/account/:id', 'user'); |
|
|
|
|
|
$router->add('sale', 'sale/order/:id', 'user'); |
|
|
|
|
|
$route = $router->route('user/account/213'); |
|
|
|
|
|
$this->assertEquals('user', $router->getRouteName()); |
|
|
|
|
|
$this->assertEquals(1, count($route->getParams())); |
|
|
|
|
|
$this->assertEquals(array('id' => 213), $route->getParams()); |
|
|
|
|
|
$route = $router->route('sale/order/22'); |
|
|
|
|
|
$this->assertEquals('sale', $router->getRouteName()); |
|
|
|
|
|
$this->assertEquals(array('id' => 22), $route->getParams()); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function testRouteNotmatch() |
|
|
|
|
|
{ |
|
|
|
|
|
$router = new Router(); |
|
|
|
|
|
$router->add('user', 'user/account/:id', 'user'); |
|
|
|
|
|
$this->assertFalse($router->route('user/info/213')); |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function testSetDefaultLayout() |
|
|
|
|
|
{ |
|
|
|
|
|
$router = new Router(); |
|
|
|
|
|
$router->setDefaultLayout('userLayout'); |
|
|
|
|
|
$this->assertAttributeEquals('userLayout', 'default_layout', $router); |
|
|
|
|
|
} |
|
|
|
|
|
} |