[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