Skip to content
Snippets Groups Projects
Commit 0adf6150 authored by Taddes Kroes's avatar Taddes Kroes
Browse files

Added unit tests for 'template' plugin.

parent b3fc6f02
No related branches found
No related tags found
No related merge requests found
......@@ -115,7 +115,7 @@ class pQuery {
*/
static function error($error /* , $arg1, $arg2... */) {
$args = func_get_args();
$error = nl2br(call_user_func_array('sprintf', $args));
$error = call_user_func_array('sprintf', $args);
throw new pQueryException($error);
}
......@@ -251,13 +251,28 @@ class pQuery {
if( in_array($name, (array)$class_name::$variable_alias) )
$this->variable = $value;
}
/**
* Handler for pQuery exceptions.
*
* If the execption is a (@link pQueryException}, exit the script with
* its message. Otherwise, throw the exception further.
*
* @param Exception $e The exception to handle.
*/
function exception_handler($e) {
if( $e instanceof pQueryException )
die(nl2br($e->getMessage()));
throw $e;
}
}
/**
* Exception class for error throwing
*/
class pQueryException extends Exception {
}
/**
......@@ -299,9 +314,14 @@ function _p($variable, $plugin=null) {
return new $class_name($variable);
}
/**
/*
* Set an alias for the bas class consistent with plugin aliases.
*/
class_alias('pQuery', '__p');
/*
* Set the exception handler
*/
set_exception_handler('__p::exception_handler');
?>
\ No newline at end of file
......@@ -248,8 +248,14 @@ function _tpl($path) {
return pQuery::create('tpl', $path);
}
/*
* Add plugin to pQuery
*/
__p::extend('pQueryTemplate', 'tpl');
/*
* Set initial root to pQuery root folder
*/
__tpl::set_root('');
?>
\ No newline at end of file
......@@ -28,9 +28,9 @@ while( !$a->is_empty() ) {
$results = $sql->fetch_all('object');
$results = _arr($results);
debug($results);
debug($results);*/
__tpl::set_root('templates', false);
/*__tpl::set_root('templates', false);
$tpl = _tpl('test.tpl');
$test1 = $tpl->data->add('test1', array('var' => 'some-variable'));
......
lorem
block:test1
ipsum
SOME-VARIABLE
{not_a_variable}
block:test2
dolor
end:test2
sit
end:test1
block:test1
ipsum
SOME-OTHER-VARIABLE
{not_a_variable}
sit
end:test1
amet
block:test3
consectetur
end:test3
adipiscing
\ No newline at end of file
......@@ -3,12 +3,75 @@
__p::load_plugin('template');
class pQueryTemplateTest extends UnitTestCase {
const TEMPLATES_FOLDER = 'templates/';
var $templates_folder;
var $file;
var $tpl;
function __construct() {
parent::__construct('pQuery template plugin');
}
function test_() {
function setUp() {
$this->templates_folder = PQUERY_ROOT.'test/'.self::TEMPLATES_FOLDER;
__tpl::set_root($this->templates_folder, false);
$this->file = 'test.tpl';
$this->tpl = _tpl($this->file);
}
function test_add_root_relative() {
$folder = PQUERY_ROOT.'test/';
$folder_relative = 'test/';
__tpl::add_root($folder_relative);
$this->assertTrue(in_array($folder, __tpl::$include_path), 'folder was not added to include path');
}
function test_add_root_absolute() {
$folder = PQUERY_ROOT.'test/';
__tpl::add_root($folder, false);
$this->assertTrue(in_array($folder, __tpl::$include_path), 'folder was not added to include path');
}
function test_add_root_failure() {
$this->expectException('pQueryException');
__tpl::add_root('non_existing_folder');
}
function test_set_root_relative() {
$folder = PQUERY_ROOT.'test/';
$folder_relative = 'test/';
__tpl::set_root($folder_relative);
$this->assertEqual(array($folder), __tpl::$include_path, 'folder was not set as only include path');
}
function test_set_root_absolute() {
$folder = PQUERY_ROOT.'test/';
__tpl::set_root($folder, false);
$this->assertEqual(array($folder), __tpl::$include_path, 'folder was not set as only include path');
}
function test_constructor() {
$this->assertIsA($this->tpl, 'pQueryTemplate', 'constructor does not return pQueryTemplate object');
}
function test_open_template_file() {
$path = $this->templates_folder.$this->file;
$content = file_get_contents($path);
$this->assertEqual($this->tpl->content, $content, 'template content is not set correctly');
}
function test_non_existent_file() {
$this->expectException('pQueryException');
_tpl('non_existent_file.tpl');
}
function test_parse() {
$expected_content = file_get_contents($this->templates_folder.'expect_parse.txt');
$test1 = $this->tpl->data->add('test1', array('var' => 'some-variable'));
$this->tpl->data->add('test1', array('var' => 'some-other-variable'));
$test1->add('test2');
$this->tpl->data->add('test3');
$this->assertEqual($this->tpl->parse(), $expected_content, 'parsed templated does not match expected content');
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment