123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- <?php
- /*
- * This file is part of Twig.
- *
- * (c) Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
- /**
- * @group legacy
- */
- class Twig_Tests_SimpleTokenParserTest extends \PHPUnit\Framework\TestCase
- {
- /**
- * @dataProvider getTests
- */
- public function testParseGrammar($str, $grammar)
- {
- $this->assertEquals($grammar, Twig_Extensions_SimpleTokenParser::parseGrammar($str), '::parseGrammar() parses a grammar');
- }
- public function testParseGrammarExceptions()
- {
- try {
- Twig_Extensions_SimpleTokenParser::parseGrammar('<foo:foo>');
- $this->fail();
- } catch (Exception $e) {
- $this->assertEquals('Twig_Error_Runtime', get_class($e));
- }
- try {
- Twig_Extensions_SimpleTokenParser::parseGrammar('<foo:foo');
- $this->fail();
- } catch (Exception $e) {
- $this->assertEquals('Twig_Error_Runtime', get_class($e));
- }
- try {
- Twig_Extensions_SimpleTokenParser::parseGrammar('<foo:foo> (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('<expr>', new Twig_Extensions_Grammar_Tag(
- new Twig_Extensions_Grammar_Expression('expr')
- )),
- array('<expr:expression>', new Twig_Extensions_Grammar_Tag(
- new Twig_Extensions_Grammar_Expression('expr')
- )),
- array(' <expr:expression> ', new Twig_Extensions_Grammar_Tag(
- new Twig_Extensions_Grammar_Expression('expr')
- )),
- array('<nb:number>', new Twig_Extensions_Grammar_Tag(
- new Twig_Extensions_Grammar_Number('nb')
- )),
- array('<bool:boolean>', new Twig_Extensions_Grammar_Tag(
- new Twig_Extensions_Grammar_Boolean('bool')
- )),
- array('<content:body>', new Twig_Extensions_Grammar_Tag(
- new Twig_Extensions_Grammar_Body('content')
- )),
- array('<expr:expression> [with <arguments:array>]', 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(' <expr:expression> [ with <arguments:array> ] ', 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('<expr:expression> [with <arguments:array> [or <optional:expression>]]', 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('<expr:expression> [with <arguments:array> [, <optional:expression>]]', 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')
- )
- )
- )),
- );
- }
- }
|