OSDN Git Service

ADD: Untrusted server connection waring dialog jUnit test program. master
authorTakuya Ono <takuya-o@users.sourceforge.jp>
Sat, 7 May 2011 21:14:42 +0000 (06:14 +0900)
committerTakuya Ono <takuya-o@users.sourceforge.jp>
Sat, 7 May 2011 21:14:42 +0000 (06:14 +0900)
src/org/jent/checksmtp/ssl/WarningServerTrustFrame.java
test/org/jent/checksmtp/ssl/WarningServerTrustFrameTest.java [new file with mode: 0644]

index ef0b786..3212734 100644 (file)
@@ -12,6 +12,7 @@ package org.jent.checksmtp.ssl;
 
 import java.awt.Dimension;
 import java.awt.Toolkit;
+import java.io.File;
 import java.security.cert.X509Certificate;
 
 /**
@@ -27,7 +28,12 @@ public class WarningServerTrustFrame extends javax.swing.JFrame {
     this.trustManager = trustManager;
     initComponents();
     jTextField.setText(chain[0].getSubjectDN().toString());
-    jTextArea.setText(chain.toString());
+    StringBuffer str = new StringBuffer();
+    for(int i=0; i<chain.length; i++) {
+      str.append(chain[i].toString());
+      str.append(System.getProperty("line.separator"));
+    }
+    jTextArea.setText(str.toString());
 
     //Move to screen center.
     Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
diff --git a/test/org/jent/checksmtp/ssl/WarningServerTrustFrameTest.java b/test/org/jent/checksmtp/ssl/WarningServerTrustFrameTest.java
new file mode 100644 (file)
index 0000000..05a9167
--- /dev/null
@@ -0,0 +1,96 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package org.jent.checksmtp.ssl;
+
+import java.security.cert.X509Certificate;
+import junit.framework.TestCase;
+import sun.security.x509.CertificateSubjectName;
+import sun.security.x509.CertificateSubjectUniqueIdentity;
+import sun.security.x509.CertificateVersion;
+import sun.security.x509.UniqueIdentity;
+import sun.security.x509.X500Name;
+import sun.security.x509.X509CertImpl;
+import sun.security.x509.X509CertInfo;
+
+/**
+ *
+ * @author tkyn
+ */
+public class WarningServerTrustFrameTest extends TestCase {
+
+  public WarningServerTrustFrameTest(String testName) {
+    super(testName);
+  }
+
+  protected void setUp() throws Exception {
+    super.setUp();
+  }
+
+  protected void tearDown() throws Exception {
+    super.tearDown();
+  }
+
+  private void sleep(long millsec) {
+    try {
+      Thread.sleep(millsec);
+    } catch (InterruptedException ex) {
+      ex.printStackTrace();
+    }
+  }
+
+  private void wait(WarningServerTrustFrame ui) {
+    System.out.print("Wait 30s:");
+    for (int i = 0; i < 30; i++) {
+      sleep(1000);
+      System.out.print(".");
+      if (!ui.isVisible()) {
+        break;
+      }
+    }
+    System.out.println(" OK");
+    if (ui.isVisible()) {
+      ui.dispose();
+      fail("Forget human check. This unit test need to human decide.");
+    }
+  }
+
+  public void testSomeMethod() {
+    WarningServerTrustFrame ui = null;
+    RespondingX509TrustManager trustManager = null;
+    try {
+      trustManager = new RespondingX509TrustManager();
+      X509CertInfo certInfo = new X509CertInfo();
+      CertificateVersion certVer = new CertificateVersion(1);
+      certInfo.set(X509CertInfo.VERSION, certVer);
+      //UniqueIdentity id = new UniqueIdentity("Push OK Key".getBytes());
+      //CertificateSubjectUniqueIdentity subjectid = new CertificateSubjectUniqueIdentity(id);
+      //certInfo.set(X509CertInfo.SUBJECT_ID, subjectid);
+      X500Name name = new X500Name("CN=Push OK Key");
+      CertificateSubjectName subjectName = new CertificateSubjectName(name);
+      certInfo.set(X509CertInfo.SUBJECT, subjectName);
+      X509Certificate cert = new X509CertImpl(certInfo);
+      X509Certificate[] chain = new X509Certificate[1];
+      chain[0] = cert;
+      ui = new WarningServerTrustFrame(trustManager, chain);
+    } catch (Exception ex) {
+      ex.printStackTrace();
+      fail(ex.toString());
+    }
+
+    System.out.print("Wait 30s:");
+    for (int i = 0; i < 30; i++) {
+      sleep(1000);
+      System.out.print(".");
+      if (!ui.isVisible()) {
+        break;
+      }
+    }
+    System.out.println(" OK");
+    if (ui.isVisible()) {
+      ui.dispose();
+      fail("Forget human check. This unit test need to human decide.");
+    }
+  }
+}