77 lines
1.6 KiB
Ruby
77 lines
1.6 KiB
Ruby
# coding: utf-8
|
|
|
|
require "selftest_utils"
|
|
|
|
class CMDTEST_output_encoding < Cmdtest::Testcase
|
|
|
|
include SelftestUtils
|
|
|
|
def test_output_encoding_ASCII_DEFAULT
|
|
create_CMDTEST_foo [
|
|
'cmd "echo.rb raksmorgas" do',
|
|
' comment "ok"',
|
|
' stdout_equal "raksmorgas\n"',
|
|
'end',
|
|
'cmd "echo.rb räksmörgås" do',
|
|
' comment "error"',
|
|
'end',
|
|
]
|
|
|
|
cmd_cmdtest do
|
|
stdout_equal [
|
|
"### ok",
|
|
"### error",
|
|
"--- ERROR: unexpected encoding: STDOUT not 'ascii'",
|
|
]
|
|
exit_nonzero
|
|
end
|
|
end
|
|
|
|
def test_output_encoding_UTF8_GLOBAL
|
|
create_CMDTEST_foo [
|
|
'output_encoding "utf-8"',
|
|
'cmd "echo.rb raksmorgas" do',
|
|
' comment "ok ascii"',
|
|
' stdout_equal "raksmorgas\n"',
|
|
'end',
|
|
'cmd "echo.rb räksmörgås" do',
|
|
' comment "ok utf8"',
|
|
' stdout_equal "räksmörgås\n"',
|
|
'end',
|
|
]
|
|
|
|
cmd_cmdtest do
|
|
stdout_equal [
|
|
"### ok ascii",
|
|
"### ok utf8",
|
|
]
|
|
end
|
|
end
|
|
|
|
def test_output_encoding_UTF8_DOBLOCK
|
|
create_CMDTEST_foo [
|
|
'cmd "echo.rb räksmörgås" do',
|
|
' comment "ok in doblock"',
|
|
' output_encoding "utf-8" do',
|
|
' stdout_equal "räksmörgås\n"',
|
|
' end',
|
|
'end',
|
|
'cmd "echo.rb räksmörgås" do',
|
|
' comment "error outside doblock"',
|
|
' stdout_equal "räksmörgås\n"',
|
|
'end',
|
|
]
|
|
|
|
cmd_cmdtest do
|
|
stdout_equal [
|
|
"### ok in doblock",
|
|
"### error outside doblock",
|
|
"--- ERROR: unexpected encoding: STDOUT not 'ascii'",
|
|
]
|
|
exit_nonzero
|
|
end
|
|
end
|
|
|
|
|
|
end
|