2011-10-31 19:59:00 +04:00
|
|
|
<?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');
|
2011-12-02 17:22:31 +04:00
|
|
|
$this->assertSame(1, count($route->getParams()));
|
2011-12-02 17:30:42 +04:00
|
|
|
$this->assertSame(array('id' => '213'), $route->getParams());
|
2011-12-02 17:22:31 +04:00
|
|
|
$this->assertSame('user', $router->getRouteName());
|
2011-10-31 19:59:00 +04:00
|
|
|
}
|
|
|
|
|
|
|
|
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');
|
2011-12-02 17:22:31 +04:00
|
|
|
$this->assertSame('user', $router->getRouteName());
|
|
|
|
$this->assertSame(1, count($route->getParams()));
|
2011-12-02 17:30:42 +04:00
|
|
|
$this->assertSame(array('id' => '213'), $route->getParams());
|
2011-10-31 19:59:00 +04:00
|
|
|
$route = $router->route('sale/order/22');
|
2011-12-02 17:22:31 +04:00
|
|
|
$this->assertSame('sale', $router->getRouteName());
|
2011-12-02 17:30:42 +04:00
|
|
|
$this->assertSame(array('id' => '22'), $route->getParams());
|
2011-10-31 19:59:00 +04:00
|
|
|
}
|
|
|
|
|
|
|
|
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);
|
|
|
|
}
|
|
|
|
}
|