Skip to content

Commit

Permalink
parser tests for interpolated strings
Browse files Browse the repository at this point in the history
  • Loading branch information
arnaud-lb committed Nov 12, 2011
1 parent 098634e commit 773fff5
Showing 1 changed file with 58 additions and 0 deletions.
58 changes: 58 additions & 0 deletions test/Twig/Tests/ExpressionParserTest.php
Expand Up @@ -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.