ILIAS  release_5-4 Revision v5.4.26-12-gabc799a52e6
Twig_Tests_ParserTest Class Reference
+ Inheritance diagram for Twig_Tests_ParserTest:
+ Collaboration diagram for Twig_Tests_ParserTest:

Public Member Functions

 testSetMacroThrowsExceptionOnReservedMethods ()
 @expectedException Twig_Error_Syntax More...
 
 testUnknownTag ()
 @expectedException Twig_Error_Syntax @expectedExceptionMessage Unknown "foo" tag. More...
 
 testUnknownTagWithoutSuggestions ()
 @expectedException Twig_Error_Syntax @expectedExceptionMessage Unknown "foobar" tag at line 1. More...
 
 testFilterBodyNodes ($input, $expected)
 @dataProvider getFilterBodyNodesData More...
 
 getFilterBodyNodesData ()
 
 testFilterBodyNodesThrowsException ($input)
 @dataProvider getFilterBodyNodesDataThrowsException @expectedException Twig_Error_Syntax More...
 
 getFilterBodyNodesDataThrowsException ()
 
 testFilterBodyNodesWithBOM ()
 @expectedException Twig_Error_Syntax @expectedExceptionMessage A template that extends another one cannot start with a byte order mark (BOM); it must be removed at line 1 More...
 
 testParseIsReentrant ()
 
 testGetVarName ()
 

Protected Member Functions

 getParser ()
 

Detailed Description

Definition at line 11 of file ParserTest.php.

Member Function Documentation

◆ getFilterBodyNodesData()

Twig_Tests_ParserTest::getFilterBodyNodesData ( )

Definition at line 64 of file ParserTest.php.

65 {
66 return array(
67 array(
68 new Twig_Node(array(new Twig_Node_Text(' ', 1))),
69 new Twig_Node(array()),
70 ),
71 array(
72 $input = new Twig_Node(array(new Twig_Node_Set(false, new Twig_Node(), new Twig_Node(), 1))),
73 $input,
74 ),
75 array(
76 $input = new Twig_Node(array(new Twig_Node_Set(true, new Twig_Node(), new Twig_Node(array(new Twig_Node(array(new Twig_Node_Text('foo', 1))))), 1))),
77 $input,
78 ),
79 );
80 }
Represents a set node.
Definition: Set.php:18
Represents a text node.
Definition: Text.php:19
Represents a node in the AST.
Definition: Node.php:19

References $input.

◆ getFilterBodyNodesDataThrowsException()

Twig_Tests_ParserTest::getFilterBodyNodesDataThrowsException ( )

Definition at line 93 of file ParserTest.php.

94 {
95 return array(
96 array(new Twig_Node_Text('foo', 1)),
97 array(new Twig_Node(array(new Twig_Node(array(new Twig_Node_Text('foo', 1)))))),
98 );
99 }

◆ getParser()

Twig_Tests_ParserTest::getParser ( )
protected

Definition at line 156 of file ParserTest.php.

157 {
158 $parser = new TestParser(new Twig_Environment($this->getMockBuilder('Twig_LoaderInterface')->getMock()));
159 $parser->setParent(new Twig_Node());
160 $parser->stream = new Twig_TokenStream(array());
161
162 return $parser;
163 }
$parser
Definition: BPMN2Parser.php:23
Stores the Twig configuration.
Definition: Environment.php:18
Represents a token stream.
Definition: TokenStream.php:21

References $parser.

Referenced by testFilterBodyNodes(), testFilterBodyNodesThrowsException(), testFilterBodyNodesWithBOM(), and testSetMacroThrowsExceptionOnReservedMethods().

+ Here is the caller graph for this function:

◆ testFilterBodyNodes()

Twig_Tests_ParserTest::testFilterBodyNodes (   $input,
  $expected 
)

@dataProvider getFilterBodyNodesData

Definition at line 57 of file ParserTest.php.

58 {
59 $parser = $this->getParser();
60
61 $this->assertEquals($expected, $parser->filterBodyNodes($input));
62 }

References $input, $parser, and getParser().

+ Here is the call graph for this function:

◆ testFilterBodyNodesThrowsException()

Twig_Tests_ParserTest::testFilterBodyNodesThrowsException (   $input)

@dataProvider getFilterBodyNodesDataThrowsException @expectedException Twig_Error_Syntax

Definition at line 86 of file ParserTest.php.

87 {
88 $parser = $this->getParser();
89
90 $parser->filterBodyNodes($input);
91 }

References $input, $parser, and getParser().

+ Here is the call graph for this function:

◆ testFilterBodyNodesWithBOM()

Twig_Tests_ParserTest::testFilterBodyNodesWithBOM ( )

@expectedException Twig_Error_Syntax @expectedExceptionMessage A template that extends another one cannot start with a byte order mark (BOM); it must be removed at line 1

Definition at line 105 of file ParserTest.php.

