Development

Changeset 7590

You must first sign up to be able to contribute.

Changeset 7590

Show
Ignore:
Timestamp:
02/23/08 19:35:05 (9 months ago)
Author:
Carl.Vondrick
Message:

1.1: fixed sfNumberValidator to reject hexadecimal values in sfCompat10Plugin (closes #2741)

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • branches/1.1/lib/plugins/sfCompat10Plugin/lib/validator/sfNumberValidator.class.php

    r5384 r7590  
    4646  public function execute(&$value, &$error) 
    4747  { 
    48     if (!is_numeric($value)) 
     48    if (!preg_match('/^\d+(\.\d+)?$/', $value)) 
    4949    { 
    5050      // it's NaN, what nerve! 
  • branches/1.1/lib/plugins/sfCompat10Plugin/test/unit/validator/sfNumberValidatorTest.php

    r5384 r7590  
    1313require_once(dirname(__FILE__).'/sfValidatorTestHelper.class.php'); 
    1414 
    15 $t = new lime_test(49, new lime_output_color()); 
     15$t = new lime_test(51, new lime_output_color()); 
    1616 
    1717$context = sfContext::getInstance(); 
     
    2424$t->ok($v->execute($number, $error), '->execute() returns true if you don\'t define any parameter'); 
    2525 
    26 $number = 'not a number'; 
    27 $error = null; 
    28 $t->ok(!$v->execute($number, $error), '->execute() returns "nan_error" if value is not a number'); 
    29 $t->is($error, 'Input is not a number', '->execute() changes "$error" with a default message if it returns false'); 
     26foreach (array('not a number', '0xFE') as $number) 
     27
     28  $error = null; 
     29  $t->ok(!$v->execute($number, $error), '->execute() returns "nan_error" if value is not a number'); 
     30  $t->is($error, 'Input is not a number', '->execute() changes "$error" with a default message if it returns false'); 
     31
    3032 
    3133foreach (array('any', 'decimal', 'float', 'int', 'integer') as $type)