From 9ccf0a066d2f482df96709a865a3d302926399a4 Mon Sep 17 00:00:00 2001 From: Stan Lo Date: Mon, 24 Apr 2023 14:03:55 +0100 Subject: [ruby/irb] Add tests for Locale class (https://github.com/ruby/irb/pull/566) https://github.com/ruby/irb/commit/df32e024be --- test/irb/test_locale.rb | 83 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 test/irb/test_locale.rb (limited to 'test') diff --git a/test/irb/test_locale.rb b/test/irb/test_locale.rb new file mode 100644 index 0000000000..89c43699cb --- /dev/null +++ b/test/irb/test_locale.rb @@ -0,0 +1,83 @@ +require "irb" +require "stringio" + +require_relative "helper" + +module TestIRB + class LocaleTestCase < TestCase + def test_initialize_with_en + locale = IRB::Locale.new("en_US.UTF-8") + + assert_equal("en", locale.lang) + assert_equal("US", locale.territory) + assert_equal("UTF-8", locale.encoding.name) + assert_equal(nil, locale.modifier) + end + + def test_initialize_with_ja + locale = IRB::Locale.new("ja_JP.UTF-8") + + assert_equal("ja", locale.lang) + assert_equal("JP", locale.territory) + assert_equal("UTF-8", locale.encoding.name) + assert_equal(nil, locale.modifier) + end + + def test_initialize_with_legacy_ja_encoding_ujis + original_stderr = $stderr + $stderr = StringIO.new + + locale = IRB::Locale.new("ja_JP.ujis") + + assert_equal("ja", locale.lang) + assert_equal("JP", locale.territory) + assert_equal("UTF-8", locale.encoding.name) + assert_equal(nil, locale.modifier) + + assert_include $stderr.string, "ja_JP.ujis is obsolete. use ja_JP.EUC-JP" + ensure + $stderr = original_stderr + end + + def test_initialize_with_legacy_ja_encoding_euc + original_stderr = $stderr + $stderr = StringIO.new + + locale = IRB::Locale.new("ja_JP.euc") + + assert_equal("ja", locale.lang) + assert_equal("JP", locale.territory) + assert_equal("UTF-8", locale.encoding.name) + assert_equal(nil, locale.modifier) + + assert_include $stderr.string, "ja_JP.euc is obsolete. use ja_JP.EUC-JP" + ensure + $stderr = original_stderr + end + + %w(IRB_LANG LC_MESSAGES LC_ALL LANG).each do |env_var| + define_method "test_initialize_with_#{env_var.downcase}" do + original_values = { + "IRB_LANG" => ENV["IRB_LANG"], + "LC_MESSAGES" => ENV["LC_MESSAGES"], + "LC_ALL" => ENV["LC_ALL"], + "LANG" => ENV["LANG"], + } + + ENV["IRB_LANG"] = ENV["LC_MESSAGES"] = ENV["LC_ALL"] = ENV["LANG"] = nil + ENV[env_var] = "zh_TW.UTF-8" + + locale = IRB::Locale.new + + assert_equal("zh", locale.lang) + assert_equal("TW", locale.territory) + assert_equal("UTF-8", locale.encoding.name) + assert_equal(nil, locale.modifier) + ensure + original_values.each do |key, value| + ENV[key] = value + end + end + end + end +end -- cgit v1.2.1