diff options
author | Greg Aker <greg.aker@ellislab.com> | 2011-04-23 19:13:15 +0200 |
---|---|---|
committer | Greg Aker <greg.aker@ellislab.com> | 2011-04-23 19:13:15 +0200 |
commit | b9adc1115860f6c69046a08d4d00f7e9986ce33a (patch) | |
tree | b86dbd6eae9f5552dd9e08a71de0b6d1a3e7901a /tests/codeigniter/libraries/Parser_test.php | |
parent | c83bea665eb3a441b6e52528f75fa4c71ca1f8c2 (diff) | |
parent | d92277d650139af381a856cfa8f23a42b8ce04cb (diff) |
Merging in default branch
Diffstat (limited to 'tests/codeigniter/libraries/Parser_test.php')
-rw-r--r-- | tests/codeigniter/libraries/Parser_test.php | 113 |
1 files changed, 113 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..b4580a4b1 --- /dev/null +++ b/tests/codeigniter/libraries/Parser_test.php @@ -0,0 +1,113 @@ +<?php + +require BASEPATH.'libraries/Parser.php'; + +class Parser_test extends CI_TestCase +{ + + public function set_up() + { + $obj = new StdClass; + $obj->parser = new CI_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 |