diff options
| author | Chris Smith <toonarmy@phpbb.com> | 2008-11-25 00:31:32 +0000 |
|---|---|---|
| committer | Chris Smith <toonarmy@phpbb.com> | 2008-11-25 00:31:32 +0000 |
| commit | c95f0c793543e4af68df133a09d0db5af3b4a822 (patch) | |
| tree | 083ba1a68a3ea44b83617262be62c6add84c25f1 /tests | |
| parent | 332521a3696df8e1504933bee5658d005549f3b4 (diff) | |
| download | forums-c95f0c793543e4af68df133a09d0db5af3b4a822.tar forums-c95f0c793543e4af68df133a09d0db5af3b4a822.tar.gz forums-c95f0c793543e4af68df133a09d0db5af3b4a822.tar.bz2 forums-c95f0c793543e4af68df133a09d0db5af3b4a822.tar.xz forums-c95f0c793543e4af68df133a09d0db5af3b4a822.zip | |
- Add template variable S_BLOCK_NAME
- Modify template::alter_block_array() so it supports modification of nested blocks
- Add (incomplete) tests for template::alter_block_array()
git-svn-id: file:///svn/phpbb/trunk@9116 89ea8834-ac86-4346-8a33-228a782c2dd0
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/template/template.php | 257 | ||||
| -rw-r--r-- | tests/template/templates/loop_nested.html | 8 |
2 files changed, 265 insertions, 0 deletions
diff --git a/tests/template/template.php b/tests/template/template.php index 9558ea09f9..72905c9f1a 100644 --- a/tests/template/template.php +++ b/tests/template/template.php @@ -22,6 +22,7 @@ class phpbb_template_template_test extends phpbb_test_case { private $template; + // Keep the contents of the cache for debugging? const PRESERVE_CACHE = true; private function display($handle) @@ -359,5 +360,261 @@ class phpbb_template_template_test extends phpbb_test_case unset($config['tpl_allow_php']); } + + public static function alter_block_array_data() + { + return array( + array( + 'outer', + array('VARIABLE' => 'before'), + false, + 'insert', + <<<EOT +outer - 0/4 - before +outer - 1/4 +middle - 0/2 +middle - 1/2 +outer - 2/4 +middle - 0/3 +middle - 1/3 +middle - 2/3 +outer - 3/4 +middle - 0/2 +middle - 1/2 +EOT +, + 'Test inserting before on top level block', + ), + array( + 'outer', + array('VARIABLE' => 'after'), + true, + 'insert', + <<<EOT +outer - 0/4 +middle - 0/2 +middle - 1/2 +outer - 1/4 +middle - 0/3 +middle - 1/3 +middle - 2/3 +outer - 2/4 +middle - 0/2 +middle - 1/2 +outer - 3/4 - after +EOT +, + 'Test inserting after on top level block', + ), + array( + 'outer', + array('VARIABLE' => 'pos #1'), + 1, + 'insert', + <<<EOT +outer - 0/4 +middle - 0/2 +middle - 1/2 +outer - 1/4 - pos #1 +outer - 2/4 +middle - 0/3 +middle - 1/3 +middle - 2/3 +outer - 3/4 +middle - 0/2 +middle - 1/2 +EOT +, + 'Test inserting at 1 on top level block', + ), + array( + 'outer', + array('VARIABLE' => 'pos #1'), + 0, + 'change', + <<<EOT +outer - 0/3 - pos #1 +middle - 0/2 +middle - 1/2 +outer - 1/3 +middle - 0/3 +middle - 1/3 +middle - 2/3 +outer - 2/3 +middle - 0/2 +middle - 1/2 +EOT +, + 'Test inserting at 1 on top level block', + ), + array( + 'outer[0].middle', + array('VARIABLE' => 'before'), + false, + 'insert', + <<<EOT +outer - 0/3 +middle - 0/3 - before +middle - 1/3 +middle - 2/3 +outer - 1/3 +middle - 0/3 +middle - 1/3 +middle - 2/3 +outer - 2/3 +middle - 0/2 +middle - 1/2 +EOT +, + 'Test inserting before on nested block', + ), + array( + 'outer[0].middle', + array('VARIABLE' => 'after'), + true, + 'insert', + <<<EOT +outer - 0/3 +middle - 0/3 +middle - 1/3 +middle - 2/3 - after +outer - 1/3 +middle - 0/3 +middle - 1/3 +middle - 2/3 +outer - 2/3 +middle - 0/2 +middle - 1/2 +EOT +, + 'Test inserting after on nested block', + ), + array( + 'outer[0].middle', + array('VARIABLE' => 'pos #1'), + 1, + 'insert', + <<<EOT +outer - 0/3 +middle - 0/3 +middle - 1/3 - pos #1 +middle - 2/3 +outer - 1/3 +middle - 0/3 +middle - 1/3 +middle - 2/3 +outer - 2/3 +middle - 0/2 +middle - 1/2 +EOT +, + 'Test inserting at pos 1 on nested block', + ), + array( + 'outer[1].middle', + array('VARIABLE' => 'before'), + false, + 'insert', + <<<EOT +outer - 0/3 +middle - 0/2 +middle - 1/2 +outer - 1/3 +middle - 0/4 - before +middle - 1/4 +middle - 2/4 +middle - 3/4 +outer - 2/3 +middle - 0/2 +middle - 1/2 +EOT +, + 'Test inserting before on nested block (pos 1)', + ), + array( + 'outer[].middle', + array('VARIABLE' => 'before'), + false, + 'insert', + <<<EOT +outer - 0/3 +middle - 0/2 +middle - 1/2 +outer - 1/3 +middle - 0/3 +middle - 1/3 +middle - 2/3 +outer - 2/3 +middle - 0/3 - before +middle - 1/3 +middle - 2/3 +EOT +, + 'Test inserting before on nested block (end)', + ), + array( + 'outer.middle', + array('VARIABLE' => 'before'), + false, + 'insert', + <<<EOT +outer - 0/3 +middle - 0/2 +middle - 1/2 +outer - 1/3 +middle - 0/3 +middle - 1/3 +middle - 2/3 +outer - 2/3 +middle - 0/3 - before +middle - 1/3 +middle - 2/3 +EOT +, + 'Test inserting before on nested block (end)', + ), + ); + } + +/* + <<<EOT +outer - 0/3 +middle - 0/2 +middle - 1/2 +outer - 1/3 +middle - 0/3 +middle - 1/3 +middle - 2/3 +outer - 2/3 +middle - 0/2 +middle - 1/2 +EOT +, +*/ + + /** + * @dataProvider alter_block_array_data + */ + public function test_alter_block_array($alter_block, array $vararray, $key, $mode, $expect, $description) + { + $this->template->set_filenames(array('test' => 'loop_nested.html')); + + // @todo Change this + $this->template->assign_block_vars('outer', array()); + $this->template->assign_block_vars('outer.middle', array()); + $this->template->assign_block_vars('outer.middle', array()); + $this->template->assign_block_vars('outer', array()); + $this->template->assign_block_vars('outer.middle', array()); + $this->template->assign_block_vars('outer.middle', array()); + $this->template->assign_block_vars('outer.middle', array()); + $this->template->assign_block_vars('outer', array()); + $this->template->assign_block_vars('outer.middle', array()); + $this->template->assign_block_vars('outer.middle', array()); + + $this->assertEquals("outer - 0/3\nmiddle - 0/2\nmiddle - 1/2\nouter - 1/3\nmiddle - 0/3\nmiddle - 1/3\nmiddle - 2/3\nouter - 2/3\nmiddle - 0/2\nmiddle - 1/2", $this->display('test'), 'Ensuring template is built correctly before modification'); + + $this->template->alter_block_array($alter_block, $vararray, $key, $mode); + $this->assertEquals($expect, $this->display('test'), $description); + } } ?>
\ No newline at end of file diff --git a/tests/template/templates/loop_nested.html b/tests/template/templates/loop_nested.html new file mode 100644 index 0000000000..571df97b4c --- /dev/null +++ b/tests/template/templates/loop_nested.html @@ -0,0 +1,8 @@ +<!-- BEGIN outer --> + {outer.S_BLOCK_NAME} - {outer.S_ROW_NUM}/{outer.S_NUM_ROWS}<!-- IF outer.VARIABLE --> - {outer.VARIABLE}<!-- ENDIF --> + + <!-- BEGIN middle --> + {middle.S_BLOCK_NAME} - {middle.S_ROW_NUM}/{middle.S_NUM_ROWS}<!-- IF middle.VARIABLE --> - {middle.VARIABLE}<!-- ENDIF --> + + <!-- END middle --> +<!-- END outer --> |
