diff options
author | kou <kou@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-09-17 13:14:14 +0000 |
---|---|---|
committer | kou <kou@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-09-17 13:14:14 +0000 |
commit | 91ed484f92040e5c2006a3a00ec77a54d552cf37 (patch) | |
tree | 03fd6677a85aaad516d0c9464b1273ea107231b7 /test/rexml/test_encoding_2.rb | |
parent | 045491d5be06b615d66d3f66cca2b5d2bc3c1929 (diff) | |
download | ruby-91ed484f92040e5c2006a3a00ec77a54d552cf37.tar.gz |
* test/rexml/: import REXML tests from
http://www.germane-software.com/repos/rexml/trunk/test/.
Many tests are failed temporary. I'll fix them quickly. Sorry.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29282 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/rexml/test_encoding_2.rb')
-rw-r--r-- | test/rexml/test_encoding_2.rb | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/test/rexml/test_encoding_2.rb b/test/rexml/test_encoding_2.rb new file mode 100644 index 0000000000..5dbe46801b --- /dev/null +++ b/test/rexml/test_encoding_2.rb @@ -0,0 +1,59 @@ +require "test/unit/testcase" + +require "rexml/document" +require "rexml/parseexception" + +=begin +# THIS DOESN'T WORK +begin + require 'iconv' + + UnixCharsets = open("| iconv -l") do |f| + f.readlines[5..-1].collect { |x| x.sub(/\/\/\n/,"").delete(' ') } + end + + DATA = <<END +<?xml version="1.0" encoding='ENC'?> +<Ruby xmlns="http://www.ruby-lang.org/ruby/1.8"> +</Ruby> +END + + + class IConvTester < Test::Unit::TestCase + + def test_iconv + broken_encodings = 0 + UnixCharsets.each do |enc| + begin + puts "Testing encoding #{enc}" + data = DATA.dup + data[/ENC/] = enc + REXML::Document.new(data).root + rescue REXML::ParseException => e + broken_encodings += 1 + fail "Encoding #{enc} does not work with REXML: #{e.message}" + rescue Errno::EINVAL => e + broken_encodings += 1 + fail "Encoding #{enc} does not work with REXML: #{e.message}" + rescue ArgumentError => e + broken_encodings += 1 + fail "Encoding #{enc} does not work with REXML: #{e.message}" + rescue + broken_encodings += 1 + fail "Encoding #{enc} does not work with REXML: #{$!.message}" + end + end + + if broken_encodings > 0 + fail "There were #{broken_encodings} encoding failures out of #{UnixCharsets.size} plus some REXML internal encodings" + else + fail "There were no encoding failures" + end + + puts "Full list of registered encodings in REXML:" + puts REXML::Encoding::ENCODING_CLAIMS.values.join(', ') + end + end +rescue LoadError +end +=end |