]> git.openstreetmap.org Git - rails.git/blobdiff - test/integration/cors_test.rb
Authorize actions on GeocoderController with CanCanCan Ability
[rails.git] / test / integration / cors_test.rb
index f3581f6a21b0b258fabb127ef65072b50f5e728a..9ff7e360e50f1c903342e293da2659dfe2706c23 100644 (file)
@@ -1,32 +1,27 @@
-require 'test_helper'
+require "test_helper"
 
 class CORSTest < ActionDispatch::IntegrationTest
-  # Rails 4 adds a built-in `options` method. When we upgrade, we can remove
-  # this definition.
-  unless instance_methods.include?(:options)
-    def options(*args)
-      reset! unless integration_session
-      @html_document = nil
-      integration_session.send(:process, :options, *args).tap do
-        copy_session_variables!
-      end
-    end
-  end
-
   def test_api_routes_allow_cross_origin_requests
-    options "/api/capabilities", nil,
-            'HTTP_ORIGIN' => "http://www.example.com",
-            'HTTP_ACCESS_CONTROL_REQUEST_METHOD' => 'GET'
+    process :options, "/api/capabilities", :headers => {
+      "HTTP_ORIGIN" => "http://www.example.com",
+      "HTTP_ACCESS_CONTROL_REQUEST_METHOD" => "GET"
+    }
 
     assert_response :success
-    assert_equal "http://www.example.com", response.headers['Access-Control-Allow-Origin']
+    assert_equal "*", response.headers["Access-Control-Allow-Origin"]
+    assert_equal "text/plain", response.content_type
+    assert_equal "", response.body
   end
 
   def test_non_api_routes_dont_allow_cross_origin_requests
-    assert_raises ActionController::RoutingError do
-      options "/", nil,
-              'HTTP_ORIGIN' => "http://www.example.com",
-              'HTTP_ACCESS_CONTROL_REQUEST_METHOD' => 'GET'
-    end
+    process :options, "/", :headers => {
+      "HTTP_ORIGIN" => "http://www.example.com",
+      "HTTP_ACCESS_CONTROL_REQUEST_METHOD" => "GET"
+    }
+
+    assert_response :success
+    assert_nil response.headers["Access-Control-Allow-Origin"]
+    assert_nil response.content_type
+    assert_equal "", response.body
   end
 end