76 Commits

Author SHA1 Message Date
Elizabeth M Smith
4896ade387 really? 5.3 support? ewww 2017-06-23 13:50:49 -04:00
Elizabeth M Smith
05b5c40515 test for the change 2017-06-23 13:43:15 -04:00
Willem Wollebrants
1942e53a5c Remove unneeded test testIntegerWithMaxValidation 2017-02-21 21:12:27 +01:00
Willem Wollebrants
28d954817b Use an optional parameter to make validateInteger more strict 2017-02-21 21:11:14 +01:00
notona
cb1ecb12e6 fix for test codes 2017-02-20 12:32:37 +09:00
notona
bc035a4a95 add more tests 2017-02-20 12:28:16 +09:00
notona
7c990e39ef fix integer validation process 2017-02-20 12:18:18 +09:00
Willem Wollebrants
c8895683f7 mapFieldRules 2017-02-09 20:39:17 +01:00
Willem Wollebrants
f8290a8c59 Fix bug where Validator::withData would also erase all rules 2016-12-09 11:44:39 +01:00
Andy Snell
f9dd486b5d
Update MasterCard BIN Range
Updates the credit card validator regular expression for the MasterCard brand to also match 16-digit card numbers starting with 22 - 27.  Additionally, updates the unit test for credit cards with two published test cards in the new BIN range.

Additional information on the BIN range update can be found at: https://www.mastercard.us/en-us/issuers/get-support/2-series-bin-expansion.html
2016-12-05 00:09:39 -05:00
Matteo Kloiber
a6be7e2dd0 Validator::rule now accepts any kind of callback
This has been achieved by making sure that the rule is neither
a "native" Validator rule (e.g. there is a validate{$CamleCaseName}
method) nor it has been registered.

If both conditions are met, the rule (even if it is a string)
will be accepted and used.

Tests for this case have also been added.
2016-11-06 01:46:35 +01:00
Matteo Kloiber
74a882969e Indent fixed 2016-11-06 01:46:28 +01:00
Matteo Kloiber
7a5fd66990 Validator::rule now supports closures
Validator::rule now allows the rule to be a closure.
This allows us to add an anonymous rule that is only
valid for the specified field(s):

$someObject = new MyObject();
$v->rule(function($field, $value) use ($someObject)
    return $value === $someObject->someState();
}, ["shared_secret", "other"])
    ->label("invalid state!");

This is especially useful if you have either a) have
a rule which you are not likely to be reusing or b)
you need access to some object which cannot be easily
connstructed (because it requires IO access, etc).

Either way, this is really only convenience method
because it saves you a call to Validator::addInstanceRule.

Internally, it does exactly that: it 1) determines a valid
rule name, 2) calls addInstanceRule() with the name
determined in 1) and the Closure, and then 3) replaces
the $rule parameter (which is the Closure object) by
the name of the rule.

1) is determined like this: if multiple parameters were
given, they are joined together into one string glued
with a underscore. '_rule' is then appended so that
the name becomes all_params_rule. If the name is already
used by any other rule, it will append up to 5
pseudo-random digits to the rule. In the unlikely event
that this rule is also used, step 1) will be repeated
until a unique rule name is found.
2016-11-06 01:46:25 +01:00
Matteo Kloiber
df78fe188c Added support for instance rules
Instance rules are not shared among other validator
objects (thus they are not static). This is useful
if you have a rule you do not want your other validators
to use (because it is very special to this validator).

The parameter given to addInstanceRule is identically to
addRule:

    public function addInstanceRule(string $name, callable $callback [, string message])

Instead of appending to the static variables $_rules, and
$_ruleMessages, it now appends to $_instanceRules and
$_instanceRuleMessages.

A new getter for the rules and ruleMessage has also been added:

    public array getRules()
    public array getRuleMessages()

