2008-10-27 07:47:01 +01:00
require 'abstract_unit'
class ActiveRecordHelperI18nTest < Test :: Unit :: TestCase
include ActionView :: Helpers :: ActiveRecordHelper
attr_reader :request
uses_mocha 'active_record_helper_i18n_test' do
def setup
@object = stub :errors = > stub ( :count = > 1 , :full_messages = > [ 'full_messages' ] )
@object_name = 'book'
stubs ( :content_tag ) . returns 'content_tag'
2008-11-24 22:53:39 +01:00
I18n . stubs ( :t ) . with ( :'header' , :locale = > 'en' , :scope = > [ :activerecord , :errors , :template ] , :count = > 1 , :model = > '' ) . returns " 1 error prohibited this from being saved "
I18n . stubs ( :t ) . with ( :'body' , :locale = > 'en' , :scope = > [ :activerecord , :errors , :template ] ) . returns 'There were problems with the following fields:'
2008-10-27 07:47:01 +01:00
end
def test_error_messages_for_given_a_header_option_it_does_not_translate_header_message
2008-11-24 22:53:39 +01:00
I18n . expects ( :translate ) . with ( :'header' , :locale = > 'en' , :scope = > [ :activerecord , :errors , :template ] , :count = > 1 , :model = > '' ) . never
error_messages_for ( :object = > @object , :header_message = > 'header message' , :locale = > 'en' )
2008-10-27 07:47:01 +01:00
end
def test_error_messages_for_given_no_header_option_it_translates_header_message
2008-11-24 22:53:39 +01:00
I18n . expects ( :t ) . with ( :'header' , :locale = > 'en' , :scope = > [ :activerecord , :errors , :template ] , :count = > 1 , :model = > '' ) . returns 'header message'
2008-10-27 07:47:01 +01:00
I18n . expects ( :t ) . with ( '' , :default = > '' , :count = > 1 , :scope = > [ :activerecord , :models ] ) . once . returns ''
2008-11-24 22:53:39 +01:00
error_messages_for ( :object = > @object , :locale = > 'en' )
2008-10-27 07:47:01 +01:00
end
def test_error_messages_for_given_a_message_option_it_does_not_translate_message
2008-11-24 22:53:39 +01:00
I18n . expects ( :t ) . with ( :'body' , :locale = > 'en' , :scope = > [ :activerecord , :errors , :template ] ) . never
2008-10-27 07:47:01 +01:00
I18n . expects ( :t ) . with ( '' , :default = > '' , :count = > 1 , :scope = > [ :activerecord , :models ] ) . once . returns ''
2008-11-24 22:53:39 +01:00
error_messages_for ( :object = > @object , :message = > 'message' , :locale = > 'en' )
2008-10-27 07:47:01 +01:00
end
def test_error_messages_for_given_no_message_option_it_translates_message
2008-11-24 22:53:39 +01:00
I18n . expects ( :t ) . with ( :'body' , :locale = > 'en' , :scope = > [ :activerecord , :errors , :template ] ) . returns 'There were problems with the following fields:'
2008-10-27 07:47:01 +01:00
I18n . expects ( :t ) . with ( '' , :default = > '' , :count = > 1 , :scope = > [ :activerecord , :models ] ) . once . returns ''
2008-11-24 22:53:39 +01:00
error_messages_for ( :object = > @object , :locale = > 'en' )
2008-10-27 07:47:01 +01:00
end
def test_error_messages_for_given_object_name_it_translates_object_name
2008-11-24 22:53:39 +01:00
I18n . expects ( :t ) . with ( :header , :locale = > 'en' , :scope = > [ :activerecord , :errors , :template ] , :count = > 1 , :model = > @object_name ) . returns " 1 error prohibited this #{ @object_name } from being saved "
2008-10-27 07:47:01 +01:00
I18n . expects ( :t ) . with ( @object_name , :default = > @object_name , :count = > 1 , :scope = > [ :activerecord , :models ] ) . once . returns @object_name
2008-11-24 22:53:39 +01:00
error_messages_for ( :object = > @object , :locale = > 'en' , :object_name = > @object_name )
2008-10-27 07:47:01 +01:00
end
end
end