Index: list_format_test.rb =================================================================== diff --git a/trunk/test/unit/lib/redmine/field_format/list_format_test.rb b/trunk/test/unit/lib/redmine/field_format/list_format_test.rb --- a/trunk/test/unit/lib/redmine/field_format/list_format_test.rb (revision 20121) +++ b/trunk/test/unit/lib/redmine/field_format/list_format_test.rb (working copy) @@ -95,6 +95,47 @@ end end + def test_edit_tag_should_include_blank_option_on_new_record + field = IssueCustomField.new(:field_format => 'list', :possible_values => ['Foo', 'Bar'], :is_required => true, + :multiple => false) + value = CustomFieldValue.new(:custom_field => field, :customized => Issue.new) + + tag = field.format.edit_tag(self, 'id', 'name', value) + assert_select_in tag, 'select' do + assert_select 'option', 3 + assert_select 'option[value=""]' + assert_select 'option[value=Foo]', :text => 'Foo' + assert_select 'option[value=Bar]', :text => 'Bar' + end + end + + def test_edit_tag_should_not_include_blank_option_on_new_record_with_default_value + field = IssueCustomField.new(:field_format => 'list', :possible_values => ['Foo', 'Bar'], :is_required => true, + :multiple => false, :default_value => 'Bar') + value = CustomFieldValue.new(:custom_field => field, :customized => Issue.new) + + tag = field.format.edit_tag(self, 'id', 'name', value) + assert_select_in tag, 'select' do + assert_select 'option', 2 + assert_select 'option[value=Foo]', :text => 'Foo' + assert_select 'option[value=Bar]', :text => 'Bar' + end + end + + def test_edit_tag_should_include_blank_option_on_persisted_record + field = IssueCustomField.new(:field_format => 'list', :possible_values => ['Foo', 'Bar'], :is_required => true, + :multiple => false, :default_value => 'Bar') + value = CustomFieldValue.new(:custom_field => field, :customized => Issue.generate!) + + tag = field.format.edit_tag(self, 'id', 'name', value) + assert_select_in tag, 'select' do + assert_select 'option', 3 + assert_select 'option[value=""]' + assert_select 'option[value=Foo]', :text => 'Foo' + assert_select 'option[value=Bar]', :text => 'Bar' + end + end + def test_edit_tag_with_check_box_style_should_contain_possible_values field = IssueCustomField.new(:field_format => 'list', :possible_values => ['Foo', 'Bar'], :is_required => false, :edit_tag_style => 'check_box')