From 836ae2dd31e18af8a621e10dcf35004100fc3d06 Mon Sep 17 00:00:00 2001 From: Hafez Divandari Date: Thu, 8 Dec 2022 05:12:26 +0330 Subject: [PATCH 1/3] add `ulid` validation rule --- .../Validation/Concerns/ValidatesAttributes.php | 12 ++++++++++++ tests/Validation/ValidationValidatorTest.php | 14 ++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/src/Illuminate/Validation/Concerns/ValidatesAttributes.php b/src/Illuminate/Validation/Concerns/ValidatesAttributes.php index cc9985e631c6..97f40b6cfa13 100644 --- a/src/Illuminate/Validation/Concerns/ValidatesAttributes.php +++ b/src/Illuminate/Validation/Concerns/ValidatesAttributes.php @@ -2139,6 +2139,18 @@ public function validateUrl($attribute, $value) return preg_match($pattern, $value) > 0; } + /** + * Validate that an attribute is a valid ULID. + * + * @param string $attribute + * @param mixed $value + * @return bool + */ + public function validateUlid($attribute, $value) + { + return Str::isUlid($value); + } + /** * Validate that an attribute is a valid UUID. * diff --git a/tests/Validation/ValidationValidatorTest.php b/tests/Validation/ValidationValidatorTest.php index d1b82afe7e17..d3a0e7f65335 100755 --- a/tests/Validation/ValidationValidatorTest.php +++ b/tests/Validation/ValidationValidatorTest.php @@ -6726,6 +6726,20 @@ public static function invalidUuidList() ]; } + public function testValidateWithValidUlid() + { + $trans = $this->getIlluminateArrayTranslator(); + $v = new Validator($trans, ['foo' => '01gd6r360bp37zj17nxb55yv40'], ['foo' => 'ulid']); + $this->assertTrue($v->passes()); + } + + public function testValidateWithInvalidUlid() + { + $trans = $this->getIlluminateArrayTranslator(); + $v = new Validator($trans, ['foo' => '01gd6r36-bp37z-17nx-55yv40'], ['foo' => 'ulid']); + $this->assertFalse($v->passes()); + } + public static function providesPassingExcludeIfData() { return [ From 4581c7a231411b852677d4c49affc2d58d1c3ce1 Mon Sep 17 00:00:00 2001 From: Hafez Divandari Date: Thu, 8 Dec 2022 20:27:40 +0330 Subject: [PATCH 2/3] add `ascii` validation rule --- .../Validation/Concerns/ValidatesAttributes.php | 12 ++++++++++++ tests/Validation/ValidationValidatorTest.php | 14 ++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/src/Illuminate/Validation/Concerns/ValidatesAttributes.php b/src/Illuminate/Validation/Concerns/ValidatesAttributes.php index 97f40b6cfa13..a6ab1e18d9b0 100644 --- a/src/Illuminate/Validation/Concerns/ValidatesAttributes.php +++ b/src/Illuminate/Validation/Concerns/ValidatesAttributes.php @@ -2139,6 +2139,18 @@ public function validateUrl($attribute, $value) return preg_match($pattern, $value) > 0; } + /** + * Validate that an attribute is 7 bit ASCII. + * + * @param string $attribute + * @param mixed $value + * @return bool + */ + public function validateAscii($attribute, $value) + { + return Str::isAscii($value); + } + /** * Validate that an attribute is a valid ULID. * diff --git a/tests/Validation/ValidationValidatorTest.php b/tests/Validation/ValidationValidatorTest.php index d3a0e7f65335..f73b8865ab0b 100755 --- a/tests/Validation/ValidationValidatorTest.php +++ b/tests/Validation/ValidationValidatorTest.php @@ -6726,6 +6726,20 @@ public static function invalidUuidList() ]; } + public function testValidateWithValidAscii() + { + $trans = $this->getIlluminateArrayTranslator(); + $v = new Validator($trans, ['foo' => 'Dusseldorf'], ['foo' => 'ascii']); + $this->assertTrue($v->passes()); + } + + public function testValidateWithInvalidAscii() + { + $trans = $this->getIlluminateArrayTranslator(); + $v = new Validator($trans, ['foo' => 'Düsseldorf'], ['foo' => 'ascii']); + $this->assertFalse($v->passes()); + } + public function testValidateWithValidUlid() { $trans = $this->getIlluminateArrayTranslator(); From 269ab0e98670a7d2ebd5d3d0b9ae222253c59301 Mon Sep 17 00:00:00 2001 From: Taylor Otwell Date: Fri, 9 Dec 2022 14:33:36 -0600 Subject: [PATCH 3/3] formatting --- .../Concerns/ValidatesAttributes.php | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/Illuminate/Validation/Concerns/ValidatesAttributes.php b/src/Illuminate/Validation/Concerns/ValidatesAttributes.php index a6ab1e18d9b0..a8f3b11a1126 100644 --- a/src/Illuminate/Validation/Concerns/ValidatesAttributes.php +++ b/src/Illuminate/Validation/Concerns/ValidatesAttributes.php @@ -142,6 +142,18 @@ protected function getDnsRecords($hostname, $type) return dns_get_record($hostname, $type); } + /** + * Validate that an attribute is 7 bit ASCII. + * + * @param string $attribute + * @param mixed $value + * @return bool + */ + public function validateAscii($attribute, $value) + { + return Str::isAscii($value); + } + /** * "Break" on first validation fail. * @@ -2139,18 +2151,6 @@ public function validateUrl($attribute, $value) return preg_match($pattern, $value) > 0; } - /** - * Validate that an attribute is 7 bit ASCII. - * - * @param string $attribute - * @param mixed $value - * @return bool - */ - public function validateAscii($attribute, $value) - { - return Str::isAscii($value); - } - /** * Validate that an attribute is a valid ULID. *