diff --git a/src/Symfony/Bundle/FrameworkBundle/Templating/Helper/CodeHelper.php b/src/Symfony/Bundle/FrameworkBundle/Templating/Helper/CodeHelper.php index 12949bf7b4..f2dbc47356 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Templating/Helper/CodeHelper.php +++ b/src/Symfony/Bundle/FrameworkBundle/Templating/Helper/CodeHelper.php @@ -80,10 +80,7 @@ class CodeHelper extends Helper { if (false !== strpos($method, '::')) { list($class, $method) = explode('::', $method); - - $parts = explode('\\', $class); - $short = array_pop($parts); - $result = sprintf("%s::%s()", $class, $short, $method); + $result = sprintf("%s::%s()", $this->abbrClass($class), $method); } else if ('Closure' === $method) { $result = sprintf("%s", $method, $method); } else { diff --git a/src/Symfony/Bundle/FrameworkBundle/Tests/Templating/Helper/CodeHelperTest.php b/src/Symfony/Bundle/FrameworkBundle/Tests/Templating/Helper/CodeHelperTest.php new file mode 100644 index 0000000000..a06af8bcc1 --- /dev/null +++ b/src/Symfony/Bundle/FrameworkBundle/Tests/Templating/Helper/CodeHelperTest.php @@ -0,0 +1,58 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Bundle\FrameworkBundle\Tests\Templating\Helper; +use Symfony\Bundle\FrameworkBundle\Templating\Helper\CodeHelper; + +class TemplateTest extends \PHPUnit_Framework_TestCase +{ + protected static $helper; + + public static function setUpBeforeClass() + { + self::$helper = new CodeHelper('format', '/root'); + } + + /** + * @dataProvider getClassNameProvider + */ + public function testGettingClassAbbreviation($class, $abbr) + { + $this->assertEquals(self::$helper->abbrClass($class), $abbr); + } + + /** + * @dataProvider getMethodNameProvider + */ + public function testGettingMethodAbbreviation($method, $abbr) + { + $this->assertEquals(self::$helper->abbrMethod($method), $abbr); + } + + public function getClassNameProvider() + { + return array( + array('F\Q\N\Foo', 'Foo'), + array('Bare', 'Bare'), + ); + } + + public function getMethodNameProvider() + { + return array( + array('F\Q\N\Foo::Method', 'Foo::Method()'), + array('Bare::Method', 'Bare::Method()'), + array('Closure', 'Closure'), + array('Method', 'Method()') + ); + } + +} diff --git a/src/Symfony/Component/Routing/Loader/XmlFileLoader.php b/src/Symfony/Component/Routing/Loader/XmlFileLoader.php index b6622cf997..1492aae8ca 100644 --- a/src/Symfony/Component/Routing/Loader/XmlFileLoader.php +++ b/src/Symfony/Component/Routing/Loader/XmlFileLoader.php @@ -153,9 +153,7 @@ class XmlFileLoader extends FileLoader */ protected function validate(\DOMDocument $dom) { - $parts = explode('/', str_replace('\\', '/', __DIR__.'/schema/routing/routing-1.0.xsd')); - $drive = '\\' === DIRECTORY_SEPARATOR ? array_shift($parts).'/' : ''; - $location = 'file:///'.$drive.implode('/', $parts); + $location = __DIR__.'/schema/routing/routing-1.0.xsd'; $current = libxml_use_internal_errors(true); if (!$dom->schemaValidate($location)) {