Title: [1069] trunk/jopenssl: A basic implementation of the mime interface
Revision
1069
Author
olabini
Date
2008-07-21 14:43:04 -0400 (Mon, 21 Jul 2008)

Log Message

A basic implementation of the mime interface

Modified Paths


Diff

Modified: trunk/jopenssl/src/java/org/jruby/ext/openssl/impl/Mime.java (1068 => 1069)


--- trunk/jopenssl/src/java/org/jruby/ext/openssl/impl/Mime.java	2008-07-21 18:43:02 UTC (rev 1068)
+++ trunk/jopenssl/src/java/org/jruby/ext/openssl/impl/Mime.java	2008-07-21 18:43:04 UTC (rev 1069)
@@ -34,6 +34,33 @@
  * @author <a href="" PROTECTED]">Ola Bini</a>
  */
 public interface Mime {
+    Mime DEFAULT = new Mime() {
+            public List<MimeHeader> parseHeaders(BIO bio) {
+                return null;
+            }
+
+            public MimeHeader findHeader(List<MimeHeader> headers, String key) {
+                for(MimeHeader hdr : headers) {
+                    if(hdr.getName().equals(key)) {
+                        return hdr;
+                    }
+                }
+
+                return null;
+            }
+
+            public MimeParam findParam(MimeHeader header, String key) {
+                for(MimeParam par : header.getParams()) {
+                    if(par.getParamName().equals(key)) {
+                        return par;
+                    }
+                }
+
+                return null;
+            }
+        };
+
+
     /* c: mime_parse_hdr
      *
      */

Modified: trunk/jopenssl/src/java/org/jruby/ext/openssl/impl/MimeHeader.java (1068 => 1069)


--- trunk/jopenssl/src/java/org/jruby/ext/openssl/impl/MimeHeader.java	2008-07-21 18:43:02 UTC (rev 1068)
+++ trunk/jopenssl/src/java/org/jruby/ext/openssl/impl/MimeHeader.java	2008-07-21 18:43:04 UTC (rev 1069)
@@ -41,13 +41,22 @@
     /**
      * Describe params here.
      */
-    private List<MimeParam> params = new ArrayList<MimeParam>();
+    private List<MimeParam> params;
 
     public MimeHeader(String name, String value) {
+        this(name, value, new ArrayList<MimeParam>());
+    }
+
+    public MimeHeader(String name, String value, List<MimeParam> params) {
         this.name = name;
         this.value = value;
+        this.params = params;
     }
 
+    public String getName() {
+        return this.name;
+    }
+
     public String getValue() {
         return this.value;
     }

Modified: trunk/jopenssl/src/java/org/jruby/ext/openssl/impl/SMIME.java (1068 => 1069)


--- trunk/jopenssl/src/java/org/jruby/ext/openssl/impl/SMIME.java	2008-07-21 18:43:02 UTC (rev 1068)
+++ trunk/jopenssl/src/java/org/jruby/ext/openssl/impl/SMIME.java	2008-07-21 18:43:04 UTC (rev 1069)
@@ -37,6 +37,10 @@
 public class SMIME {
     private Mime mime;
 
+    public SMIME() {
+        this(Mime.DEFAULT);
+    }
+
     public SMIME(Mime mime) {
         this.mime = mime;
     }

Modified: trunk/jopenssl/test/test_java_pkcs7.rb (1068 => 1069)


--- trunk/jopenssl/test/test_java_pkcs7.rb	2008-07-21 18:43:02 UTC (rev 1068)
+++ trunk/jopenssl/test/test_java_pkcs7.rb	2008-07-21 18:43:04 UTC (rev 1069)
@@ -72,6 +72,32 @@
     X509Cert = CertificateFactory.getInstance("X.509",BCP.new).generateCertificate(ByteArrayInputStream.new(X509CertString.to_java_bytes))
     X509CRL = CertificateFactory.getInstance("X.509",BCP.new).generateCRL(ByteArrayInputStream.new(X509CRLString.to_java_bytes))
 
+    class TestJavaMime < Test::Unit::TestCase
+      def test_find_header_returns_null_on_nonexisting_header
+        headers = []
+        assert_nil Mime::DEFAULT.find_header(headers, "foo")
+
+        headers = [MimeHeader.new("blarg", "bluff")]
+        assert_nil Mime::DEFAULT.find_header(headers, "foo")
+      end
+
+      def test_find_header_returns_the_header_with_the_same_name
+        hdr = MimeHeader.new("one", "two")
+        assert_equal hdr, Mime::DEFAULT.find_header([hdr], "one")
+      end
+
+      def test_find_param_returns_null_on_nonexisting_param
+        assert_nil Mime::DEFAULT.find_param(MimeHeader.new("one", "two", []), "foo")
+        assert_nil Mime::DEFAULT.find_param(MimeHeader.new("one", "two", [MimeParam.new("hi", "ho")]), "foo")
+      end
+
+      def test_find_param_returns_the_param_with_the_same_name
+        par = MimeParam.new("hox", "box")
+        hdr = MimeHeader.new("one", "two", [par])
+        assert_equal par, Mime::DEFAULT.find_param(hdr, "hox")
+      end
+    end
+
     class TestJavaSMIME < Test::Unit::TestCase
       def test_read_pkcs7_should_raise_error_when_parsing_headers_fails
         bio = BIO.new
_______________________________________________
Jruby-extras-devel mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/jruby-extras-devel

Reply via email to