mirror of
https://github.com/twigphp/Twig.git
synced 2026-09-10 17:36:53 +00:00
parser tests for interpolated strings
This commit is contained in:
@@ -121,4 +121,62 @@ class Twig_Tests_ExpressionParserTest extends PHPUnit_Framework_TestCase
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @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
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user