From a8346868c214fcca9c2b24bdd5e652de4a249b25 Mon Sep 17 00:00:00 2001 From: Vance Lucas Date: Wed, 26 Jun 2019 13:13:48 -0500 Subject: [PATCH 1/4] Create FUNDING.yml --- .github/FUNDING.yml | 1 + 1 file changed, 1 insertion(+) create mode 100644 .github/FUNDING.yml diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 0000000..ce3de2d --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1 @@ +tidelift: "packagist/vlucas/valitron" From 21e9dc126339d573fc33b6b6459f6a2f68a26ab7 Mon Sep 17 00:00:00 2001 From: Diego Londono Date: Thu, 27 Jun 2019 12:01:05 -0300 Subject: [PATCH 2/4] Add some validation to prevent PHP Warning when value in subset validation is null --- src/Valitron/Validator.php | 2 +- tests/Valitron/ValidateTest.php | 11 ++++++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/Valitron/Validator.php b/src/Valitron/Validator.php index b92def2..94af820 100644 --- a/src/Valitron/Validator.php +++ b/src/Valitron/Validator.php @@ -489,7 +489,7 @@ class Validator if (!is_array($params[0])) { $params[0] = array($params[0]); } - if (is_scalar($value)) { + if (is_scalar($value) || is_null($value)) { return $this->validateIn($field, $value, $params); } diff --git a/tests/Valitron/ValidateTest.php b/tests/Valitron/ValidateTest.php index fc9f229..28cacfc 100644 --- a/tests/Valitron/ValidateTest.php +++ b/tests/Valitron/ValidateTest.php @@ -484,7 +484,7 @@ class ValidateTest extends BaseTestCase $v->rule('lengthMin', 'str', 4); $this->assertTrue($v->validate()); } - + public function testLengthMinValidAltSyntax() { $v = new Valitron\Validator(array('username' => 'martha')); @@ -1720,6 +1720,15 @@ class ValidateTest extends BaseTestCase $this->assertFalse($v->validate()); } + public function testSubsetAcceptNullValue() + { + // rule value equals null + $v = new Validator(array('test_field' => null)); + $v->rule('required', 'test_field'); + $v->rule('subset', 'test_field', array('black', 45)); + $this->assertFalse($v->validate()); + } + public function testContainsUniqueValid() { // numeric values From 01f09244a768ff893da2fc801e6ca595c138712b Mon Sep 17 00:00:00 2001 From: William R Date: Sat, 29 Jun 2019 19:56:17 -0300 Subject: [PATCH 3/4] Adding Missing Fields -Added translation to missing fields -New indentation, due to the size of the string 'containsUnique' --- lang/pt-br.php | 63 ++++++++++++++++++++++++++------------------------ 1 file changed, 33 insertions(+), 30 deletions(-) diff --git a/lang/pt-br.php b/lang/pt-br.php index d9ae458..b65e910 100644 --- a/lang/pt-br.php +++ b/lang/pt-br.php @@ -1,34 +1,37 @@ "é obrigatório", - 'equals' => "deve ser o mesmo que '%s'", - 'different' => "deve ser diferente de '%s'", - 'accepted' => "deve ser aceito", - 'numeric' => "deve ser um número", - 'integer' => "deve ser um inteiro", - 'length' => "deve ter %d caracteres", - 'min' => "deve ser maior que %s", - 'max' => "deve ser menor que %s", - 'in' => "contém um valor inválido", - 'notIn' => "contém um valor inválido", - 'ip' => "não é um IP válido", - 'email' => "não é um email válido", - 'url' => "não é uma URL válida", - 'urlActive' => "deve ser um domínio ativo", - 'alpha' => "deve conter as letras a-z", - 'alphaNum' => "deve conter apenas letras a-z e/ou números 0-9", - 'slug' => "deve conter apenas letras a-z, números 0-9, ou os caracteres - ou _", - 'regex' => "contém caracteres inválidos", - 'date' => "não é uma data válida", - 'dateFormat' => "deve ser uma data no formato '%s'", - 'dateBefore' => "deve ser uma data anterior a '%s'", - 'dateAfter' => "deve ser uma data posterior a '%s'", - 'contains' => "deve conter %s", - 'boolean' => "deve ser um booleano", - 'lengthBetween' => "deve estar entre %d e %d caracteres", - 'creditCard' => "deve ser um numero de cartão de credito válido", - 'lengthMin' => "deve ter ao menos %d caracteres", - 'lengthMax' => "não deve exceder %d caracteres", - 'instanceOf' => "deve ser uma instância de '%s'" + 'required' => "é obrigatório", + 'equals' => "deve ser o mesmo que '%s'", + 'different' => "deve ser diferente de '%s'", + 'accepted' => "deve ser aceito", + 'numeric' => "deve ser um número", + 'integer' => "deve ser um inteiro", + 'length' => "deve ter %d caracteres", + 'min' => "deve ser maior que %s", + 'max' => "deve ser menor que %s", + 'in' => "contém um valor inválido", + 'notIn' => "contém um valor inválido", + 'ip' => "não é um IP válido", + 'email' => "não é um email válido", + 'url' => "não é uma URL válida", + 'urlActive' => "deve ser um domínio ativo", + 'alpha' => "deve conter as letras a-z", + 'alphaNum' => "deve conter apenas letras a-z e/ou números 0-9", + 'slug' => "deve conter apenas letras a-z, números 0-9, ou os caracteres - ou _", + 'regex' => "contém caracteres inválidos", + 'date' => "não é uma data válida", + 'dateFormat' => "deve ser uma data no formato '%s'", + 'dateBefore' => "deve ser uma data anterior a '%s'", + 'dateAfter' => "deve ser uma data posterior a '%s'", + 'contains' => "deve conter %s", + 'boolean' => "deve ser um booleano", + 'lengthBetween' => "deve estar entre %d e %d caracteres", + 'creditCard' => "deve ser um numero de cartão de credito válido", + 'lengthMin' => "deve ter ao menos %d caracteres", + 'lengthMax' => "não deve exceder %d caracteres", + 'instanceOf' => "deve ser uma instância de '%s'", + 'containsUnique' => "deve conter apenas valores únicos", + 'subset' => "contém um item que não está na lista", + 'arrayHasKeys' => "não contém todas as chaves requeridas" ); From 3f88e776f80173321e9ae0933ddc6d7ed232e02d Mon Sep 17 00:00:00 2001 From: William R Date: Wed, 3 Jul 2019 03:55:24 -0300 Subject: [PATCH 4/4] Adding Missing Fields -Added translation to missing fields -New indentation, due to the size of the string 'containsUnique' --- lang/es.php | 63 ++++++++++++++++++++++++++++------------------------- 1 file changed, 33 insertions(+), 30 deletions(-) diff --git a/lang/es.php b/lang/es.php index 3f1d932..1f3bf8b 100644 --- a/lang/es.php +++ b/lang/es.php @@ -1,34 +1,37 @@ "es obligatorio", - 'equals' => "debe ser igual a '%s'", - 'different' => "debe ser diferente a '%s'", - 'accepted' => "debe ser aceptado", - 'numeric' => "debe ser numérico", - 'integer' => "debe ser un entero", - 'length' => "debe ser mas largo de %d", - 'min' => "debe ser mayor de %s", - 'max' => "debe ser menor de %s", - 'in' => "contiene un valor inválido", - 'notIn' => "contiene un valor inválido", - 'ip' => "no es una dirección IP", - 'email' => "no es un correo electrónico válido", - 'url' => "no es una URL", - 'urlActive' => "debe ser un dominio activo", - 'alpha' => "debe contener solo letras a-z", - 'alphaNum' => "debe contener solo letras a-z o números 0-9", - 'slug' => "debe contener solo letras a-z, números 0-9, barras y guiones bajos", - 'regex' => "contiene caracteres inválidos", - 'date' => "no es una fecha válida", - 'dateFormat' => "debe ser una fecha con formato '%s'", - 'dateBefore' => "debe ser una fecha antes de '%s'", - 'dateAfter' => "debe ser una fecha después de '%s'", - 'contains' => "debe contener %s", - 'boolean' => "debe ser booleano", - 'lengthBetween' => "debe tener entre %d y %d caracteres", - 'creditCard' => "debe ser un numero de tarjeta de crédito válido", - "lengthMin" => "debe tener al menos %d caracteres", - "lengthMax" => "debe tener menos de %d caracteres", - "instanceOf" => "debe ser una instancia de '%s'" + 'required' => "es obligatorio", + 'equals' => "debe ser igual a '%s'", + 'different' => "debe ser diferente a '%s'", + 'accepted' => "debe ser aceptado", + 'numeric' => "debe ser numérico", + 'integer' => "debe ser un entero", + 'length' => "debe ser mas largo de %d", + 'min' => "debe ser mayor de %s", + 'max' => "debe ser menor de %s", + 'in' => "contiene un valor inválido", + 'notIn' => "contiene un valor inválido", + 'ip' => "no es una dirección IP", + 'email' => "no es un correo electrónico válido", + 'url' => "no es una URL", + 'urlActive' => "debe ser un dominio activo", + 'alpha' => "debe contener solo letras a-z", + 'alphaNum' => "debe contener solo letras a-z o números 0-9", + 'slug' => "debe contener solo letras a-z, números 0-9, barras y guiones bajos", + 'regex' => "contiene caracteres inválidos", + 'date' => "no es una fecha válida", + 'dateFormat' => "debe ser una fecha con formato '%s'", + 'dateBefore' => "debe ser una fecha antes de '%s'", + 'dateAfter' => "debe ser una fecha después de '%s'", + 'contains' => "debe contener %s", + 'boolean' => "debe ser booleano", + 'lengthBetween' => "debe tener entre %d y %d caracteres", + 'creditCard' => "debe ser un numero de tarjeta de crédito válido", + "lengthMin" => "debe tener al menos %d caracteres", + "lengthMax" => "debe tener menos de %d caracteres", + "instanceOf" => "debe ser una instancia de '%s'", + 'containsUnique' => "debe contener solo valores únicos", + 'subset' => "contiene un elemento que no está en la lista", + 'arrayHasKeys' => "no contiene todas las claves requeridas" );