diff options
Diffstat (limited to 'jni/ruby/test/rdoc/test_rdoc_i18n_locale.rb')
-rw-r--r-- | jni/ruby/test/rdoc/test_rdoc_i18n_locale.rb | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/jni/ruby/test/rdoc/test_rdoc_i18n_locale.rb b/jni/ruby/test/rdoc/test_rdoc_i18n_locale.rb new file mode 100644 index 0000000..69de88a --- /dev/null +++ b/jni/ruby/test/rdoc/test_rdoc_i18n_locale.rb @@ -0,0 +1,73 @@ +require 'rdoc/test_case' + +class TestRDocI18nLocale < RDoc::TestCase + + def setup + super + @locale = locale('fr') + + @tmpdir = File.join Dir.tmpdir, "test_rdoc_i18n_locale_#{$$}" + FileUtils.mkdir_p @tmpdir + + @locale_dir = @tmpdir + end + + def teardown + FileUtils.rm_rf @tmpdir + super + end + + def test_name + assert_equal 'fr', locale('fr').name + end + + def test_load_nonexistent_po + File.stub(:exist?, false) do + refute @locale.load('nonexsitent-locale') + end + end + + def test_load_existent_po + begin + require 'gettext/po_parser' + rescue LoadError + skip 'gettext gem is not found' + end + + fr_locale_dir = File.join @locale_dir, 'fr' + FileUtils.mkdir_p fr_locale_dir + File.open File.join(fr_locale_dir, 'rdoc.po'), 'w' do |po| + po.puts <<-PO +msgid "" +msgstr "" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "Hello" +msgstr "Bonjour" + PO + end + + assert @locale.load(@locale_dir) + assert_equal 'Bonjour', @locale.translate('Hello') + end + + def test_translate_existent_message + messages = @locale.instance_variable_get(:@messages) + messages['Hello'] = 'Bonjour' + assert_equal 'Bonjour', @locale.translate('Hello') + end + + def test_translate_nonexistent_message + assert_equal 'Hello', @locale.translate('Hello') + end + + private + + def locale(name) + RDoc::I18n::Locale.new(name) + end + +end |