2
0
Prechádzať zdrojové kódy

ZF-9602: omit "extends" when extending class is empty string

- Patch by A.J. Brown

git-svn-id: http://framework.zend.com/svn/framework/standard/trunk@21915 44c647ce-9c0f-0410-b52a-842ac1e357ba
matthew 15 rokov pred
rodič
commit
bc75ea396f

+ 2 - 2
library/Zend/CodeGenerator/Php/Class.php

@@ -470,8 +470,8 @@ class Zend_CodeGenerator_Php_Class extends Zend_CodeGenerator_Php_Abstract
 
         $output .= 'class ' . $this->getName();
 
-        if (null !== ($ec = $this->_extendedClass)) {
-            $output .= ' extends ' . $ec;
+        if ( !empty( $this->_extendedClass) ) {
+            $output .= ' extends ' . $this->_extendedClass;
         }
 
         $implemented = $this->getImplementedInterfaces();

+ 41 - 2
tests/Zend/CodeGenerator/Php/ClassTest.php

@@ -236,8 +236,7 @@ EOS;
     }
 
     /**
-     * @group ZF-7909
-     */
+     * @group ZF-7909 */
     public function testClassFromReflectionThatImplementsInterfaces()
     {
         if(!class_exists('Zend_CodeGenerator_Php_ClassWithInterface')) {
@@ -275,4 +274,44 @@ EOS;
         $expectedClassDef = 'class Zend_CodeGenerator_Php_NewClassWithInterface extends Zend_CodeGenerator_Php_ClassWithInterface implements Zend_Code_Generator_Php_ThreeInterface';
         $this->assertContains($expectedClassDef, $code);
     }
+
+    /**
+     * @group ZF-9602
+     */
+    public function testSetextendedclassShouldIgnoreEmptyClassnameOnGenerate()
+    {
+        $codeGenClass = new Zend_CodeGenerator_Php_Class();
+        $codeGenClass->setName( 'MyClass' )
+                     ->setExtendedClass('');
+
+        $expected = <<<CODE
+class MyClass
+{
+
+
+}
+
+CODE;
+        $this->assertEquals( $expected, $codeGenClass->generate() );
+    }
+
+    /**
+     * @group ZF-9602
+     */
+    public function testSetextendedclassShouldNotIgnoreNonEmptyClassnameOnGenerate()
+    {
+        $codeGenClass = new Zend_CodeGenerator_Php_Class();
+        $codeGenClass->setName( 'MyClass' )
+                     ->setExtendedClass('ParentClass');
+
+        $expected = <<<CODE
+class MyClass extends ParentClass
+{
+
+
+}
+
+CODE;
+        $this->assertEquals( $expected, $codeGenClass->generate() );
+    }
 }