summaryrefslogtreecommitdiff
path: root/test/rdoc/test_rdoc_i18n_locale.rb
diff options
context:
space:
mode:
authorhsbt <hsbt@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2014-09-05 01:41:25 +0000
committerhsbt <hsbt@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2014-09-05 01:41:25 +0000
commitd42d6e690e3f553b971322eae783ac6b0d4d9692 (patch)
tree2004bf4517ee7b81466c300cf30092e62e65467e /test/rdoc/test_rdoc_i18n_locale.rb
parent670c6e8ce9d4a12bb4832e10fab27365398649bf (diff)
* lib/rdoc.rb, lib/rdoc, test/rdoc: Update to RDoc 4.2.0.alpha(313287)
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47391 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/rdoc/test_rdoc_i18n_locale.rb')
-rw-r--r--test/rdoc/test_rdoc_i18n_locale.rb73
1 files changed, 73 insertions, 0 deletions
diff --git a/test/rdoc/test_rdoc_i18n_locale.rb b/test/rdoc/test_rdoc_i18n_locale.rb
new file mode 100644
index 0000000000..69de88a9f2
--- /dev/null
+++ b/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