Kouhei Sutou
null+****@clear*****
Wed Mar 1 23:50:28 JST 2017
Kouhei Sutou 2017-03-01 23:50:28 +0900 (Wed, 01 Mar 2017) New Revision: 4cd94bf9fa290cfe1967d0575914a0b9d32a91b3 https://github.com/ranguba/chupa-text-decomposer-mail/commit/4cd94bf9fa290cfe1967d0575914a0b9d32a91b3 Message: Handle unknown encoding Added files: test/fixture/unknown-encoding.eml Modified files: lib/chupa-text/decomposers/mail.rb test/test-mail.rb Modified: lib/chupa-text/decomposers/mail.rb (+7 -1) =================================================================== --- lib/chupa-text/decomposers/mail.rb 2017-03-01 23:35:43 +0900 (ef547ba) +++ lib/chupa-text/decomposers/mail.rb 2017-03-01 23:50:28 +0900 (d3bf108) @@ -43,7 +43,13 @@ module ChupaText end parts.each_with_index do |part, i| body = part.body.decoded - body.force_encoding(part.charset) if part.charset + if part.charset + begin + body.force_encoding(part.charset) + rescue ArgumentError + raise UnknownEncodingError.new(data, part.charset) + end + end part_data = TextData.new(body, :source_data => data) uri = data.uri.dup Added: test/fixture/unknown-encoding.eml (+9 -0) 100644 =================================================================== --- /dev/null +++ test/fixture/unknown-encoding.eml 2017-03-01 23:50:28 +0900 (88c9542) @@ -0,0 +1,9 @@ +Mime-Version: 1.0 +Subject: Hello +From: Sender <from �� example.com> +To: Recipient <to �� example.com> +Date: Sun, 19 Feb 2017 00:27:55 +0900 (JST) +Content-Type: Text/Plain; charset=iso-2022-jp-3 +Content-Transfer-Encoding: 8bit + +World Modified: test/test-mail.rb (+13 -0) =================================================================== --- test/test-mail.rb 2017-03-01 23:35:43 +0900 (8cab4ee) +++ test/test-mail.rb 2017-03-01 23:50:28 +0900 (f6905a2) @@ -190,5 +190,18 @@ class TestMail < Test::Unit::TestCase super(fixture_path("nested-rfc822.eml")) end end + + sub_test_case("unknown encoding") do + def test_body + assert_raise(ChupaText::UnknownEncodingError) do + decompose + end + end + + private + def decompose + super(fixture_path("unknown-encoding.eml")) + end + end end end -------------- next part -------------- HTML����������������������������... Download