浏览代码

Merge pull request #3214 from Soullivaneuh/inline-view

Better handling of deprecated inline view action
Sullivan SENECHAL 9 年之前
父节点
当前提交
be86dd2788
共有 2 个文件被更改,包括 20 次插入2 次删除
  1. 1 1
      Datagrid/ListMapper.php
  2. 19 1
      Tests/Datagrid/ListMapperTest.php

+ 1 - 1
Datagrid/ListMapper.php

@@ -75,7 +75,7 @@ class ListMapper extends BaseMapper
         // Change deprecated inline action "view" to "show"
         // Change deprecated inline action "view" to "show"
         if ($name == '_action' && $type == 'actions') {
         if ($name == '_action' && $type == 'actions') {
             if (isset($fieldDescriptionOptions['actions']['view'])) {
             if (isset($fieldDescriptionOptions['actions']['view'])) {
-                @trigger_error('Inline action "view" is deprecated since version 2.2.4. Use inline action "show" instead.', E_USER_DEPRECATED);
+                @trigger_error('Inline action "view" is deprecated since version 2.2.4 and will be removed in 3.0. Use inline action "show" instead.', E_USER_DEPRECATED);
 
 
                 $fieldDescriptionOptions['actions']['show'] = $fieldDescriptionOptions['actions']['view'];
                 $fieldDescriptionOptions['actions']['show'] = $fieldDescriptionOptions['actions']['view'];
 
 

+ 19 - 1
Tests/Datagrid/ListMapperTest.php

@@ -119,7 +119,10 @@ class ListMapperTest extends \PHPUnit_Framework_TestCase
         $this->assertSame('fooName', $fieldDescription->getOption('label'));
         $this->assertSame('fooName', $fieldDescription->getOption('label'));
     }
     }
 
 
-    public function testAddViewInlineAction()
+    /**
+     * @group legacy
+     */
+    public function testLegacyAddViewInlineAction()
     {
     {
         $this->assertFalse($this->listMapper->has('_action'));
         $this->assertFalse($this->listMapper->has('_action'));
         $this->listMapper->add('_action', 'actions', array('actions' => array('view' => array())));
         $this->listMapper->add('_action', 'actions', array('actions' => array('view' => array())));
@@ -134,6 +137,21 @@ class ListMapperTest extends \PHPUnit_Framework_TestCase
         $this->assertSame(array('show' => array()), $fieldDescription->getOption('actions'));
         $this->assertSame(array('show' => array()), $fieldDescription->getOption('actions'));
     }
     }
 
 
+    public function testAddViewInlineAction()
+    {
+        $this->assertFalse($this->listMapper->has('_action'));
+        $this->listMapper->add('_action', 'actions', array('actions' => array('show' => array())));
+
+        $this->assertTrue($this->listMapper->has('_action'));
+
+        $fieldDescription = $this->listMapper->get('_action');
+
+        $this->assertInstanceOf('Sonata\AdminBundle\Admin\FieldDescriptionInterface', $fieldDescription);
+        $this->assertSame('_action', $fieldDescription->getName());
+        $this->assertCount(1, $fieldDescription->getOption('actions'));
+        $this->assertSame(array('show' => array()), $fieldDescription->getOption('actions'));
+    }
+
     public function testAddRemove()
     public function testAddRemove()
     {
     {
         $this->assertFalse($this->listMapper->has('fooName'));
         $this->assertFalse($this->listMapper->has('fooName'));