test/failure_app_test.rb in devise-3.2.3 vs test/failure_app_test.rb in devise-3.2.4

- old
+ new

@@ -8,11 +8,11 @@ end end class FailureWithI18nOptions < Devise::FailureApp def i18n_options(options) - options.merge(:name => 'Steve') + options.merge(name: 'Steve') end end def self.context(name, &block) instance_eval(&block) @@ -21,15 +21,15 @@ def call_failure(env_params={}) env = { 'REQUEST_URI' => 'http://test.host/', 'HTTP_HOST' => 'test.host', 'REQUEST_METHOD' => 'GET', - 'warden.options' => { :scope => :user }, + 'warden.options' => { scope: :user }, 'rack.session' => {}, 'action_dispatch.request.formats' => Array(env_params.delete('formats') || Mime::HTML), 'rack.input' => "", - 'warden' => OpenStruct.new(:message => nil) + 'warden' => OpenStruct.new(message: nil) }.merge!(env_params) @response = (env.delete(:app) || Devise::FailureApp).call(env).to_a @request = ActionDispatch::Request.new(env) end @@ -47,41 +47,41 @@ assert_equal 302, @response.first assert_equal 'http://test.host/users/sign_in', @response.second['Location'] end test 'returns to the root path if no session path is available' do - swap Devise, :router_name => :fake_app do - call_failure :app => RootFailureApp + swap Devise, router_name: :fake_app do + call_failure app: RootFailureApp assert_equal 302, @response.first assert_equal 'You need to sign in or sign up before continuing.', @request.flash[:alert] assert_equal 'http://test.host/', @response.second['Location'] end end if Rails.application.config.respond_to?(:relative_url_root) test 'returns to the default redirect location considering the relative url root' do - swap Rails.application.config, :relative_url_root => "/sample" do + swap Rails.application.config, relative_url_root: "/sample" do call_failure assert_equal 302, @response.first assert_equal 'http://test.host/sample/users/sign_in', @response.second['Location'] end end end test 'uses the proxy failure message as symbol' do - call_failure('warden' => OpenStruct.new(:message => :invalid)) + call_failure('warden' => OpenStruct.new(message: :invalid)) assert_equal 'Invalid email or password.', @request.flash[:alert] assert_equal 'http://test.host/users/sign_in', @response.second["Location"] end test 'uses custom i18n options' do - call_failure('warden' => OpenStruct.new(:message => :does_not_exist), :app => FailureWithI18nOptions) + call_failure('warden' => OpenStruct.new(message: :does_not_exist), app: FailureWithI18nOptions) assert_equal 'User Steve does not exist', @request.flash[:alert] end test 'uses the proxy failure message as string' do - call_failure('warden' => OpenStruct.new(:message => 'Hello world')) + call_failure('warden' => OpenStruct.new(message: 'Hello world')) assert_equal 'Hello world', @request.flash[:alert] assert_equal 'http://test.host/users/sign_in', @response.second["Location"] end test 'set content type to default text/html' do @@ -95,18 +95,18 @@ assert_match(/redirected/, @response.last.body) assert_match(/users\/sign_in/, @response.last.body) end test 'works for any navigational format' do - swap Devise, :navigational_formats => [:xml] do + swap Devise, navigational_formats: [:xml] do call_failure('formats' => Mime::XML) assert_equal 302, @response.first end end test 'redirects the correct format if it is a non-html format request' do - swap Devise, :navigational_formats => [:js] do + swap Devise, navigational_formats: [:js] do call_failure('formats' => Mime::JS) assert_equal 'http://test.host/users/sign_in.js', @response.second["Location"] end end end @@ -138,57 +138,57 @@ call_failure('formats' => Mime::XML) assert_equal 'Basic realm="Application"', @response.second["WWW-Authenticate"] end test 'does not return WWW-authenticate headers if model does not allow' do - swap Devise, :http_authenticatable => false do + swap Devise, http_authenticatable: false do call_failure('formats' => Mime::XML) assert_nil @response.second["WWW-Authenticate"] end end test 'works for any non navigational format' do - swap Devise, :navigational_formats => [] do + swap Devise, navigational_formats: [] do call_failure('formats' => Mime::HTML) assert_equal 401, @response.first end end test 'uses the failure message as response body' do - call_failure('formats' => Mime::XML, 'warden' => OpenStruct.new(:message => :invalid)) + call_failure('formats' => Mime::XML, 'warden' => OpenStruct.new(message: :invalid)) assert_match '<error>Invalid email or password.</error>', @response.third.body end context 'on ajax call' do context 'when http_authenticatable_on_xhr is false' do test 'dont return 401 with navigational formats' do - swap Devise, :http_authenticatable_on_xhr => false do + swap Devise, http_authenticatable_on_xhr: false do call_failure('formats' => Mime::HTML, 'HTTP_X_REQUESTED_WITH' => 'XMLHttpRequest') assert_equal 302, @response.first assert_equal 'http://test.host/users/sign_in', @response.second["Location"] end end test 'dont return 401 with non navigational formats' do - swap Devise, :http_authenticatable_on_xhr => false do + swap Devise, http_authenticatable_on_xhr: false do call_failure('formats' => Mime::JSON, 'HTTP_X_REQUESTED_WITH' => 'XMLHttpRequest') assert_equal 302, @response.first assert_equal 'http://test.host/users/sign_in.json', @response.second["Location"] end end end context 'when http_authenticatable_on_xhr is true' do test 'return 401' do - swap Devise, :http_authenticatable_on_xhr => true do + swap Devise, http_authenticatable_on_xhr: true do call_failure('formats' => Mime::HTML, 'HTTP_X_REQUESTED_WITH' => 'XMLHttpRequest') assert_equal 401, @response.first end end test 'skip WWW-Authenticate header' do - swap Devise, :http_authenticatable_on_xhr => true do + swap Devise, http_authenticatable_on_xhr: true do call_failure('formats' => Mime::HTML, 'HTTP_X_REQUESTED_WITH' => 'XMLHttpRequest') assert_nil @response.second['WWW-Authenticate'] end end end @@ -196,32 +196,32 @@ end context 'With recall' do test 'calls the original controller if invalid email or password' do env = { - "warden.options" => { :recall => "devise/sessions#new", :attempted_path => "/users/sign_in" }, + "warden.options" => { recall: "devise/sessions#new", attempted_path: "/users/sign_in" }, "devise.mapping" => Devise.mappings[:user], "warden" => stub_everything } call_failure(env) assert @response.third.body.include?('<h2>Sign in</h2>') assert @response.third.body.include?('Invalid email or password.') end test 'calls the original controller if not confirmed email' do env = { - "warden.options" => { :recall => "devise/sessions#new", :attempted_path => "/users/sign_in", :message => :unconfirmed }, + "warden.options" => { recall: "devise/sessions#new", attempted_path: "/users/sign_in", message: :unconfirmed }, "devise.mapping" => Devise.mappings[:user], "warden" => stub_everything } call_failure(env) assert @response.third.body.include?('<h2>Sign in</h2>') assert @response.third.body.include?('You have to confirm your account before continuing.') end test 'calls the original controller if inactive account' do env = { - "warden.options" => { :recall => "devise/sessions#new", :attempted_path => "/users/sign_in", :message => :inactive }, + "warden.options" => { recall: "devise/sessions#new", attempted_path: "/users/sign_in", message: :inactive }, "devise.mapping" => Devise.mappings[:user], "warden" => stub_everything } call_failure(env) assert @response.third.body.include?('<h2>Sign in</h2>')