Skip to content

Commit 8740985

Browse files
committed
Change TestM17N#test_string_inspect_encoding to use EnvUtil.with_default_external
1 parent 6f1bb06 commit 8740985

File tree

1 file changed

+29
-27
lines changed

1 file changed

+29
-27
lines changed

test/ruby/test_m17n.rb

Lines changed: 29 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -186,33 +186,35 @@ def test_string_inspect_invalid
186186
end
187187

188188
def test_string_inspect_encoding
189-
EnvUtil.suppress_warning do
190-
begin
191-
orig_int = Encoding.default_internal
192-
orig_ext = Encoding.default_external
193-
Encoding.default_internal = nil
194-
[Encoding::UTF_8, Encoding::EUC_JP, Encoding::Windows_31J, Encoding::GB18030].
195-
each do |e|
196-
Encoding.default_external = e
197-
str = "\x81\x30\x81\x30".force_encoding('GB18030')
198-
assert_equal(Encoding::GB18030 == e ? %{"#{str}"} : '"\x{81308130}"', str.inspect)
199-
str = e("\xa1\x8f\xa1\xa1")
200-
expected = "\"\\xA1\x8F\xA1\xA1\"".force_encoding("EUC-JP")
201-
assert_equal(Encoding::EUC_JP == e ? expected : "\"\\xA1\\x{8FA1A1}\"", str.inspect)
202-
str = s("\x81@")
203-
assert_equal(Encoding::Windows_31J == e ? %{"#{str}"} : '"\x{8140}"', str.inspect)
204-
str = "\u3042\u{10FFFD}"
205-
assert_equal(Encoding::UTF_8 == e ? %{"#{str}"} : '"\u3042\u{10FFFD}"', str.inspect)
206-
end
207-
Encoding.default_external = Encoding::UTF_8
208-
[Encoding::UTF_16BE, Encoding::UTF_16LE, Encoding::UTF_32BE, Encoding::UTF_32LE,
209-
Encoding::UTF8_SOFTBANK].each do |e|
210-
str = "abc".encode(e)
211-
assert_equal('"abc"', str.inspect)
212-
end
213-
ensure
214-
Encoding.default_internal = orig_int
215-
Encoding.default_external = orig_ext
189+
[
190+
Encoding::UTF_8,
191+
Encoding::EUC_JP,
192+
Encoding::Windows_31J,
193+
Encoding::GB18030,
194+
].each do |e|
195+
EnvUtil.with_default_external(e) do
196+
str = "\x81\x30\x81\x30".force_encoding('GB18030')
197+
assert_equal(Encoding::GB18030 == e ? %{"#{str}"} : '"\x{81308130}"', str.inspect)
198+
str = e("\xa1\x8f\xa1\xa1")
199+
expected = "\"\\xA1\x8F\xA1\xA1\"".force_encoding("EUC-JP")
200+
assert_equal(Encoding::EUC_JP == e ? expected : "\"\\xA1\\x{8FA1A1}\"", str.inspect)
201+
str = s("\x81@")
202+
assert_equal(Encoding::Windows_31J == e ? %{"#{str}"} : '"\x{8140}"', str.inspect)
203+
str = "\u3042\u{10FFFD}"
204+
assert_equal(Encoding::UTF_8 == e ? %{"#{str}"} : '"\u3042\u{10FFFD}"', str.inspect)
205+
end
206+
end
207+
208+
EnvUtil.with_default_external(Encoding::UTF_8) do
209+
[
210+
Encoding::UTF_16BE,
211+
Encoding::UTF_16LE,
212+
Encoding::UTF_32BE,
213+
Encoding::UTF_32LE,
214+
Encoding::UTF8_SOFTBANK
215+
].each do |e|
216+
str = "abc".encode(e)
217+
assert_equal('"abc"', str.inspect)
216218
end
217219
end
218220
end

0 commit comments

Comments
 (0)