From 055129c1c2843a73a00d793290e34b73d4fd2235 Mon Sep 17 00:00:00 2001 From: Abdellatif Ait boudad Date: Mon, 8 Dec 2014 10:32:45 +0000 Subject: [PATCH] [FrameworkBundle][Template name] avoid error message for the shortcut notation. --- .../Templating/TemplateNameParser.php | 6 +++--- .../Templating/TemplateNameParserTest.php | 19 ++++++------------- 2 files changed, 9 insertions(+), 16 deletions(-) diff --git a/src/Symfony/Bundle/FrameworkBundle/Templating/TemplateNameParser.php b/src/Symfony/Bundle/FrameworkBundle/Templating/TemplateNameParser.php index ef2ae08008..4777fbeadb 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Templating/TemplateNameParser.php +++ b/src/Symfony/Bundle/FrameworkBundle/Templating/TemplateNameParser.php @@ -11,9 +11,9 @@ namespace Symfony\Bundle\FrameworkBundle\Templating; -use Symfony\Component\Templating\TemplateNameParserInterface; use Symfony\Component\Templating\TemplateReferenceInterface; use Symfony\Component\HttpKernel\KernelInterface; +use Symfony\Component\Templating\TemplateNameParser as BaseTemplateNameParser; /** * TemplateNameParser converts template names from the short notation @@ -22,7 +22,7 @@ use Symfony\Component\HttpKernel\KernelInterface; * * @author Fabien Potencier */ -class TemplateNameParser implements TemplateNameParserInterface +class TemplateNameParser extends BaseTemplateNameParser { protected $kernel; protected $cache; @@ -57,7 +57,7 @@ class TemplateNameParser implements TemplateNameParserInterface } if (!preg_match('/^([^:]*):([^:]*):(.+)\.([^\.]+)\.([^\.]+)$/', $name, $matches)) { - throw new \InvalidArgumentException(sprintf('Template name "%s" is not valid (format is "bundle:section:template.format.engine").', $name)); + return parent::parse($name); } $template = new TemplateReference($matches[1], $matches[2], $matches[3], $matches[4], $matches[5]); diff --git a/src/Symfony/Bundle/FrameworkBundle/Tests/Templating/TemplateNameParserTest.php b/src/Symfony/Bundle/FrameworkBundle/Tests/Templating/TemplateNameParserTest.php index 2a1544c91b..ca10c3a8fe 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Tests/Templating/TemplateNameParserTest.php +++ b/src/Symfony/Bundle/FrameworkBundle/Tests/Templating/TemplateNameParserTest.php @@ -14,6 +14,7 @@ namespace Symfony\Bundle\FrameworkBundle\Tests\Templating; use Symfony\Bundle\FrameworkBundle\Tests\TestCase; use Symfony\Bundle\FrameworkBundle\Templating\TemplateNameParser; use Symfony\Bundle\FrameworkBundle\Templating\TemplateReference; +use Symfony\Component\Templating\TemplateReference as BaseTemplateReference; class TemplateNameParserTest extends TestCase { @@ -63,25 +64,17 @@ class TemplateNameParserTest extends TestCase array(':Post:index.html.php', new TemplateReference('', 'Post', 'index', 'html', 'php')), array('::index.html.php', new TemplateReference('', '', 'index', 'html', 'php')), array('FooBundle:Post:foo.bar.index.html.php', new TemplateReference('FooBundle', 'Post', 'foo.bar.index', 'html', 'php')), + array('/path/to/section/name.php', new BaseTemplateReference('/path/to/section/name.php', 'php')), + array('name.twig', new BaseTemplateReference('name.twig', 'twig')), + array('name', new BaseTemplateReference('name')), ); } /** - * @dataProvider getInvalidLogicalNameProvider * @expectedException \InvalidArgumentException */ - public function testParseInvalidName($name) + public function testParseValidNameWithNotFoundBundle() { - $this->parser->parse($name); - } - - public function getInvalidLogicalNameProvider() - { - return array( - array('BarBundle:Post:index.html.php'), - array('FooBundle:Post:index'), - array('FooBundle:Post'), - array('FooBundle:Post:foo:bar'), - ); + $this->parser->parse('BarBundle:Post:index.html.php'); } }