You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by te...@apache.org on 2006/08/04 14:39:36 UTC

svn commit: r428708 - in /incubator/harmony/enhanced/classlib/trunk/modules/x-net: ./ src/test/impl/java.injected/org/ src/test/impl/java.injected/org/apache/ src/test/impl/java.injected/org/apache/harmony/ src/test/impl/java.injected/org/apache/harmon...

Author: tellison
Date: Fri Aug  4 05:39:35 2006
New Revision: 428708

URL: http://svn.apache.org/viewvc?rev=428708&view=rev
Log:
Apply patch HARMONY-1068 ([classlib][x-net] JSSE provider testing)

Added:
    incubator/harmony/enhanced/classlib/trunk/modules/x-net/src/test/impl/java/
    incubator/harmony/enhanced/classlib/trunk/modules/x-net/src/test/impl/java.injected/org/
    incubator/harmony/enhanced/classlib/trunk/modules/x-net/src/test/impl/java.injected/org/apache/
    incubator/harmony/enhanced/classlib/trunk/modules/x-net/src/test/impl/java.injected/org/apache/harmony/
    incubator/harmony/enhanced/classlib/trunk/modules/x-net/src/test/impl/java.injected/org/apache/harmony/xnet/
    incubator/harmony/enhanced/classlib/trunk/modules/x-net/src/test/impl/java.injected/org/apache/harmony/xnet/provider/
    incubator/harmony/enhanced/classlib/trunk/modules/x-net/src/test/impl/java.injected/org/apache/harmony/xnet/provider/jsse/
    incubator/harmony/enhanced/classlib/trunk/modules/x-net/src/test/impl/java.injected/org/apache/harmony/xnet/provider/jsse/CertificateMessageTest.java   (with props)
    incubator/harmony/enhanced/classlib/trunk/modules/x-net/src/test/impl/java.injected/org/apache/harmony/xnet/provider/jsse/CertificateRequestTest.java   (with props)
    incubator/harmony/enhanced/classlib/trunk/modules/x-net/src/test/impl/java.injected/org/apache/harmony/xnet/provider/jsse/CertificateVerifyTest.java   (with props)
    incubator/harmony/enhanced/classlib/trunk/modules/x-net/src/test/impl/java.injected/org/apache/harmony/xnet/provider/jsse/ClientHelloTest.java   (with props)
    incubator/harmony/enhanced/classlib/trunk/modules/x-net/src/test/impl/java.injected/org/apache/harmony/xnet/provider/jsse/ClientKeyExchangeTest.java   (with props)
    incubator/harmony/enhanced/classlib/trunk/modules/x-net/src/test/impl/java.injected/org/apache/harmony/xnet/provider/jsse/ServerHelloTest.java   (with props)
    incubator/harmony/enhanced/classlib/trunk/modules/x-net/src/test/impl/java.injected/org/apache/harmony/xnet/provider/jsse/ServerKeyExchangeTest.java   (with props)
    incubator/harmony/enhanced/classlib/trunk/modules/x-net/src/test/impl/java/org/
    incubator/harmony/enhanced/classlib/trunk/modules/x-net/src/test/impl/java/org/apache/
    incubator/harmony/enhanced/classlib/trunk/modules/x-net/src/test/impl/java/org/apache/harmony/
    incubator/harmony/enhanced/classlib/trunk/modules/x-net/src/test/impl/java/org/apache/harmony/xnet/
    incubator/harmony/enhanced/classlib/trunk/modules/x-net/src/test/impl/java/org/apache/harmony/xnet/tests/
    incubator/harmony/enhanced/classlib/trunk/modules/x-net/src/test/impl/java/org/apache/harmony/xnet/tests/provider/
    incubator/harmony/enhanced/classlib/trunk/modules/x-net/src/test/impl/java/org/apache/harmony/xnet/tests/provider/jsse/
    incubator/harmony/enhanced/classlib/trunk/modules/x-net/src/test/impl/java/org/apache/harmony/xnet/tests/provider/jsse/FinishedTest.java   (with props)
    incubator/harmony/enhanced/classlib/trunk/modules/x-net/src/test/impl/java/org/apache/harmony/xnet/tests/provider/jsse/HelloRequestTest.java   (with props)
    incubator/harmony/enhanced/classlib/trunk/modules/x-net/src/test/impl/java/org/apache/harmony/xnet/tests/provider/jsse/ServerHelloDoneTest.java   (with props)
Modified:
    incubator/harmony/enhanced/classlib/trunk/modules/x-net/.classpath
    incubator/harmony/enhanced/classlib/trunk/modules/x-net/build.xml

