Browse Source

Fix deprecated method use in formhelper/tests.

Mark Story 8 years ago
parent
commit
5c879ae64b
2 changed files with 24 additions and 13 deletions
  1. 13 4
      src/View/Helper/FormHelper.php
  2. 11 9
      tests/TestCase/View/Helper/FormHelperTest.php

+ 13 - 4
src/View/Helper/FormHelper.php

@@ -402,7 +402,7 @@ class FormHelper extends Helper
         unset($options['templates']);
 
         if ($options['action'] === false || $options['url'] === false) {
-            $url = $this->request->here(false);
+            $url = $this->request->getRequestTarget();
             $action = null;
         } else {
             $url = $this->_formUrl($context, $options);
@@ -481,7 +481,7 @@ class FormHelper extends Helper
     protected function _formUrl($context, $options)
     {
         if ($options['action'] === null && $options['url'] === null) {
-            return $this->request->here(false);
+            return $this->request->getRequestTarget();
         }
 
         if (is_string($options['url']) ||
@@ -2855,14 +2855,23 @@ class FormHelper extends Helper
      */
     public function getSourceValue($fieldname, $options = [])
     {
+        $valueMap = [
+            'data' => 'getData',
+            'query' => 'getQuery'
+        ];
         foreach ($this->getValueSources() as $valuesSource) {
             if ($valuesSource === 'context') {
                 $val = $this->_getContext()->val($fieldname, $options);
                 if ($val !== null) {
                     return $val;
                 }
-            } elseif ($this->request->{$valuesSource}($fieldname) !== null) {
-                return $this->request->{$valuesSource}($fieldname);
+            }
+            if (isset($valueMap[$valuesSource])) {
+                $method = $valueMap[$valuesSource];
+                $value = $this->request->{$method}($fieldname);
+                if ($value !== null) {
+                    return $value;
+                }
             }
         }
 

+ 11 - 9
tests/TestCase/View/Helper/FormHelperTest.php

@@ -719,8 +719,9 @@ class FormHelperTest extends TestCase
     {
         $encoding = strtolower(Configure::read('App.encoding'));
 
-        $this->Form->request->here = '/articles/edit/1';
-        $this->Form->request->params['action'] = 'edit';
+        $this->Form->request = $this->Form->request
+            ->withRequestTarget('/articles/edit/1')
+            ->withParam('action', 'edit');
 
         $this->article['defaults']['id'] = 1;
 
@@ -747,9 +748,9 @@ class FormHelperTest extends TestCase
     {
         $encoding = strtolower(Configure::read('App.encoding'));
 
-        $this->Form->request->params['action'] = 'delete';
-        $this->Form->request->here = '/articles/delete/10';
-        $this->Form->request->base = '';
+        $this->Form->request = $this->Form->request
+            ->withRequestTarget('/articles/delete/10')
+            ->withParam('action', 'delete');
         $result = $this->Form->create($this->article);
         $expected = [
             'form' => [
@@ -8741,7 +8742,7 @@ class FormHelperTest extends TestCase
         $articles = TableRegistry::get('Articles');
         $article = new Article();
         $articles->patchEntity($article, ['id' => '3']);
-        $this->Form->request->query['id'] = '9';
+        $this->Form->request = $this->Form->request->withQueryParams(['id' => '9']);
 
         $this->Form->create($article);
         $this->Form->setValueSources(['context', 'query']);
@@ -8765,8 +8766,9 @@ class FormHelperTest extends TestCase
         ];
         $this->assertHtml($expected, $result);
 
-        $this->Form->request->data['id'] = '8';
-        $this->Form->request->query['id'] = '9';
+        $this->Form->request = $this->Form->request
+            ->withData('id', '8')
+            ->withQueryParams(['id' => '9']);
         $this->Form->setValueSources(['data', 'query', 'context']);
         $result = $this->Form->control('id');
         $expected = [
@@ -8929,7 +8931,7 @@ class FormHelperTest extends TestCase
      */
     public function testSourcesValueDoesntExistPassThrough()
     {
-        $this->Form->request->query['category'] = 'sesame-cookies';
+        $this->Form->request = $this->Form->request->withQueryParams(['category' => 'sesame-cookies']);
 
         $articles = TableRegistry::get('Articles');
         $entity = $articles->newEntity();