diff options
author | Jamie Rumbelow <jamie@jamierumbelow.net> | 2012-04-26 14:27:35 +0200 |
---|---|---|
committer | Jamie Rumbelow <jamie@jamierumbelow.net> | 2012-04-26 14:27:35 +0200 |
commit | d6ce1e936d60487ad8ddd099a040fba7d8f88367 (patch) | |
tree | 31dcdda9a24e2ed12135659a4e38cb4f35b0af31 /tests/codeigniter/libraries/Parser_test.php | |
parent | bcee50ff3247dee71d83bf273e52bc10096cd48c (diff) | |
parent | 9e2d5d130eff40592b49337a8ba4d8c170934de1 (diff) |
Merge branch 'develop' of git://github.com/EllisLab/CodeIgniter into develop
Conflicts:
system/core/Loader.php
system/database/DB_query_builder.php
system/database/drivers/cubrid/cubrid_driver.php
system/database/drivers/mssql/mssql_driver.php
system/database/drivers/mysql/mysql_driver.php
system/database/drivers/mysqli/mysqli_driver.php
system/database/drivers/oci8/oci8_driver.php
system/database/drivers/odbc/odbc_driver.php
system/database/drivers/pdo/pdo_driver.php
system/database/drivers/postgre/postgre_driver.php
system/database/drivers/sqlite/sqlite_driver.php
user_guide_src/source/changelog.rst
user_guide_src/source/database/query_builder.rst
Diffstat (limited to 'tests/codeigniter/libraries/Parser_test.php')
-rw-r--r-- | tests/codeigniter/libraries/Parser_test.php | 110 |
1 files changed, 110 insertions, 0 deletions
diff --git a/tests/codeigniter/libraries/Parser_test.php b/tests/codeigniter/libraries/Parser_test.php new file mode 100644 index 000000000..c3d88fa85 --- /dev/null +++ b/tests/codeigniter/libraries/Parser_test.php @@ -0,0 +1,110 @@ +<?php + +class Parser_test extends CI_TestCase { + + public function set_up() + { + $obj = new StdClass; + $obj->parser = new Mock_Libraries_Parser(); + + $this->ci_instance($obj); + + $this->parser = $obj->parser; + } + // -------------------------------------------------------------------- + + public function test_set_delimiters() + { + // Make sure default delimiters are there + $this->assertEquals('{', $this->parser->l_delim); + $this->assertEquals('}', $this->parser->r_delim); + + // Change them to square brackets + $this->parser->set_delimiters('[', ']'); + + // Make sure they changed + $this->assertEquals('[', $this->parser->l_delim); + $this->assertEquals(']', $this->parser->r_delim); + + // Reset them + $this->parser->set_delimiters(); + + // Make sure default delimiters are there + $this->assertEquals('{', $this->parser->l_delim); + $this->assertEquals('}', $this->parser->r_delim); + } + + // -------------------------------------------------------------------- + + public function test_parse_simple_string() + { + $data = array( + 'title' => 'Page Title', + 'body' => 'Lorem ipsum dolor sit amet.' + ); + + $template = "{title}\n{body}"; + + $result = implode("\n", $data); + + $this->assertEquals($result, $this->parser->parse_string($template, $data, TRUE)); + } + + // -------------------------------------------------------------------- + + public function test_parse() + { + $this->_parse_no_template(); + $this->_parse_var_pair(); + $this->_mismatched_var_pair(); + } + + // -------------------------------------------------------------------- + + private function _parse_no_template() + { + $this->assertFalse($this->parser->parse_string('', '', TRUE)); + } + + // -------------------------------------------------------------------- + + private function _parse_var_pair() + { + $data = array( + 'title' => 'Super Heroes', + 'powers' => array( + array( + 'invisibility' => 'yes', + 'flying' => 'no'), + ) + ); + + $template = "{title}\n{powers}{invisibility}\n{flying}{/powers}"; + + $result = "Super Heroes\nyes\nno"; + + $this->assertEquals($result, $this->parser->parse_string($template, $data, TRUE)); + } + + // -------------------------------------------------------------------- + + private function _mismatched_var_pair() + { + $data = array( + 'title' => 'Super Heroes', + 'powers' => array( + array( + 'invisibility' => 'yes', + 'flying' => 'no'), + ) + ); + + $template = "{title}\n{powers}{invisibility}\n{flying}"; + + $result = "Super Heroes\n{powers}{invisibility}\n{flying}"; + + $this->assertEquals($result, $this->parser->parse_string($template, $data, TRUE)); + } + + // -------------------------------------------------------------------- +}
\ No newline at end of file |