Skip to content

Commit 4543a4c

Browse files
committed
Make Validation class more strict when checking values in list.
Use in_array() with 'strict' param. Affected rules are Validation::inList() and Validation::multiple().
1 parent 17eb0e4 commit 4543a4c

File tree

2 files changed

+4
-2
lines changed

2 files changed

+4
-2
lines changed

lib/Cake/Test/Case/Utility/ValidationTest.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1806,6 +1806,7 @@ public function testInList() {
18061806
$this->assertTrue(Validation::inList('one', array('one', 'two')));
18071807
$this->assertTrue(Validation::inList('two', array('one', 'two')));
18081808
$this->assertFalse(Validation::inList('three', array('one', 'two')));
1809+
$this->assertFalse(Validation::inList('one', '1one', array(0, 1, 2, 3)));
18091810
}
18101811

18111812
/**
@@ -1903,6 +1904,7 @@ public function testMultiple() {
19031904
$this->assertFalse(Validation::multiple(array(0, 15, 20, 5), array('in' => range(0, 10))));
19041905
$this->assertFalse(Validation::multiple(array(0, 5, 10, 11), array('in' => range(0, 10))));
19051906
$this->assertFalse(Validation::multiple(array('boo', 'foo', 'bar'), array('in' => array('foo', 'bar', 'baz'))));
1907+
$this->assertFalse(Validation::multiple(array('foo', '1bar'), array('in' => range(0, 10))));
19061908

19071909
$this->assertTrue(Validation::multiple(array(0, 5, 10, 11), array('max' => 3)));
19081910
$this->assertFalse(Validation::multiple(array(0, 5, 10, 11, 55), array('max' => 3)));

lib/Cake/Utility/Validation.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -544,7 +544,7 @@ public static function multiple($check, $options = array()) {
544544
}
545545
if ($options['in'] && is_array($options['in'])) {
546546
foreach ($check as $val) {
547-
if (!in_array($val, $options['in'])) {
547+
if (!in_array($val, $options['in'], true)) {
548548
return false;
549549
}
550550
}
@@ -719,7 +719,7 @@ public static function url($check, $strict = false) {
719719
* @return boolean Success
720720
*/
721721
public static function inList($check, $list) {
722-
return in_array($check, $list);
722+
return in_array($check, $list, true);
723723
}
724724

725725
/**

0 commit comments

Comments
 (0)