diff options
author | Eric Roberts <eric@cryode.com> | 2012-04-15 00:49:21 +0200 |
---|---|---|
committer | Eric Roberts <eric@cryode.com> | 2012-04-15 00:49:21 +0200 |
commit | 8cefb3ff51de4f023753c0146eb16950f48601a9 (patch) | |
tree | ed868ec7a795fcf1fe97efc5642d26dc1d1faefe /tests/codeigniter/libraries/Parser_test.php | |
parent | 0760a48d431fb9ab85f2a0ca9af63aa131e29520 (diff) | |
parent | 0f2211711deceb74157d6811116acc0376d3157d (diff) |
Merge branch 'develop' of https://github.com/EllisLab/CodeIgniter into feature/form_error_msgs
Conflicts:
system/language/english/form_validation_lang.php
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 |