1..25 # __construct() ok 1 - ->__construct() can take no argument ok 2 - ->__construct() can take a validator as its first argument ok 3 - ->__construct() can take an array of validators as its first argument ok 4 - __construct() throws an exception when passing a non supported first argument # ->addValidator() ok 5 - ->addValidator() adds a validator # ->clean() ok 6 - ->clean() returns the string unmodified ok 7 - ->clean() throws an sfValidatorError exception if the input value is required ok 8 - ->clean() throws a sfValidatorError ok 9 - ->clean() throws an sfValidatorError exception if one of the validators fails ok 10 - ->clean() throws a sfValidatorSchemaError ok 11 - ->clean() throws a sfValidatorSchemaError ok 12 - ->clean() throws an sfValidatorError exception if one of the validators fails ok 13 - ->clean() throws an error for every error ok 14 - ->clean() throws a sfValidatorSchemaError ok 15 - ->clean() throws a sfValidatorSchemaError ok 16 - ->clean() throws a sfValidatorSchemaError ok 17 - ->clean() throws an sfValidatorError exception if one of the validators fails ok 18 - ->clean() only returns the first error if halt_on_error option is true ok 19 - ->clean() throws a sfValidatorSchemaError ok 20 - ->clean() throws a sfValidatorSchemaError ok 21 - ->clean() throws an sfValidatorError exception if one of the validators fails ok 22 - ->clean() throws a sfValidatorError if invalid message is not empty ok 23 - ->clean() throws a sfValidatorError if invalid message is not empty # ->asString() ok 24 - ->asString() returns a string representation of the validator ok 25 - ->asString() returns a string representation of the validator # Looks like everything went fine.