Current File : //opt/RZphp5/includes/test/HTML_Template_PHPLIB/tests/HTML_Template_PHPLIBTest.php |
<?php
// Call HTML_Template_PHPLIBTest::main() if this source file is executed directly.
if (!defined('PHPUnit_MAIN_METHOD')) {
define('PHPUnit_MAIN_METHOD', 'HTML_Template_PHPLIBTest::main');
}
require_once 'PHPUnit/Framework.php';
chdir(dirname(__FILE__) . '/../');
require_once 'HTML/Template/PHPLIB.php';
/**
* Test class for HTML_Template_PHPLIB.
* Generated by PHPUnit on 2007-07-08 at 11:59:46.
*/
class HTML_Template_PHPLIBTest extends PHPUnit_Framework_TestCase
{
/**
* Template object, initialized at setUp()
*
* @var HTML_Template_PHPLIB
*/
protected $tpl = null;
/**
* Runs the test methods of this class.
*
* @access public
* @static
*/
public static function main() {
require_once 'PHPUnit/TextUI/TestRunner.php';
$suite = new PHPUnit_Framework_TestSuite('HTML_Template_PHPLIBTest');
PHPUnit_TextUI_TestRunner::run($suite);
}
/**
* Sets up the fixture, for example, opens a network connection.
* This method is called before a test is executed.
*
* @access protected
*/
protected function setUp() {
chdir(dirname(__FILE__) . '/');
$this->tpl = new HTML_Template_PHPLIB('templates');
$this->tpl->haltOnError = 'no';
$this->assertFalse($this->tpl->getLastError());
}
/**
*
*/
public function testSetRoot() {
$this->assertTrue(
$this->tpl->setRoot(dirname(__FILE__) . '/templates')
);
$this->assertTrue(
$this->tpl->setFile('testfile', 'simple.tpl')
);
$this->assertFalse(
$this->tpl->setFile('testfile', 'templates/simple.tpl')
);
$this->setUp();
$this->assertTrue(
$this->tpl->setRoot(dirname(__FILE__))
);
$this->assertTrue(
$this->tpl->setFile('testfile', 'templates/simple.tpl')
);
$this->assertFalse(
$this->tpl->setFile('testfile', 'simple.tpl')
);
}
/**
*
*/
public function testSetUnknowns() {
$this->assertNull(
$this->tpl->setUnknowns('remove')
);
$this->tpl->setFile('testfile2', 'simple2.tpl');
$this->tpl->parse('TMP', 'testfile2');
$this->assertEquals(
' ',
$this->tpl->get('TMP')
);
$this->assertNull(
$this->tpl->setUnknowns('keep')
);
$this->tpl->setFile('testfile2', 'simple2.tpl');
$this->tpl->parse('TMP', 'testfile2');
$this->assertEquals(
'{HELLO} {WORLD}',
$this->tpl->get('TMP')
);
$this->assertNull(
$this->tpl->setUnknowns('comment')
);
$this->tpl->setFile('testfile2', 'simple2.tpl');
$this->tpl->parse('TMP', 'testfile2');
$this->assertNotEquals(
'{HELLO} {WORLD}',
$this->tpl->get('TMP')
);
$this->assertNotEquals(
' ',
$this->tpl->get('TMP')
);
}
/**
*
*/
public function testSetFile() {
$this->assertTrue(
$this->tpl->setFile('testfile', 'simple.tpl')
);
$this->assertFalse($this->tpl->getLastError());
$this->assertTrue(
$this->tpl->setFile('testfile', 'simple2.tpl')
);
$this->assertFalse($this->tpl->getLastError());
$this->assertFalse(
$this->tpl->setFile('bugfile', 'doesnotexist.tpl')
);
$this->assertTrue($this->tpl->getLastError() !== false);
//multiple files
$this->setUp();
$this->assertTrue(
$this->tpl->setFile(array(
'testfile' => 'simple.tpl',
'testfile2' => 'simple2.tpl',
))
);
$this->assertFalse($this->tpl->getLastError());
//multiple files, with error at last one
$this->setUp();
$this->assertFalse(
$this->tpl->setFile(array(
'testfile' => 'simple.tpl',
'testfile2' => 'simple2.tpl',
'bugfile' => 'doesnotexist.tpl'
))
);
$this->assertTrue($this->tpl->getLastError() !== false);
//multiple files with error at first - should load others anyway
$this->setUp();
$this->assertFalse(
$this->tpl->setFile(array(
'bugfile' => 'doesnotexist.tpl',
'testfile' => 'simple.tpl',
'testfile2' => 'simple2.tpl'
))
);
$this->assertTrue($this->tpl->getLastError() !== false);
//this checks internals..
$this->assertEquals('templates/simple.tpl', $this->tpl->file['testfile']);
$this->assertEquals('templates/simple2.tpl', $this->tpl->file['testfile2']);
}
/**
* This should show a bug, but it does not (#12198)
*/
public function testSetFileMultipleTimes()
{
$this->assertTrue(
$this->tpl->setFile('testfile', 'block.tpl')
);
$this->assertTrue(
$this->tpl->setFile('testfile2', 'block.tpl')
);
$this->assertTrue(
$this->tpl->setBlock('testfile', 'hello_world', 'hello_world_ref')
);
$this->tpl->parse('hello_world_ref', 'hello_world');
}//public function testSetFileMultipleTimes()
/**
*
*/
public function testSetBlock() {
$this->tpl->setFile('testfile', 'block.tpl');
$this->assertTrue(
$this->tpl->setBlock('testfile', 'hello_world', 'hello_world_ref')
);
$this->tpl->parse('hello_world_ref', 'hello_world');
$this->tpl->parse('TMP', 'testfile');
$this->assertEquals(
"Hello world\n",
$this->tpl->get('TMP')
);
$this->tpl->parse('hello_world_ref', 'hello_world');
$this->tpl->parse('TMP', 'testfile');
$this->assertEquals(
"Hello world\n",
$this->tpl->get('TMP')
);
$this->tpl->parse('hello_world_ref', 'hello_world', true);
$this->tpl->parse('TMP', 'testfile');
$this->assertEquals(
"Hello world\nHello world\n",
$this->tpl->get('TMP')
);
//nested blocks
$this->tpl->setFile('testfile', 'block3.tpl');
$this->assertTrue(
$this->tpl->setBlock('testfile', 'hello', 'hello_ref')
);
$this->assertTrue(
$this->tpl->setBlock('testfile', 'world', 'world_ref')
);
$this->assertTrue(
$this->tpl->setBlock('testfile', 'hello_world', 'hello_world_ref')
);
$this->tpl->parse('hello_ref', 'hello');
$this->tpl->parse('world_ref', 'world');
$this->tpl->parse('hello_world_ref', 'hello_world');
$this->tpl->parse('TMP', 'testfile');
$this->assertEquals(
"Hello world\n",
$this->tpl->get('TMP')
);
}
/**
*
*/
public function testSetVar() {
//plain
$this->tpl->setFile('testfile', 'simple.tpl');
$this->assertNull(
$this->tpl->setVar('WORLD', 'world!')
);
$this->tpl->parse('TMP', 'testfile');
$this->assertEquals(
'Hello world!',
$this->tpl->get('TMP')
);
$this->assertNull(
$this->tpl->setVar('WORLD', 'you all...')
);
$this->tpl->parse('TMP', 'testfile');
$this->assertEquals(
'Hello you all...',
$this->tpl->get('TMP')
);
//array
$this->tpl->setFile('testfile2', 'simple2.tpl');
$this->assertNull(
$this->tpl->setVar(array(
'HELLO' => 'Hello',
'WORLD' => 'world!'
))
);
$this->tpl->parse('TMP', 'testfile2');
$this->assertEquals(
'Hello world!',
$this->tpl->get('TMP')
);
}
public function testExists()
{
$this->assertFalse($this->tpl->exists('one'));
$this->assertFalse($this->tpl->exists('two'));
$this->assertFalse($this->tpl->exists(array('three', 'four')));
$this->tpl->setVar('one', '1');
$this->tpl->setVar('three', '3');
$this->assertTrue($this->tpl->exists('one'));
$this->assertFalse($this->tpl->exists('two'));
$this->assertTrue($this->tpl->exists('three'));
}
public function testExistsArray()
{
$this->assertFalse($this->tpl->exists(array('three', 'four')));
$this->tpl->setVar('one', '1');
$this->tpl->setVar('three', '3');
$this->assertTrue($this->tpl->exists(array('one')));
$this->assertTrue($this->tpl->exists(array('one', 'three')));
$this->assertFalse($this->tpl->exists(array('two')));
$this->assertFalse($this->tpl->exists(array('one', 'two')));
$this->assertFalse($this->tpl->exists(array('two', 'three')));
$this->assertFalse($this->tpl->exists(array('one', 'two', 'three')));
}
public function testClearVar()
{
$this->tpl->setVar('one', '1');
$this->tpl->setVar('two', '2');
$this->tpl->setVar('three', '3');
$this->tpl->clearVar('two');
$this->assertTrue($this->tpl->exists('two'));
$this->assertEquals('1', $this->tpl->getVar('one'));
$this->assertEquals('', $this->tpl->getVar('two'));
$this->assertEquals('3', $this->tpl->getVar('three'));
}
public function testClearVarArray()
{
$this->tpl->setVar('one', '1');
$this->tpl->setVar('two', '2');
$this->tpl->setVar('three', '3');
$this->tpl->setVar('four', '4');
$this->tpl->clearVar(array('two', 'four'));
$this->assertTrue($this->tpl->exists('two'));
$this->assertTrue($this->tpl->exists('four'));
$this->assertEquals('1', $this->tpl->getVar('one'));
$this->assertEquals('', $this->tpl->getVar('two'));
$this->assertEquals('3', $this->tpl->getVar('three'));
$this->assertEquals('', $this->tpl->getVar('four'));
}//public function testClearVarArray()
public function testUnsetVar()
{
$this->tpl->setVar('one', '1');
$this->tpl->setVar('two', '2');
$this->tpl->setVar('three', '3');
$this->tpl->unsetVar('two');
$this->assertFalse($this->tpl->exists('two'));
$this->assertEquals('1', $this->tpl->getVar('one'));
$this->assertEquals('', $this->tpl->getVar('two'));
$this->assertEquals('3', $this->tpl->getVar('three'));
}//public function testUnsetVar()
public function testUnsetVarArray()
{
$this->tpl->setVar('one', '1');
$this->tpl->setVar('two', '2');
$this->tpl->setVar('three', '3');
$this->tpl->setVar('four', '4');
$this->tpl->unsetVar(array('two', 'four'));
$this->assertFalse($this->tpl->exists('two'));
$this->assertFalse($this->tpl->exists('four'));
$this->assertEquals('1', $this->tpl->getVar('one'));
$this->assertEquals('', $this->tpl->getVar('two'));
$this->assertEquals('3', $this->tpl->getVar('three'));
$this->assertEquals('', $this->tpl->getVar('four'));
}//public function testUnsetVarArray()
public function testIsAbsolute()
{
$this->assertTrue($this->tpl->_isAbsolute('/home/user/project/template.tpl'));
$this->assertTrue($this->tpl->_isAbsolute('C:\\Documents And Settings\\User\\template.tpl'));
$this->assertFalse($this->tpl->_isAbsolute('templates/file.tpl'));
$this->assertFalse($this->tpl->_isAbsolute('./templates/file.tpl'));
}//public function testIsAbsolute()
public function testIsError()
{
$this->assertFalse($this->tpl->isError(true));
$this->assertFalse($this->tpl->isError('abc'));
$this->assertFalse($this->tpl->isError(''));
$this->assertTrue($this->tpl->isError(false));
require_once 'PEAR.php';
$this->tpl->haltOnError = 'return';
$error = PEAR::raiseError('test');
$this->assertTrue($this->tpl->isError($error));
}//public function testIsError()
/**
* Test "yes" $_haltOnError option
*/
public function testHaltOnErrorYes()
{
//FIXME: implement this when we know how to catch errors
$this->markTestIncomplete();
}//public function testHaltOnErrorYes()
/**
* Test "no" $_haltOnError option
*/
public function testHaltOnErrorno()
{
$this->tpl->haltOnError = 'no';
//setRoot
$this->assertFalse(
$this->tpl->setRoot('this/dir/should/really/not/exist/anywhere')
);
//setFile
$this->assertFalse(
$this->tpl->setFile('')
);
$this->assertFalse(
$this->tpl->setFile('abc', 'no/body/has/this/one')
);
$this->assertFalse(
$this->tpl->setFile(
array(
'abc' => 'no/body/has/this/one',
'def' => 'no/body/has/this/two',
)
)
);
//setBlock
$this->assertFalse(
$this->tpl->setBlock('no/body/has/this/one', '')
);
//subst
$this->assertFalse(
$this->tpl->subst('no/body/has/this/one', '')
);
//getUndefined
$this->assertFalse(
$this->tpl->subst('no/body/has/this/one', '')
);
}//public function testHaltOnErrorno()
/**
* Test "report" $_haltOnError option
*/
public function testHaltOnErrorReport()
{
$this->tpl->haltOnError = 'report';
//setRoot
ob_start();
$this->assertFalse(
$this->tpl->setRoot('this/dir/should/really/not/exist/anywhere')
);
$this->assertNotEquals('', ob_get_clean());
//setFile
ob_start();
$this->assertFalse(
$this->tpl->setFile('')
);
$this->assertNotEquals('', ob_get_clean());
ob_start();
$this->assertFalse(
$this->tpl->setFile('abc', 'no/body/has/this/one')
);
$this->assertNotEquals('', ob_get_clean());
ob_start();
$this->assertFalse(
$this->tpl->setFile(
array(
'abc' => 'no/body/has/this/one',
'def' => 'no/body/has/this/two',
)
)
);
$this->assertNotEquals('', ob_get_clean());
//setBlock
ob_start();
$this->assertFalse(
$this->tpl->setBlock('no/body/has/this/one', '')
);
$this->assertNotEquals('', ob_get_clean());
//subst
ob_start();
$this->assertFalse(
$this->tpl->subst('no/body/has/this/one', '')
);
$this->assertNotEquals('', ob_get_clean());
//getUndefined
ob_start();
$this->assertFalse(
$this->tpl->subst('no/body/has/this/one', '')
);
$this->assertNotEquals('', ob_get_clean());
}//public function testHaltOnErrorReport()
/**
* Test "return" $_haltOnError option
*/
public function testHaltOnErrorReturn()
{
$this->tpl->haltOnError = 'return';
//setRoot
$this->assertType(
'PEAR_Error',
$this->tpl->setRoot('this/dir/should/really/not/exist/anywhere')
);
//setFile
$this->assertType(
'PEAR_Error',
$this->tpl->setFile('')
);
$this->assertType(
'PEAR_Error',
$this->tpl->setFile('abc', 'no/body/has/this/one')
);
$this->assertType(
'PEAR_Error',
$this->tpl->setFile(
array(
'abc' => 'no/body/has/this/one',
'def' => 'no/body/has/this/two',
)
)
);
//setBlock
$this->assertType(
'PEAR_Error',
$this->tpl->setBlock('no/body/has/this/one', '')
);
//subst
$this->assertType(
'PEAR_Error',
$this->tpl->subst('no/body/has/this/one', '')
);
//getUndefined
$this->assertType(
'PEAR_Error',
$this->tpl->subst('no/body/has/this/one', '')
);
}//public function testHaltOnErrorReturn()
}
// Call HTML_Template_PHPLIBTest::main() if this source file is executed directly.
if (PHPUnit_MAIN_METHOD == 'HTML_Template_PHPLIBTest::main') {
HTML_Template_PHPLIBTest::main();
}
?>