106 {
107 $parser = $this->getParser();
108 $parser->filterBodyNodes(new Twig_Node_Text(chr(0xEF).chr(0xBB).chr(0xBF), 1));
109 }

References $parser, and getParser().

+ Here is the call graph for this function:

◆ testGetVarName()

Twig_Tests_ParserTest::testGetVarName ( )

Definition at line 134 of file ParserTest.php.

135 {
136 $twig = new Twig_Environment($this->getMockBuilder('Twig_LoaderInterface')->getMock(), array(
137 'autoescape' => false,
138 'optimizations' => 0,
139 ));
140
141 $twig->parse($twig->tokenize(new Twig_Source(<<<EOF
142{% from _self import foo %}
143
144{% macro foo() %}
145 {{ foo }}
146{% endmacro %}
147EOF
148 , 'index')));
149
150 // The getVarName() must not depend on the template loaders,
151 // If this test does not throw any exception, that's good.
152 // see https://github.com/symfony/symfony/issues/4218
153 $this->addToAssertionCount(1);
154 }
const EOF
How fgetc() reports an End Of File.
Definition: JSMin_lib.php:92
Holds information about a non-compiled Twig template.
Definition: Source.php:20

References EOF.

◆ testParseIsReentrant()

Twig_Tests_ParserTest::testParseIsReentrant ( )

Definition at line 111 of file ParserTest.php.

112 {
113 $twig = new Twig_Environment($this->getMockBuilder('Twig_LoaderInterface')->getMock(), array(
114 'autoescape' => false,
115 'optimizations' => 0,
116 ));
117 $twig->addTokenParser(new TestTokenParser());
118
119 $parser = new Twig_Parser($twig);
120
121 $parser->parse(new Twig_TokenStream(array(
123 new Twig_Token(Twig_Token::NAME_TYPE, 'test', 1),
126 new Twig_Token(Twig_Token::NAME_TYPE, 'foo', 1),
129 )));
130
131 $this->assertNull($parser->getParent());
132 }
Default parser implementation.
Definition: Parser.php:19
Represents a Token.
Definition: Token.php:21
const BLOCK_END_TYPE
Definition: Token.php:30
const EOF_TYPE
Definition: Token.php:26
const VAR_START_TYPE
Definition: Token.php:29
const BLOCK_START_TYPE
Definition: Token.php:28
const VAR_END_TYPE
Definition: Token.php:31
const NAME_TYPE
Definition: Token.php:32

References $parser, Twig_Token\BLOCK_END_TYPE, Twig_Token\BLOCK_START_TYPE, Twig_Token\EOF_TYPE, Twig_Token\NAME_TYPE, Twig_Token\VAR_END_TYPE, and Twig_Token\VAR_START_TYPE.

◆ testSetMacroThrowsExceptionOnReservedMethods()

Twig_Tests_ParserTest::testSetMacroThrowsExceptionOnReservedMethods ( )

@expectedException Twig_Error_Syntax

Definition at line 16 of file ParserTest.php.

17 {
18 $parser = $this->getParser();
19 $parser->setMacro('parent', $this->getMockBuilder('Twig_Node_Macro')->disableOriginalConstructor()->getMock());
20 }

References $parser, and getParser().

+ Here is the call graph for this function:

◆ testUnknownTag()

Twig_Tests_ParserTest::testUnknownTag ( )

@expectedException Twig_Error_Syntax @expectedExceptionMessage Unknown "foo" tag.

Did you mean "for" at line 1?

Definition at line 26 of file ParserTest.php.

27 {
28 $stream = new Twig_TokenStream(array(
30 new Twig_Token(Twig_Token::NAME_TYPE, 'foo', 1),
33 ));
34 $parser = new Twig_Parser(new Twig_Environment($this->getMockBuilder('Twig_LoaderInterface')->getMock()));
35 $parser->parse($stream);
36 }
$stream
PHP stream implementation.

References $parser, GuzzleHttp\Psr7\$stream, Twig_Token\BLOCK_END_TYPE, Twig_Token\BLOCK_START_TYPE, Twig_Token\EOF_TYPE, and Twig_Token\NAME_TYPE.

◆ testUnknownTagWithoutSuggestions()

Twig_Tests_ParserTest::testUnknownTagWithoutSuggestions ( )

@expectedException Twig_Error_Syntax @expectedExceptionMessage Unknown "foobar" tag at line 1.

Definition at line 42 of file ParserTest.php.

43 {
44 $stream = new Twig_TokenStream(array(
46 new Twig_Token(Twig_Token::NAME_TYPE, 'foobar', 1),
49 ));
50 $parser = new Twig_Parser(new Twig_Environment($this->getMockBuilder('Twig_LoaderInterface')->getMock()));
51 $parser->parse($stream);
52 }

References $parser, GuzzleHttp\Psr7\$stream, Twig_Token\BLOCK_END_TYPE, Twig_Token\BLOCK_START_TYPE, Twig_Token\EOF_TYPE, and Twig_Token\NAME_TYPE.


The documentation for this class was generated from the following file: