Fix importing of GPX traces with a leading byte order marker
Fixes #2258
This commit is contained in:
parent
399ade116a
commit
26cbdcf71a
5 changed files with 16 additions and 5 deletions
|
@ -51,7 +51,7 @@ module GPX
|
|||
rescue Archive::Error
|
||||
io = ::File.open(@file)
|
||||
|
||||
case MimeMagic.by_magic(io).type
|
||||
case MimeMagic.by_magic(io)&.type
|
||||
when "application/gzip" then io = Zlib::GzipReader.open(@file)
|
||||
when "application/x-bzip" then io = Bzip2::FFI::Reader.open(@file)
|
||||
end
|
||||
|
|
|
@ -153,7 +153,7 @@ module Api
|
|||
# And finally we should be able to do it with the owner of the trace
|
||||
basic_authorization anon_trace_file.user.display_name, "test"
|
||||
get :data, :params => { :id => anon_trace_file.id }
|
||||
check_trace_data anon_trace_file, "66179ca44f1e93d8df62e2b88cbea732"
|
||||
check_trace_data anon_trace_file, "db4cb5ed2d7d2b627b3b504296c4f701"
|
||||
end
|
||||
|
||||
# Test downloading a trace that doesn't exist through the api
|
||||
|
|
|
@ -388,7 +388,7 @@ class TracesControllerTest < ActionController::TestCase
|
|||
|
||||
# And finally we should be able to do it with the owner of the trace
|
||||
get :data, :params => { :display_name => anon_trace_file.user.display_name, :id => anon_trace_file.id }, :session => { :user => anon_trace_file.user }
|
||||
check_trace_data anon_trace_file, "66179ca44f1e93d8df62e2b88cbea732"
|
||||
check_trace_data anon_trace_file, "db4cb5ed2d7d2b627b3b504296c4f701"
|
||||
end
|
||||
|
||||
# Test downloading a trace that doesn't exist
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<gpx
|
||||
version="1.0"
|
||||
creator="GPSBabel - http://www.gpsbabel.org"
|
||||
|
|
|
@ -146,7 +146,7 @@ class TraceTest < ActiveSupport::TestCase
|
|||
|
||||
def test_xml_file
|
||||
check_xml_file("a", "848caa72f2f456d1bd6a0fdf228aa1b9")
|
||||
check_xml_file("b", "66179ca44f1e93d8df62e2b88cbea732")
|
||||
check_xml_file("b", "db4cb5ed2d7d2b627b3b504296c4f701")
|
||||
check_xml_file("c", "848caa72f2f456d1bd6a0fdf228aa1b9")
|
||||
check_xml_file("d", "abd6675fdf3024a84fc0a1deac147c0d")
|
||||
check_xml_file("f", "a7c05d676c77dc14369c21be216a3713")
|
||||
|
@ -263,6 +263,17 @@ class TraceTest < ActiveSupport::TestCase
|
|||
end
|
||||
end
|
||||
|
||||
def test_import_handles_plain_with_bom
|
||||
FakeFS do
|
||||
FakeFS::FileSystem.clone(Rails.root.join("test", "gpx"))
|
||||
trace = create(:trace, :fixture => "b")
|
||||
|
||||
trace.import
|
||||
|
||||
assert_equal 1, trace.size
|
||||
end
|
||||
end
|
||||
|
||||
def test_import_handles_gz
|
||||
trace = create(:trace, :fixture => "d")
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue