+function _test_format_options($field, $value, $correct) {
+ $ret = format_options($value, $field);
+ if($ret !== $correct) {
+ message("format_options($value, $field) returned \"$ret\" instead of \"$correct\"");
+ return 1;
+ }
+ return 0;
+}
+
+
+function test_format_options() {
+ $errors = 0;
+ pulldown('array', array('one', 'two', "symbols&'\""), PULLDOWN_ARRAY);
+ $errors +=_test_format_options('array', 'one', 'one');
+ $errors +=_test_format_options('array', 'One', '');
+ $errors +=_test_format_options('array', 'two', 'two');
+ $errors +=_test_format_options('array', 'symbols&\'"', 'symbols&\'"');
+ pulldown('hash', array('one' => 'Eno', 'two' => 'Owt', 'symbols&\'"' => 'Slobmys'), PULLDOWN_HASH);
+ $errors +=_test_format_options('hash', 'one', 'one');
+ $errors +=_test_format_options('hash', 'One', '');
+ $errors +=_test_format_options('hash', 'two', 'two');
+ $errors +=_test_format_options('hash', 'symbols&\'"', '');
+ pulldown('array_2d', array(array('one', 'Eno'), array('two', 'Owt'), array('symbols&\'"', 'Slobmys')), PULLDOWN_2D);
+ $errors +=_test_format_options('array_2d', 'one', 'one');
+ $errors +=_test_format_options('array_2d', 'One', '');
+ $errors +=_test_format_options('array_2d', 'two', 'two');
+ $errors +=_test_format_options('array_2d', 'symbols&\'"', '');
+
+ return $errors;
+}
+
+# returns number of errors