summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-08-12 14:46:18 +0000
committerakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-08-12 14:46:18 +0000
commitedcd02cb5a2603ab549dae322974ed9d528e22db (patch)
tree1ae075ed6d207eaefdb013cea9e0f483177cc230 /test
parentc523f6f15e9c5012a6f6c81d4e40302294be963a (diff)
* 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.rb24
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