X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/11cc4a5e601dd288d601e6e35a72d159062f18b5..7a1615bc55aee72dd03a5dd43c08b4f13f669f06:/test/controllers/api/traces_controller_test.rb diff --git a/test/controllers/api/traces_controller_test.rb b/test/controllers/api/traces_controller_test.rb index 820829aad..14136ec20 100644 --- a/test/controllers/api/traces_controller_test.rb +++ b/test/controllers/api/traces_controller_test.rb @@ -1,11 +1,21 @@ require "test_helper" -require "minitest/mock" module Api 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 - 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 ## @@ -178,7 +188,7 @@ module Api # Test creating a trace through the api def test_create # 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) @@ -200,7 +210,7 @@ module Api 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 @@ -218,7 +228,7 @@ module Api assert_equal "New Trace", trace.description assert_equal %w[new trace], trace.tags.order(:tag).collect(&:tag) assert_equal "public", 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 "public", user.preferences.where(:k => "gps.trace.visibility").first.v @@ -237,7 +247,7 @@ module Api assert_equal "New Trace", trace.description assert_equal %w[new trace], trace.tags.order(:tag).collect(&:tag) assert_equal "private", 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 "private", second_user.preferences.where(:k => "gps.trace.visibility").first.v @@ -336,8 +346,8 @@ module Api def check_trace_data(trace, digest, content_type = "application/gpx+xml", extension = "gpx") assert_response :success assert_equal digest, Digest::MD5.hexdigest(response.body) - assert_equal content_type, response.content_type - assert_equal "attachment; filename=\"#{trace.id}.#{extension}\"", @response.header["Content-Disposition"] + assert_equal content_type, response.media_type + assert_equal "attachment; filename=\"#{trace.id}.#{extension}\"; filename*=UTF-8''#{trace.id}.#{extension}", @response.header["Content-Disposition"] end ##