Test import of various trace formats
authorTom Hughes <tom@compton.nu>
Tue, 11 Jun 2019 18:52:51 +0000 (19:52 +0100)
committerTom Hughes <tom@compton.nu>
Tue, 11 Jun 2019 18:52:51 +0000 (19:52 +0100)
Fixes #2254

test/gpx/fixtures/f.gpx
test/gpx/fixtures/g.gpx
test/gpx/fixtures/h.gpx
test/gpx/fixtures/i.gpx
test/models/trace_test.rb

index 614a0e8bad008fdc66ab5a9daa4c280dad3e89d0..1466dbc95e51294349ab0b3099dbbd4ea300a4fd 100644 (file)
Binary files a/test/gpx/fixtures/f.gpx and b/test/gpx/fixtures/f.gpx differ
index 7e4c07c41ddaf94d1ee23025bcfb19bf69198e2e..e0c32b520274eae424aa193126ef89c8f229629a 100644 (file)
Binary files a/test/gpx/fixtures/g.gpx and b/test/gpx/fixtures/g.gpx differ
index a0e75cecce6c18e5c1db788e5af5f40cc5827c92..ed0c3effc7be77cc61e59f7cf45dc63c266bfaec 100644 (file)
Binary files a/test/gpx/fixtures/h.gpx and b/test/gpx/fixtures/h.gpx differ
index 6c9010c4694e9f239e0ec3544fb3b7aa0f2d4432..e5152c466636ce82bf6c19be8bf47e3a6dd54be1 100644 (file)
Binary files a/test/gpx/fixtures/i.gpx and b/test/gpx/fixtures/i.gpx differ
index 81120f0e776e0c1103560f153f50912eed50d096..24c66c4900868fa98a315a5ef5f9a3eeb25a9acd 100644 (file)
@@ -149,10 +149,10 @@ class TraceTest < ActiveSupport::TestCase
     check_xml_file("b", "66179ca44f1e93d8df62e2b88cbea732")
     check_xml_file("c", "848caa72f2f456d1bd6a0fdf228aa1b9")
     check_xml_file("d", "abd6675fdf3024a84fc0a1deac147c0d")
-    check_xml_file("f", "848caa72f2f456d1bd6a0fdf228aa1b9")
-    check_xml_file("g", "848caa72f2f456d1bd6a0fdf228aa1b9")
-    check_xml_file("h", "848caa72f2f456d1bd6a0fdf228aa1b9")
-    check_xml_file("i", "848caa72f2f456d1bd6a0fdf228aa1b9")
+    check_xml_file("f", "a7c05d676c77dc14369c21be216a3713")
+    check_xml_file("g", "a7c05d676c77dc14369c21be216a3713")
+    check_xml_file("h", "a7c05d676c77dc14369c21be216a3713")
+    check_xml_file("i", "a7c05d676c77dc14369c21be216a3713")
   end
 
   def test_large_picture
@@ -241,6 +241,93 @@ class TraceTest < ActiveSupport::TestCase
     end
   end
 
+  def test_import_handles_bz2
+    FakeFS do
+      FakeFS::FileSystem.clone(Rails.root.join("test", "gpx"))
+      trace = create(:trace, :fixture => "c")
+
+      trace.import
+
+      assert_equal 1, trace.size
+    end
+  end
+
+  def test_import_handles_plain
+    FakeFS do
+      FakeFS::FileSystem.clone(Rails.root.join("test", "gpx"))
+      trace = create(:trace, :fixture => "a")
+
+      trace.import
+
+      assert_equal 1, trace.size
+    end
+  end
+
+  def test_import_handles_gz
+    trace = create(:trace, :fixture => "d")
+
+    FakeFS do
+      FakeFS::FileSystem.clone(Rails.root.join("test", "gpx"))
+      trace.import
+
+      assert_equal 1, trace.size
+    ensure
+      trace.destroy
+    end
+  end
+
+  def test_import_handles_zip
+    trace = create(:trace, :fixture => "f")
+
+    FakeFS do
+      FakeFS::FileSystem.clone(Rails.root.join("test", "gpx"))
+      trace.import
+
+      assert_equal 2, trace.size
+    ensure
+      trace.destroy
+    end
+  end
+
+  def test_import_handles_tar
+    trace = create(:trace, :fixture => "g")
+
+    FakeFS do
+      FakeFS::FileSystem.clone(Rails.root.join("test", "gpx"))
+      trace.import
+
+      assert_equal 2, trace.size
+    ensure
+      trace.destroy
+    end
+  end
+
+  def test_import_handles_tar_gz
+    trace = create(:trace, :fixture => "h")
+
+    FakeFS do
+      FakeFS::FileSystem.clone(Rails.root.join("test", "gpx"))
+      trace.import
+
+      assert_equal 2, trace.size
+    ensure
+      trace.destroy
+    end
+  end
+
+  def test_import_handles_tar_bz2
+    trace = create(:trace, :fixture => "i")
+
+    FakeFS do
+      FakeFS::FileSystem.clone(Rails.root.join("test", "gpx"))
+      trace.import
+
+      assert_equal 2, trace.size
+    ensure
+      trace.destroy
+    end
+  end
+
   private
 
   def check_query(query, traces)