mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
74bdae9e4c
The difference from CRuby's Encoding: - Encoding is a module, instead of a class - each Encoding (e.g. `Encoding::UTF_8) is a string instead of Encoding object - only supports `UTF-8` and `ASCII-8BIT` (and its alias `BINARY`) Using this gem automatically turn on `MRB_UTF8_STRING` support.
31 lines
760 B
Ruby
31 lines
760 B
Ruby
##
|
|
# String(Ext) Test
|
|
|
|
UTF8STRING = __ENCODING__ == "UTF-8"
|
|
|
|
assert('String#valid_encoding?') do
|
|
assert_true "hello".valid_encoding?
|
|
if UTF8STRING
|
|
assert_true "あ".valid_encoding?
|
|
assert_false "\xfe".valid_encoding?
|
|
assert_false "あ\xfe".valid_encoding?
|
|
assert_true "あ\xfe".b.valid_encoding?
|
|
else
|
|
assert_true "\xfe".valid_encoding?
|
|
end
|
|
end
|
|
|
|
assert('String#encoding') do
|
|
if UTF8STRING
|
|
a = "あ"
|
|
assert_equal Encoding::UTF_8, a.encoding
|
|
assert_equal Encoding::BINARY, a.b.encoding
|
|
assert_equal a, a.force_encoding(Encoding::BINARY)
|
|
assert_equal a, a.force_encoding(Encoding::BINARY)
|
|
assert_equal Encoding::BINARY, a.encoding
|
|
else
|
|
a = "hello"
|
|
assert_equal Encoding::BINARY, a.encoding
|
|
end
|
|
end
|