1..9 # __construct() ok 1 - __construct() throws an RuntimeException if you don't pass an expected option # ->clean() ok 2 - ->clean() checks that the value is an expected value ok 3 - ->clean() checks that the value is an expected value ok 4 - ->clean() throws an sfValidatorError if the value is not an expected value ok 5 - ->clean() throws a sfValidatorError # ->asString() ok 6 - ->asString() returns a string representation of the validator # choices as a callable ok 7 - __construct() can take a sfCallable object as a choices option ok 8 - ->clean() throws an sfValidatorError if the value is not strictly an expected value ok 9 - ->clean() throws a sfValidatorError Looks like everything went fine.