diff --git a/lib/Cake/Test/Case/View/Helper/FormHelperTest.php b/lib/Cake/Test/Case/View/Helper/FormHelperTest.php index 02b5d8c97..d7e538142 100644 --- a/lib/Cake/Test/Case/View/Helper/FormHelperTest.php +++ b/lib/Cake/Test/Case/View/Helper/FormHelperTest.php @@ -6628,6 +6628,31 @@ class FormHelperTest extends CakeTestCase { $this->assertEquals($result, $expected); } +/** + * testInputDateMaxYear method + * + * Let's say we want to only allow users born from + * 2006 to 2008 to register + * This beeing the first singup page, we still don't have any data + * + * @return void + */ + public function testInputDateMaxYear() { + $this->Form->request->data = array(); + $this->Form->create('User'); + $result = $this->Form->input('birthday', + array( + 'label' => false, + 'div' => false, + 'type' => 'date', + 'dateFormat' => 'DMY', + 'minYear' => 2006, + 'maxYear' => 2008 + ) + ); + $this->assertContains('value="2008" selected="selected"', $result); + } + /** * testTextArea method * diff --git a/lib/Cake/View/Helper/FormHelper.php b/lib/Cake/View/Helper/FormHelper.php index d3a1481cc..fee50b610 100644 --- a/lib/Cake/View/Helper/FormHelper.php +++ b/lib/Cake/View/Helper/FormHelper.php @@ -2359,7 +2359,11 @@ class FormHelper extends AppHelper { } if ($attributes['value'] === null && $attributes['empty'] != true) { - $attributes['value'] = time(); + if(!empty($attributes['maxYear']) && $attributes['maxYear'] < date('Y')) { + $attributes['value'] = strtotime(date($attributes['maxYear'] . '-m-d')); + } else { + $attributes['value'] = time(); + } } if (!empty($attributes['value'])) {