* @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->assertSame('/actions//ajax', $result['template']); $this->assertSame('{"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->assertSame('/actions//ajax', $result['template']); $this->assertSame( $action->data, $result['data']); } }