Skip to content
Permalink
Browse files

refs #8654 FormHelper cleanup unlockFields key

  • Loading branch information...
nojimage authored and markstory committed May 21, 2016
1 parent f28c21c commit 57e0a9748308557a89f09521a56bfd1111430155
Showing with 27 additions and 0 deletions.
  1. +23 −0 lib/Cake/Test/Case/View/Helper/FormHelperTest.php
  2. +4 −0 lib/Cake/View/Helper/FormHelper.php
@@ -1619,6 +1619,29 @@ public function testResetUnlockFields() {
$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
*
@@ -666,6 +666,10 @@ protected function _secure($lock, $field = null, $value = null) {
$field = Hash::filter(explode('.', $field));
}
if (is_array($field)) {
$field = array_filter($field, 'strlen');
}
foreach ($this->_unlockedFields as $unlockField) {
$unlockParts = explode('.', $unlockField);
if (array_values(array_intersect($field, $unlockParts)) === $unlockParts) {

0 comments on commit 57e0a97

Please sign in to comment.
You can’t perform that action at this time.