Skip to content

Commit 875c06d

Browse files
committed
Assert values are strings before ctype checks, fixes #197
1 parent 9a2b946 commit 875c06d

File tree

3 files changed

+13
-0
lines changed

3 files changed

+13
-0
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ Changelog
88
- Corrected messages and typos in various assertions.
99
- Document `void` return type.
1010
- Prevent UUIDs with trailing newlines from validating.
11+
- Assert values are strings before ctype checks.
1112

1213
## 1.11.0
1314

src/Assert.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1402,6 +1402,8 @@ public static function alpha($value, $message = '')
14021402
*/
14031403
public static function digits($value, $message = '')
14041404
{
1405+
static::string($value);
1406+
14051407
$locale = \setlocale(LC_CTYPE, 0);
14061408
\setlocale(LC_CTYPE, 'C');
14071409
$valid = !\ctype_digit($value);
@@ -1427,6 +1429,8 @@ public static function digits($value, $message = '')
14271429
*/
14281430
public static function alnum($value, $message = '')
14291431
{
1432+
static::string($value);
1433+
14301434
$locale = \setlocale(LC_CTYPE, 0);
14311435
\setlocale(LC_CTYPE, 'C');
14321436
$valid = !\ctype_alnum($value);
@@ -1454,6 +1458,8 @@ public static function alnum($value, $message = '')
14541458
*/
14551459
public static function lower($value, $message = '')
14561460
{
1461+
static::string($value);
1462+
14571463
$locale = \setlocale(LC_CTYPE, 0);
14581464
\setlocale(LC_CTYPE, 'C');
14591465
$valid = !\ctype_lower($value);
@@ -1481,6 +1487,8 @@ public static function lower($value, $message = '')
14811487
*/
14821488
public static function upper($value, $message = '')
14831489
{
1490+
static::string($value);
1491+
14841492
$locale = \setlocale(LC_CTYPE, 0);
14851493
\setlocale(LC_CTYPE, 'C');
14861494
$valid = !\ctype_upper($value);

tests/AssertTest.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -377,17 +377,21 @@ public function getTests()
377377
array('digits', array('1234'), true),
378378
array('digits', array('12a34'), false),
379379
array('digits', array(''), false),
380+
array('digits', array(1234), false),
380381
array('alnum', array('ab12'), true),
381382
array('alnum', array('ab12$'), false),
382383
array('alnum', array(''), false),
384+
array('alnum', array(1234), false),
383385
array('lower', array('abcd'), true),
384386
array('lower', array('abCd'), false),
385387
array('lower', array('ab_d'), false),
386388
array('lower', array(''), false),
389+
array('lower', array(1234), false),
387390
array('upper', array('ABCD'), true),
388391
array('upper', array('ABcD'), false),
389392
array('upper', array('AB_D'), false),
390393
array('upper', array(''), false),
394+
array('upper', array(1234), false),
391395
array('length', array('abcd', 4), true),
392396
array('length', array('abc', 4), false),
393397
array('length', array('abcde', 4), false),

0 commit comments

Comments
 (0)