PageRenderTime 92ms CodeModel.GetById 29ms RepoModel.GetById 1ms app.codeStats 0ms

/lib/gemcache/ruby/1.9.1/gems/i18n-0.6.1/test/backend/fallbacks_test.rb

https://bitbucket.org/technopunk2099/metasploit-framework
Ruby | 125 lines | 103 code | 22 blank | 0 comment | 12 complexity | 2c6389a804fe7c9b1311fb6b9405e390 MD5 | raw file
Possible License(s): BSD-3-Clause, Apache-2.0, LGPL-2.1, GPL-2.0, MIT
  1. require 'test_helper'
  2. class I18nBackendFallbacksTranslateTest < Test::Unit::TestCase
  3. class Backend < I18n::Backend::Simple
  4. include I18n::Backend::Fallbacks
  5. end
  6. def setup
  7. I18n.backend = Backend.new
  8. store_translations(:en, :foo => 'Foo in :en', :bar => 'Bar in :en', :buz => 'Buz in :en')
  9. store_translations(:de, :bar => 'Bar in :de', :baz => 'Baz in :de')
  10. store_translations(:'de-DE', :baz => 'Baz in :de-DE')
  11. end
  12. test "still returns an existing translation as usual" do
  13. assert_equal 'Foo in :en', I18n.t(:foo, :locale => :en)
  14. assert_equal 'Bar in :de', I18n.t(:bar, :locale => :de)
  15. assert_equal 'Baz in :de-DE', I18n.t(:baz, :locale => :'de-DE')
  16. end
  17. test "returns the :en translation for a missing :de translation" do
  18. assert_equal 'Foo in :en', I18n.t(:foo, :locale => :de)
  19. end
  20. test "returns the :de translation for a missing :'de-DE' translation" do
  21. assert_equal 'Bar in :de', I18n.t(:bar, :locale => :'de-DE')
  22. end
  23. test "returns the :en translation for translation missing in both :de and :'de-De'" do
  24. assert_equal 'Buz in :en', I18n.t(:buz, :locale => :'de-DE')
  25. end
  26. test "returns the :de translation for a missing :'de-DE' when :default is a String" do
  27. assert_equal 'Bar in :de', I18n.t(:bar, :locale => :'de-DE', :default => "Default Bar")
  28. assert_equal "Default Bar", I18n.t(:missing_bar, :locale => :'de-DE', :default => "Default Bar")
  29. end
  30. test "returns the :de translation for a missing :'de-DE' when defaults is a Symbol (which exists in :en)" do
  31. assert_equal "Bar in :de", I18n.t(:bar, :locale => :'de-DE', :default => [:buz])
  32. end
  33. test "returns the :'de-DE' default :baz translation for a missing :'de-DE' (which exists in :de)" do
  34. assert_equal "Baz in :de-DE", I18n.t(:bar, :locale => :'de-DE', :default => [:baz])
  35. end
  36. test "returns the :de translation for a missing :'de-DE' when :default is a Proc" do
  37. assert_equal 'Bar in :de', I18n.t(:bar, :locale => :'de-DE', :default => Proc.new { "Default Bar" })
  38. assert_equal "Default Bar", I18n.t(:missing_bar, :locale => :'de-DE', :default => Proc.new { "Default Bar" })
  39. end
  40. test "returns the :de translation for a missing :'de-DE' when :default is a Hash" do
  41. assert_equal 'Bar in :de', I18n.t(:bar, :locale => :'de-DE', :default => {})
  42. assert_equal({}, I18n.t(:missing_bar, :locale => :'de-DE', :default => {}))
  43. end
  44. test "returns the :'de-DE' default :baz translation for a missing :'de-DE' when defaults contains Symbol" do
  45. assert_equal 'Baz in :de-DE', I18n.t(:missing_foo, :locale => :'de-DE', :default => [:baz, "Default Bar"])
  46. end
  47. test "returns the defaults translation for a missing :'de-DE' when defaults contains a String or Proc before Symbol" do
  48. assert_equal "Default Bar", I18n.t(:missing_foo, :locale => :'de-DE', :default => [:missing_bar, "Default Bar", :baz])
  49. assert_equal "Default Bar", I18n.t(:missing_foo, :locale => :'de-DE', :default => [:missing_bar, Proc.new { "Default Bar" }, :baz])
  50. end
  51. test "returns the default translation for a missing :'de-DE' and existing :de when default is a Hash" do
  52. assert_equal 'Default 6 Bars', I18n.t(:missing_foo, :locale => :'de-DE', :default => [:missing_bar, {:other => "Default %{count} Bars"}, "Default Bar"], :count => 6)
  53. end
  54. test "raises I18n::MissingTranslationData exception when no translation was found" do
  55. assert_raise(I18n::MissingTranslationData) { I18n.t(:faa, :locale => :en, :raise => true) }
  56. assert_raise(I18n::MissingTranslationData) { I18n.t(:faa, :locale => :de, :raise => true) }
  57. end
  58. test "should ensure that default is not splitted on new line char" do
  59. assert_equal "Default \n Bar", I18n.t(:missing_bar, :default => "Default \n Bar")
  60. end
  61. end
  62. class I18nBackendFallbacksLocalizeTest < Test::Unit::TestCase
  63. class Backend < I18n::Backend::Simple
  64. include I18n::Backend::Fallbacks
  65. end
  66. def setup
  67. I18n.backend = Backend.new
  68. store_translations(:en, :date => { :formats => { :en => 'en' }, :day_names => %w(Sunday) })
  69. store_translations(:de, :date => { :formats => { :de => 'de' } })
  70. end
  71. test "still uses an existing format as usual" do
  72. assert_equal 'en', I18n.l(Date.today, :format => :en, :locale => :en)
  73. end
  74. test "looks up and uses a fallback locale's format for a key missing in the given locale (1)" do
  75. assert_equal 'en', I18n.l(Date.today, :format => :en, :locale => :de)
  76. end
  77. test "looks up and uses a fallback locale's format for a key missing in the given locale (2)" do
  78. assert_equal 'de', I18n.l(Date.today, :format => :de, :locale => :'de-DE')
  79. end
  80. test "still uses an existing day name translation as usual" do
  81. assert_equal 'Sunday', I18n.l(Date.new(2010, 1, 3), :format => '%A', :locale => :en)
  82. end
  83. test "uses a fallback locale's translation for a key missing in the given locale" do
  84. assert_equal 'Sunday', I18n.l(Date.new(2010, 1, 3), :format => '%A', :locale => :de)
  85. end
  86. end
  87. class I18nBackendFallbacksWithChainTest < Test::Unit::TestCase
  88. class Backend < I18n::Backend::Simple
  89. include I18n::Backend::Fallbacks
  90. end
  91. def setup
  92. backend = Backend.new
  93. backend.store_translations(:de, :foo => 'FOO')
  94. I18n.backend = I18n::Backend::Chain.new(I18n::Backend::Simple.new, backend)
  95. end
  96. test "falls back from de-DE to de when there is no translation for de-DE available" do
  97. assert_equal 'FOO', I18n.t(:foo, :locale => :'de-DE')
  98. end
  99. end