mirror of
https://github.com/meineerde/redmine.git
synced 2026-02-04 08:03:23 +00:00
Reject CSV file without data row when importing (#35137).
Patch by Yuichi HARADA. git-svn-id: http://svn.redmine.org/redmine/trunk@21041 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
parent
ffc9101e23
commit
685bfdd8ff
@ -50,7 +50,11 @@ class ImportsController < ApplicationController
|
||||
|
||||
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
|
||||
|
||||
@ -223,6 +223,7 @@ en:
|
||||
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"
|
||||
|
||||
1
test/fixtures/files/import_issues_no_data_row.csv
vendored
Normal file
1
test/fixtures/files/import_issues_no_data_row.csv
vendored
Normal file
@ -0,0 +1 @@
|
||||
priority;Subject;start_date;parent;private;progress;custom;"target version";category;user;estimated_hours;tracker;status;database;cf_6;
|
||||
|
@ -180,6 +180,27 @@ class ImportsControllerTest < Redmine::ControllerTest
|
||||
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"}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user