assertEquals($grammar, Twig_Extensions_SimpleTokenParser::parseGrammar($str), '::parseGrammar() parses a grammar'); } public function testParseGrammarExceptions() { try { Twig_Extensions_SimpleTokenParser::parseGrammar(''); $this->fail(); } catch (Exception $e) { $this->assertEquals('Twig_Error_Runtime', get_class($e)); } try { Twig_Extensions_SimpleTokenParser::parseGrammar('fail(); } catch (Exception $e) { $this->assertEquals('Twig_Error_Runtime', get_class($e)); } try { Twig_Extensions_SimpleTokenParser::parseGrammar(' (with'); $this->fail(); } catch (Exception $e) { $this->assertEquals('Twig_Error_Runtime', get_class($e)); } } public function getTests() { return array( array('', new Twig_Extensions_Grammar_Tag()), array('const', new Twig_Extensions_Grammar_Tag( new Twig_Extensions_Grammar_Constant('const') )), array(' const ', new Twig_Extensions_Grammar_Tag( new Twig_Extensions_Grammar_Constant('const') )), array('', new Twig_Extensions_Grammar_Tag( new Twig_Extensions_Grammar_Expression('expr') )), array('', new Twig_Extensions_Grammar_Tag( new Twig_Extensions_Grammar_Expression('expr') )), array(' ', new Twig_Extensions_Grammar_Tag( new Twig_Extensions_Grammar_Expression('expr') )), array('', new Twig_Extensions_Grammar_Tag( new Twig_Extensions_Grammar_Number('nb') )), array('', new Twig_Extensions_Grammar_Tag( new Twig_Extensions_Grammar_Boolean('bool') )), array('', new Twig_Extensions_Grammar_Tag( new Twig_Extensions_Grammar_Body('content') )), array(' [with ]', new Twig_Extensions_Grammar_Tag( new Twig_Extensions_Grammar_Expression('expr'), new Twig_Extensions_Grammar_Optional( new Twig_Extensions_Grammar_Constant('with'), new Twig_Extensions_Grammar_Array('arguments') ) )), array(' [ with ] ', new Twig_Extensions_Grammar_Tag( new Twig_Extensions_Grammar_Expression('expr'), new Twig_Extensions_Grammar_Optional( new Twig_Extensions_Grammar_Constant('with'), new Twig_Extensions_Grammar_Array('arguments') ) )), array(' [with [or ]]', new Twig_Extensions_Grammar_Tag( new Twig_Extensions_Grammar_Expression('expr'), new Twig_Extensions_Grammar_Optional( new Twig_Extensions_Grammar_Constant('with'), new Twig_Extensions_Grammar_Array('arguments'), new Twig_Extensions_Grammar_Optional( new Twig_Extensions_Grammar_Constant('or'), new Twig_Extensions_Grammar_Expression('optional') ) ) )), array(' [with [, ]]', new Twig_Extensions_Grammar_Tag( new Twig_Extensions_Grammar_Expression('expr'), new Twig_Extensions_Grammar_Optional( new Twig_Extensions_Grammar_Constant('with'), new Twig_Extensions_Grammar_Array('arguments'), new Twig_Extensions_Grammar_Optional( new Twig_Extensions_Grammar_Constant(',', Twig_Token::PUNCTUATION_TYPE), new Twig_Extensions_Grammar_Expression('optional') ) ) )), ); } }