1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
ruby--ruby/test/rdoc/test_rdoc_i18n_locale.rb
hsbt 98c7058bf7 Merge RDoc 6.0.3 from upstream.
It fixed the several bugs that was found after RDoc 6 releasing.

From: SHIBATA Hiroshi <hsbt@ruby-lang.org>

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62924 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-03-26 05:56:26 +00:00

74 lines
1.5 KiB
Ruby

# frozen_string_literal: true
require 'minitest_helper'
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