From 4a8f9a9ba8ad978939e349d8fdec1fffc2a47761 Mon Sep 17 00:00:00 2001 From: Steve Ross Date: Wed, 10 Nov 2010 11:04:06 -0800 Subject: [PATCH] set_flash_message: Added conditional to make certain flash entries are not set if message is blank. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: José Valim --- lib/devise/controllers/internal_helpers.rb | 3 ++- test/controllers/internal_helpers_test.rb | 16 ++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/lib/devise/controllers/internal_helpers.rb b/lib/devise/controllers/internal_helpers.rb index 25972282..b776679c 100644 --- a/lib/devise/controllers/internal_helpers.rb +++ b/lib/devise/controllers/internal_helpers.rb @@ -102,7 +102,8 @@ module Devise options[:scope] = "devise.#{controller_name}" options[:default] = Array(options[:default]).unshift(kind.to_sym) options[:resource_name] = resource_name - flash[key] = I18n.t("#{resource_name}.#{kind}", options) + message = I18n.t("#{resource_name}.#{kind}", options) + flash[key] = message.blank? ? nil : message end def clean_up_passwords(object) #:nodoc: diff --git a/test/controllers/internal_helpers_test.rb b/test/controllers/internal_helpers_test.rb index 20c3c994..415de63f 100644 --- a/test/controllers/internal_helpers_test.rb +++ b/test/controllers/internal_helpers_test.rb @@ -53,4 +53,20 @@ class HelpersTest < ActionController::TestCase test 'is a devise controller' do assert @controller.devise_controller? end + + test 'does not issue blank flash messages' do + MyController.send(:public, :set_flash_message) + I18n.stubs(:t).returns(' ') + @controller.set_flash_message :notice, :send_instructions + assert flash[:notice].nil? + MyController.send(:protected, :set_flash_message) + end + + test 'issues non-blank flash messages normally' do + MyController.send(:public, :set_flash_message) + I18n.stubs(:t).returns('non-blank') + @controller.set_flash_message :notice, :send_instructions + assert flash[:notice] == 'non-blank' + MyController.send(:protected, :set_flash_message) + end end