def settings
if request.post? && @import.parse_file
- redirect_to import_mapping_path(@import)
+ if @import.total_items == 0
+ flash.now[:error] = l(:error_no_data_in_file)
+ else
+ redirect_to import_mapping_path(@import)
+ end
end
rescue CSV::MalformedCSVError, EncodingError => e
error_invalid_file_encoding: "The file is not a valid %{encoding} encoded file"
error_invalid_csv_file_or_settings: "The file is not a CSV file or does not match the settings below (%{value})"
error_can_not_read_import_file: "An error occurred while reading the file to import"
+ error_no_data_in_file: "The file does not contain any data"
error_attachment_extension_not_allowed: "Attachment extension %{extension} is not allowed"
error_ldap_bind_credentials: "Invalid LDAP Account/Password"
error_no_tracker_allowed_for_new_issue_in_project: "The project doesn't have any trackers for which you can create an issue"
--- /dev/null
+priority;Subject;start_date;parent;private;progress;custom;"target version";category;user;estimated_hours;tracker;status;database;cf_6;
assert_select 'div#flash_error', /The file is not a CSV file or does not match the settings below \([[:print:]]+\)/
end
+ def test_post_settings_with_no_data_row_should_display_error
+ import = generate_import('import_issues_no_data_row.csv')
+
+ post(
+ :settings,
+ :params => {
+ :id => import.to_param,
+ :import_settings => {
+ :separator => ';',
+ :wrapper => '"',
+ :encoding => 'ISO-8859-1'
+ }
+ }
+ )
+ assert_response 200
+ import.reload
+ assert_equal 0, import.total_items
+
+ assert_select 'div#flash_error', /The file does not contain any data/
+ end
+
def test_get_mapping_should_display_mapping_form
import = generate_import('import_iso8859-1.csv')
import.settings = {'separator' => ";", 'wrapper' => '"', 'encoding' => "ISO-8859-1"}