* ``"Hello World"``: Everything between two double or single quotes is a
string. They are useful whenever you need a string in the template (for
- example as arguments to function calls, filters or just to extend or
- include a template).
+ example as arguments to function calls, filters or just to extend or include
+ a template). A string can contain a delimiter if it is preceded by a
+ backslash (``\``) -- like in ``'It\'s good'``.
* ``42`` / ``42.23``: Integers and floating point numbers are created by just
writing the number down. If a dot is present the number is a float,
$this->assertEquals(922337203685477580700, $node->getValue());
}
- public function testString()
+ public function testStringWithEscapedDelimiter()
+ {
+ $tests = array(
+ "{{ 'foo \' bar' }}" => 'foo \' bar',
+ '{{ "foo \" bar" }}' => "foo \" bar",
+ );
+ $lexer = new Twig_Lexer(new Twig_Environment());
+ foreach ($tests as $template => $expected) {
+ $stream = $lexer->tokenize($template);
+ $stream->expect(Twig_Token::VAR_START_TYPE);
+ $stream->expect(Twig_Token::STRING_TYPE, $expected);
+ }
+ }
+
+ public function testStringWithInterpolation()
{
$template = 'foo {{ "bar #{ baz + 1 }" }}';