KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > commons > httpclient > HttpClientTestBase


1 /*
2  * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/test/org/apache/commons/httpclient/HttpClientTestBase.java,v 1.7 2004/11/07 12:31:42 olegk Exp $
3  * $Revision: 480424 $
4  * $Date: 2006-11-29 05:56:49 +0000 (Wed, 29 Nov 2006) $
5  * ====================================================================
6  *
7  * Licensed to the Apache Software Foundation (ASF) under one or more
8  * contributor license agreements. See the NOTICE file distributed with
9  * this work for additional information regarding copyright ownership.
10  * The ASF licenses this file to You under the Apache License, Version 2.0
11  * (the "License"); you may not use this file except in compliance with
12  * the License. You may obtain a copy of the License at
13  *
14  * http://www.apache.org/licenses/LICENSE-2.0
15  *
16  * Unless required by applicable law or agreed to in writing, software
17  * distributed under the License is distributed on an "AS IS" BASIS,
18  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19  * See the License for the specific language governing permissions and
20  * limitations under the License.
21  * ====================================================================
22  *
23  * This software consists of voluntary contributions made by many
24  * individuals on behalf of the Apache Software Foundation. For more
25  * information on the Apache Software Foundation, please see
26  * <http://www.apache.org/>.
27  *
28  */

29
30 package org.apache.commons.httpclient;
31
32 import java.io.IOException JavaDoc;
33
34 import junit.framework.Test;
35 import junit.framework.TestCase;
36 import junit.framework.TestSuite;
37
38 import org.apache.commons.httpclient.protocol.Protocol;
39 import org.apache.commons.httpclient.protocol.ProtocolSocketFactory;
40 import org.apache.commons.httpclient.server.SimpleHttpServer;
41 import org.apache.commons.httpclient.server.SimplePlainSocketFactory;
42 import org.apache.commons.httpclient.server.SimpleProxy;
43 import org.apache.commons.httpclient.server.SimpleSocketFactory;
44 import org.apache.commons.httpclient.ssl.SimpleSSLSocketFactory;
45 import org.apache.commons.httpclient.ssl.SimpleSSLTestProtocolSocketFactory;
46
47 /**
48  * Base class for test cases using
49  * {@link org.apache.commons.httpclient.server.SimpleHttpServer} based
50  * testing framework.
51  *
52  * @author Oleg Kalnichevski
53  *
54  * @version $Id: HttpClientTestBase.java 480424 2006-11-29 05:56:49 +0000 (Wed, 29 Nov 2006) bayard $
55  */

56 public class HttpClientTestBase extends TestCase {
57
58     protected HttpClient client = null;
59     protected SimpleHttpServer server = null;
60
61     protected SimpleProxy proxy = null;
62     private boolean useProxy = false;
63     private boolean useSSL = false;
64     
65     // ------------------------------------------------------------ Constructor
66
public HttpClientTestBase(final String JavaDoc testName) throws IOException JavaDoc {
67         super(testName);
68     }
69
70     // ------------------------------------------------------------------- Main
71
public static void main(String JavaDoc args[]) {
72         String JavaDoc[] testCaseName = { HttpClientTestBase.class.getName() };
73         junit.textui.TestRunner.main(testCaseName);
74     }
75
76     // ------------------------------------------------------- TestCase Methods
77

78     public static Test suite() {
79         return new TestSuite(HttpClientTestBase.class);
80     }
81
82     public void setUseProxy(boolean useProxy) {
83         this.useProxy = useProxy;
84     }
85     
86     public void setUseSSL(boolean b) {
87         this.useSSL = b;
88     }
89     
90     public boolean isUseSSL() {
91         return this.useSSL;
92     }
93     
94     // ------------------------------------------------- TestCase setup/shutdown
95

96     public void setUp() throws IOException JavaDoc {
97         // Configure socket factories
98
SimpleSocketFactory serversocketfactory = null;
99         Protocol testhttp = null;
100         if (this.useSSL) {
101             serversocketfactory = new SimpleSSLSocketFactory();
102             testhttp = new Protocol("https",
103                     (ProtocolSocketFactory)new SimpleSSLTestProtocolSocketFactory(), 443);
104         } else {
105             serversocketfactory = new SimplePlainSocketFactory();
106             testhttp = Protocol.getProtocol("http");
107         }
108
109         this.server = new SimpleHttpServer(serversocketfactory, 0); // use arbitrary port
110
this.server.setTestname(getName());
111
112         this.client = new HttpClient();
113
114         this.client.getHostConfiguration().setHost(
115                 this.server.getLocalAddress(),
116                 this.server.getLocalPort(),
117                 testhttp);
118         
119         if (this.useProxy) {
120             this.proxy = new SimpleProxy();
121             client.getHostConfiguration().setProxy(
122                 proxy.getLocalAddress(),
123                 proxy.getLocalPort());
124         }
125     }
126
127     public void tearDown() throws IOException JavaDoc {
128         this.client = null;
129         this.server.destroy();
130         this.server = null;
131         if (proxy != null) {
132             proxy.destroy();
133             proxy = null;
134         }
135     }
136 }
137
Popular Tags