[DRE-commits] [ruby-soap4r] 01/04: Add tests for IconvCharset
Antonio Terceiro
terceiro at alioth.debian.org
Sun Sep 8 12:26:44 UTC 2013
This is an automated email from the git hooks/post-receive script.
terceiro pushed a commit to branch master
in repository ruby-soap4r.
commit 59a69c714fe922043482ca029f46e948deb058c6
Author: Antonio Terceiro <terceiro at debian.org>
Date: Thu Aug 15 11:11:08 2013 +0200
Add tests for IconvCharset
---
lib/xsd/iconvcharset.rb | 6 +-----
test/xsd/test_iconvcharset.rb | 20 ++++++++++++++++++++
2 files changed, 21 insertions(+), 5 deletions(-)
diff --git a/lib/xsd/iconvcharset.rb b/lib/xsd/iconvcharset.rb
index ad078fb..7b796c4 100644
--- a/lib/xsd/iconvcharset.rb
+++ b/lib/xsd/iconvcharset.rb
@@ -29,11 +29,7 @@ end if RUBY_VERSION < '1.9'
class IconvCharset
def self.safe_iconv(to, from, str)
- begin
- out << str.force_encoding(from).encode(to)
- rescue Encoding::UndefinedConversionError, Encoding::ConverterNotFoundError
- out << str.force_encoding(to).chars.map { |c| c.valid_encoding? && c || '?' }.join
- end
+ str.force_encoding(from).chars.map { |c| c.valid_encoding? && c || '?' }.join.encode(to)
end
end if RUBY_VERSION > '1.9'
diff --git a/test/xsd/test_iconvcharset.rb b/test/xsd/test_iconvcharset.rb
new file mode 100644
index 0000000..2c0f66f
--- /dev/null
+++ b/test/xsd/test_iconvcharset.rb
@@ -0,0 +1,20 @@
+# encoding: UTF-8
+
+require 'test/unit'
+require 'xsd/iconvcharset'
+
+class TestIconvCharset < Test::Unit::TestCase
+
+ def test_iso88591_utf8
+ assert_equal "á", XSD::IconvCharset.safe_iconv("utf-8", "iso-8859-1", "\xE1")
+ end
+
+ def test_utf8_iso88591
+ assert_equal "\xE1".force_encoding('iso-8859-1'), XSD::IconvCharset.safe_iconv("iso-8859-1", "utf-8", "á")
+ end
+
+ def test_invalid_encoding
+ assert_equal "á?á".encode('iso-8859-1'), XSD::IconvCharset.safe_iconv("iso-8859-1", "utf-8", "á\x8Dá".force_encoding('ascii-8bit'))
+ end
+
+end
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-ruby-extras/ruby-soap4r.git
More information about the Pkg-ruby-extras-commits
mailing list