115 lines
2.5 KiB
Ruby
115 lines
2.5 KiB
Ruby
|
|
require "selftest_utils"
|
|
|
|
class CMDTEST_file_encoding < Cmdtest::Testcase
|
|
|
|
include SelftestUtils
|
|
|
|
#----------------------------------------
|
|
# 'file_encoding' detects equal file encoding + bom
|
|
|
|
def test_file_encoding_UTF8_CORRECT
|
|
create_CMDTEST_foo [
|
|
"file_open('foo', 'w') {|f| f.write \"\\uFEFFabc-αβγ-Г-א-åäö\\n\" }",
|
|
"",
|
|
"cmd 'true.rb' do",
|
|
" file_encoding 'foo', 'UTF-8'",
|
|
"end",
|
|
]
|
|
|
|
cmd_cmdtest do
|
|
stdout_equal [
|
|
"### true.rb",
|
|
]
|
|
end
|
|
end
|
|
|
|
def test_file_encoding_UTF8_INCORRECT
|
|
create_CMDTEST_foo [
|
|
"file_open('foo', 'wb') {|f| f.write \"\\xffabc-αβγ-Г-א-åäö\\n\" }",
|
|
"",
|
|
"cmd 'true.rb' do",
|
|
" file_encoding 'foo', 'UTF-8'",
|
|
"end",
|
|
]
|
|
|
|
cmd_cmdtest do
|
|
stdout_equal [
|
|
"### true.rb",
|
|
"--- ERROR: file not in encoding: foo, UTF-8",
|
|
]
|
|
exit_nonzero
|
|
end
|
|
end
|
|
|
|
def test_file_encoding_UTF8_CORRECT_BOM_true_CORRECT
|
|
create_CMDTEST_foo [
|
|
"file_open('foo', 'w') {|f| f.write \"\\uFEFFabc-αβγ-Г-א-åäö\\n\" }",
|
|
"",
|
|
"cmd 'true.rb' do",
|
|
" file_encoding 'foo', 'UTF-8', bom: true",
|
|
"end",
|
|
]
|
|
|
|
cmd_cmdtest do
|
|
stdout_equal [
|
|
"### true.rb",
|
|
]
|
|
end
|
|
end
|
|
|
|
def test_file_encoding_UTF8_CORRECT_BOM_false_INCORRECT
|
|
create_CMDTEST_foo [
|
|
"file_open('foo', 'w') {|f| f.write \"\\uFEFFabc-αβγ-Г-א-åäö\\n\" }",
|
|
"",
|
|
"cmd 'true.rb' do",
|
|
" file_encoding 'foo', 'UTF-8', bom: false",
|
|
"end",
|
|
]
|
|
|
|
cmd_cmdtest do
|
|
stdout_equal [
|
|
"### true.rb",
|
|
"--- ERROR: file has unexpected BOM: foo",
|
|
]
|
|
exit_nonzero
|
|
end
|
|
end
|
|
|
|
def test_file_encoding_UTF8_CORRECT_BOM_false_CORRECT
|
|
create_CMDTEST_foo [
|
|
"file_open('foo', 'w') {|f| f.write \"abc-αβγ-Г-א-åäö\\n\" }",
|
|
"",
|
|
"cmd 'true.rb' do",
|
|
" file_encoding 'foo', 'UTF-8', bom: false",
|
|
"end",
|
|
]
|
|
|
|
cmd_cmdtest do
|
|
stdout_equal [
|
|
"### true.rb",
|
|
]
|
|
end
|
|
end
|
|
|
|
def test_file_encoding_UTF8_CORRECT_BOM_true_INCORRECT
|
|
create_CMDTEST_foo [
|
|
"file_open('foo', 'w') {|f| f.write \"abc-αβγ-Г-א-åäö\\n\" }",
|
|
"",
|
|
"cmd 'true.rb' do",
|
|
" file_encoding 'foo', 'UTF-8', bom: true",
|
|
"end",
|
|
]
|
|
|
|
cmd_cmdtest do
|
|
stdout_equal [
|
|
"### true.rb",
|
|
"--- ERROR: file hasn't expected BOM: foo",
|
|
]
|
|
exit_nonzero
|
|
end
|
|
end
|
|
|
|
|
|
end
|