]> git.openstreetmap.org Git - rails.git/blobdiff - test/controllers/traces_controller_test.rb
Refactor more controller tests
[rails.git] / test / controllers / traces_controller_test.rb
index 059242af9957357f460078dd9981a9d6765d4c4d..7765bde46c47a2f45f662d1e3667c74383436a15 100644 (file)
@@ -1,10 +1,20 @@
 require "test_helper"
 require "test_helper"
-require "minitest/mock"
 
 class TracesControllerTest < ActionController::TestCase
 
 class TracesControllerTest < ActionController::TestCase
+  # Use temporary directories with unique names for each test
+  # This allows the tests to be run in parallel.
+  def setup
+    @gpx_trace_dir_orig = Settings.gpx_trace_dir
+    @gpx_image_dir_orig = Settings.gpx_image_dir
+    Settings.gpx_trace_dir = Dir.mktmpdir("trace", Rails.root.join("test/gpx"))
+    Settings.gpx_image_dir = Dir.mktmpdir("image", Rails.root.join("test/gpx"))
+  end
+
   def teardown
   def teardown
-    File.unlink(*Dir.glob(File.join(Settings.gpx_trace_dir, "*.gpx")))
-    File.unlink(*Dir.glob(File.join(Settings.gpx_image_dir, "*.gif")))
+    FileUtils.remove_dir(Settings.gpx_trace_dir)
+    FileUtils.remove_dir(Settings.gpx_image_dir)
+    Settings.gpx_trace_dir = @gpx_trace_dir_orig
+    Settings.gpx_image_dir = @gpx_image_dir_orig
   end
 
   ##
   end
 
   ##
@@ -532,7 +542,7 @@ class TracesControllerTest < ActionController::TestCase
   # Test creating a trace
   def test_create_post
     # Get file to use
   # Test creating a trace
   def test_create_post
     # Get file to use
-    fixture = Rails.root.join("test", "gpx", "fixtures", "a.gpx")
+    fixture = Rails.root.join("test/gpx/fixtures/a.gpx")
     file = Rack::Test::UploadedFile.new(fixture, "application/gpx+xml")
     user = create(:user)
 
     file = Rack::Test::UploadedFile.new(fixture, "application/gpx+xml")
     user = create(:user)
 
@@ -555,7 +565,7 @@ class TracesControllerTest < ActionController::TestCase
     assert_equal "New Trace", trace.description
     assert_equal %w[new trace], trace.tags.order(:tag).collect(&:tag)
     assert_equal "trackable", trace.visibility
     assert_equal "New Trace", trace.description
     assert_equal %w[new trace], trace.tags.order(:tag).collect(&:tag)
     assert_equal "trackable", trace.visibility
-    assert_equal false, trace.inserted
+    assert_not trace.inserted
     assert_equal File.new(fixture).read, File.new(trace.trace_name).read
     trace.destroy
     assert_equal "trackable", user.preferences.where(:k => "gps.trace.visibility").first.v
     assert_equal File.new(fixture).read, File.new(trace.trace_name).read
     trace.destroy
     assert_equal "trackable", user.preferences.where(:k => "gps.trace.visibility").first.v
@@ -564,7 +574,7 @@ class TracesControllerTest < ActionController::TestCase
   # Test creating a trace with validation errors
   def test_create_post_with_validation_errors
     # Get file to use
   # Test creating a trace with validation errors
   def test_create_post_with_validation_errors
     # Get file to use
-    fixture = Rails.root.join("test", "gpx", "fixtures", "a.gpx")
+    fixture = Rails.root.join("test/gpx/fixtures/a.gpx")
     file = Rack::Test::UploadedFile.new(fixture, "application/gpx+xml")
     user = create(:user)
 
     file = Rack::Test::UploadedFile.new(fixture, "application/gpx+xml")
     user = create(:user)
 
@@ -663,7 +673,7 @@ class TracesControllerTest < ActionController::TestCase
     assert_response :redirect
     assert_redirected_to :action => :index, :display_name => public_trace_file.user.display_name
     trace = Trace.find(public_trace_file.id)
     assert_response :redirect
     assert_redirected_to :action => :index, :display_name => public_trace_file.user.display_name
     trace = Trace.find(public_trace_file.id)
-    assert_equal false, trace.visible
+    assert_not trace.visible
 
     # Finally with a trace that is destroyed by an admin
     public_trace_file = create(:trace, :visibility => "public")
 
     # Finally with a trace that is destroyed by an admin
     public_trace_file = create(:trace, :visibility => "public")
@@ -673,7 +683,7 @@ class TracesControllerTest < ActionController::TestCase
     assert_response :redirect
     assert_redirected_to :action => :index, :display_name => public_trace_file.user.display_name
     trace = Trace.find(public_trace_file.id)
     assert_response :redirect
     assert_redirected_to :action => :index, :display_name => public_trace_file.user.display_name
     trace = Trace.find(public_trace_file.id)
-    assert_equal false, trace.visible
+    assert_not trace.visible
   end
 
   private
   end
 
   private
@@ -711,7 +721,7 @@ class TracesControllerTest < ActionController::TestCase
         assert_select "tr", :count => traces.length do |rows|
           traces.zip(rows).each do |trace, row|
             assert_select row, "a", Regexp.new(Regexp.escape(trace.name))
         assert_select "tr", :count => traces.length do |rows|
           traces.zip(rows).each do |trace, row|
             assert_select row, "a", Regexp.new(Regexp.escape(trace.name))
-            assert_select row, "span.trace_summary", Regexp.new(Regexp.escape("(#{trace.size} points)")) if trace.inserted?
+            assert_select row, "span", Regexp.new(Regexp.escape("(#{trace.size} points)")) if trace.inserted?
             assert_select row, "td", Regexp.new(Regexp.escape(trace.description))
             assert_select row, "td", Regexp.new(Regexp.escape("by #{trace.user.display_name}"))
           end
             assert_select row, "td", Regexp.new(Regexp.escape(trace.description))
             assert_select row, "td", Regexp.new(Regexp.escape("by #{trace.user.display_name}"))
           end