\n", $text);
+ }
+
+ public function testDoubleUse() {
+ $tpl='Hello $name! {{ if $enabled }} I love you! {{ endif }}';
+
+ $text=replace_macros($tpl, array('$name'=>'Anna', '$enabled'=>false));
+
+ $this->assertEquals('Hello Anna! ', $text);
+
+ $tpl='Hey $name! {{ if $enabled }} I hate you! {{ endif }}';
+
+ $text=replace_macros($tpl, array('$name'=>'Max', '$enabled'=>true));
+
+ $this->assertEquals('Hey Max! I hate you! ', $text);
+ }
+
+ public function testIncDouble() {
+ $tpl='{{inc field_input.tpl with $field=$var1}}{{ endinc }}'
+ .'{{inc field_input.tpl with $field=$var2}}{{ endinc }}';
+
+ $text=replace_macros($tpl, array('$var1'=>array('myfield', 'label', 'value', 'help'),
+ '$var2'=>array('myfield2', 'label2', 'value2', 'help2')));
+
+ $this->assertEquals(" \n"
+ ."
\n"
+ ." \n"
+ ." \n"
+ ." help\n"
+ ."
\n"
+ ." \n"
+ ."
\n"
+ ." \n"
+ ." \n"
+ ." help2\n"
+ ."
\n", $text);
+ }
+}
\ No newline at end of file
diff --git a/tests/xss_filter_test.php b/tests/xss_filter_test.php
index d7dcf0472..3fb6ac310 100644
--- a/tests/xss_filter_test.php
+++ b/tests/xss_filter_test.php
@@ -27,11 +27,32 @@ class AntiXSSTest extends PHPUnit_Framework_TestCase {
*/
public function testXmlify() {
$text="I want to break\n this!11!";
- $xml=xmlify($text); //test whether it actually may be part of a xml document
+ $xml=xmlify($text);
$retext=unxmlify($text);
$this->assertEquals($text, $retext);
}
+
+ /**
+ * xmlify and put in a document
+ */
+ public function testXmlifyDocument() {
+ $tag="I want to break";
+ $xml=xmlify($tag);
+ $text=''.$xml.'';
+
+ $xml_parser=xml_parser_create();
+ //should be possible to parse it
+ $values=array(); $index=array();
+ $this->assertEquals(1, xml_parse_into_struct($xml_parser, $text, $values, $index));
+
+ $this->assertEquals(array('TEXT'=>array(0)),
+ $index);
+ $this->assertEquals(array(array('tag'=>'TEXT', 'type'=>'complete', 'level'=>1, 'value'=>$tag)),
+ $values);
+
+ xml_parser_free($xml_parser);
+ }
/**
* test hex2bin and reverse