Anton Grebnev
13 years ago
1 changed files with 135 additions and 0 deletions
@ -0,0 +1,135 @@ |
|||
<?php |
|||
|
|||
/* |
|||
* @copyright NetMonsters <team@netmonsters.ru> |
|||
* @link http://netmonsters.ru |
|||
* @package Majestic |
|||
* @subpackage UnitTests |
|||
* @since 2011-10-31 |
|||
* |
|||
* Unit tests for Layout class |
|||
*/ |
|||
|
|||
require_once dirname(__FILE__) . '/../../exception/ErrorHandler.php'; |
|||
require_once dirname(__FILE__) . '/../../app/FrontController.php'; |
|||
require_once dirname(__FILE__) . '/../../layout/Layout.php'; |
|||
|
|||
/** |
|||
* @runTestsInSeparateProcesses |
|||
*/ |
|||
class LayoutTest 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('RouterMock')) { |
|||
$this->getMock('Router', array(), array(), 'RouterMock', false); |
|||
} |
|||
if (!class_exists('PHPView')) { |
|||
$this->getMock('PHPView', array('fetch', 'append', 'prepend', 'assign', 'getTemplate'), array(), 'PHPViewMock', false); |
|||
} |
|||
|
|||
set_new_overload(array($this, 'newCallback')); |
|||
} |
|||
|
|||
public function testConstruct() |
|||
{ |
|||
if (!defined('DEBUG')) { |
|||
define('DEBUG', false); |
|||
} |
|||
$layout = $this->getMockForAbstractClass('Layout'); |
|||
$this->assertAttributeInstanceOf('PHPView', 'view', $layout); |
|||
} |
|||
|
|||
public function testFetch() |
|||
{ |
|||
if (!defined('DEBUG')) { |
|||
define('DEBUG', false); |
|||
} |
|||
$layout = $this->getMockForAbstractClass('Layout'); |
|||
|
|||
$action = $this->getMock('Action', array('fetch')); |
|||
$action->expects($this->once()) |
|||
->method('fetch') |
|||
->will($this->returnValue('this is the result of Action::fetch()')); |
|||
|
|||
$this->assertNull($layout->fetch($action)); |
|||
} |
|||
|
|||
public function testFetchWithTemplate() |
|||
{ |
|||
if (!defined('DEBUG')) { |
|||
define('DEBUG', false); |
|||
} |
|||
$layout = $this->getMockForAbstractClass('Layout'); |
|||
|
|||
$class = new ReflectionClass('Layout'); |
|||
$template = $class->getProperty('template'); |
|||
$template->setAccessible(TRUE); |
|||
|
|||
$this->assertAttributeEquals(null, 'template', $layout); |
|||
|
|||
$template->setValue($layout, 'template'); |
|||
|
|||
$this->assertAttributeEquals('template', 'template', $layout); |
|||
|
|||
$action = $this->getMock('Action', array('fetch')); |
|||
$action->expects($this->once()) |
|||
->method('fetch') |
|||
->will($this->returnValue('this is the result of Action::fetch()')); |
|||
|
|||
$this->assertNull($layout->fetch($action)); |
|||
} |
|||
|
|||
public function testAppend() |
|||
{ |
|||
if (!defined('DEBUG')) { |
|||
define('DEBUG', false); |
|||
} |
|||
$layout = $this->getMockForAbstractClass('Layout'); |
|||
$action = $this->getMock('Action', array('fetch')); |
|||
|
|||
$class = new ReflectionClass('Layout'); |
|||
|
|||
$method = $class->getMethod('append'); |
|||
$method->setAccessible(true); |
|||
$method->invoke($layout, 'var', $action); |
|||
|
|||
$method = $class->getMethod('prepend'); |
|||
$method->setAccessible(true); |
|||
$method->invoke($layout, 'var', $action); |
|||
|
|||
$method = $class->getMethod('assign'); |
|||
$method->setAccessible(true); |
|||
$method->invoke($layout, 'var', $action); |
|||
} |
|||
|
|||
protected function newCallback($className) |
|||
{ |
|||
switch ($className) { |
|||
case 'Router': |
|||
return 'RouterMock'; |
|||
case 'PHPView': |
|||
return 'PHPViewMock'; |
|||
default: |
|||
return $className; |
|||
} |
|||
} |
|||
|
|||
public function tearDown() |
|||
{ |
|||
// if (defined('DEBUG')) {
|
|||
// $debug = DEBUG ? 'TRUE' : 'FALSE';
|
|||
// echo PHP_EOL . __CLASS__ . ' DEBUG = ' . $debug . PHP_EOL;
|
|||
// } else {
|
|||
// echo PHP_EOL . __CLASS__ . ' ' . 'DEBUG NOT DEFINED' . PHP_EOL;
|
|||
// }
|
|||
unset_new_overload(); |
|||
} |
|||
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue