diff options
Diffstat (limited to 'spec/rubyspec/core/encoding/fixtures/classes.rb')
-rw-r--r-- | spec/rubyspec/core/encoding/fixtures/classes.rb | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/spec/rubyspec/core/encoding/fixtures/classes.rb b/spec/rubyspec/core/encoding/fixtures/classes.rb new file mode 100644 index 0000000000..12e9a4f348 --- /dev/null +++ b/spec/rubyspec/core/encoding/fixtures/classes.rb @@ -0,0 +1,49 @@ +# -*- encoding: binary -*- +module EncodingSpecs + class UndefinedConversionError + def self.exception + ec = Encoding::Converter.new('utf-8','ascii') + begin + ec.convert("\u{8765}") + rescue Encoding::UndefinedConversionError => e + e + end + end + end + + class UndefinedConversionErrorIndirect + def self.exception + ec = Encoding::Converter.new("ISO-8859-1", "EUC-JP") + begin + ec.convert("\xA0") + rescue Encoding::UndefinedConversionError => e + e + end + end + end + + class InvalidByteSequenceError + def self.exception + ec = Encoding::Converter.new("utf-8", "iso-8859-1") + begin + ec.convert("\xf1abcd") + rescue Encoding::InvalidByteSequenceError => e + # Return the exception object and the primitive_errinfo Array + [e, ec.primitive_errinfo] + end + end + end + + class InvalidByteSequenceErrorIndirect + def self.exception + ec = Encoding::Converter.new("EUC-JP", "ISO-8859-1") + begin + ec.convert("abc\xA1\xFFdef") + rescue Encoding::InvalidByteSequenceError => e + # Return the exception object and the discarded bytes reported by + # #primitive_errinfo + [e, ec.primitive_errinfo] + end + end + end +end |