openstreetmap-website/test/integration/cors_test.rb
2015-02-20 19:47:26 +00:00

32 lines
1 KiB
Ruby

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"
assert_response :success
assert_equal "http://www.example.com", response.headers["Access-Control-Allow-Origin"]
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
end
end