mirror of
https://github.com/phpbb/phpbb.git
synced 2025-07-30 21:40:43 +02:00
- 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
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
?>
|
8
tests/template/templates/loop_nested.html
Normal file
8
tests/template/templates/loop_nested.html
Normal file
@@ -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 -->
|
Reference in New Issue
Block a user