Expanded class hierarchy of Twig_Tests_ParserTest
class Twig_Tests_ParserTest extends PHPUnit_Framework_TestCase {
/**
* @expectedException Twig_Error_Syntax
*/
public function testSetMacroThrowsExceptionOnReservedMethods() {
$parser = new Twig_Parser(new Twig_Environment());
$parser
->setMacro('display', $this
->getMock('Twig_Node_Macro', array(), array(), '', null));
}
/**
* @expectedException Twig_Error_Syntax
* @expectedExceptionMessage Unknown tag name "foo". Did you mean "for" at line 0
*/
public function testUnkownTag() {
$stream = new Twig_TokenStream(array(
new Twig_Token(Twig_Token::BLOCK_START_TYPE, '', 0),
new Twig_Token(Twig_Token::NAME_TYPE, 'foo', 0),
new Twig_Token(Twig_Token::BLOCK_END_TYPE, '', 0),
new Twig_Token(Twig_Token::EOF_TYPE, '', 0),
));
$parser = new Twig_Parser(new Twig_Environment());
$parser
->parse($stream);
}
/**
* @dataProvider getFilterBodyNodesData
*/
public function testFilterBodyNodes($input, $expected) {
$parser = $this
->getParserForFilterBodyNodes();
$this
->assertEquals($expected, $parser
->filterBodyNodes($input));
}
public function getFilterBodyNodesData() {
return array(
array(
new Twig_Node(array(
new Twig_Node_Text(' ', 0),
)),
new Twig_Node(array()),
),
array(
$input = new Twig_Node(array(
new Twig_Node_Set(false, new Twig_Node(), new Twig_Node(), 0),
)),
$input,
),
array(
$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', 0),
)),
)), 0),
)),
$input,
),
);
}
/**
* @dataProvider getFilterBodyNodesDataThrowsException
* @expectedException Twig_Error_Syntax
*/
public function testFilterBodyNodesThrowsException($input) {
$parser = $this
->getParserForFilterBodyNodes();
$parser
->filterBodyNodes($input);
}
public function getFilterBodyNodesDataThrowsException() {
return array(
array(
new Twig_Node_Text('foo', 0),
),
array(
new Twig_Node(array(
new Twig_Node(array(
new Twig_Node_Text('foo', 0),
)),
)),
),
);
}
/**
* @expectedException Twig_Error_Syntax
* @expectedExceptionMessage A template that extends another one cannot have a body but a byte order mark (BOM) has been detected; it must be removed at line 0.
*/
public function testFilterBodyNodesWithBOM() {
$parser = $this
->getParserForFilterBodyNodes();
$parser
->filterBodyNodes(new Twig_Node_Text(chr(0xef) . chr(0xbb) . chr(0xbf), 0));
}
public function testParseIsReentrant() {
$twig = new Twig_Environment(null, array(
'autoescape' => false,
'optimizations' => 0,
));
$twig
->addTokenParser(new TestTokenParser());
$parser = new Twig_Parser($twig);
$parser
->parse(new Twig_TokenStream(array(
new Twig_Token(Twig_Token::BLOCK_START_TYPE, '', 0),
new Twig_Token(Twig_Token::NAME_TYPE, 'test', 0),
new Twig_Token(Twig_Token::BLOCK_END_TYPE, '', 0),
new Twig_Token(Twig_Token::VAR_START_TYPE, '', 0),
new Twig_Token(Twig_Token::NAME_TYPE, 'foo', 0),
new Twig_Token(Twig_Token::VAR_END_TYPE, '', 0),
new Twig_Token(Twig_Token::EOF_TYPE, '', 0),
)));
$this
->assertEquals(null, $parser
->getParent());
}
protected function getParserForFilterBodyNodes() {
$parser = new TestParser(new Twig_Environment());
$parser
->setParent(new Twig_Node());
$parser->stream = $this
->getMockBuilder('Twig_TokenStream')
->disableOriginalConstructor()
->getMock();
return $parser;
}
}
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
Twig_Tests_ParserTest:: |
public | function | ||
Twig_Tests_ParserTest:: |
public | function | ||
Twig_Tests_ParserTest:: |
protected | function | ||
Twig_Tests_ParserTest:: |
public | function | @dataProvider getFilterBodyNodesData | |
Twig_Tests_ParserTest:: |
public | function | @dataProvider getFilterBodyNodesDataThrowsException @expectedException Twig_Error_Syntax | |
Twig_Tests_ParserTest:: |
public | function | @expectedException Twig_Error_Syntax @expectedExceptionMessage A template that extends another one cannot have a body but a byte order mark (BOM) has been detected; it must be removed at line 0. | |
Twig_Tests_ParserTest:: |
public | function | ||
Twig_Tests_ParserTest:: |
public | function | @expectedException Twig_Error_Syntax | |
Twig_Tests_ParserTest:: |
public | function | @expectedException Twig_Error_Syntax @expectedExceptionMessage Unknown tag name "foo". Did you mean "for" at line 0 |