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