]> git.openstreetmap.org Git - rails.git/blobdiff - test/test_helper.rb
Merge remote-tracking branch 'upstream/pull/2605'
[rails.git] / test / test_helper.rb
index 378d49bb9a02f43097cfe13c9b73c32c702e1aac..1a60c8234bc33b5abc6b00e7282b8746faee7e48 100644 (file)
@@ -28,6 +28,9 @@ module ActiveSupport
     include FactoryBot::Syntax::Methods
     include ActiveJob::TestHelper
 
+    # Run tests in parallel with specified workers
+    parallelize(:workers => :number_of_processors)
+
     ##
     # takes a block which is executed in the context of a different
     # ActionController instance. this is used so that code can call methods
@@ -115,12 +118,28 @@ module ActiveSupport
       @request.env["HTTP_AUTHORIZATION"] = format("Basic %{auth}", :auth => Base64.encode64("#{user}:#{pass}"))
     end
 
+    ##
+    # return request header for HTTP Basic Authorization
+    def basic_authorization_header(user, pass)
+      { "Authorization" => format("Basic %{auth}", :auth => Base64.encode64("#{user}:#{pass}")) }
+    end
+
+    ##
+    # set request header for HTTP Accept
+    def http_accept_format(format)
+      @request.env["HTTP_ACCEPT"] = format
+    end
+
     ##
     # set request readers to ask for a particular error format
     def error_format(format)
       @request.env["HTTP_X_ERROR_FORMAT"] = format
     end
 
+    def error_format_header(f)
+      { "X-Error-Format" => f }
+    end
+
     ##
     # Used to check that the error header and the forbidden responses are given
     # when the owner of the changset has their data not marked as public
@@ -176,6 +195,11 @@ module ActiveSupport
       click_on "Login", :match => :first
     end
 
+    def session_for(user)
+      post login_path, :params => { :username => user.display_name, :password => "test" }
+      follow_redirect!
+    end
+
     def xml_for_node(node)
       doc = OSM::API.new.get_xml_doc
       doc.root << xml_node_for_node(node)