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)) {