diff --git a/core/manifest/ClassManifest.php b/core/manifest/ClassManifest.php index a1e38d7bd..5bbe0c3bb 100644 --- a/core/manifest/ClassManifest.php +++ b/core/manifest/ClassManifest.php @@ -354,7 +354,7 @@ class SS_ClassManifest { $extends = isset($class['extends']) ? implode('', $class['extends']) : null; $implements = isset($class['interfaces']) ? $class['interfaces'] : null; - if($extends && $extends[0] != '/\\') { + if($extends && $extends[0] != '\\') { $extends = $namespace . $extends; } elseif($extends) { $extends = substr($extends, 1); diff --git a/tests/core/manifest/NamespacedClassManifestTest.php b/tests/core/manifest/NamespacedClassManifestTest.php index c529ca996..f4dd418c4 100644 --- a/tests/core/manifest/NamespacedClassManifestTest.php +++ b/tests/core/manifest/NamespacedClassManifestTest.php @@ -44,7 +44,8 @@ class NamespacedClassManifestTest extends SapphireTest { 'sapphire\test\classd' => "{$this->base}/module/classes/ClassD.php", 'sapphire\test\classe' => "{$this->base}/module/classes/ClassE.php", 'sapphire\test\classf' => "{$this->base}/module/classes/ClassF.php", - 'sapphire\test\classg' => "{$this->base}/module/classes/ClassG.php" + 'sapphire\test\classg' => "{$this->base}/module/classes/ClassG.php", + 'sapphire\test\classh' => "{$this->base}/module/classes/ClassH.php" ); $this->assertEquals($expect, $this->manifest->getClasses()); @@ -52,13 +53,13 @@ class NamespacedClassManifestTest extends SapphireTest { public function testGetClassNames() { $this->assertEquals( - array('sapphire\test\classa', 'sapphire\test\classb', 'sapphire\test\classc', 'sapphire\test\classd', 'sapphire\test\classe', 'sapphire\test\classf', 'sapphire\test\classg'), + array('sapphire\test\classa', 'sapphire\test\classb', 'sapphire\test\classc', 'sapphire\test\classd', 'sapphire\test\classe', 'sapphire\test\classf', 'sapphire\test\classg', 'sapphire\test\classh'), $this->manifest->getClassNames()); } public function testGetDescendants() { $expect = array( - 'sapphire\test\classa' => array('sapphire\test\ClassB') + 'sapphire\test\classa' => array('sapphire\test\ClassB', 'sapphire\test\ClassH'), ); $this->assertEquals($expect, $this->manifest->getDescendants()); @@ -66,8 +67,8 @@ class NamespacedClassManifestTest extends SapphireTest { public function testGetDescendantsOf() { $expect = array( - 'SAPPHIRE\TEST\CLASSA' => array('sapphire\test\ClassB'), - 'sapphire\test\classa' => array('sapphire\test\ClassB'), + 'SAPPHIRE\TEST\CLASSA' => array('sapphire\test\ClassB', 'sapphire\test\ClassH'), + 'sapphire\test\classa' => array('sapphire\test\ClassB', 'sapphire\test\ClassH'), ); foreach ($expect as $class => $desc) { diff --git a/tests/core/manifest/fixtures/namespaced_classmanifest/module/classes/ClassH.php b/tests/core/manifest/fixtures/namespaced_classmanifest/module/classes/ClassH.php new file mode 100644 index 000000000..17597aafb --- /dev/null +++ b/tests/core/manifest/fixtures/namespaced_classmanifest/module/classes/ClassH.php @@ -0,0 +1,8 @@ +