diff options
author | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-08-12 14:46:18 +0000 |
---|---|---|
committer | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-08-12 14:46:18 +0000 |
commit | edcd02cb5a2603ab549dae322974ed9d528e22db (patch) | |
tree | 1ae075ed6d207eaefdb013cea9e0f483177cc230 /test | |
parent | c523f6f15e9c5012a6f6c81d4e40302294be963a (diff) | |
download | ruby-edcd02cb5a2603ab549dae322974ed9d528e22db.tar.gz |
* transcode.c (rb_cEncodingConverter): new class Encoding::Converter.
(econv_free): new function.
(econv_s_allocate): ditto.
(econv_init): ditto.
(check_econv): ditto.
(econv_primitive_convert): new method.
(Init_transcode): define Encoding::Converter.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18544 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test')
-rw-r--r-- | test/ruby/test_econv.rb | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/test/ruby/test_econv.rb b/test/ruby/test_econv.rb new file mode 100644 index 0000000000..045a4a0e00 --- /dev/null +++ b/test/ruby/test_econv.rb @@ -0,0 +1,24 @@ +require 'test/unit' + +class TestEncodingConverter < Test::Unit::TestCase + def assert_econv(ret_expected, src_expected, dst_expected, from, to, src, dst, flags=0) + ec = Encoding::Converter.new(from, to) + ret = ec.primitive_convert(src, dst, flags) + assert_equal(ret_expected, ret) + assert_equal(src_expected, src) + assert_equal(dst_expected, dst) + end + + def test_eucjp_to_utf8 + assert_econv(:finished, "", "", "EUC-JP", "UTF-8", "", "") + assert_econv(:ibuf_empty, "", "", "EUC-JP", "UTF-8", "", "", Encoding::Converter::PARTIAL_INPUT) + assert_econv(:finished, "", "", "EUC-JP", "UTF-8", "", " "*10) + assert_econv(:obuf_full, "", "", "EUC-JP", "UTF-8", "a", "") + end + + def test_invalid + assert_econv(:invalid_input, "", "", "EUC-JP", "UTF-8", "\x80", " "*10) + assert_econv(:invalid_input, "", "a", "EUC-JP", "UTF-8", "a\x80", " "*10) + assert_econv(:invalid_input, "\x80", "a", "EUC-JP", "UTF-8", "a\x80\x80", " "*10) + end +end |