mirror of
https://github.com/ruby/ruby.git
synced 2025-08-27 06:56:13 +02:00
parent
aebc6e8b8d
commit
ca789e7232
4 changed files with 134 additions and 76 deletions
|
@ -4,45 +4,49 @@ require_relative "test_helper"
|
|||
|
||||
module Prism
|
||||
class EncodingTest < TestCase
|
||||
%w[
|
||||
ascii
|
||||
ascii-8bit
|
||||
big5
|
||||
binary
|
||||
euc-jp
|
||||
gbk
|
||||
iso-8859-1
|
||||
iso-8859-2
|
||||
iso-8859-3
|
||||
iso-8859-4
|
||||
iso-8859-5
|
||||
iso-8859-6
|
||||
iso-8859-7
|
||||
iso-8859-8
|
||||
iso-8859-9
|
||||
iso-8859-10
|
||||
iso-8859-11
|
||||
iso-8859-13
|
||||
iso-8859-14
|
||||
iso-8859-15
|
||||
iso-8859-16
|
||||
koi8-r
|
||||
shift_jis
|
||||
sjis
|
||||
us-ascii
|
||||
utf-8
|
||||
utf8-mac
|
||||
windows-31j
|
||||
windows-1251
|
||||
windows-1252
|
||||
CP1251
|
||||
CP1252
|
||||
CP51932
|
||||
].each do |encoding|
|
||||
define_method "test_encoding_#{encoding}" do
|
||||
result = Prism.parse("# encoding: #{encoding}\n'string'")
|
||||
actual = result.value.statements.body.first.unescaped.encoding
|
||||
assert_equal Encoding.find(encoding), actual
|
||||
[
|
||||
"US-ASCII",
|
||||
"ASCII-8BIT",
|
||||
"Big5",
|
||||
"CP51932",
|
||||
"EUC-JP",
|
||||
"GBK",
|
||||
"ISO-8859-1",
|
||||
"ISO-8859-2",
|
||||
"ISO-8859-3",
|
||||
"ISO-8859-4",
|
||||
"ISO-8859-5",
|
||||
"ISO-8859-6",
|
||||
"ISO-8859-7",
|
||||
"ISO-8859-8",
|
||||
"ISO-8859-9",
|
||||
"ISO-8859-10",
|
||||
"ISO-8859-11",
|
||||
"ISO-8859-13",
|
||||
"ISO-8859-14",
|
||||
"ISO-8859-15",
|
||||
"ISO-8859-16",
|
||||
"KOI8-R",
|
||||
"Shift_JIS",
|
||||
"Windows-31J",
|
||||
"UTF-8",
|
||||
"UTF8-MAC",
|
||||
"Windows-1250",
|
||||
"Windows-1251",
|
||||
"Windows-1252",
|
||||
].each do |canonical_name|
|
||||
encoding = Encoding.find(canonical_name)
|
||||
|
||||
encoding.names.each do |name|
|
||||
# Even though UTF-8-MAC is an alias for UTF8-MAC, CRuby treats it as
|
||||
# UTF-8. So we'll skip this test.
|
||||
next if name == "UTF-8-MAC"
|
||||
|
||||
define_method "test_encoding_#{name}" do
|
||||
result = Prism.parse("# encoding: #{name}\n'string'")
|
||||
actual = result.value.statements.body.first.unescaped.encoding
|
||||
assert_equal encoding, actual
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue