Browse Source

Merge pull request #1979 from jonathonwalz/fixactivesubclass

Only require one subclass to make hasActiveSubClass return true
Thomas 10 năm trước cách đây
mục cha
commit
9aa2d3e2fd
2 tập tin đã thay đổi với 14 bổ sung2 xóa
  1. 2 2
      Admin/Admin.php
  2. 12 0
      Tests/Admin/AdminTest.php

+ 2 - 2
Admin/Admin.php

@@ -1075,7 +1075,7 @@ abstract class Admin implements AdminInterface, DomainObjectInterface
      */
     public function hasActiveSubClass()
     {
-        if (count($this->subClasses) > 1 && $this->request) {
+        if (count($this->subClasses) > 0 && $this->request) {
             return null !== $this->getRequest()->query->get('subclass');
         }
 
@@ -2724,4 +2724,4 @@ abstract class Admin implements AdminInterface, DomainObjectInterface
     {
         return new Metadata($this->toString($object));
     }
-}
+}

+ 12 - 0
Tests/Admin/AdminTest.php

@@ -641,6 +641,18 @@ class AdminTest extends \PHPUnit_Framework_TestCase
         $admin->getActiveSubClass();
     }
 
+    /**
+     * @covers Sonata\AdminBundle\Admin\Admin::hasActiveSubClass
+     */
+    public function testOnlyOneSubclassNeededToBeActive()
+    {
+        $admin = new PostAdmin('sonata.post.admin.post', 'NewsBundle\Entity\Post', 'SonataNewsBundle:PostAdmin');
+        $admin->setSubClasses(array('extended1' => 'NewsBundle\Entity\PostExtended1'));
+        $request = new \Symfony\Component\HttpFoundation\Request(array('subclass' => 'extended1'));
+        $admin->setRequest($request);
+        $this->assertTrue($admin->hasActiveSubClass());
+    }
+
     public function testGetPerPageOptions()
     {
         $admin = new PostAdmin('sonata.post.admin.post', 'NewsBundle\Entity\Post', 'SonataNewsBundle:PostAdmin');