Modified: incubator/harmony/enhanced/classlib/trunk/modules/x-net/.classpath
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/x-net/.classpath?rev=428708&r1=428707&r2=428708&view=diff
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/x-net/.classpath (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/x-net/.classpath Fri Aug  4 05:39:35 2006
@@ -1,8 +1,11 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
 	<classpathentry output="bin/main" kind="src" path="src/main/java"/>
-	<classpathentry output="bin/test" kind="src" path="src/test/java"/>
+	<classpathentry output="bin/test/impl.injected" kind="src" path="src/test/impl/java.injected"/>
+	<classpathentry output="bin/test/impl" kind="src" path="src/test/impl/java"/>
+	<classpathentry output="bin/test/api" kind="src" path="src/test/api/java"/>
+	<classpathentry output="bin/test/api" kind="src" path="src/test/java"/>
 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
 	<classpathentry sourcepath="JUNIT_SRC_HOME/junitsrc.zip" kind="var" path="JUNIT_HOME/junit.jar"/>
-	<classpathentry kind="output" path="bin"/>
+	<classpathentry kind="output" path="bin/main"/>
 </classpath>

Modified: incubator/harmony/enhanced/classlib/trunk/modules/x-net/build.xml
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/x-net/build.xml?rev=428708&r1=428707&r2=428708&view=diff
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/x-net/build.xml (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/x-net/build.xml Fri Aug  4 05:39:35 2006
@@ -91,6 +91,7 @@
         <compile-tests description="api tests" destdir="${hy.x-net.bin.test}/api">
             <javac-elements>
                 <src path="${hy.x-net.src.test}/api/java"/>
+                <src path="${hy.x-net.src.test}/java"/>
                 <include name="**/*Test.java" />
             </javac-elements>
         </compile-tests>
@@ -101,6 +102,13 @@
                 <include name="**/*Test.java" />
             </javac-elements>
         </compile-tests>
+    	
+        <compile-tests description="impl tests" destdir="${hy.x-net.bin.test}/impl">
+            <javac-elements>
+                <src path="${hy.x-net.src.test}/impl/java"/>
+                <include name="**/*Test.java" />
+            </javac-elements>
+        </compile-tests>
     </target>
 
     <target name="run.tests" depends="run.tests.api, run.tests.impl" />
@@ -130,6 +138,21 @@
     </target>
 
     <target name="run.tests.impl" unless="test.noimpl">
+        <run-tests description="impl tests">
+            <junit-elements>
+                <classpath>
+                    <pathelement path="${hy.x-net.bin.test}/impl"/>
+                    <pathelement path="${hy.hdk}/build/test/support.jar" />
+                </classpath>
+            	
+                <batchtest todir="${hy.tests.reports}" haltonfailure="no" unless="test.case">
+                    <fileset dir="${hy.x-net.src.test}/impl/java">
+                        <include name="**/*Test.java"/>
+                    </fileset>
+                </batchtest>
+
+            </junit-elements>
+        </run-tests>
         <run-tests description="impl injected tests">
             <junit-elements>
                 <!-- to pick up junit.jar               -->

Added: incubator/harmony/enhanced/classlib/trunk/modules/x-net/src/test/impl/java.injected/org/apache/harmony/xnet/provider/jsse/CertificateMessageTest.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/x-net/src/test/impl/java.injected/org/apache/harmony/xnet/provider/jsse/CertificateMessageTest.java?rev=428708&view=auto
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/x-net/src/test/impl/java.injected/org/apache/harmony/xnet/provider/jsse/CertificateMessageTest.java (added)
+++ incubator/harmony/enhanced/classlib/trunk/modules/x-net/src/test/impl/java.injected/org/apache/harmony/xnet/provider/jsse/CertificateMessageTest.java Fri Aug  4 05:39:35 2006
@@ -0,0 +1,107 @@
+package org.apache.harmony.xnet.provider.jsse;
+
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.security.cert.CertificateEncodingException;
+import java.security.cert.CertificateException;
+import java.security.cert.CertificateFactory;
+import java.security.cert.X509Certificate;
+import java.util.Arrays;
+
+import junit.framework.TestCase;
+
+/**
+ * Tests for <code>CertificateMessage</code> constructor and methods
+ *  
+ */
+public class CertificateMessageTest extends TestCase {
+
+	private static String base64certEncoding = "-----BEGIN CERTIFICATE-----\n"
+			+ "MIIC+jCCAragAwIBAgICAiswDAYHKoZIzjgEAwEBADAdMRswGQYDVQQKExJDZXJ0a"
+			+ "WZpY2F0ZSBJc3N1ZXIwIhgPMTk3MDAxMTIxMzQ2NDBaGA8xOTcwMDEyNDAzMzMyMF"
+			+ "owHzEdMBsGA1UEChMUU3ViamVjdCBPcmdhbml6YXRpb24wGTAMBgcqhkjOOAQDAQE"
+			+ "AAwkAAQIDBAUGBwiBAgCqggIAVaOCAhQwggIQMA8GA1UdDwEB/wQFAwMBqoAwEgYD"
+			+ "VR0TAQH/BAgwBgEB/wIBBTAUBgNVHSABAf8ECjAIMAYGBFUdIAAwZwYDVR0RAQH/B"
+			+ "F0wW4EMcmZjQDgyMi5OYW1lggdkTlNOYW1lpBcxFTATBgNVBAoTDE9yZ2FuaXphdG"
+			+ "lvboYaaHR0cDovL3VuaWZvcm0uUmVzb3VyY2UuSWSHBP///wCIByoDolyDsgMwDAY"
+			+ "DVR0eAQH/BAIwADAMBgNVHSQBAf8EAjAAMIGZBgNVHSUBAf8EgY4wgYsGBFUdJQAG"
+			+ "CCsGAQUFBwMBBggrBgEFBQcDAQYIKwYBBQUHAwIGCCsGAQUFBwMDBggrBgEFBQcDB"
+			+ "AYIKwYBBQUHAwUGCCsGAQUFBwMGBggrBgEFBQcDBwYIKwYBBQUHAwgGCCsGAQUFBw"
+			+ "MJBggrBgEFBQgCAgYKKwYBBAGCNwoDAwYJYIZIAYb4QgQBMA0GA1UdNgEB/wQDAgE"
+			+ "BMA4GBCpNhgkBAf8EAwEBATBkBgNVHRIEXTBbgQxyZmNAODIyLk5hbWWCB2ROU05h"
+			+ "bWWkFzEVMBMGA1UEChMMT3JnYW5pemF0aW9uhhpodHRwOi8vdW5pZm9ybS5SZXNvd"
+			+ "XJjZS5JZIcE////AIgHKgOiXIOyAzAJBgNVHR8EAjAAMAoGA1UdIwQDAQEBMAoGA1"
+			+ "UdDgQDAQEBMAoGA1UdIQQDAQEBMAwGByqGSM44BAMBAQADMAAwLQIUAL4QvoazNWP"
+			+ "7jrj84/GZlhm09DsCFQCBKGKCGbrP64VtUt4JPmLjW1VxQA==\n"
+			+ "-----END CERTIFICATE-----\n";
+
+	/*
+	 * Test for CertificateMessage(null) and
+	 * CertificateMessage(HandshakeIODataStream, int)
+	 */
+	public void testCertificateMessage1() throws Exception {
+
+		CertificateMessage message = new CertificateMessage(null);
+        assertEquals("incorrect type", Handshake.CERTIFICATE, message.getType());
+        assertEquals("incorrect message", 3, message.length());
+        assertEquals("incorrect message", 0, message.certs.length);
+
+		HandshakeIODataStream out = new HandshakeIODataStream();
+		message.send(out);
+		byte[] encoded = out.getData(1000);
+        assertEquals("incorrect out data length", message.length(), encoded.length);
+
+		HandshakeIODataStream in = new HandshakeIODataStream();
+		in.append(encoded);
+        
+		CertificateMessage message_2 = new CertificateMessage(in, message.length());
+        assertEquals("incorrect message_2", 3, message_2.length());
+        assertEquals("incorrect message_2", 0, message_2.certs.length);
+	}
+
+	/*
+	 * Test for void CertificateMessage(X509Certificate[]),
+	 * CertificateMessage(HandshakeIODataStream, int)
+	 */
+	public void testCertificateMessage2() throws Exception {
+		CertificateFactory certFactory = CertificateFactory.getInstance("X509");
+
+		ByteArrayInputStream bais = new ByteArrayInputStream(base64certEncoding
+				.getBytes());
+		X509Certificate cert = (X509Certificate) certFactory.generateCertificate(bais);
+		CertificateMessage message = new CertificateMessage(
+				new X509Certificate[] { cert });
+        assertEquals("incorrect type", Handshake.CERTIFICATE, message.getType());
+
+        assertTrue("incorrect cert encoding", Arrays.equals(message.certs[0]
+                .getEncoded(), cert.getEncoded()));
+
+		HandshakeIODataStream out = new HandshakeIODataStream();
+		message.send(out);
+		byte[] encoded = out.getData(1000);
+        assertEquals("incorrect out data length", message.length(), encoded.length);
+
+		HandshakeIODataStream in = new HandshakeIODataStream();
+		in.append(encoded);
+		CertificateMessage message_2 = new CertificateMessage(in, message.length());
+        assertEquals("Incorrect message decoding", message.certs.length, message_2.certs.length);
+        assertTrue("incorrect cert encoding", Arrays.equals(message.certs[0]
+                .getEncoded(), message_2.certs[0].getEncoded()));
+
+		in.append(encoded);
+		try {
+			message_2 = new CertificateMessage(in, message.length() - 1);
+			fail("Small length: No expected AlertException");
+		} catch (AlertException e) {
+		}
+
+		in.append(encoded);
+		in.append(new byte[] { 1, 2, 3 });
+		try {
+			message_2 = new CertificateMessage(in, message.length() + 3);
+			fail("Extra bytes: No expected AlertException ");
+		} catch (AlertException e) {
+		}
+	}
+
+}

Propchange: incubator/harmony/enhanced/classlib/trunk/modules/x-net/src/test/impl/java.injected/org/apache/harmony/xnet/provider/jsse/CertificateMessageTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/harmony/enhanced/classlib/trunk/modules/x-net/src/test/impl/java.injected/org/apache/harmony/xnet/provider/jsse/CertificateRequestTest.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/x-net/src/test/impl/java.injected/org/apache/harmony/xnet/provider/jsse/CertificateRequestTest.java?rev=428708&view=auto
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/x-net/src/test/impl/java.injected/org/apache/harmony/xnet/provider/jsse/CertificateRequestTest.java (added)
+++ incubator/harmony/enhanced/classlib/trunk/modules/x-net/src/test/impl/java.injected/org/apache/harmony/xnet/provider/jsse/CertificateRequestTest.java Fri Aug  4 05:39:35 2006
@@ -0,0 +1,87 @@
+package org.apache.harmony.xnet.provider.jsse;
+
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.security.cert.CertificateException;
+import java.security.cert.CertificateFactory;
+import java.security.cert.X509Certificate;
+import java.util.Arrays;
+
+import javax.security.auth.x500.X500Principal;
+
+import junit.framework.TestCase;
+
+/**
+ * Test for <code>CertificateRequest</code> constructors and methods
+ *  
+ */
+public class CertificateRequestTest extends TestCase {
+
+    private static String base64certEncoding = "-----BEGIN CERTIFICATE-----\n"
+            + "MIIC+jCCAragAwIBAgICAiswDAYHKoZIzjgEAwEBADAdMRswGQYDVQQKExJDZXJ0a"
+            + "WZpY2F0ZSBJc3N1ZXIwIhgPMTk3MDAxMTIxMzQ2NDBaGA8xOTcwMDEyNDAzMzMyMF"
+            + "owHzEdMBsGA1UEChMUU3ViamVjdCBPcmdhbml6YXRpb24wGTAMBgcqhkjOOAQDAQE"
+            + "AAwkAAQIDBAUGBwiBAgCqggIAVaOCAhQwggIQMA8GA1UdDwEB/wQFAwMBqoAwEgYD"
+            + "VR0TAQH/BAgwBgEB/wIBBTAUBgNVHSABAf8ECjAIMAYGBFUdIAAwZwYDVR0RAQH/B"
+            + "F0wW4EMcmZjQDgyMi5OYW1lggdkTlNOYW1lpBcxFTATBgNVBAoTDE9yZ2FuaXphdG"
+            + "lvboYaaHR0cDovL3VuaWZvcm0uUmVzb3VyY2UuSWSHBP///wCIByoDolyDsgMwDAY"
+            + "DVR0eAQH/BAIwADAMBgNVHSQBAf8EAjAAMIGZBgNVHSUBAf8EgY4wgYsGBFUdJQAG"
+            + "CCsGAQUFBwMBBggrBgEFBQcDAQYIKwYBBQUHAwIGCCsGAQUFBwMDBggrBgEFBQcDB"
+            + "AYIKwYBBQUHAwUGCCsGAQUFBwMGBggrBgEFBQcDBwYIKwYBBQUHAwgGCCsGAQUFBw"
+            + "MJBggrBgEFBQgCAgYKKwYBBAGCNwoDAwYJYIZIAYb4QgQBMA0GA1UdNgEB/wQDAgE"
+            + "BMA4GBCpNhgkBAf8EAwEBATBkBgNVHRIEXTBbgQxyZmNAODIyLk5hbWWCB2ROU05h"
+            + "bWWkFzEVMBMGA1UEChMMT3JnYW5pemF0aW9uhhpodHRwOi8vdW5pZm9ybS5SZXNvd"
+            + "XJjZS5JZIcE////AIgHKgOiXIOyAzAJBgNVHR8EAjAAMAoGA1UdIwQDAQEBMAoGA1"
+            + "UdDgQDAQEBMAoGA1UdIQQDAQEBMAwGByqGSM44BAMBAQADMAAwLQIUAL4QvoazNWP"
+            + "7jrj84/GZlhm09DsCFQCBKGKCGbrP64VtUt4JPmLjW1VxQA==\n"
+            + "-----END CERTIFICATE-----\n";
+
+public void testCertificateRequest() throws Exception {
+
+        CertificateFactory certFactory = CertificateFactory.getInstance("X509");
+        ByteArrayInputStream bais = new ByteArrayInputStream(base64certEncoding
+                .getBytes());
+        X509Certificate cert = (X509Certificate) certFactory.generateCertificate(bais);
+        X509Certificate[] accepted = {cert};
+        X500Principal[] certificate_authorities = {cert.getIssuerX500Principal()};
+        
+        byte[] certificate_types = new byte[] { CertificateRequest.RSA_SIGN,
+                CertificateRequest.RSA_FIXED_DH };
+        CertificateRequest message = new CertificateRequest(certificate_types,
+                accepted);
+        assertEquals("incorrect type", Handshake.CERTIFICATE_REQUEST, message
+                .getType());
+        assertTrue("incorrect CertificateRequest", Arrays.equals(
+                message.certificate_types, certificate_types));
+        assertTrue("incorrect CertificateRequest", Arrays.equals(
+                message.certificate_authorities, certificate_authorities));
+
+		HandshakeIODataStream out = new HandshakeIODataStream();
+		message.send(out);
+		byte[] encoded = out.getData(1000);
+        assertEquals("incorrect out data length", message.length(), encoded.length);
+
+		HandshakeIODataStream in = new HandshakeIODataStream();
+		in.append(encoded);
+		CertificateRequest message_2 = new CertificateRequest(in, message.length());
+        assertTrue("incorrect message decoding", 
+                Arrays.equals(message.certificate_types, message_2.certificate_types));
+        assertTrue("incorrect message decoding", 
+                Arrays.equals(message.certificate_authorities, message_2.certificate_authorities));
+
+		in.append(encoded);
+		try {
+			message_2 = new CertificateRequest(in, message.length() - 1);
+			fail("Small length: No expected AlertException");
+		} catch (AlertException e) {
+		}
+
+		in.append(encoded);
+		in.append(new byte[] { 1, 2, 3 });
+		try {
+			message_2 = new CertificateRequest(in, message.length() + 3);
+			fail("Extra bytes: No expected AlertException ");
+		} catch (AlertException e) {
+		}
+	}
+}

Propchange: incubator/harmony/enhanced/classlib/trunk/modules/x-net/src/test/impl/java.injected/org/apache/harmony/xnet/provider/jsse/CertificateRequestTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/harmony/enhanced/classlib/trunk/modules/x-net/src/test/impl/java.injected/org/apache/harmony/xnet/provider/jsse/CertificateVerifyTest.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/x-net/src/test/impl/java.injected/org/apache/harmony/xnet/provider/jsse/CertificateVerifyTest.java?rev=428708&view=auto
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/x-net/src/test/impl/java.injected/org/apache/harmony/xnet/provider/jsse/CertificateVerifyTest.java (added)
+++ incubator/harmony/enhanced/classlib/trunk/modules/x-net/src/test/impl/java.injected/org/apache/harmony/xnet/provider/jsse/CertificateVerifyTest.java Fri Aug  4 05:39:35 2006
@@ -0,0 +1,60 @@
+package org.apache.harmony.xnet.provider.jsse;
+
+import java.util.Arrays;
+
+import junit.framework.TestCase;
+
+/**
+ * Tests for <code>CertificateVerify</code> constructor and methods
+ * 
+ */
+public class CertificateVerifyTest extends TestCase {
+
+	public void testCertificateVerify() throws Exception {
+		byte[] anonHash = new byte[0];
+		byte[] RSAHash = new byte[] {
+				1, 2, 3, 4, 5, 6, 7, 8, 9, 0,
+				1, 2, 3, 4, 5, 6, 7, 8, 9, 0,
+				1, 2, 3, 4, 5, 6, 7, 8, 9, 0,
+				1, 2, 3, 4, 5, 6};
+		byte[] DSAHash  = new byte[] {
+				1, 2, 3, 4, 5, 6, 7, 8, 9, 0,
+				1, 2, 3, 4, 5, 6, 7, 8, 9, 0};
+		byte[][] signatures = new byte[][] { anonHash, RSAHash, DSAHash };
+		for (int i = 0; i < 3; i++) {
+			CertificateVerify message = new CertificateVerify(signatures[i]);
+            assertEquals("incorrect type", Handshake.CERTIFICATE_VERIFY,
+                    message.getType());
+            assertTrue("incorrect CertificateVerify", 
+                    Arrays.equals(message.signedHash, signatures[i]));
+
+			HandshakeIODataStream out = new HandshakeIODataStream();
+			message.send(out);
+			byte[] encoded = out.getData(1000);
+            assertEquals("incorrect out data length", message.length(),
+                    encoded.length);
+
+			HandshakeIODataStream in = new HandshakeIODataStream();
+			in.append(encoded);
+			CertificateVerify message_2 = new CertificateVerify(in, message.length());
+            assertTrue("incorrect message decoding", 
+                    Arrays.equals(message.signedHash, message_2.signedHash));
+
+			in.append(encoded);
+			try {
+				message_2 = new CertificateVerify(in, message.length() - 1);
+				fail("Small length: No expected AlertException");
+			} catch (AlertException e) {
+			}
+
+			in.append(encoded);
+			in.append(new byte[] { 1, 2, 3 });
+			try {
+				message_2 = new CertificateVerify(in, message.length() + 3);
+				fail("Extra bytes: No expected AlertException ");
+			} catch (AlertException e) {
+			}
+		}
+	}
+
+}

Propchange: incubator/harmony/enhanced/classlib/trunk/modules/x-net/src/test/impl/java.injected/org/apache/harmony/xnet/provider/jsse/CertificateVerifyTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/harmony/enhanced/classlib/trunk/modules/x-net/src/test/impl/java.injected/org/apache/harmony/xnet/provider/jsse/ClientHelloTest.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/x-net/src/test/impl/java.injected/org/apache/harmony/xnet/provider/jsse/ClientHelloTest.java?rev=428708&view=auto
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/x-net/src/test/impl/java.injected/org/apache/harmony/xnet/provider/jsse/ClientHelloTest.java (added)
+++ incubator/harmony/enhanced/classlib/trunk/modules/x-net/src/test/impl/java.injected/org/apache/harmony/xnet/provider/jsse/ClientHelloTest.java Fri Aug  4 05:39:35 2006
@@ -0,0 +1,66 @@
+package org.apache.harmony.xnet.provider.jsse;
+
+import java.io.IOException;
+import java.security.SecureRandom;
+import java.util.Arrays;
+
+import junit.framework.TestCase;
+
+/**
+ * Tests for <code>ClientHello</code> constructor and methods
+ * 
+ */
+public class ClientHelloTest extends TestCase {
+
+
+	/*
+	 * Test for ClientHello(SecureRandom, byte[], byte[], CipherSuite[]),
+	 * ClientHello(HandshakeIODataStream, int), getType(), getRandom(), and
+	 * send();
+	 */
+	public void testClientHello() throws Exception {
+		byte[] ses_id = new byte[] {1,2,3,4,5,6,7,8,9,0};
+		byte[] version = new byte[] {3, 1 };
+		CipherSuite[] cipher_suite = new CipherSuite[] {
+                CipherSuite.TLS_RSA_WITH_RC4_128_MD5};
+		ClientHello message = new ClientHello(new SecureRandom(), version,
+				ses_id, cipher_suite);
+        assertEquals("incorrect type", Handshake.CLIENT_HELLO, message.getType());
+        assertEquals("incorrect length", 51, message.length());
+        assertEquals("incorrect random", 32, message.getRandom().length);
+
+		HandshakeIODataStream out = new HandshakeIODataStream();
+		message.send(out);
+		byte[] encoded = out.getData(1000);
+        assertEquals("incorrect out data length", message.length(), encoded.length);
+
+		HandshakeIODataStream in = new HandshakeIODataStream();
+		in.append(encoded);
+		ClientHello message_2 = new ClientHello(in, message.length());
+		
+		assertTrue("Incorrect message decoding",
+                Arrays.equals(message.client_version, message_2.client_version));
+        assertTrue("Incorrect message decoding",
+                Arrays.equals(message.getRandom(), message_2.getRandom()));
+
+		in.append(encoded);
+		try {
+			message_2 = new ClientHello(in, message.length()-1);
+			fail("Small length: No expected AlertException");
+		} catch (AlertException e){
+		}
+		
+		in.append(encoded);
+		try {
+			message_2 = new ClientHello(in, message.length()+ 1);
+			fail("Big length: No expected IO exception");
+		} catch (IOException e){
+		}
+		
+		in.append(encoded);
+		in.append(new byte[] {1,2,3});
+		new ClientHello(in, message.length()+ 3);	// extra bytes must be
+                                                     // ignored
+	}
+
+}

Propchange: incubator/harmony/enhanced/classlib/trunk/modules/x-net/src/test/impl/java.injected/org/apache/harmony/xnet/provider/jsse/ClientHelloTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/harmony/enhanced/classlib/trunk/modules/x-net/src/test/impl/java.injected/org/apache/harmony/xnet/provider/jsse/ClientKeyExchangeTest.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/x-net/src/test/impl/java.injected/org/apache/harmony/xnet/provider/jsse/ClientKeyExchangeTest.java?rev=428708&view=auto
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/x-net/src/test/impl/java.injected/org/apache/harmony/xnet/provider/jsse/ClientKeyExchangeTest.java (added)
+++ incubator/harmony/enhanced/classlib/trunk/modules/x-net/src/test/impl/java.injected/org/apache/harmony/xnet/provider/jsse/ClientKeyExchangeTest.java Fri Aug  4 05:39:35 2006
@@ -0,0 +1,175 @@
+package org.apache.harmony.xnet.provider.jsse;
+
+import java.io.IOException;
+import java.math.BigInteger;
+import java.util.Arrays;
+
+import junit.framework.TestCase;
+
+/**
+ * Tests for <code>ClientKeyExchange</code> constructor and methods
+ *  
+ */
+public class ClientKeyExchangeTest extends TestCase {
+
+    /*
+     * Test for void ClientKeyExchange(byte[], boolean)
+     */
+    public void testClientKeyExchangebyteArrayboolean() throws Exception {
+        byte[] encrypted_pre_master_secret = new byte[] {
+                1, 2, 3, 4, 5, 6, 7, 8, 9, 0,
+                1, 2, 3, 4, 5, 6, 7, 8, 9, 0 };
+        boolean[] isTLS = new boolean[] { true, false };
+
+        for (int i = 0; i < isTLS.length; i++) {
+            ClientKeyExchange message = new ClientKeyExchange(
+                    encrypted_pre_master_secret, isTLS[i]);
+            assertEquals("incorrect type", Handshake.CLIENT_KEY_EXCHANGE,
+                    message.getType());
+
+            assertTrue("incorrect ClientKeyExchange", Arrays.equals(
+                    message.exchange_keys, encrypted_pre_master_secret));
+
+            HandshakeIODataStream out = new HandshakeIODataStream();
+            message.send(out);
+            byte[] encoded = out.getData(1000);
+            assertEquals("incorrect out data length ", message.length(),
+                    encoded.length);
+
+            HandshakeIODataStream in = new HandshakeIODataStream();
+            in.append(encoded);
+            ClientKeyExchange message_2 = new ClientKeyExchange(in, message
+                    .length(), isTLS[i], true);
+
+            assertTrue("Incorrect message decoding", Arrays.equals(
+                    message.exchange_keys, message_2.exchange_keys));
+            assertEquals("Incorrect message decoding", message.length(),
+                    message_2.length());
+
+            in.append(encoded);
+            try {
+                message_2 = new ClientKeyExchange(in, message.length() - 1,
+                        isTLS[i], true);
+                if (isTLS[i]) {
+                    fail("Small length: No expected AlertException");
+                }
+            } catch (AlertException e) {
+                if (!isTLS[i]) {
+                    fail(e.toString());
+                }
+            }
+
+            in.append(encoded);
+            in.append(new byte[] { 1, 2, 3 });
+            try {
+                message_2 = new ClientKeyExchange(in, message.length() + 3,
+                        isTLS[i], true);
+                if (isTLS[i]) {
+                    fail("Extra bytes: No expected AlertException");
+                }
+            } catch (AlertException e) {
+                if (!isTLS[i]) {
+                    fail(e.toString());
+                }
+            }
+        }
+    }
+
+    /*
+     * Test for void ClientKeyExchange(BigInteger)
+     */
+    public void testClientKeyExchangeBigInteger() throws Exception {
+        BigInteger dh_Yc = new BigInteger("1234567890");
+        boolean[] isTLS = new boolean[] { true, false };
+
+        for (int i = 0; i < isTLS.length; i++) {
+            ClientKeyExchange message = new ClientKeyExchange(dh_Yc);
+            assertEquals("incorrect type", Handshake.CLIENT_KEY_EXCHANGE,
+                    message.getType());
+            assertEquals("incorrect ClientKeyExchange", dh_Yc, new BigInteger(
+                    message.exchange_keys));
+
+            HandshakeIODataStream out = new HandshakeIODataStream();
+            message.send(out);
+            byte[] encoded = out.getData(1000);
+            assertEquals("incorrect out data length", message.length(),
+                    encoded.length);
+
+            HandshakeIODataStream in = new HandshakeIODataStream();
+            in.append(encoded);
+            ClientKeyExchange message_2 = new ClientKeyExchange(in, message
+                    .length(), isTLS[i], false);
+
+            assertEquals("Incorrect message decoding", message.length(),
+                    message_2.length());
+            assertTrue("Incorrect message decoding", Arrays.equals(
+                    message.exchange_keys, message_2.exchange_keys));
+
+            in.append(encoded);
+            try {
+                message_2 = new ClientKeyExchange(in, message.length() - 1,
+                        isTLS[i], false);
+                fail("Small length: No expected AlertException");
+            } catch (AlertException e) {
+            }
+
+            in.append(encoded);
+            in.append(new byte[] { 1, 2, 3 });
+            try {
+                message_2 = new ClientKeyExchange(in, message.length() + 3,
+                        isTLS[i], false);
+                fail("Extra bytes: No expected AlertException");
+            } catch (AlertException e) {
+            }
+        }
+    }
+
+    /*
+     * Test for void ClientKeyExchange()
+     */
+    public void testClientKeyExchange() throws Exception {
+
+        ClientKeyExchange message = new ClientKeyExchange();
+        assertEquals("incorrect type", Handshake.CLIENT_KEY_EXCHANGE, message
+                .getType());
+        assertEquals("incorrect ClientKeyExchange", 0,
+                message.exchange_keys.length);
+        assertEquals("incorrect ClientKeyExchange", 0, message.length());
+        assertTrue("incorrect ClientKeyExchange", message.isEmpty());
+
+        HandshakeIODataStream out = new HandshakeIODataStream();
+        message.send(out);
+        byte[] encoded = out.getData(1000);
+        assertEquals("incorrect ClientKeyExchange", 0, message.length());
+        assertEquals("incorrect out data length", message.length(),
+                encoded.length);
+
+        HandshakeIODataStream in = new HandshakeIODataStream();
+        in.append(encoded);
+        ClientKeyExchange message_2 = new ClientKeyExchange(in, message
+                .length(), true, false);
+
+        assertEquals("Incorrect message decoding", 0,
+                message_2.exchange_keys.length);
+        assertEquals("Incorrect message decoding", 0, message_2.length());
+        assertTrue("Incorrect message decoding", message_2.isEmpty());
+
+        in.append(encoded);
+        try {
+            message_2 = new ClientKeyExchange(in, message.length() - 1, true,
+                    false);
+            fail("Small length: No expected IOException");
+        } catch (IOException e) {
+        }
+
+        in.append(encoded);
+        in.append(new byte[] { 1, 2, 3 });
+        try {
+            message_2 = new ClientKeyExchange(in, message.length() + 3, true,
+                    false);
+            fail("Extra bytes: No expected IOException");
+        } catch (IOException e) {
+        }
+    }
+
+}

Propchange: incubator/harmony/enhanced/classlib/trunk/modules/x-net/src/test/impl/java.injected/org/apache/harmony/xnet/provider/jsse/ClientKeyExchangeTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/harmony/enhanced/classlib/trunk/modules/x-net/src/test/impl/java.injected/org/apache/harmony/xnet/provider/jsse/ServerHelloTest.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/x-net/src/test/impl/java.injected/org/apache/harmony/xnet/provider/jsse/ServerHelloTest.java?rev=428708&view=auto
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/x-net/src/test/impl/java.injected/org/apache/harmony/xnet/provider/jsse/ServerHelloTest.java (added)
+++ incubator/harmony/enhanced/classlib/trunk/modules/x-net/src/test/impl/java.injected/org/apache/harmony/xnet/provider/jsse/ServerHelloTest.java Fri Aug  4 05:39:35 2006
@@ -0,0 +1,66 @@
+package org.apache.harmony.xnet.provider.jsse;
+
+import java.io.IOException;
+import java.security.SecureRandom;
+import java.util.Arrays;
+
+import junit.framework.TestCase;
+
+/**
+ * Tests for <code>ServerHello</code> constructor and methods
+ *  
+ */
+public class ServerHelloTest extends TestCase {
+
+    public void testServerHello() throws Exception {
+        byte[] session_id = new byte[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 };
+        CipherSuite cipher_suite = CipherSuite.TLS_DH_DSS_WITH_DES_CBC_SHA;
+        byte[] server_version = new byte[] { 3, 1 };
+        ServerHello message = new ServerHello(new SecureRandom(),
+                server_version, session_id, cipher_suite, (byte) 0);
+        assertEquals("incorrect type", Handshake.SERVER_HELLO, message
+                .getType());
+
+        assertTrue("incorrect CertificateRequest", Arrays.equals(
+                message.server_version, server_version));
+        assertTrue("incorrect CertificateRequest", Arrays.equals(
+                message.session_id, session_id));
+        assertEquals("incorrect CertificateRequest", cipher_suite,
+                message.cipher_suite);
+
+        HandshakeIODataStream out = new HandshakeIODataStream();
+        message.send(out);
+        byte[] encoded = out.getData(1000);
+        assertEquals("incorrect out data length", message.length(),
+                encoded.length);
+
+        HandshakeIODataStream in = new HandshakeIODataStream();
+        in.append(encoded);
+        ServerHello message_2 = new ServerHello(in, message.length());
+
+        assertTrue("incorrect message decoding", Arrays.equals(
+                message.server_version, message_2.server_version));
+        assertTrue("incorrect message decoding", Arrays.equals(
+                message.session_id, message_2.session_id));
+        assertTrue("incorrect message decoding", Arrays.equals(message.random,
+                message_2.random));
+        assertEquals("incorrect message decoding", message.cipher_suite,
+                message_2.cipher_suite);
+
+        in.append(encoded);
+        try {
+            new ServerHello(in, message.length() - 1);
+            fail("Small length: No expected AlertException");
+        } catch (AlertException e) {
+        }
+
+        in.append(encoded);
+        in.append(new byte[] { 1, 2, 3 });
+        try {
+            new ServerHello(in, message.length() + 3);
+            fail("Extra bytes: No expected AlertException ");
+        } catch (AlertException e) {
+        }
+    }
+
+}

Propchange: incubator/harmony/enhanced/classlib/trunk/modules/x-net/src/test/impl/java.injected/org/apache/harmony/xnet/provider/jsse/ServerHelloTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/harmony/enhanced/classlib/trunk/modules/x-net/src/test/impl/java.injected/org/apache/harmony/xnet/provider/jsse/ServerKeyExchangeTest.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/x-net/src/test/impl/java.injected/org/apache/harmony/xnet/provider/jsse/ServerKeyExchangeTest.java?rev=428708&view=auto
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/x-net/src/test/impl/java.injected/org/apache/harmony/xnet/provider/jsse/ServerKeyExchangeTest.java (added)
+++ incubator/harmony/enhanced/classlib/trunk/modules/x-net/src/test/impl/java.injected/org/apache/harmony/xnet/provider/jsse/ServerKeyExchangeTest.java Fri Aug  4 05:39:35 2006
@@ -0,0 +1,170 @@
+package org.apache.harmony.xnet.provider.jsse;
+
+import java.io.IOException;
+import java.math.BigInteger;
+import java.util.Arrays;
+
+import junit.framework.TestCase;
+
+/**
+ * Tests for <code>ServerKeyExchange</code> constructor and methods
+ *  
+ */
+public class ServerKeyExchangeTest extends TestCase {
+
+    public void testServerKeyExchange_RSA_EXPORT() throws Exception {
+        BigInteger rsa_mod = new BigInteger(
+                "0620872145533812525365347773040950432706816921321053881493952289532007782427182339053847578435298266865073748931755945944874247298083566202475988854994079");
+        BigInteger rsa_exp = new BigInteger("65537");
+
+        byte[] hash = new byte[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5,
+                6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6 };
+        ServerKeyExchange message = new ServerKeyExchange(rsa_mod, rsa_exp,
+                null, hash);
+        assertEquals("incorrect type", Handshake.SERVER_KEY_EXCHANGE, message
+                .getType());
+
+        assertTrue("incorrect ServerKeyExchange", Arrays.equals(message.hash,
+                hash));
+        assertEquals("incorrect ServerKeyExchange", rsa_mod, message.par1);
+        assertEquals("incorrect ServerKeyExchange", rsa_exp, message.par2);
+        assertNull("incorrect ServerKeyExchange", message.par3);
+
+        HandshakeIODataStream out = new HandshakeIODataStream();
+        message.send(out);
+        byte[] encoded = out.getData(1000);
+        assertEquals("incorrect out data length", message.length(),
+                encoded.length);
+
+        HandshakeIODataStream in = new HandshakeIODataStream();
+        in.append(encoded);
+        ServerKeyExchange message_2 = new ServerKeyExchange(in, message
+                .length(), CipherSuite.KeyExchange_RSA_EXPORT);
+
+        assertTrue("incorrect message decoding", Arrays.equals(message.hash,
+                message_2.hash));
+        assertEquals("incorrect message decoding", message.par1, message_2.par1);
+        assertEquals("incorrect message decoding", message.par2, message_2.par2);
+        assertNull("incorrect message decoding", message_2.par3);
+        assertEquals("incorrect message decoding", message.getRSAPublicKey(),
+                message_2.getRSAPublicKey());
+
+        in.append(encoded);
+        try {
+            new ServerKeyExchange(in, message.length() - 1,
+                    CipherSuite.KeyExchange_RSA_EXPORT);
+            fail("Small length: No expected AlertException");
+        } catch (AlertException e) {
+        }
+
+        in.append(encoded);
+        in.append(new byte[] { 1, 2, 3 });
+        try {
+            new ServerKeyExchange(in, message.length() + 3,
+                    CipherSuite.KeyExchange_RSA_EXPORT);
+            fail("Extra bytes: No expected AlertException ");
+        } catch (AlertException e) {
+        }
+    }
+
+    public void testServerKeyExchange_DHE_DSS() throws Exception {
+        BigInteger dh_p = new BigInteger("1234567890");
+        BigInteger dh_g = new BigInteger("987654321");
+        BigInteger dh_Ys = new BigInteger("123123123");
+        byte[] hash = new byte[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5,
+                6, 7, 8, 9, 0 };
+        ServerKeyExchange message = new ServerKeyExchange(dh_p, dh_g, dh_Ys,
+                hash);
+        assertEquals("incorrect type", Handshake.SERVER_KEY_EXCHANGE, message
+                .getType());
+
+        assertTrue("incorrect ServerKeyExchange", Arrays.equals(message.hash,
+                hash));
+        assertEquals("incorrect ServerKeyExchange", dh_p, message.par1);
+        assertEquals("incorrect ServerKeyExchange", dh_g, message.par2);
+        assertEquals("incorrect ServerKeyExchange", dh_Ys, message.par3);
+
+        HandshakeIODataStream out = new HandshakeIODataStream();
+        message.send(out);
+        byte[] encoded = out.getData(1000);
+        assertEquals("incorrect out data length", message.length(),
+                encoded.length);
+
+        HandshakeIODataStream in = new HandshakeIODataStream();
+        in.append(encoded);
+        ServerKeyExchange message_2 = new ServerKeyExchange(in, message
+                .length(), CipherSuite.KeyExchange_DHE_DSS);
+
+        assertTrue("incorrect message decoding", Arrays.equals(message.hash,
+                message_2.hash));
+        assertEquals("incorrect message decoding", message.par1, message_2.par1);
+        assertEquals("incorrect message decoding", message.par2, message_2.par2);
+        assertEquals("incorrect message decoding", message.par3, message_2.par3);
+
+        in.append(encoded);
+        try {
+            new ServerKeyExchange(in, message.length() - 1,
+                    CipherSuite.KeyExchange_DHE_DSS);
+            fail("Small length: No expected AlertException");
+        } catch (AlertException e) {
+        }
+
+        in.append(encoded);
+        in.append(new byte[] { 1, 2, 3 });
+        try {
+            new ServerKeyExchange(in, message.length() + 3,
+                    CipherSuite.KeyExchange_DHE_DSS);
+            fail("Extra bytes: No expected AlertException ");
+        } catch (AlertException e) {
+        }
+    }
+
+    public void testServerKeyExchange_DH_anon() throws Exception {
+        BigInteger dh_p = new BigInteger("1234567890");
+        BigInteger dh_g = new BigInteger("987654321");
+        BigInteger dh_Ys = new BigInteger("123123123");
+        ServerKeyExchange message = new ServerKeyExchange(dh_p, dh_g, dh_Ys,
+                null);
+        assertEquals("incorrect type", Handshake.SERVER_KEY_EXCHANGE, message
+                .getType());
+
+        assertNull("incorrect ServerKeyExchange", message.hash);
+        assertEquals("incorrect ServerKeyExchange", dh_p, message.par1);
+        assertEquals("incorrect ServerKeyExchange", dh_g, message.par2);
+        assertEquals("incorrect ServerKeyExchange", dh_Ys, message.par3);
+
+        HandshakeIODataStream out = new HandshakeIODataStream();
+        message.send(out);
+        byte[] encoded = out.getData(1000);
+        assertEquals("incorrect out data length", message.length(),
+                encoded.length);
+
+        HandshakeIODataStream in = new HandshakeIODataStream();
+        in.append(encoded);
+        ServerKeyExchange message_2 = new ServerKeyExchange(in, message
+                .length(), CipherSuite.KeyExchange_DH_anon);
+
+        assertNull("incorrect message decoding", message_2.hash);
+        assertEquals("incorrect message decoding", message.par1, message_2.par1);
+        assertEquals("incorrect message decoding", message.par2, message_2.par2);
+        assertEquals("incorrect message decoding", message.par3, message_2.par3);
+
+        in.append(encoded);
+        try {
+            new ServerKeyExchange(in, message.length() - 1,
+                    CipherSuite.KeyExchange_DH_anon);
+            fail("Small length: No expected AlertException");
+        } catch (AlertException e) {
+        }
+
+        in.append(encoded);
+        in.append(new byte[] { 1, 2, 3 });
+        try {
+            new ServerKeyExchange(in, message.length() + 3,
+                    CipherSuite.KeyExchange_DH_anon);
+            fail("Extra bytes: No expected AlertException ");
+        } catch (AlertException e) {
+        }
+    }
+
+}

Propchange: incubator/harmony/enhanced/classlib/trunk/modules/x-net/src/test/impl/java.injected/org/apache/harmony/xnet/provider/jsse/ServerKeyExchangeTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/harmony/enhanced/classlib/trunk/modules/x-net/src/test/impl/java/org/apache/harmony/xnet/tests/provider/jsse/FinishedTest.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/x-net/src/test/impl/java/org/apache/harmony/xnet/tests/provider/jsse/FinishedTest.java?rev=428708&view=auto
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/x-net/src/test/impl/java/org/apache/harmony/xnet/tests/provider/jsse/FinishedTest.java (added)
+++ incubator/harmony/enhanced/classlib/trunk/modules/x-net/src/test/impl/java/org/apache/harmony/xnet/tests/provider/jsse/FinishedTest.java Fri Aug  4 05:39:35 2006
@@ -0,0 +1,53 @@
+package org.apache.harmony.xnet.tests.provider.jsse;
+
+import java.util.Arrays;
+
+import org.apache.harmony.xnet.provider.jsse.AlertException;
+import org.apache.harmony.xnet.provider.jsse.Finished;
+import org.apache.harmony.xnet.provider.jsse.Handshake;
+import org.apache.harmony.xnet.provider.jsse.HandshakeIODataStream;
+
+import junit.framework.TestCase;
+
+/**
+ * Tests for <code>Finished</code> constructor and methods
+ *  
+ */
+public class FinishedTest extends TestCase {
+
+    public void testFinished() throws Exception {
+        byte[] bytes = new byte[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2 };
+        Finished message = new Finished(bytes);
+        assertEquals("incorrect type", Handshake.FINISHED, message.getType());
+        assertTrue("incorrect CertificateVerify", Arrays.equals(message
+                .getData(), bytes));
+
+        HandshakeIODataStream out = new HandshakeIODataStream();
+        message.send(out);
+        byte[] encoded = out.getData(1000);
+        assertEquals("incorrect out data length", message.length(),
+                encoded.length);
+
+        HandshakeIODataStream in = new HandshakeIODataStream();
+        in.append(encoded);
+        Finished message_2 = new Finished(in, message.length());
+        assertTrue("incorrect message decoding", Arrays.equals(message
+                .getData(), message_2.getData()));
+
+        in.append(encoded);
+        try {
+            message_2 = new Finished(in, message.length() - 1);
+            fail("Small length: No expected AlertException");
+        } catch (AlertException e) {
+        }
+
+        in.append(encoded);
+        in.append(new byte[] { 1, 2, 3 });
+        try {
+            message_2 = new Finished(in, message.length() + 3);
+            fail("Extra bytes: No expected AlertException ");
+        } catch (AlertException e) {
+        }
+    }
+
+}

Propchange: incubator/harmony/enhanced/classlib/trunk/modules/x-net/src/test/impl/java/org/apache/harmony/xnet/tests/provider/jsse/FinishedTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/harmony/enhanced/classlib/trunk/modules/x-net/src/test/impl/java/org/apache/harmony/xnet/tests/provider/jsse/HelloRequestTest.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/x-net/src/test/impl/java/org/apache/harmony/xnet/tests/provider/jsse/HelloRequestTest.java?rev=428708&view=auto
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/x-net/src/test/impl/java/org/apache/harmony/xnet/tests/provider/jsse/HelloRequestTest.java (added)
+++ incubator/harmony/enhanced/classlib/trunk/modules/x-net/src/test/impl/java/org/apache/harmony/xnet/tests/provider/jsse/HelloRequestTest.java Fri Aug  4 05:39:35 2006
@@ -0,0 +1,49 @@
+package org.apache.harmony.xnet.tests.provider.jsse;
+
+import org.apache.harmony.xnet.provider.jsse.AlertException;
+import org.apache.harmony.xnet.provider.jsse.Handshake;
+import org.apache.harmony.xnet.provider.jsse.HandshakeIODataStream;
+import org.apache.harmony.xnet.provider.jsse.HelloRequest;
+
+import junit.framework.TestCase;
+
+/**
+ * Tests for <code>HelloRequest</code> constructor and methods
+ *
+ */
+public class HelloRequestTest extends TestCase {
+
+    public void testHelloRequest() throws Exception {
+        HelloRequest message = new HelloRequest();
+        assertEquals("incorrect type", Handshake.HELLO_REQUEST, message
+                .getType());
+        assertEquals("incorrect HelloRequest", 0, message.length());
+
+        HandshakeIODataStream out = new HandshakeIODataStream();
+        message.send(out);
+        byte[] encoded = out.getData(1000);
+        assertEquals("incorrect out data length", message.length(),
+                encoded.length);
+
+        HandshakeIODataStream in = new HandshakeIODataStream();
+        in.append(encoded);
+        HelloRequest message_2 = new HelloRequest(in, message.length());
+        assertEquals("incorrect message decoding", 0, message_2.length());
+
+        in.append(encoded);
+        try {
+            new HelloRequest(in, message.length() - 1);
+            fail("Small length: No expected AlertException");
+        } catch (AlertException e) {
+        }
+
+        in.append(encoded);
+        in.append(new byte[] { 1, 2, 3 });
+        try {
+            new HelloRequest(in, message.length() + 3);
+            fail("Extra bytes: No expected AlertException ");
+        } catch (AlertException e) {
+        }
+    }
+
+}

Propchange: incubator/harmony/enhanced/classlib/trunk/modules/x-net/src/test/impl/java/org/apache/harmony/xnet/tests/provider/jsse/HelloRequestTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/harmony/enhanced/classlib/trunk/modules/x-net/src/test/impl/java/org/apache/harmony/xnet/tests/provider/jsse/ServerHelloDoneTest.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/x-net/src/test/impl/java/org/apache/harmony/xnet/tests/provider/jsse/ServerHelloDoneTest.java?rev=428708&view=auto
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/x-net/src/test/impl/java/org/apache/harmony/xnet/tests/provider/jsse/ServerHelloDoneTest.java (added)
+++ incubator/harmony/enhanced/classlib/trunk/modules/x-net/src/test/impl/java/org/apache/harmony/xnet/tests/provider/jsse/ServerHelloDoneTest.java Fri Aug  4 05:39:35 2006
@@ -0,0 +1,55 @@
+package org.apache.harmony.xnet.tests.provider.jsse;
+
+import java.io.IOException;
+
+import org.apache.harmony.xnet.provider.jsse.AlertException;
+import org.apache.harmony.xnet.provider.jsse.Handshake;
+import org.apache.harmony.xnet.provider.jsse.HandshakeIODataStream;
+import org.apache.harmony.xnet.provider.jsse.ServerHelloDone;
+
+import junit.framework.TestCase;
+
+/**
+ * Tests for <code>ServerHelloDone</code> constructor and methods
+ *  
+ */
+public class ServerHelloDoneTest extends TestCase {
+
+    /*
+     * Class under test for void ServerHelloDone()
+     */
+    public void testServerHelloDone() throws Exception {
+
+        ServerHelloDone message = new ServerHelloDone();
+        assertEquals("incorrect type", Handshake.SERVER_HELLO_DONE, message
+                .getType());
+        assertEquals("incorrect ServerHelloDone", 0, message.length());
+
+        HandshakeIODataStream out = new HandshakeIODataStream();
+        message.send(out);
+        byte[] encoded = out.getData(1000);
+        assertEquals("incorrect out data length", message.length(),
+                encoded.length);
+
+        HandshakeIODataStream in = new HandshakeIODataStream();
+        in.append(encoded);
+        ServerHelloDone message_2 = new ServerHelloDone(in, message.length());
+        assertEquals("incorrect message decoding", 0, message_2.length());
+
+        in.append(encoded);
+        try {
+            new ServerHelloDone(in, message.length() - 1);
+            fail("Small length: No expected AlertException");
+        } catch (AlertException e) {
+        }
+
+        in.append(encoded);
+        in.append(new byte[] { 1, 2, 3 });
+        try {
+            new ServerHelloDone(in, message.length() + 3);
+            fail("Extra bytes: No expected AlertException ");
+        } catch (AlertException e) {
+        }
+    }
+
+}

Propchange: incubator/harmony/enhanced/classlib/trunk/modules/x-net/src/test/impl/java/org/apache/harmony/xnet/tests/provider/jsse/ServerHelloDoneTest.java
------------------------------------------------------------------------------
    svn:eol-style = native