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 614a0e8..1466dbc 100644 (file)
Binary files a/test/gpx/fixtures/f.gpx and b/test/gpx/fixtures/f.gpx differ
index 7e4c07c..e0c32b5 100644 (file)
Binary files a/test/gpx/fixtures/g.gpx and b/test/gpx/fixtures/g.gpx differ
index a0e75ce..ed0c3ef 100644 (file)
Binary files a/test/gpx/fixtures/h.gpx and b/test/gpx/fixtures/h.gpx differ
index 6c9010c..e5152c4 100644 (file)
Binary files a/test/gpx/fixtures/i.gpx and b/test/gpx/fixtures/i.gpx differ
index 81120f0..24c66c4 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)