@@ -998,6 +998,46 @@ public function test_delete_alter_block_array()
998998 $ this ->assertEquals ($ expect , str_replace (array ("\n" , "\r" , "\t" ), '' , $ this ->display ('test ' )), 'Deleting by index out of bounds, ignored ' );
999999 }
10001000
1001+ public function test_indexed_assign_block_vars ()
1002+ {
1003+ $ this ->template ->set_filenames (array ('test ' => 'loop_nested.html ' ));
1004+
1005+ $ this ->template ->assign_var ('TEST_MORE ' , true );
1006+
1007+ // @todo Change this
1008+ $ this ->template ->assign_block_vars ('outer ' , array ());
1009+ $ this ->template ->assign_block_vars ('outer.middle ' , array ());
1010+ $ this ->template ->assign_block_vars ('outer ' , array ());
1011+ $ this ->template ->assign_block_vars ('outer.middle ' , array ());
1012+ $ this ->template ->assign_block_vars ('outer.middle ' , array ());
1013+ $ this ->template ->assign_block_vars ('outer ' , array ());
1014+ $ this ->template ->assign_block_vars ('outer.middle ' , array ());
1015+ $ this ->template ->assign_block_vars ('outer.middle ' , array ());
1016+ $ this ->template ->assign_block_vars ('outer.middle ' , array ());
1017+
1018+ $ expect = 'outer - 0[outer|3]middle - 0[middle|1]outer - 1[outer|3]middle - 0[middle|2]middle - 1[middle|2]outer - 2[outer|3]middle - 0[middle|3]middle - 1[middle|3]middle - 2[middle|3] ' ;
1019+ $ this ->assertEquals ($ expect , str_replace (array ("\n" , "\r" , "\t" ), '' , $ this ->display ('test ' )), 'Ensuring template is built correctly before modification ' );
1020+
1021+ $ this ->template ->assign_block_vars ('outer[0].middle ' , array ('VARIABLE ' => 'test ' ));
1022+
1023+ $ expect = 'outer - 0[outer|3]middle - 0[middle|2]middle - 1 - test[middle|2]outer - 1[outer|3]middle - 0[middle|2]middle - 1[middle|2]outer - 2[outer|3]middle - 0[middle|3]middle - 1[middle|3]middle - 2[middle|3] ' ;
1024+ $ this ->assertEquals ($ expect , str_replace (array ("\n" , "\r" , "\t" ), '' , $ this ->display ('test ' )), 'Inserting at the first outer block ' );
1025+
1026+ $ this ->template ->assign_block_vars ('outer[1].middle[0].inner ' , array ());
1027+
1028+ $ expect = 'outer - 0[outer|3]middle - 0[middle|2]middle - 1 - test[middle|2]outer - 1[outer|3]middle - 0[middle|2]inner - 0[inner|1]middle - 1[middle|2]outer - 2[outer|3]middle - 0[middle|3]middle - 1[middle|3]middle - 2[middle|3] ' ;
1029+ $ this ->assertEquals ($ expect , str_replace (array ("\n" , "\r" , "\t" ), '' , $ this ->display ('test ' )), 'Creating an inner block at the first middle block in the second outer block ' );
1030+
1031+ $ this ->template ->assign_block_vars ('outer[1].middle[0].inner ' , array ());
1032+
1033+ $ expect = 'outer - 0[outer|3]middle - 0[middle|2]middle - 1 - test[middle|2]outer - 1[outer|3]middle - 0[middle|2]inner - 0[inner|2]inner - 1[inner|2]middle - 1[middle|2]outer - 2[outer|3]middle - 0[middle|3]middle - 1[middle|3]middle - 2[middle|3] ' ;
1034+ $ this ->assertEquals ($ expect , str_replace (array ("\n" , "\r" , "\t" ), '' , $ this ->display ('test ' )), 'Inserting another inner block in the same place ' );
1035+
1036+ $ this ->template ->assign_block_vars ('outer.middle[1].inner ' , array ('VARIABLE ' => 'test ' ));
1037+
1038+ $ expect = 'outer - 0[outer|3]middle - 0[middle|2]middle - 1 - test[middle|2]outer - 1[outer|3]middle - 0[middle|2]inner - 0[inner|2]inner - 1[inner|2]middle - 1[middle|2]outer - 2[outer|3]middle - 0[middle|3]middle - 1[middle|3]inner - 0 - test[inner|1]middle - 2[middle|3] ' ;
1039+ $ this ->assertEquals ($ expect , str_replace (array ("\n" , "\r" , "\t" ), '' , $ this ->display ('test ' )), 'Inserting another inner block in the same place ' );
1040+ }
10011041
10021042 public function assign_block_vars_array_data ()
10031043 {
0 commit comments