1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
ruby--ruby/test/iconv/test_basic.rb
nobu 5225f2c143 * ext/iconv/iconv.c (strip_glibc_option, map_charset): check if
encoding is a string.  based on the patch by Hiroshi Moriyama at
  [ruby-dev:36811].

* test/iconv/test_basic.rb (test_invalid_arguments): added tests.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19866 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-10-21 02:34:07 +00:00

56 lines
1.5 KiB
Ruby

require File.join(File.dirname(__FILE__), "utils.rb")
class TestIconv::Basic < TestIconv
def test_euc2sjis
iconv = Iconv.open('SHIFT_JIS', 'EUC-JP')
str = iconv.iconv(EUCJ_STR)
str << iconv.iconv(nil)
assert_equal(SJIS_STR, str)
iconv.close
end
def test_close
iconv = Iconv.new('Shift_JIS', 'EUC-JP')
output = ""
begin
output += iconv.iconv(EUCJ_STR)
output += iconv.iconv(nil)
ensure
assert_respond_to(iconv, :close)
assert_equal("", iconv.close)
assert_equal(SJIS_STR, output)
end
end
def test_open_without_block
assert_respond_to(Iconv, :open)
iconv = Iconv.open('SHIFT_JIS', 'EUC-JP')
str = iconv.iconv(EUCJ_STR)
str << iconv.iconv(nil)
assert_equal(SJIS_STR, str )
iconv.close
end
def test_open_with_block
input = "#{EUCJ_STR}\n"*2
output = ""
Iconv.open("Shift_JIS", "EUC-JP") do |cd|
input.each_line do |s|
output << cd.iconv(s)
end
output << cd.iconv(nil)
end
assert_equal("#{SJIS_STR}\n"*2, output)
end
def test_invalid_arguments
assert_raise(TypeError) { Iconv.new(nil, 'Shift_JIS') }
assert_raise(TypeError) { Iconv.new('Shift_JIS', nil) }
assert_raise(TypeError) { Iconv.open(nil, 'Shift_JIS') }
assert_raise(TypeError) { Iconv.open('Shift_JIS', nil) }
end
def test_unknown_encoding
assert_raise(Iconv::InvalidEncoding) { Iconv.iconv("utf-8", "X-UKNOWN", "heh") }
end
end if defined?(TestIconv)