diff --git a/lib/devise/failure_app.rb b/lib/devise/failure_app.rb
index aeffb04f87..e71e73c1c2 100644
--- a/lib/devise/failure_app.rb
+++ b/lib/devise/failure_app.rb
@@ -107,7 +107,7 @@ def i18n_message(default = nil)
options[:authentication_keys] = keys.join(I18n.translate(:"support.array.words_connector"))
options = i18n_options(options)
- I18n.t(:"#{scope}.#{message}", options)
+ I18n.t(:"#{scope}.#{message}", options).humanize
else
message.to_s
end
diff --git a/test/failure_app_test.rb b/test/failure_app_test.rb
index f852f239c6..ee95029528 100644
--- a/test/failure_app_test.rb
+++ b/test/failure_app_test.rb
@@ -153,20 +153,30 @@ def call_failure(env_params={})
test 'uses the proxy failure message as symbol' do
call_failure('warden' => OpenStruct.new(message: :invalid))
- assert_equal 'Invalid Email or password.', @request.flash[:alert]
+ assert_equal 'Invalid email or password.', @request.flash[:alert]
assert_equal 'http://test.host/users/sign_in', @response.second["Location"]
end
test 'supports authentication_keys as a Hash for the flash message' do
swap Devise, authentication_keys: { email: true, login: true } do
call_failure('warden' => OpenStruct.new(message: :invalid))
- assert_equal 'Invalid Email, Login or password.', @request.flash[:alert]
+ assert_equal 'Invalid email, login or password.', @request.flash[:alert]
end
end
+ test 'downcases authentication_keys for the flash message' do
+ call_failure('warden' => OpenStruct.new(message: :invalid))
+ assert_equal 'Invalid email or password.', @request.flash[:alert]
+ end
+
+ test 'humanizes the flash message' do
+ call_failure('warden' => OpenStruct.new(message: :invalid))
+ assert_equal @request.flash[:alert], @request.flash[:alert].humanize
+ end
+
test 'uses custom i18n options' do
call_failure('warden' => OpenStruct.new(message: :does_not_exist), app: FailureWithI18nOptions)
- assert_equal 'User Steve does not exist', @request.flash[:alert]
+ assert_equal 'User steve does not exist', @request.flash[:alert]
end
test 'uses the proxy failure message as string' do
@@ -246,7 +256,7 @@ def call_failure(env_params={})
test 'uses the failure message as response body' do
call_failure('formats' => Mime[:xml], 'warden' => OpenStruct.new(message: :invalid))
- assert_match 'Invalid Email or password.', @response.third.body
+ assert_match 'Invalid email or password.', @response.third.body
end
context 'on ajax call' do
@@ -295,7 +305,7 @@ def call_failure(env_params={})
}
call_failure(env)
assert @response.third.body.include?('
Log in
')
- assert @response.third.body.include?('Invalid Email or password.')
+ assert @response.third.body.include?('Invalid email or password.')
end
test 'calls the original controller if not confirmed email' do
@@ -330,7 +340,7 @@ def call_failure(env_params={})
}
call_failure(env)
assert @response.third.body.include?('Log in
')
- assert @response.third.body.include?('Invalid Email or password.')
+ assert @response.third.body.include?('Invalid email or password.')
assert_equal @request.env["SCRIPT_NAME"], '/sample'
assert_equal @request.env["PATH_INFO"], '/users/sign_in'
end
diff --git a/test/integration/authenticatable_test.rb b/test/integration/authenticatable_test.rb
index 6b1d5799f7..ce3a723758 100644
--- a/test/integration/authenticatable_test.rb
+++ b/test/integration/authenticatable_test.rb
@@ -557,7 +557,7 @@ class AuthenticationKeysTest < Devise::IntegrationTest
test 'missing authentication keys cause authentication to abort' do
swap Devise, authentication_keys: [:subdomain] do
sign_in_as_user
- assert_contain "Invalid Subdomain or password."
+ assert_contain "Invalid subdomain or password."
refute warden.authenticated?(:user)
end
end
@@ -596,7 +596,7 @@ class AuthenticationRequestKeysTest < Devise::IntegrationTest
swap Devise, request_keys: [:subdomain] do
sign_in_as_user
- assert_contain "Invalid Email or password."
+ assert_contain "Invalid email or password."
refute warden.authenticated?(:user)
end
end
diff --git a/test/integration/confirmable_test.rb b/test/integration/confirmable_test.rb
index 73563f283f..5218c53318 100644
--- a/test/integration/confirmable_test.rb
+++ b/test/integration/confirmable_test.rb
@@ -142,7 +142,7 @@ def resend_confirmation
fill_in 'password', with: 'invalid'
end
- assert_contain 'Invalid Email or password'
+ assert_contain 'Invalid email or password'
refute warden.authenticated?(:user)
end
end
diff --git a/test/integration/database_authenticatable_test.rb b/test/integration/database_authenticatable_test.rb
index c367ce0719..ea942ab21b 100644
--- a/test/integration/database_authenticatable_test.rb
+++ b/test/integration/database_authenticatable_test.rb
@@ -70,7 +70,7 @@ class DatabaseAuthenticationTest < Devise::IntegrationTest
fill_in 'password', with: 'abcdef'
end
- assert_contain 'Invalid Email or password'
+ assert_contain 'Invalid email or password'
refute warden.authenticated?(:admin)
end
diff --git a/test/integration/http_authenticatable_test.rb b/test/integration/http_authenticatable_test.rb
index 3a52c571fb..461aae0cea 100644
--- a/test/integration/http_authenticatable_test.rb
+++ b/test/integration/http_authenticatable_test.rb
@@ -52,7 +52,7 @@ class HttpAuthenticationTest < Devise::IntegrationTest
sign_in_as_new_user_with_http("unknown")
assert_equal 401, status
assert_equal "application/xml; charset=utf-8", headers["Content-Type"]
- assert_match "Invalid Email or password.", response.body
+ assert_match "Invalid email or password.", response.body
end
test 'returns a custom response with www-authenticate and chosen realm' do