Permalink
Browse files

parser tests for interpolated strings

  • Loading branch information...
1 parent 098634e commit 773fff59edc1e4250de2dc5ab9a7f24f6c492df3 @arnaud-lb arnaud-lb committed Nov 12, 2011
Showing with 58 additions and 0 deletions.
  1. +58 −0 test/Twig/Tests/ExpressionParserTest.php
@@ -121,4 +121,62 @@ public function getTestsForArray()
),
);
}
+
+ /**
+ * @dataProvider getTestsForString
+ */
+ public function testStringExpression($template, $expected)
+ {
+ $env = new Twig_Environment(new Twig_Loader_String(), array('cache' => false, 'autoescape' => false, 'optimizations' => 0));
+ $stream = $env->tokenize($template, 'index');
+ $parser = new Twig_Parser($env);
+
+ $this->assertEquals($expected, $parser->parse($stream)->getNode('body')->getNode(0)->getNode('expr'));
+ }
+
+ public function getTestsForString()
+ {
+ return array(
+ array(
+ '{{ "foo" }}', new Twig_Node_Expression_Constant('foo', 1),
+ ),
+ array(
+ '{{ "foo #{bar}" }}', new Twig_Node_Expression_Binary_Concat(
+ new Twig_Node_Expression_Constant('foo ', 1),
+ new Twig_Node_Expression_Name('bar', 1),
+ 1
+ ),
+ ),
+ array(
+ '{{ "foo #{bar} baz" }}', new Twig_Node_Expression_Binary_Concat(
+ new Twig_Node_Expression_Constant('foo ', 1),
+ new Twig_Node_Expression_Binary_Concat(
+ new Twig_Node_Expression_Name('bar', 1),
+ new Twig_Node_Expression_Constant(' baz', 1),
+ 1
+ ),
+ 1
+ ),
+ ),
+ array(
+ '{{ "foo #{"foo #{bar} baz"} baz" }}', new Twig_Node_Expression_Binary_Concat(
+ new Twig_Node_Expression_Constant('foo ', 1),
+ new Twig_Node_Expression_Binary_Concat(
+ new Twig_Node_Expression_Binary_Concat(
+ new Twig_Node_Expression_Constant('foo ', 1),
+ new Twig_Node_Expression_Binary_Concat(
+ new Twig_Node_Expression_Name('bar', 1),
+ new Twig_Node_Expression_Constant(' baz', 1),
+ 1
+ ),
+ 1
+ ),
+ new Twig_Node_Expression_Constant(' baz', 1),
+ 1
+ ),
+ 1
+ ),
+ ),
+ );
+ }
}

0 comments on commit 773fff5

Please sign in to comment.