Browse Source

Spec response for forgery (#3248)

Remove protect_from_forgery in ApiController, which is disabled by the
following skip_before_action, as well.
closed-social-glitch-2
Akihiko Odaki (@fn_aki@pawoo.net) 6 years ago
committed by Eugen Rochko
parent
commit
10768aa204
3 changed files with 28 additions and 2 deletions
  1. +0
    -2
      app/controllers/api_controller.rb
  2. +18
    -0
      spec/controllers/api_controller_spec.rb
  3. +10
    -0
      spec/controllers/application_controller_spec.rb

+ 0
- 2
app/controllers/api_controller.rb View File

@ -4,8 +4,6 @@ class ApiController < ApplicationController
DEFAULT_STATUSES_LIMIT = 20
DEFAULT_ACCOUNTS_LIMIT = 40
protect_from_forgery with: :null_session
skip_before_action :verify_authenticity_token
skip_before_action :store_current_location

+ 18
- 0
spec/controllers/api_controller_spec.rb View File

@ -0,0 +1,18 @@
# frozen_string_literal: true
require 'rails_helper'
describe ApiController, type: :controller do
controller do
def success
head 200
end
end
it 'does not protect from forgery' do
ActionController::Base.allow_forgery_protection = true
routes.draw { post 'success' => 'api#success' }
post 'success'
expect(response).to have_http_status(:success)
end
end

+ 10
- 0
spec/controllers/application_controller_spec.rb View File

@ -37,6 +37,16 @@ describe ApplicationController, type: :controller do
end
end
context 'forgery' do
subject do
ActionController::Base.allow_forgery_protection = true
routes.draw { post 'success' => 'anonymous#success' }
post 'success'
end
include_examples 'respond_with_error', 422
end
it "does not force ssl if LOCAL_HTTPS is not 'true'" do
routes.draw { get 'success' => 'anonymous#success' }
ClimateControl.modify LOCAL_HTTPS: '' do

Loading…
Cancel
Save