Browse Source

Merge pull request #13352 from georgeconstantinou/ticket-13351

Fix Validation::isInteger() for boolean values
Mark Story 6 years ago
parent
commit
4fa6c40ba5
2 changed files with 4 additions and 1 deletions
  1. 1 1
      src/Validation/Validation.php
  2. 3 0
      tests/TestCase/Validation/ValidationTest.php

+ 1 - 1
src/Validation/Validation.php

@@ -1552,7 +1552,7 @@ class Validation
      */
     public static function isInteger($value)
     {
-        if (!is_scalar($value) || is_float($value)) {
+        if (!is_numeric($value) || is_float($value)) {
             return false;
         }
         if (is_int($value)) {

+ 3 - 0
tests/TestCase/Validation/ValidationTest.php

@@ -2968,9 +2968,12 @@ class ValidationTest extends TestCase
         $this->assertTrue(Validation::isInteger('-012'));
 
         $this->assertFalse(Validation::isInteger('2.5'));
+        $this->assertFalse(Validation::isInteger(2.5));
         $this->assertFalse(Validation::isInteger([]));
         $this->assertFalse(Validation::isInteger(new \StdClass));
         $this->assertFalse(Validation::isInteger('2 bears'));
+        $this->assertFalse(Validation::isInteger(true));
+        $this->assertFalse(Validation::isInteger(false));
     }
 
     /**