Anton Grebnev
13 years ago
7 changed files with 744 additions and 0 deletions
-
83tests/app/ActionTest.php
-
57tests/app/Action_TestCase.php
-
66tests/app/AjaxActionTest.php
-
143tests/app/ErrorActionTest.php
-
244tests/app/FrontControllerTest.php
-
101tests/app/PagerActionTest.php
-
50tests/app/StaticActionTest.php
@ -0,0 +1,83 @@ |
|||||
|
<?php |
||||
|
|
||||
|
/* |
||||
|
* @copyright NetMonsters <team@netmonsters.ru> |
||||
|
* @link http://netmonsters.ru |
||||
|
* @package Majestic |
||||
|
* @subpackage UnitTests |
||||
|
* @since 2011-11-1 |
||||
|
* |
||||
|
* Unit tests for Action class |
||||
|
*/ |
||||
|
|
||||
|
require_once dirname(__FILE__) . '/Action_TestCase.php'; |
||||
|
|
||||
|
class ActionTest extends Action_TestCase |
||||
|
{ |
||||
|
|
||||
|
/** |
||||
|
* @runInSeparateProcess |
||||
|
*/ |
||||
|
public function testActionConstructWithParams() |
||||
|
{ |
||||
|
if(!defined('DEBUG')) { |
||||
|
define('DEBUG', false); |
||||
|
} |
||||
|
Env::setParams(array('param1' => 'value1', 'param2' => 'value2')); |
||||
|
$action = $this->getMockForAbstractClass('Action' ); |
||||
|
$this->assertEquals('value1', $action->param1); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* @runInSeparateProcess |
||||
|
*/ |
||||
|
public function testFetch() |
||||
|
{ |
||||
|
if(!defined('DEBUG')) { |
||||
|
define('DEBUG', false); |
||||
|
} |
||||
|
$load = new ReflectionClass('Load'); |
||||
|
$classes = $load->getProperty('autoload'); |
||||
|
$classes->setAccessible(true); |
||||
|
$classes->setValue('autoload', array('ActionMock' =>'some/path/to/action.php')); |
||||
|
Env::setParams(array('template' => 'SomeTemplate', 'param2' => 'value2')); |
||||
|
$controller = FrontController::getInstance(); |
||||
|
$controller->setView('SomeView'); |
||||
|
$action = $this->getMockForAbstractClass('Action', array(), 'ActionMock'); |
||||
|
$result = $action->fetch(); |
||||
|
$this->assertEquals('/actions/to/SomeTemplate', $result['template']); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* @runInSeparateProcess |
||||
|
*/ |
||||
|
public function testFetchNoTemplate() |
||||
|
{ |
||||
|
if(!defined('DEBUG')) { |
||||
|
define('DEBUG', false); |
||||
|
} |
||||
|
Env::setParams(array('template' => '')); |
||||
|
$controller = FrontController::getInstance(); |
||||
|
$controller->setView('SomeView'); |
||||
|
$action = $this->getMockForAbstractClass('Action', array(), 'ActionMock'); |
||||
|
$result = $action->fetch(); |
||||
|
$this->assertEquals('/actions//Acti', $result['template']); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* @runInSeparateProcess |
||||
|
*/ |
||||
|
public function testRedirect() |
||||
|
{ |
||||
|
set_exit_overload(function() { return false; }); |
||||
|
if(!defined('DEBUG')) { |
||||
|
define('DEBUG', false); |
||||
|
} |
||||
|
$load = new ReflectionClass('Action'); |
||||
|
$redirect = $load->getMethod('redirect'); |
||||
|
$redirect->setAccessible(true); |
||||
|
$action = $this->getMockForAbstractClass('Action', array(), 'ActionMock'); |
||||
|
$this->assertNull($redirect->invoke($action, '/some/url')); |
||||
|
unset_exit_overload(); |
||||
|
} |
||||
|
} |
@ -0,0 +1,57 @@ |
|||||
|
<?php |
||||
|
|
||||
|
/* |
||||
|
* @copyright NetMonsters <team@netmonsters.ru> |
||||
|
* @link http://netmonsters.ru |
||||
|
* @package Majestic |
||||
|
* @subpackage UnitTests |
||||
|
* @since 2011-11-1 |
||||
|
* |
||||
|
* Action_TestCase class for testing Actions |
||||
|
*/ |
||||
|
|
||||
|
require_once dirname(__FILE__) . '/../../Load.php'; |
||||
|
require_once dirname(__FILE__) . '/../../classes/Env.class.php'; |
||||
|
require_once dirname(__FILE__) . '/../../exception/ErrorHandler.php'; |
||||
|
require_once dirname(__FILE__) . '/../../app/FrontController.php'; |
||||
|
require_once dirname(__FILE__) . '/../../app/Action.php'; |
||||
|
|
||||
|
class Action_TestCase extends PHPUnit_Framework_TestCase |
||||
|
{ |
||||
|
|
||||
|
public function run(PHPUnit_Framework_TestResult $result = NULL) |
||||
|
{ |
||||
|
$this->setPreserveGlobalState(false); |
||||
|
return parent::run($result); |
||||
|
} |
||||
|
|
||||
|
public function setUp() |
||||
|
{ |
||||
|
$this->getMock('Router'); |
||||
|
$this->getMock('PHPView', array('fetch', 'assignObject')); |
||||
|
} |
||||
|
|
||||
|
public function tearDown() |
||||
|
{ |
||||
|
$env = new ReflectionClass('Env'); |
||||
|
$params = $env->getProperty('params'); |
||||
|
$params->setAccessible(true); |
||||
|
$params->setValue('Env', array()); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
class SomeView |
||||
|
{ |
||||
|
private $result = array(); |
||||
|
public function fetch($template) |
||||
|
{ |
||||
|
$this->result['template'] = $template; |
||||
|
return $this->result; |
||||
|
} |
||||
|
|
||||
|
public function assignObject() {} |
||||
|
|
||||
|
public function assign($name, $value) { |
||||
|
$this->result[$name] = $value; |
||||
|
} |
||||
|
} |
@ -0,0 +1,66 @@ |
|||||
|
<?php |
||||
|
|
||||
|
/* |
||||
|
* @copyright NetMonsters <team@netmonsters.ru> |
||||
|
* @link http://netmonsters.ru |
||||
|
* @package Majestic |
||||
|
* @subpackage UnitTests |
||||
|
* @since 2011-11-1 |
||||
|
* |
||||
|
* Unit tests for AjaxAction class |
||||
|
*/ |
||||
|
|
||||
|
require_once dirname(__FILE__) . '/Action_TestCase.php'; |
||||
|
require_once dirname(__FILE__) . '/../../app/AjaxAction.php'; |
||||
|
|
||||
|
class AjaxActionTest extends Action_TestCase |
||||
|
{ |
||||
|
|
||||
|
/** |
||||
|
* @runInSeparateProcess |
||||
|
*/ |
||||
|
public function testConstruct() |
||||
|
{ |
||||
|
if(!defined('DEBUG')) { |
||||
|
define('DEBUG', false); |
||||
|
} |
||||
|
Env::setParams(array('ajax' => 'AjaxTemplate', 'param2' => 'value2')); |
||||
|
$action = $this->getMockForAbstractClass('AjaxAction' ); |
||||
|
$this->assertAttributeEquals('ajax', 'template', $action); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* @runInSeparateProcess |
||||
|
*/ |
||||
|
public function testFetchWithEncode() |
||||
|
{ |
||||
|
if(!defined('DEBUG')) { |
||||
|
define('DEBUG', false); |
||||
|
} |
||||
|
$controller = FrontController::getInstance(); |
||||
|
$controller->setView('SomeView'); |
||||
|
$action = $this->getMockForAbstractClass('AjaxAction' ); |
||||
|
$action->data = array('var' => 'val'); |
||||
|
$result = $action->fetch(); |
||||
|
$this->assertEquals('/actions//ajax', $result['template']); |
||||
|
$this->assertEquals('{"var":"val"}', $result['data']); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* @runInSeparateProcess |
||||
|
*/ |
||||
|
public function testFetchNoEncode() |
||||
|
{ |
||||
|
if(!defined('DEBUG')) { |
||||
|
define('DEBUG', false); |
||||
|
} |
||||
|
Env::setParams(array('encode' => false)); |
||||
|
$controller = FrontController::getInstance(); |
||||
|
$controller->setView('SomeView'); |
||||
|
$action = $this->getMockForAbstractClass('AjaxAction' ); |
||||
|
$action->data = array('var' => 'val'); |
||||
|
$result = $action->fetch(); |
||||
|
$this->assertEquals('/actions//ajax', $result['template']); |
||||
|
$this->assertEquals( $action->data, $result['data']); |
||||
|
} |
||||
|
} |
@ -0,0 +1,143 @@ |
|||||
|
<?php |
||||
|
|
||||
|
/* |
||||
|
* @copyright NetMonsters <team@netmonsters.ru> |
||||
|
* @link http://netmonsters.ru |
||||
|
* @package Majestic |
||||
|
* @subpackage UnitTests |
||||
|
* @since 2011-11-1 |
||||
|
* |
||||
|
* Unit tests for ErrorAction class |
||||
|
*/ |
||||
|
|
||||
|
require_once dirname(__FILE__) . '/Action_TestCase.php'; |
||||
|
require_once dirname(__FILE__) . '/../../app/ErrorAction.php'; |
||||
|
|
||||
|
class ErrorActionTest extends Action_TestCase |
||||
|
{ |
||||
|
|
||||
|
private $log; |
||||
|
|
||||
|
public function setUp() |
||||
|
{ |
||||
|
parent::setUp(); |
||||
|
|
||||
|
$this->log = ini_get('error_log'); |
||||
|
ini_set('error_log', '/dev/null'); |
||||
|
set_exit_overload(function() |
||||
|
{ |
||||
|
return false; |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* @runInSeparateProcess |
||||
|
*/ |
||||
|
public function testErrorExceptionNotice() |
||||
|
{ |
||||
|
$this->setConstants(false); |
||||
|
$exception = $this->getMock('ErrorException', array(), array('', 0, E_NOTICE)); |
||||
|
$action = new ErrorAction($exception); |
||||
|
$this->assertEquals($exception, $action->exception); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* @runInSeparateProcess |
||||
|
*/ |
||||
|
public function testErrorExceptionWarning() |
||||
|
{ |
||||
|
$this->setConstants(false); |
||||
|
$exception = $this->getMock('ErrorException', array(), array('', 0, E_WARNING)); |
||||
|
$action = new ErrorAction($exception); |
||||
|
$this->assertEquals($exception, $action->exception); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* @runInSeparateProcess |
||||
|
*/ |
||||
|
public function testErrorExceptionError() |
||||
|
{ |
||||
|
$this->setConstants(false); |
||||
|
$exception = $this->getMock('ErrorException', array(), array('', 0, E_ERROR)); |
||||
|
$action = new ErrorAction($exception); |
||||
|
$this->assertEquals($exception, $action->exception); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* @runInSeparateProcess |
||||
|
*/ |
||||
|
public function testErrorExceptionCustom() |
||||
|
{ |
||||
|
$this->setConstants(false); |
||||
|
$exception = $this->getMock('ErrorException', array(), array('', 0, 211)); |
||||
|
$action = new ErrorAction($exception); |
||||
|
$this->assertEquals($exception, $action->exception); |
||||
|
} |
||||
|
|
||||
|
|
||||
|
/** |
||||
|
* @runInSeparateProcess |
||||
|
*/ |
||||
|
public function testFetchNoTemplate() |
||||
|
{ |
||||
|
if (!defined('DEBUG')) { |
||||
|
define('DEBUG', false); |
||||
|
} |
||||
|
$exception = $this->getMock('ErrorException'); |
||||
|
$controller = FrontController::getInstance(); |
||||
|
$controller->setView('SomeView'); |
||||
|
$action = new ErrorAction($exception); |
||||
|
$result = $action->fetch(); |
||||
|
$this->assertEquals('/actions/500', $result['template']); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* @runInSeparateProcess |
||||
|
*/ |
||||
|
public function testError404WithAjax() |
||||
|
{ |
||||
|
$this->setConstants(false); |
||||
|
$exception = $this->getMock('Error404Exception', array('getMessage', 'getFile', 'getLine', 'getTrace')); |
||||
|
$exception->expects($this->once()) |
||||
|
->method('getTrace') |
||||
|
->will($this->returnValue(array('one' => array('class' => 'AjaxAction')))); |
||||
|
|
||||
|
$action = new ErrorAction($exception); |
||||
|
$this->assertEquals($exception, $action->exception); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* @runInSeparateProcess |
||||
|
*/ |
||||
|
public function testError404NoAjax() |
||||
|
{ |
||||
|
$this->setConstants(false); |
||||
|
$exception = $this->getMock('Error404Exception', array('getMessage', 'getFile', 'getLine', 'getTrace')); |
||||
|
$exception->expects($this->once()) |
||||
|
->method('getTrace') |
||||
|
->will($this->returnValue(array('one' => array('class' => 'Action')))); |
||||
|
|
||||
|
$action = new ErrorAction($exception); |
||||
|
$this->assertEquals($exception, $action->exception); |
||||
|
} |
||||
|
|
||||
|
private function setConstants($val = false) |
||||
|
{ |
||||
|
if (!defined('DEBUG')) { |
||||
|
define('DEBUG', $val); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
private function header() |
||||
|
{ |
||||
|
ob_end_clean(); |
||||
|
flush(); |
||||
|
} |
||||
|
|
||||
|
public function tearDown() |
||||
|
{ |
||||
|
parent::tearDown(); |
||||
|
ini_set('error_log', $this->log); |
||||
|
unset_exit_overload(); |
||||
|
} |
||||
|
} |
@ -0,0 +1,244 @@ |
|||||
|
<?php |
||||
|
|
||||
|
/* |
||||
|
* @copyright NetMonsters <team@netmonsters.ru> |
||||
|
* @link http://netmonsters.ru |
||||
|
* @package Majestic |
||||
|
* @subpackage UnitTests |
||||
|
* @since 2011-11-1 |
||||
|
* |
||||
|
* Unit tests for FrontController class |
||||
|
*/ |
||||
|
|
||||
|
require_once dirname(__FILE__) . '/../../session/Session.php'; |
||||
|
require_once dirname(__FILE__) . '/../../classes/Env.class.php'; |
||||
|
require_once dirname(__FILE__) . '/../../Registry.php'; |
||||
|
require_once dirname(__FILE__) . '/../../Config.php'; |
||||
|
require_once dirname(__FILE__) . '/../../util/FirePHPCore-0.3.2/lib/FirePHPCore/fb.php'; |
||||
|
require_once dirname(__FILE__) . '/../../util/profiler/Profiler.php'; |
||||
|
require_once dirname(__FILE__) . '/../../exception/GeneralException.php'; |
||||
|
require_once dirname(__FILE__) . '/../../exception/Error404Exception.php'; |
||||
|
require_once dirname(__FILE__) . '/../../exception/ErrorHandler.php'; |
||||
|
require_once dirname(__FILE__) . '/../../app/router/Route.php'; |
||||
|
require_once dirname(__FILE__) . '/../../app/router/Router.php'; |
||||
|
require_once dirname(__FILE__) . '/../../app/FrontController.php'; |
||||
|
require_once dirname(__FILE__) . '/../../app/Action.php'; |
||||
|
require_once dirname(__FILE__) . '/../../app/AjaxAction.php'; |
||||
|
|
||||
|
|
||||
|
class FrontControllerTest extends PHPUnit_Framework_TestCase |
||||
|
{ |
||||
|
|
||||
|
public function run(PHPUnit_Framework_TestResult $result = NULL) |
||||
|
{ |
||||
|
$this->setPreserveGlobalState(false); |
||||
|
return parent::run($result); |
||||
|
} |
||||
|
|
||||
|
public function setUp() |
||||
|
{ |
||||
|
if (!class_exists('PHPViewMock')) { |
||||
|
$this->getMock('PHPView', array('fetch', 'append', 'prepend', 'assign', 'getTemplate'), array(), 'PHPViewMock', false); |
||||
|
} |
||||
|
if (!class_exists('View')) { |
||||
|
$this->getMock('View'); |
||||
|
} |
||||
|
if (!class_exists('ErrorLayout')) { |
||||
|
$this->getMock('ErrorLayout', array('fetch'), array(), 'ErrorLayoutMock'); |
||||
|
} |
||||
|
if (!class_exists('ErrorActionMock')) { |
||||
|
$this->getMock('ErrorAction', array(), array(), 'ErrorActionMock', false); |
||||
|
} |
||||
|
set_new_overload(array($this, 'newCallback')); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* @runInSeparateProcess |
||||
|
*/ |
||||
|
public function testGetInstanceNoProfiler() |
||||
|
{ |
||||
|
$this->setConstants(false); |
||||
|
$controller = FrontController::getInstance(); |
||||
|
$this->assertAttributeEquals($controller, 'instance', 'FrontController'); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* @runInSeparateProcess |
||||
|
*/ |
||||
|
public function testGetInstanceWithProfiler() |
||||
|
{ |
||||
|
$this->setConstants(true); |
||||
|
$controller = FrontController::getInstance(); |
||||
|
$this->assertAttributeEquals($controller, 'instance', 'FrontController'); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* @runInSeparateProcess |
||||
|
*/ |
||||
|
public function testSetView() |
||||
|
{ |
||||
|
$this->setConstants(false); |
||||
|
$controller = FrontController::getInstance(); |
||||
|
$this->assertEquals($controller, $controller->setView('View')); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* @runInSeparateProcess |
||||
|
*/ |
||||
|
public function testGetDefaultView() |
||||
|
{ |
||||
|
$this->setConstants(false); |
||||
|
$controller = FrontController::getInstance(); |
||||
|
$this->assertNotInstanceOf('View', $controller->getView()); |
||||
|
$this->assertInstanceOf('PHPView', $controller->getView()); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* @runInSeparateProcess |
||||
|
*/ |
||||
|
public function testGetCustomView() |
||||
|
{ |
||||
|
$this->setConstants(false); |
||||
|
$controller = FrontController::getInstance(); |
||||
|
$this->assertInstanceOf('View', $controller->getView('View')); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* @runInSeparateProcess |
||||
|
*/ |
||||
|
public function testSetGetBaseUrl() |
||||
|
{ |
||||
|
$this->setConstants(false); |
||||
|
$controller = FrontController::getInstance(); |
||||
|
$this->assertEquals('', $controller->getBaseUrl()); |
||||
|
$controller->setBaseUrl('/index/'); |
||||
|
$this->assertEquals('/index', $controller->getBaseUrl()); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* @runInSeparateProcess |
||||
|
*/ |
||||
|
public function testGetRouter() |
||||
|
{ |
||||
|
$this->setConstants(false); |
||||
|
$controller = FrontController::getInstance(); |
||||
|
$this->assertInstanceOf('Router', $controller->getRouter()); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* @runInSeparateProcess |
||||
|
*/ |
||||
|
public function testExecuteNoRoute() |
||||
|
{ |
||||
|
$this->setConstants(false); |
||||
|
$controller = FrontController::getInstance(); |
||||
|
$this->assertNull($controller->execute()); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* @runInSeparateProcess |
||||
|
*/ |
||||
|
public function testExecuteNoRouteDebug() |
||||
|
{ |
||||
|
$this->setConstants(true); |
||||
|
$controller = FrontController::getInstance(); |
||||
|
$result = $controller->execute(); |
||||
|
$this->assertNotEmpty($result); |
||||
|
$this->assertContains('Route for "" not found', $result); |
||||
|
$this->assertContains('Error404Exception', $result); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* @runInSeparateProcess |
||||
|
*/ |
||||
|
public function testExecuteNoAction() |
||||
|
{ |
||||
|
$_SERVER['REQUEST_URI'] = '/user/account/213'; |
||||
|
$this->setConstants(true); |
||||
|
$controller = FrontController::getInstance(); |
||||
|
$router = $controller->getRouter(); |
||||
|
$router->add('user', 'user/account/:id', 'user'); |
||||
|
$result = $controller->execute(); |
||||
|
$this->assertContains('Action class "userAction" not found.', $result); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* @runInSeparateProcess |
||||
|
*/ |
||||
|
public function testExecuteNoLayout() |
||||
|
{ |
||||
|
$this->getMock('userAction'); |
||||
|
$_SERVER['REQUEST_URI'] = '/user/account/213'; |
||||
|
$this->setConstants(true); |
||||
|
$controller = FrontController::getInstance(); |
||||
|
$router = $controller->getRouter(); |
||||
|
$router->add('user', 'user/account/:id', 'user'); |
||||
|
$result = $controller->execute(); |
||||
|
$this->assertContains('Layout class "DefaultLayout" not found.', $result); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* @runInSeparateProcess |
||||
|
*/ |
||||
|
public function testExecuteWithLayout() |
||||
|
{ |
||||
|
$this->getMock('userAction'); |
||||
|
$this->getMock('DefaultLayout', array('fetch'), array(), 'DefaultLayoutMock'); |
||||
|
$_SERVER['REQUEST_URI'] = '/user/account/213'; |
||||
|
$this->setConstants(true); |
||||
|
$controller = FrontController::getInstance(); |
||||
|
$router = $controller->getRouter(); |
||||
|
$router->add('user', 'user/account/:id', 'user'); |
||||
|
$result = $controller->execute(); |
||||
|
$this->assertEmpty($result); |
||||
|
} |
||||
|
/** |
||||
|
* @runInSeparateProcess |
||||
|
*/ |
||||
|
public function testExecuteWithAjaxAction() |
||||
|
{ |
||||
|
$this->getMock('userAction'); |
||||
|
$this->getMock('DefaultLayout', array('fetch'), array(), 'DefaultLayoutMock'); |
||||
|
$_SERVER['REQUEST_URI'] = '/user/account/213'; |
||||
|
$this->setConstants(true); |
||||
|
$controller = FrontController::getInstance(); |
||||
|
$router = $controller->getRouter(); |
||||
|
$router->add('user', 'user/account/:id', 'NewAjax'); |
||||
|
$result = $controller->execute(); |
||||
|
$this->assertEmpty($result); |
||||
|
} |
||||
|
|
||||
|
private function setConstants($val = false) |
||||
|
{ |
||||
|
if (!defined('DEBUG')) { |
||||
|
define('DEBUG', $val); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
public function tearDown() |
||||
|
{ |
||||
|
unset_new_overload(); |
||||
|
} |
||||
|
|
||||
|
protected function newCallback($className) |
||||
|
{ |
||||
|
switch ($className) { |
||||
|
case 'PHPView': |
||||
|
return 'PHPViewMock'; |
||||
|
case 'DefaultLayout': |
||||
|
return 'DefaultLayoutMock'; |
||||
|
case 'userAction': |
||||
|
return 'userAction'; |
||||
|
case 'ErrorAction': |
||||
|
return 'ErrorActionMock'; |
||||
|
case 'ErrorLayout': |
||||
|
return 'ErrorLayoutMock'; |
||||
|
default: |
||||
|
return $className; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
class NewAjaxAction extends AjaxAction{ |
||||
|
protected function execute() {} |
||||
|
} |
@ -0,0 +1,101 @@ |
|||||
|
<?php |
||||
|
|
||||
|
/* |
||||
|
* @copyright NetMonsters <team@netmonsters.ru> |
||||
|
* @link http://netmonsters.ru |
||||
|
* @package Majestic |
||||
|
* @subpackage UnitTests |
||||
|
* @since 2011-11-1 |
||||
|
* |
||||
|
* Unit tests for PagerAction class |
||||
|
*/ |
||||
|
|
||||
|
require_once dirname(__FILE__) . '/Action_TestCase.php'; |
||||
|
require_once dirname(__FILE__) . '/../../app/PagerAction.php'; |
||||
|
|
||||
|
class PagerActionTest extends Action_TestCase |
||||
|
{ |
||||
|
|
||||
|
/** |
||||
|
* @runInSeparateProcess |
||||
|
*/ |
||||
|
public function testConstructWithParams() |
||||
|
{ |
||||
|
if (!defined('DEBUG')) { |
||||
|
define('DEBUG', false); |
||||
|
} |
||||
|
$action = $this->getMockForAbstractClass('PagerAction'); |
||||
|
$this->assertEquals(20, $action->getLimit()); |
||||
|
$action = $this->getMockForAbstractClass('PagerAction', array(50)); |
||||
|
$this->assertEquals(50, $action->getLimit()); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* @runInSeparateProcess |
||||
|
*/ |
||||
|
public function testSetCount() |
||||
|
{ |
||||
|
if (!defined('DEBUG')) { |
||||
|
define('DEBUG', false); |
||||
|
} |
||||
|
$action = $this->getMockForAbstractClass('PagerAction'); |
||||
|
$action->setCount(50); |
||||
|
$this->assertEquals(1, $action->page); |
||||
|
$this->assertEquals(0, $action->getOffset()); |
||||
|
$_GET['p'] = 'last'; |
||||
|
$action->setCount(50); |
||||
|
$this->assertEquals(3, $action->page); |
||||
|
$this->assertEquals(40, $action->getOffset()); |
||||
|
$_GET['p'] = 2; |
||||
|
$action->setCount(50); |
||||
|
$this->assertEquals(2, $action->page); |
||||
|
$this->assertEquals(20, $action->getOffset()); |
||||
|
$_GET['p'] = -3; |
||||
|
$action->setCount(50); |
||||
|
$this->assertEquals(1, $action->page); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* @runInSeparateProcess |
||||
|
*/ |
||||
|
public function testGetOffset() |
||||
|
{ |
||||
|
if (!defined('DEBUG')) { |
||||
|
define('DEBUG', false); |
||||
|
} |
||||
|
$action = $this->getMockForAbstractClass('PagerAction'); |
||||
|
$this->assertEquals(0, $action->getOffset()); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* @runInSeparateProcess |
||||
|
*/ |
||||
|
public function testFetchNoTemplate() |
||||
|
{ |
||||
|
if (!defined('DEBUG')) { |
||||
|
define('DEBUG', false); |
||||
|
} |
||||
|
Env::setParams(array('template' => '')); |
||||
|
$controller = FrontController::getInstance(); |
||||
|
$controller->setView('SomeView'); |
||||
|
$action = $this->getMockForAbstractClass('PagerAction', array(), 'PagerActionMock'); |
||||
|
$result = $action->fetch(); |
||||
|
$this->assertEquals('/actions/PagerActi', $result['template']); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* @runInSeparateProcess |
||||
|
*/ |
||||
|
public function testFetchWithTemplate() |
||||
|
{ |
||||
|
if (!defined('DEBUG')) { |
||||
|
define('DEBUG', false); |
||||
|
} |
||||
|
Env::setParams(array('template' => 'SomeTemplate')); |
||||
|
$controller = FrontController::getInstance(); |
||||
|
$controller->setView('SomeView'); |
||||
|
$action = $this->getMockForAbstractClass('PagerAction'); |
||||
|
$result = $action->fetch(); |
||||
|
$this->assertEquals('/actions/SomeTemplate', $result['template']); |
||||
|
} |
||||
|
} |
@ -0,0 +1,50 @@ |
|||||
|
<?php |
||||
|
|
||||
|
/* |
||||
|
* @copyright NetMonsters <team@netmonsters.ru> |
||||
|
* @link http://netmonsters.ru |
||||
|
* @package Majestic |
||||
|
* @subpackage UnitTests |
||||
|
* @since 2011-11-1 |
||||
|
* |
||||
|
* Unit tests for StaticAction class |
||||
|
*/ |
||||
|
|
||||
|
require_once dirname(__FILE__) . '/Action_TestCase.php'; |
||||
|
require_once dirname(__FILE__) . '/../../app/StaticAction.php'; |
||||
|
|
||||
|
class StaticActionTest extends Action_TestCase |
||||
|
{ |
||||
|
|
||||
|
/** |
||||
|
* @runInSeparateProcess |
||||
|
*/ |
||||
|
public function testFetchNoTemplate() |
||||
|
{ |
||||
|
if(!defined('DEBUG')) { |
||||
|
define('DEBUG', false); |
||||
|
} |
||||
|
Env::setParams(array('template' => '')); |
||||
|
$controller = FrontController::getInstance(); |
||||
|
$controller->setView('SomeView'); |
||||
|
$action = $this->getMockForAbstractClass('StaticAction', array(), 'StaticActionMock'); |
||||
|
$result = $action->fetch(); |
||||
|
$this->assertEquals('/static/StaticActi', $result['template']); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* @runInSeparateProcess |
||||
|
*/ |
||||
|
public function testFetchWithTemplate() |
||||
|
{ |
||||
|
if(!defined('DEBUG')) { |
||||
|
define('DEBUG', false); |
||||
|
} |
||||
|
Env::setParams(array('template' => 'SomeTemplate')); |
||||
|
$controller = FrontController::getInstance(); |
||||
|
$controller->setView('SomeView'); |
||||
|
$action = $this->getMockForAbstractClass('StaticAction', array(), 'StaticActionMock'); |
||||
|
$result = $action->fetch(); |
||||
|
$this->assertEquals('/static/SomeTemplate', $result['template']); |
||||
|
} |
||||
|
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue