diff --git a/src/Illuminate/Validation/Rules/Password.php b/src/Illuminate/Validation/Rules/Password.php index cf13e90a6a5c..829c2d823109 100644 --- a/src/Illuminate/Validation/Rules/Password.php +++ b/src/Illuminate/Validation/Rules/Password.php @@ -268,6 +268,8 @@ public function symbols() */ public function passes($attribute, $value) { + $this->messages = []; + $validator = Validator::make($this->data, [ $attribute => 'string|min:'.$this->min, ], $this->validator->customMessages, $this->validator->customAttributes); diff --git a/tests/Validation/ValidationPasswordRuleTest.php b/tests/Validation/ValidationPasswordRuleTest.php index d484226e2d57..c9eb2fbafa90 100644 --- a/tests/Validation/ValidationPasswordRuleTest.php +++ b/tests/Validation/ValidationPasswordRuleTest.php @@ -232,6 +232,29 @@ public function testItCannotSetDefaultUsingGivenString() Password::defaults('required|password'); } + public function testItPassesWithValidDataIfTheSameValidationRulesAreReused() + { + $rules = [ + 'password' => Password::default(), + ]; + + $v = new Validator( + resolve('translator'), + ['password' => '1234'], + $rules + ); + + $this->assertFalse($v->passes()); + + $v1 = new Validator( + resolve('translator'), + ['password' => '12341234'], + $rules + ); + + $this->assertTrue($v1->passes()); + } + protected function passes($rule, $values) { $this->assertValidationRules($rule, $values, true, []);