]> source.dussan.org Git - redmine.git/commitdiff
Merged r17786 and r17787 from trunk to 4.0-stable (#30412).
authorGo MAEDA <maeda@farend.jp>
Sat, 12 Jan 2019 01:31:15 +0000 (01:31 +0000)
committerGo MAEDA <maeda@farend.jp>
Sat, 12 Jan 2019 01:31:15 +0000 (01:31 +0000)
git-svn-id: http://svn.redmine.org/redmine/branches/4.0-stable@17788 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/models/import.rb
test/fixtures/files/import_issues_utf8_with_bom.csv [new file with mode: 0644]
test/unit/issue_import_test.rb

index d2c53baac2394c80c0deb31d9b7e48d176578ebd..71bc3c1bbeb2d39c1c05dd1adcd44ccdb0cfdb40 100644 (file)
@@ -217,6 +217,7 @@ class Import < ActiveRecord::Base
 
     csv_options = {:headers => false}
     csv_options[:encoding] = settings['encoding'].to_s.presence || 'UTF-8'
+    csv_options[:encoding] = 'bom|UTF-8' if csv_options[:encoding] == 'UTF-8'
     separator = settings['separator'].to_s
     csv_options[:col_sep] = separator if separator.size == 1
     wrapper = settings['wrapper'].to_s
diff --git a/test/fixtures/files/import_issues_utf8_with_bom.csv b/test/fixtures/files/import_issues_utf8_with_bom.csv
new file mode 100644 (file)
index 0000000..1ab78ac
--- /dev/null
@@ -0,0 +1,4 @@
+"priority";subject;description;start_date;due_date;parent;private;progress;custom;version;category;user;estimated_hours;tracker;status
+High;First;First description;2015-07-08;2015-08-25;;no;;PostgreSQL;;New category;dlopper;1;bug;new
+Normal;Child 1;Child description;;;1;yes;10;MySQL;2.0;New category;;2;feature request;new
+Normal;Child of existing issue;Child description;;;#2;no;20;;2.1;Printing;;3;bug;assigned
index 4a038a170a86308fcc8bd4f3331be3b78049c3f7..7530045fa0511f3328a9b3db997e1e501d1fdbdb 100644 (file)
@@ -115,6 +115,15 @@ class IssueImportTest < ActiveSupport::TestCase
     assert_equal 2, issues[2].parent_id
   end
 
+  def test_import_utf8_with_bom
+    import = generate_import_with_mapping('import_issues_utf8_with_bom.csv')
+    import.settings.merge!('encoding' => 'UTF-8')
+    import.save
+
+    issues = new_records(Issue,3) { import.run }
+    assert_equal 3, issues.count
+  end
+
   def test_backward_and_forward_reference_to_parent_should_work
     import = generate_import('import_subtasks.csv')
     import.settings = {