Mercurial > hg > soundsoftware-site
diff test/unit/lib/redmine/i18n_test.rb @ 1115:433d4f72a19b redmine-2.2
Update to Redmine SVN revision 11137 on 2.2-stable branch
author | Chris Cannam |
---|---|
date | Mon, 07 Jan 2013 12:01:42 +0000 |
parents | cbce1fd3b1b7 |
children | bb32da3bea34 622f24f53b42 261b3d9a4903 |
line wrap: on
line diff
--- a/test/unit/lib/redmine/i18n_test.rb Wed Jun 27 14:54:18 2012 +0100 +++ b/test/unit/lib/redmine/i18n_test.rb Mon Jan 07 12:01:42 2013 +0000 @@ -1,5 +1,5 @@ # Redmine - project management software -# Copyright (C) 2006-2011 Jean-Philippe Lang +# Copyright (C) 2006-2012 Jean-Philippe Lang # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License @@ -22,7 +22,11 @@ include ActionView::Helpers::NumberHelper def setup - @hook_module = Redmine::Hook + User.current.language = nil + end + + def teardown + set_language_if_valid 'en' end def test_date_format_default @@ -39,6 +43,18 @@ assert_equal today.strftime('%d %m %Y'), format_date(today) end + def test_date_format_default_with_user_locale + set_language_if_valid 'es' + today = now = Time.parse('2011-02-20 14:00:00') + Setting.date_format = '%d %B %Y' + User.current.language = 'fr' + s1 = "20 f\xc3\xa9vrier 2011" + s1.force_encoding("UTF-8") if s1.respond_to?(:force_encoding) + assert_equal s1, format_date(today) + User.current.language = nil + assert_equal '20 Febrero 2011', format_date(today) + end + def test_date_and_time_for_each_language Setting.date_format = '' valid_languages.each do |lang| @@ -60,6 +76,15 @@ end end + def test_time_for_each_zone + ActiveSupport::TimeZone.all.each do |zone| + User.current.stubs(:time_zone).returns(zone.name) + assert_nothing_raised "#{zone} failure" do + format_time(Time.now) + end + end + end + def test_time_format set_language_if_valid 'en' now = Time.parse('2011-02-20 15:45:22') @@ -90,6 +115,22 @@ end end + def test_time_format_default_with_user_locale + set_language_if_valid 'en' + User.current.language = 'fr' + now = Time.parse('2011-02-20 15:45:22') + with_settings :time_format => '' do + with_settings :date_format => '' do + assert_equal '20/02/2011 15:45', format_time(now) + assert_equal '15:45', format_time(now, false) + end + with_settings :date_format => '%Y-%m-%d' do + assert_equal '2011-02-20 15:45', format_time(now) + assert_equal '15:45', format_time(now, false) + end + end + end + def test_time_format set_language_if_valid 'en' now = Time.now @@ -112,16 +153,67 @@ valid_languages.each do |lang| set_language_if_valid lang assert_nothing_raised "#{lang} failure" do - number_to_human_size(1024*1024*4) + size = number_to_human_size(257024) + assert_match /251/, size end end end + def test_day_name + set_language_if_valid 'fr' + assert_equal 'dimanche', day_name(0) + assert_equal 'jeudi', day_name(4) + end + + def test_day_letter + set_language_if_valid 'fr' + assert_equal 'd', day_letter(0) + assert_equal 'j', day_letter(4) + end + + def test_number_to_currency_for_each_language + valid_languages.each do |lang| + set_language_if_valid lang + assert_nothing_raised "#{lang} failure" do + number_to_currency(-1000.2) + end + end + end + + def test_number_to_currency_default + set_language_if_valid 'bs' + assert_equal "KM -1000,20", number_to_currency(-1000.2) + set_language_if_valid 'de' + euro_sign = "\xe2\x82\xac" + euro_sign.force_encoding('UTF-8') if euro_sign.respond_to?(:force_encoding) + assert_equal "-1000,20 #{euro_sign}", number_to_currency(-1000.2) + end + def test_valid_languages assert valid_languages.is_a?(Array) assert valid_languages.first.is_a?(Symbol) end + def test_languages_options + options = languages_options + + assert options.is_a?(Array) + assert_equal valid_languages.size, options.size + assert_nil options.detect {|option| !option.is_a?(Array)} + assert_nil options.detect {|option| option.size != 2} + assert_nil options.detect {|option| !option.first.is_a?(String) || !option.last.is_a?(String)} + assert_include ["English", "en"], options + end + + def test_locales_validness + lang_files_count = Dir["#{Rails.root}/config/locales/*.yml"].size + assert_equal lang_files_count, valid_languages.size + valid_languages.each do |lang| + assert set_language_if_valid(lang) + end + set_language_if_valid('en') + end + def test_valid_language to_test = {'fr' => :fr, 'Fr' => :fr, @@ -156,4 +248,22 @@ end assert_equal str_ja_yes, i18n_ja_yes end + + def test_traditional_chinese_locale + set_language_if_valid 'zh-TW' + str_tw = "Traditional Chinese (\xe7\xb9\x81\xe9\xab\x94\xe4\xb8\xad\xe6\x96\x87)" + if str_tw.respond_to?(:force_encoding) + str_tw.force_encoding('UTF-8') + end + assert_equal str_tw, l(:general_lang_name) + end + + def test_french_locale + set_language_if_valid 'fr' + str_fr = "Fran\xc3\xa7ais" + if str_fr.respond_to?(:force_encoding) + str_fr.force_encoding('UTF-8') + end + assert_equal str_fr, l(:general_lang_name) + end end