mirror of
https://github.com/kamilwylegala/cakephp2-php8.git
synced 2024-11-15 11:28:25 +00:00
Merge pull request #918 from bar/2.3-form-empty-error
Calling Form->input() with 'errorMessage'=> false should trigger field error, but not render error element.
This commit is contained in:
commit
dc370826af
2 changed files with 59 additions and 14 deletions
|
@ -1527,9 +1527,7 @@ class FormHelperTest extends CakeTestCase {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* testPasswordValidation method
|
* Test validation errors.
|
||||||
*
|
|
||||||
* test validation errors on password input.
|
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
|
@ -1553,18 +1551,31 @@ class FormHelperTest extends CakeTestCase {
|
||||||
'/div'
|
'/div'
|
||||||
);
|
);
|
||||||
$this->assertTags($result, $expected);
|
$this->assertTags($result, $expected);
|
||||||
|
|
||||||
|
$result = $this->Form->input('Contact.password', array('errorMessage' => false));
|
||||||
|
$expected = array(
|
||||||
|
'div' => array('class' => 'input password error'),
|
||||||
|
'label' => array('for' => 'ContactPassword'),
|
||||||
|
'Password',
|
||||||
|
'/label',
|
||||||
|
'input' => array(
|
||||||
|
'type' => 'password', 'name' => 'data[Contact][password]',
|
||||||
|
'id' => 'ContactPassword', 'class' => 'form-error'
|
||||||
|
),
|
||||||
|
'/div'
|
||||||
|
);
|
||||||
|
$this->assertTags($result, $expected);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* testEmptyErrorValidation method
|
* Test validation errors, when validation message is an empty string.
|
||||||
*
|
|
||||||
* test validation error div when validation message is an empty string
|
|
||||||
*
|
*
|
||||||
* @access public
|
* @access public
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
public function testEmptyErrorValidation() {
|
public function testEmptyErrorValidation() {
|
||||||
$this->Form->validationErrors['Contact']['password'] = '';
|
$this->Form->validationErrors['Contact']['password'] = '';
|
||||||
|
|
||||||
$result = $this->Form->input('Contact.password');
|
$result = $this->Form->input('Contact.password');
|
||||||
$expected = array(
|
$expected = array(
|
||||||
'div' => array('class' => 'input password error'),
|
'div' => array('class' => 'input password error'),
|
||||||
|
@ -1581,18 +1592,31 @@ class FormHelperTest extends CakeTestCase {
|
||||||
'/div'
|
'/div'
|
||||||
);
|
);
|
||||||
$this->assertTags($result, $expected);
|
$this->assertTags($result, $expected);
|
||||||
|
|
||||||
|
$result = $this->Form->input('Contact.password', array('errorMessage' => false));
|
||||||
|
$expected = array(
|
||||||
|
'div' => array('class' => 'input password error'),
|
||||||
|
'label' => array('for' => 'ContactPassword'),
|
||||||
|
'Password',
|
||||||
|
'/label',
|
||||||
|
'input' => array(
|
||||||
|
'type' => 'password', 'name' => 'data[Contact][password]',
|
||||||
|
'id' => 'ContactPassword', 'class' => 'form-error'
|
||||||
|
),
|
||||||
|
'/div'
|
||||||
|
);
|
||||||
|
$this->assertTags($result, $expected);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* testEmptyInputErrorValidation method
|
* Test validation errors, when calling input() overriding validation message by an empty string.
|
||||||
*
|
|
||||||
* test validation error div when validation message is overridden by an empty string when calling input()
|
|
||||||
*
|
*
|
||||||
* @access public
|
* @access public
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
public function testEmptyInputErrorValidation() {
|
public function testEmptyInputErrorValidation() {
|
||||||
$this->Form->validationErrors['Contact']['password'] = 'Please provide a password';
|
$this->Form->validationErrors['Contact']['password'] = 'Please provide a password';
|
||||||
|
|
||||||
$result = $this->Form->input('Contact.password', array('error' => ''));
|
$result = $this->Form->input('Contact.password', array('error' => ''));
|
||||||
$expected = array(
|
$expected = array(
|
||||||
'div' => array('class' => 'input password error'),
|
'div' => array('class' => 'input password error'),
|
||||||
|
@ -1609,6 +1633,20 @@ class FormHelperTest extends CakeTestCase {
|
||||||
'/div'
|
'/div'
|
||||||
);
|
);
|
||||||
$this->assertTags($result, $expected);
|
$this->assertTags($result, $expected);
|
||||||
|
|
||||||
|
$result = $this->Form->input('Contact.password', array('error' => '', 'errorMessage' => false));
|
||||||
|
$expected = array(
|
||||||
|
'div' => array('class' => 'input password error'),
|
||||||
|
'label' => array('for' => 'ContactPassword'),
|
||||||
|
'Password',
|
||||||
|
'/label',
|
||||||
|
'input' => array(
|
||||||
|
'type' => 'password', 'name' => 'data[Contact][password]',
|
||||||
|
'id' => 'ContactPassword', 'class' => 'form-error'
|
||||||
|
),
|
||||||
|
'/div'
|
||||||
|
);
|
||||||
|
$this->assertTags($result, $expected);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -920,16 +920,18 @@ class FormHelper extends AppHelper {
|
||||||
* will be treated as a regular html attribute for the generated input.
|
* will be treated as a regular html attribute for the generated input.
|
||||||
*
|
*
|
||||||
* - `type` - Force the type of widget you want. e.g. `type => 'select'`
|
* - `type` - Force the type of widget you want. e.g. `type => 'select'`
|
||||||
* - `label` - Either a string label, or an array of options for the label. See FormHelper::label()
|
* - `label` - Either a string label, or an array of options for the label. See FormHelper::label().
|
||||||
* - `div` - Either `false` to disable the div, or an array of options for the div.
|
* - `div` - Either `false` to disable the div, or an array of options for the div.
|
||||||
* See HtmlHelper::div() for more options.
|
* See HtmlHelper::div() for more options.
|
||||||
* - `options` - for widgets that take options e.g. radio, select
|
* - `options` - For widgets that take options e.g. radio, select.
|
||||||
* - `error` - control the error message that is produced
|
* - `error` - Control the error message that is produced. Set to `false` to disable any kind of error reporting (field
|
||||||
|
* error and error messages).
|
||||||
|
* - `errorMessage` - Boolean to control rendering error messages (field error will still occur).
|
||||||
* - `empty` - String or boolean to enable empty select box options.
|
* - `empty` - String or boolean to enable empty select box options.
|
||||||
* - `before` - Content to place before the label + input.
|
* - `before` - Content to place before the label + input.
|
||||||
* - `after` - Content to place after the label + input.
|
* - `after` - Content to place after the label + input.
|
||||||
* - `between` - Content to place between the label + input.
|
* - `between` - Content to place between the label + input.
|
||||||
* - `format` - format template for element order. Any element that is not in the array, will not be in the output.
|
* - `format` - Format template for element order. Any element that is not in the array, will not be in the output.
|
||||||
* - Default input format order: array('before', 'label', 'between', 'input', 'after', 'error')
|
* - Default input format order: array('before', 'label', 'between', 'input', 'after', 'error')
|
||||||
* - Default checkbox format order: array('before', 'input', 'between', 'label', 'after', 'error')
|
* - Default checkbox format order: array('before', 'input', 'between', 'label', 'after', 'error')
|
||||||
* - Hidden input will not be formatted
|
* - Hidden input will not be formatted
|
||||||
|
@ -1078,6 +1080,9 @@ class FormHelper extends AppHelper {
|
||||||
$error = $this->_extractOption('error', $options, null);
|
$error = $this->_extractOption('error', $options, null);
|
||||||
unset($options['error']);
|
unset($options['error']);
|
||||||
|
|
||||||
|
$errorMessage = $this->_extractOption('errorMessage', $options, true);
|
||||||
|
unset($options['errorMessage']);
|
||||||
|
|
||||||
$selected = $this->_extractOption('selected', $options, null);
|
$selected = $this->_extractOption('selected', $options, null);
|
||||||
unset($options['selected']);
|
unset($options['selected']);
|
||||||
|
|
||||||
|
@ -1157,7 +1162,9 @@ class FormHelper extends AppHelper {
|
||||||
$errMsg = $this->error($fieldName, $error);
|
$errMsg = $this->error($fieldName, $error);
|
||||||
if ($errMsg) {
|
if ($errMsg) {
|
||||||
$divOptions = $this->addClass($divOptions, 'error');
|
$divOptions = $this->addClass($divOptions, 'error');
|
||||||
$out['error'] = $errMsg;
|
if ($errorMessage) {
|
||||||
|
$out['error'] = $errMsg;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue