1..22 # ->render() ok 1 - ->render() renders a select tag with the value selected ok 2 - ->render() renders all choices as option tags ok 3 - ->render() always generate a value attribute, even for empty keys ok 4 - ->render() always generate a value attribute, even for empty keys # multiple select ok 5 - ->render() automatically adds a multiple HTML attributes if multiple is true ok 6 - ->render() automatically adds a [] at the end of the name if multiple is true ok 7 - ->render() renders a select tag with the value selected ok 8 - ->render() renders a select tag with the value selected ok 9 - ->render() automatically does not add a [] at the end of the name if multiple is true and the name already has one # optgroup support ok 10 - ->render() has support for optgroups tags ok 11 - __construct() throws an RuntimeException if you don't pass a choices option # choices are translated ok 12 - ->render() translates the options ok 13 - ->render() translates the options # optgroup support with translated choices ok 14 - ->render() translates the options ok 15 - ->render() translates the options # choices as a callable ok 16 - ->render() accepts a sfCallable as a choices option # attributes ok 17 - ->render() does not pass the select HTML attributes to the option tag ok 18 - ->render() does not pass the select HTML attributes to the option tag ok 19 - ->render() does not pass the select HTML attributes to the option tag ok 20 - ->render() does not pass the select HTML attributes to the option tag # __clone() ok 21 - __clone() changes the choices is a callable and the object is an instance of the current object ok 22 - __clone() changes nothing if the choices is a callable and the object is not an instance of the current object # Looks like everything went fine.