Merge branch 'issue8654' into 2.x

Removes empty string elements from the secured field list, as in 3.x
This commit is contained in:
mark_story 2016-06-28 22:07:07 -04:00
commit a366ac1f66
2 changed files with 27 additions and 1 deletions

View file

@ -1619,6 +1619,29 @@ class FormHelperTest extends CakeTestCase {
$this->assertEquals(1, $this->Form->fields['Contact.id'], 'Hidden input should be secured.');
}
/**
* test unlockField removing from fields array. multiple field version.
*
* @return void
*/
public function testUnlockMultipleFieldRemovingFromFields() {
$this->Form->request['_Token'] = array(
'key' => 'testKey',
'unlockedFields' => array()
);
$this->Form->create('Order');
$this->Form->hidden('Order.id', array('value' => 1));
$this->Form->checkbox('Ticked.id.');
$this->Form->checkbox('Ticked.id.');
$this->assertEquals(1, $this->Form->fields['Order.id'], 'Hidden input should be secured.');
$this->assertTrue(in_array('Ticked.id', $this->Form->fields), 'Field should be secured.');
$this->Form->unlockField('Order.id');
$this->Form->unlockField('Ticked.id');
$this->assertEquals(array(), $this->Form->fields);
}
/**
* testTagIsInvalid method
*

View file

@ -663,7 +663,10 @@ class FormHelper extends AppHelper {
if (!$field) {
$field = $this->entity();
} elseif (is_string($field)) {
$field = Hash::filter(explode('.', $field));
$field = explode('.', $field);
}
if (is_array($field)) {
$field = Hash::filter($field);
}
foreach ($this->_unlockedFields as $unlockField) {