class CORSTest < ActionDispatch::IntegrationTest
def test_api_routes_allow_cross_origin_requests
- process :options, "/api/capabilities", :headers => {
+ options "/api/capabilities", :headers => {
"Origin" => "http://www.example.com",
"Access-Control-Request-Method" => "GET"
}
assert_response :success
assert_equal "*", response.headers["Access-Control-Allow-Origin"]
+ assert_nil response.headers["Vary"]
assert_nil response.media_type
assert_equal "", response.body
+
+ get "/api/capabilities", :headers => {
+ "Origin" => "http://www.example.com",
+ "Access-Control-Request-Method" => "GET"
+ }
+
+ assert_response :success
+ assert_equal "*", response.headers["Access-Control-Allow-Origin"]
+ assert_equal "Origin", response.headers["Vary"]
+ assert_equal "application/xml", response.media_type
end
def test_non_api_routes_dont_allow_cross_origin_requests
- process :options, "/", :headers => {
+ options "/", :headers => {
"Origin" => "http://www.example.com",
"Access-Control-Request-Method" => "GET"
}
assert_nil response.headers["Access-Control-Allow-Origin"]
assert_nil response.media_type
assert_equal "", response.body
+
+ get "/", :headers => {
+ "Origin" => "http://www.example.com",
+ "Access-Control-Request-Method" => "GET"
+ }
+
+ assert_response :success
+ assert_nil response.headers["Access-Control-Allow-Origin"]
+ assert_equal "text/html", response.media_type
end
end