From a594c377a6c6eba9e9b26e22d2bb095fd0edd706 Mon Sep 17 00:00:00 2001 From: Jean-Philippe Lang Date: Tue, 6 Jun 2017 20:56:38 +0000 Subject: [PATCH] Merged r16572 (#25861). git-svn-id: http://svn.redmine.org/redmine/branches/3.3-stable@16617 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- app/controllers/imports_controller.rb | 2 +- test/fixtures/files/invalid-Shift_JIS.csv | 1 + test/functional/imports_controller_test.rb | 11 +++++++++++ 3 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 test/fixtures/files/invalid-Shift_JIS.csv diff --git a/app/controllers/imports_controller.rb b/app/controllers/imports_controller.rb index 75d4da933..079bce347 100644 --- a/app/controllers/imports_controller.rb +++ b/app/controllers/imports_controller.rb @@ -50,7 +50,7 @@ class ImportsController < ApplicationController rescue CSV::MalformedCSVError => e flash.now[:error] = l(:error_invalid_csv_file_or_settings) - rescue ArgumentError, Encoding::InvalidByteSequenceError => e + rescue ArgumentError, EncodingError => e flash.now[:error] = l(:error_invalid_file_encoding, :encoding => ERB::Util.h(@import.settings['encoding'])) rescue SystemCallError => e flash.now[:error] = l(:error_can_not_read_import_file) diff --git a/test/fixtures/files/invalid-Shift_JIS.csv b/test/fixtures/files/invalid-Shift_JIS.csv new file mode 100644 index 000000000..b75917177 --- /dev/null +++ b/test/fixtures/files/invalid-Shift_JIS.csv @@ -0,0 +1 @@ +Ȁ \ No newline at end of file diff --git a/test/functional/imports_controller_test.rb b/test/functional/imports_controller_test.rb index 5c41c10d7..b3d06b84c 100644 --- a/test/functional/imports_controller_test.rb +++ b/test/functional/imports_controller_test.rb @@ -100,6 +100,17 @@ class ImportsControllerTest < ActionController::TestCase assert_select 'div#flash_error', /not a valid UTF-8 encoded file/ end + def test_post_settings_with_invalid_encoding_should_display_error + import = generate_import('invalid-Shift_JIS.csv') + + post :settings, :id => import.to_param, + :import_settings => {:separator => ";", :wrapper => '"', :encoding => "Shift_JIS"} + assert_response 200 + import.reload + assert_nil import.total_items + assert_select 'div#flash_error', /not a valid Shift_JIS encoded file/ + end + def test_get_mapping_should_display_mapping_form import = generate_import('import_iso8859-1.csv') import.settings = {'separator' => ";", 'wrapper' => '"', 'encoding' => "ISO-8859-1"} -- 2.39.5