5 I18n.available_locales = nil
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')
12 assert I18n.available_locales.include?(:de)
13 assert I18n.available_locales.include?(:en)
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')
20 I18n.available_locales = :foo
21 assert_equal [:foo], I18n.available_locales
23 I18n.available_locales = [:foo, 'bar']
24 assert_equal [:foo, :bar], I18n.available_locales
26 I18n.available_locales = nil
27 assert I18n.available_locales.include?(:de)
28 assert I18n.available_locales.include?(:en)
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')
36 assert_equal [:foo], I18n.available_locales
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
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')
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')