All existing code has been updated to use getRules(), and
getRuleMessages() instead of $_rules, and $_ruleMessages.
2016-11-06 01:46:17 +01:00
Willem Wollebrants
94317636d9 Added withData method for immutable reusability 2016-08-17 21:44:17 +02:00
misantron
d47c6206ed Change contains validator default mode to strict 2016-05-21 20:48:01 +03:00
misantron
a89c0972c1 Contains validator update, between validator added 2016-03-26 00:55:08 +03:00
Willem Wollebrants
9afa605dc3 Add tests for 'optional' rule 2016-02-22 12:13:02 +01:00
USAMI Kenta
96221ea4d3 Add type check for between comparison
Return 0 if $value is not numeric value
2015-11-20 16:57:15 +09:00
USAMI Kenta
28254e76c2 Add type check for stringLength
Return 0 if $value is not string
2015-11-20 16:55:56 +09:00
USAMI Kenta
29c7d35db6 Add test code for Validator::error() 2015-11-20 16:55:56 +09:00
Vance Lucas
3f4829cf64 Don't tearDown twice 2015-08-06 18:49:27 -05:00
Vance Lucas
7bdc57b9c4 Fix failing urlActive test due to checkdnsrr 2015-08-06 18:47:39 -05:00
Vance Lucas
c7342e025a Fix #115 strict flag for in_array 2014-11-20 09:24:40 -06:00
Lane Roberts
282f4a6ac3 PHP 5.3 compatibility in array syntax 2014-09-18 11:32:30 -05:00
Lane Roberts
8f364b89a8 Add test to exhibit error behavior 2014-09-18 11:08:28 -05:00
Mark Cahill
ec0543be10 Tests for associative arrays 2014-09-08 15:07:49 -04:00
Mark Cahill
eace42656a Validate an array of discrete values 2014-09-08 12:34:46 -04:00
Mark Cahill
c197b10891 Validation of nested arrays, closes #8 2014-09-08 10:40:53 -04:00
Vance Lucas
6d36b12f76 Merge pull request #85 from Typeform/master
Add instanceOf to rules in readme.md
2014-07-29 13:00:00 -05:00
Victor Bjelkholm
9d90b08813 Show instance name in instanceOf error message 2014-07-29 16:39:14 +02:00
Justin Hook
9b5b0cff77 Fixes #64. Updated validateDateFormat to use warning_count for validation check 2014-07-26 15:47:50 +01:00
Victor Bjelkholm
8aa6ad1c5d Allow date to be DateTime object 2014-07-14 14:02:34 +02:00
Victor Bjelkholm
be9d21399c Uncomment CC test cases and add alternative syntax tests 2014-07-14 13:45:44 +02:00
Victor Bjelkholm
c59cfd54b0 Use old array syntax instead of new to keep compatibility 2014-07-14 12:58:09 +02:00
Victor Bjelkholm
ad0f6b9708 Add instanceOf validation 2014-07-14 12:43:00 +02:00
Vance Lucas
f52df87b56 Made the BC Math extension optional 2014-07-07 09:00:28 -05:00
Mark Cahill
272fe84b15 Run validation is field is non-null instead of truthy. Fixes #70 2014-05-27 15:31:13 -04:00
Vance Lucas
430a8324ec Merge pull request #53 from Kilte/feature-length
Add min/max-length validators
2014-04-10 10:53:37 -05:00
Justin Hook
631a5e2138 Updated min and max rules to use bccomp for number comparison. 2014-04-02 21:58:30 +01:00
Justin Hook
4fb6f478ef Fixed issue with Min/Max rules using decimals 2014-04-01 21:17:00 +01:00
Kilte
8871f81476 Add min/max-length validators 2014-01-25 21:18:42 +04:00
Vance Lucas
e011ab81c4 Merge pull request #25 from neves/fix-addRule
Fix add rule
2014-01-11 19:48:40 -08:00
Andrew Willis
d7ec85ef48 and again with the array thing making valid for php5.3 2014-01-10 06:58:18 +00:00
Andrew Willis
f26a1f55b4 fixed indentation and php5.3 array syntax 2014-01-10 06:54:10 +00:00
Andrew Willis
2d0790b984 Added credit card validation for Visa, Mastercard, American Express, Dinersclub and Discover 2014-01-09 22:05:23 +00:00
Kilte
db6d49baf6 Fix #33 Validation for length - Message is incorrect for between cases 2014-01-07 00:08:09 +04:00
Vance Lucas
add2cc92d2 Merge pull request #31 from biggingernerd/master
Added validator for boolean
2013-11-11 13:05:13 -08:00
Vance Lucas
d51f4c0fa5 Always use custom label in place of field name
Fixes: https://github.com/vlucas/valitron/issues/32
2013-11-11 15:02:19 -06:00
Martijn van Maasakkers
66d62dd96d Removed silly string = true check 2013-10-15 21:21:30 +02:00