*/ require_once dirname(__FILE__) . '/../../bootstrap/unit.php'; require_once $_test_dir . '/../../../../test/unit/sfContextMock.class.php'; require_once dirname(__FILE__) . '/sfValidatorTestHelper.class.php'; $t = new lime_test(36, new lime_output_color()); $context = sfContext::getInstance(); $v = new sfStringValidator($context); // ->execute() $t->diag('->execute()'); $text = 'a random string to test string validator'; $error = null; $t->ok($v->execute($text, $error), '->execute() returns true if you don\'t define any parameter'); $h = new sfValidatorTestHelper($context, $t); // min $t->diag('->execute() - min parameter'); $h->launchTests($v, '123456', true, 'min', null, array('min' => 5)); $h->launchTests($v, '12345', true, 'min', null, array('min' => 5)); $h->launchTests($v, '123', false, 'min', 'min_error', array('min' => 5)); // max $t->diag('->execute() - max parameter'); $h->launchTests($v, '123', true, 'max', null, array('max' => 5)); $h->launchTests($v, '12345', true, 'max', null, array('max' => 5)); $h->launchTests($v, '123456', false, 'max', 'max_error', array('max' => 5)); // values $t->diag('->execute() - values parameter'); $h->launchTests($v, 'foo', true, 'values', null, array('values' => array('foo'))); $h->launchTests($v, 'bar', true, 'values', null, array('values' => array('foo', 'bar'))); $h->launchTests($v, 'bar', false, 'values', 'values_error', array('values' => array('foo'))); $h->launchTests($v, 'foo', true, 'values', null, array('values' => 'foo')); // insensitive $t->diag('->execute() - insensitive parameter');
$t->ok(!$v->execute($number, $error), '->execute() returns "nan_error" if value is not a number'); $t->is($error, 'Input is not a number', '->execute() changes "$error" with a default message if it returns false'); } foreach (array('any', 'decimal', 'float', 'int', 'integer') as $type) { $t->ok($v->initialize($context, array('type' => $type)), sprintf('->execute() can take "%s" as a type argument', $type)); } try { $v->initialize($context, array('type' => 'another type')); $t->fail('->initialize() throws an sfValidatorException if "type" is invalid'); } catch (sfValidatorException $e) { $t->pass('->initialize() throws an sfValidatorException if "type" is invalid'); } $h = new sfValidatorTestHelper($context, $t); // min $t->diag('->execute() - min parameter'); $h->launchTests($v, 6, true, 'min', null, array('min' => 5)); $h->launchTests($v, 5, true, 'min', null, array('min' => 5)); $h->launchTests($v, 4, false, 'min', 'min_error', array('min' => 5)); // max $t->diag('->execute() - max parameter'); $h->launchTests($v, 4, true, 'max', null, array('max' => 5)); $h->launchTests($v, 5, true, 'max', null, array('max' => 5)); $h->launchTests($v, 6, false, 'max', 'max_error', array('max' => 5)); // type is integer $t->diag('->execute() - type is integer'); $h->launchTests($v, 4, true, 'type', null, array('type' => 'integer')); $h->launchTests($v, 4.1, false, 'type', 'type_error', array('type' => 'integer')); // type is int $t->diag('->execute() - type is int'); $h->launchTests($v, 4, true, 'type', null, array('type' => 'int')); $h->launchTests($v, 4.1, false, 'type', 'type_error', array('type' => 'int'));
try { $v = new sfCompareValidator($context, array('check' => 'value', 'operator' => 'N')); $t->fail('->initialize() takes an "operator" parameter in (>, >=, <, <=, ==, !=)'); } catch (sfValidatorException $e) { $t->pass('->initialize() takes an "operator" parameter in (>, >=, <, <=, ==, !=)'); } // == operator (default operator) $t->diag('->execute() - == operator (default operator)'); $v = new sfCompareValidator($context, array('check' => 'value')); $request->parameters = array('value2' => 'azerty'); $options = array('check' => 'value2'); $h->launchTests($v, 'azerty', true, 'check', null, $options); $h->launchTests($v, 'azerty1', false, 'check', null, $options); $h->launchTests($v, 'azerty1', false, 'check', 'compare_error', $options); // == operator $t->diag('->execute() - == operator'); $request->parameters = array('value2' => 'azerty'); $options = array('check' => 'value2', 'operator' => '=='); $h->launchTests($v, 'azerty', true, 'check', null, $options); $h->launchTests($v, 'azerty1', false, 'check', null, $options); $h->launchTests($v, 'azerty1', false, 'check', 'compare_error', $options); // != operator $t->diag('->execute() - != operator'); $request->parameters = array('value2' => 'azerty'); $options = array('check' => 'value2', 'operator' => '!=');