[Groonga-commit] ranguba/chupa-text-decomposer-mail at 4cd94bf [master] Handle unknown encoding

Zurück zum Archiv-Index

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 



More information about the Groonga-commit mailing list
Zurück zum Archiv-Index