101e7c52278d275a8f3e242b73d0f841ed190d56
[packages/precise/mcollective.git] / lib / mcollective / vendor / i18n / lib / i18n / tests / basics.rb
1 module I18n
2   module Tests
3     module Basics
4       def teardown
5         I18n.available_locales = nil
6       end
7
8       test "available_locales returns the locales stored to the backend by default" do
9         I18n.backend.store_translations('de', :foo => 'bar')
10         I18n.backend.store_translations('en', :foo => 'foo')
11
12         assert I18n.available_locales.include?(:de)
13         assert I18n.available_locales.include?(:en)
14       end
15
16       test "available_locales can be set to something else independently from the actual locale data" do
17         I18n.backend.store_translations('de', :foo => 'bar')
18         I18n.backend.store_translations('en', :foo => 'foo')
19
20         I18n.available_locales = :foo
21         assert_equal [:foo], I18n.available_locales
22
23         I18n.available_locales = [:foo, 'bar']
24         assert_equal [:foo, :bar], I18n.available_locales
25
26         I18n.available_locales = nil
27         assert I18n.available_locales.include?(:de)
28         assert I18n.available_locales.include?(:en)
29       end
30
31       test "available_locales memoizes when set explicitely" do
32         I18n.backend.expects(:available_locales).never
33         I18n.available_locales = [:foo]
34         I18n.backend.store_translations('de', :bar => 'baz')
35         I18n.reload!
36         assert_equal [:foo], I18n.available_locales
37       end
38
39       test "available_locales delegates to the backend when not set explicitely" do
40         I18n.backend.expects(:available_locales).twice
41         assert_equal I18n.available_locales, I18n.available_locales
42       end
43
44       test "storing a nil value as a translation removes it from the available locale data" do
45         I18n.backend.store_translations(:en, :to_be_deleted => 'bar')
46         assert_equal 'bar', I18n.t(:to_be_deleted, :default => 'baz')
47
48         I18n.cache_store.clear if I18n.respond_to?(:cache_store) && I18n.cache_store
49         I18n.backend.store_translations(:en, :to_be_deleted => nil)
50         assert_equal 'baz', I18n.t(:to_be_deleted, :default => 'baz')
51       end
52     end
53   end
54 end