Updated mcollective.init according to OSCI-658
[packages/precise/mcollective.git] / lib / mcollective / vendor / i18n / lib / i18n / tests / basics.rb
diff --git a/lib/mcollective/vendor/i18n/lib/i18n/tests/basics.rb b/lib/mcollective/vendor/i18n/lib/i18n/tests/basics.rb
new file mode 100644 (file)
index 0000000..101e7c5
--- /dev/null
@@ -0,0 +1,54 @@
+module I18n
+  module Tests
+    module Basics
+      def teardown
+        I18n.available_locales = nil
+      end
+
+      test "available_locales returns the locales stored to the backend by default" do
+        I18n.backend.store_translations('de', :foo => 'bar')
+        I18n.backend.store_translations('en', :foo => 'foo')
+
+        assert I18n.available_locales.include?(:de)
+        assert I18n.available_locales.include?(:en)
+      end
+
+      test "available_locales can be set to something else independently from the actual locale data" do
+        I18n.backend.store_translations('de', :foo => 'bar')
+        I18n.backend.store_translations('en', :foo => 'foo')
+
+        I18n.available_locales = :foo
+        assert_equal [:foo], I18n.available_locales
+
+        I18n.available_locales = [:foo, 'bar']
+        assert_equal [:foo, :bar], I18n.available_locales
+
+        I18n.available_locales = nil
+        assert I18n.available_locales.include?(:de)
+        assert I18n.available_locales.include?(:en)
+      end
+
+      test "available_locales memoizes when set explicitely" do
+        I18n.backend.expects(:available_locales).never
+        I18n.available_locales = [:foo]
+        I18n.backend.store_translations('de', :bar => 'baz')
+        I18n.reload!
+        assert_equal [:foo], I18n.available_locales
+      end
+
+      test "available_locales delegates to the backend when not set explicitely" do
+        I18n.backend.expects(:available_locales).twice
+        assert_equal I18n.available_locales, I18n.available_locales
+      end
+
+      test "storing a nil value as a translation removes it from the available locale data" do
+        I18n.backend.store_translations(:en, :to_be_deleted => 'bar')
+        assert_equal 'bar', I18n.t(:to_be_deleted, :default => 'baz')
+
+        I18n.cache_store.clear if I18n.respond_to?(:cache_store) && I18n.cache_store
+        I18n.backend.store_translations(:en, :to_be_deleted => nil)
+        assert_equal 'baz', I18n.t(:to_be_deleted, :default => 'baz')
+      end
+    end
+  end
+end