Browse Source

Fix mistakes of replacing combined getters/setters

chinpei215 9 years ago
parent
commit
04c4d93c2e

+ 2 - 2
src/View/CellTrait.php

@@ -118,11 +118,11 @@ trait CellTrait
         }
         }
 
 
         if (method_exists($this, 'viewBuilder')) {
         if (method_exists($this, 'viewBuilder')) {
-            $builder->setTheme($this->viewBuilder()->theme());
+            $builder->setTheme($this->viewBuilder()->getTheme());
         }
         }
 
 
         if (isset($this->viewClass)) {
         if (isset($this->viewClass)) {
-            $builder->getClassName($this->viewClass);
+            $builder->setClassName($this->viewClass);
             $instance->viewClass = $this->viewClass;
             $instance->viewClass = $this->viewClass;
         }
         }
 
 

+ 22 - 0
tests/TestCase/View/CellTest.php

@@ -19,6 +19,7 @@ use Cake\Core\Configure;
 use Cake\Core\Plugin;
 use Cake\Core\Plugin;
 use Cake\TestSuite\TestCase;
 use Cake\TestSuite\TestCase;
 use Cake\View\View;
 use Cake\View\View;
+use TestApp\Controller\CellTraitTestController;
 use TestApp\View\CustomJsonView;
 use TestApp\View\CustomJsonView;
 
 
 /**
 /**
@@ -353,8 +354,29 @@ class CellTest extends TestCase
         $request = $this->getMockBuilder('Cake\Network\Request')->getMock();
         $request = $this->getMockBuilder('Cake\Network\Request')->getMock();
         $response = $this->getMockBuilder('Cake\Network\Response')->getMock();
         $response = $this->getMockBuilder('Cake\Network\Response')->getMock();
         $view = new CustomJsonView($request, $response);
         $view = new CustomJsonView($request, $response);
+        $view->theme = 'Pretty';
         $cell = $view->cell('Articles');
         $cell = $view->cell('Articles');
         $this->assertSame('TestApp\View\CustomJsonView', $cell->viewClass);
         $this->assertSame('TestApp\View\CustomJsonView', $cell->viewClass);
+        $this->assertSame('TestApp\View\CustomJsonView', $cell->viewBuilder()->getClassName());
+        $this->assertSame('Pretty', $cell->viewBuilder()->getTheme());
+    }
+
+    /**
+     * Test that cells the view class name of a controller passed on.
+     *
+     * @return void
+     */
+    public function testCellInheritsController()
+    {
+        $request = $this->getMockBuilder('Cake\Network\Request')->getMock();
+        $response = $this->getMockBuilder('Cake\Network\Response')->getMock();
+        $controller = new CellTraitTestController($request, $response);
+        $controller->viewBuilder()->setTheme('Pretty');
+        $controller->viewClass = 'Json';
+        $cell = $controller->cell('Articles');
+        $this->assertSame('Json', $cell->viewClass);
+        $this->assertSame('Json', $cell->viewBuilder()->getClassName());
+        $this->assertSame('Pretty', $cell->viewBuilder()->getTheme());
     }
     }
 
 
     /**
     /**

+ 28 - 0
tests/test_app/TestApp/Controller/CellTraitTestController.php

@@ -0,0 +1,28 @@
+<?php
+/**
+ * CakePHP(tm) : Rapid Development Framework (http://cakephp.org)
+ * Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
+ *
+ * Licensed under The MIT License
+ * For full copyright and license information, please see the LICENSE.txt
+ * Redistributions of files must retain the above copyright notice.
+ *
+ * @copyright     Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
+ * @link          http://cakephp.org CakePHP(tm) Project
+ * @since         3.4.0
+ * @license       http://www.opensource.org/licenses/mit-license.php MIT License
+ */
+namespace TestApp\Controller;
+
+use Cake\Controller\Controller;
+use Cake\View\CellTrait;
+
+/**
+ * CellTraitTestController class.
+ */
+class CellTraitTestController extends Controller
+{
+    use CellTrait {
+        cell as public;
+    }
+}