1   /*
2    * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/test/org/apache/commons/httpclient/TestLocalHostBase.java,v 1.6 2004/06/25 03:34:56 mbecke Exp $
3    * $Revision: 161333 $
4    * $Date: 2005-04-14 14:21:03 -0400 (Thu, 14 Apr 2005) $
5    * ====================================================================
6    *
7    *  Copyright 2002-2004 The Apache Software Foundation
8    *
9    *  Licensed under the Apache License, Version 2.0 (the "License");
10   *  you may not use this file except in compliance with the License.
11   *  You may obtain a copy of the License at
12   *
13   *      http://www.apache.org/licenses/LICENSE-2.0
14   *
15   *  Unless required by applicable law or agreed to in writing, software
16   *  distributed under the License is distributed on an "AS IS" BASIS,
17   *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18   *  See the License for the specific language governing permissions and
19   *  limitations under the License.
20   * ====================================================================
21   *
22   * This software consists of voluntary contributions made by many
23   * individuals on behalf of the Apache Software Foundation.  For more
24   * information on the Apache Software Foundation, please see
25   * <http://www.apache.org/>.
26   *
27   * [Additional notices, if required by prior licensing conditions]
28   *
29   */
30  package org.apache.commons.httpclient;
31  
32  import junit.framework.TestCase;
33  
34  /***
35   * The base class for all tests that need to connection to the localhost
36   * web server.
37   * 
38   * @author Michael Becke
39   * 
40   * @deprecated
41   */
42  public abstract class TestLocalHostBase extends TestCase {
43  
44      private final String protocol = System.getProperty(
45          "httpclient.test.localHost.protocol",
46          "http"
47      );
48      private final String host = System.getProperty("httpclient.test.localHost","localhost");
49      private final int port;
50      private final String proxyHost = System.getProperty("httpclient.test.proxy.host");
51      private final int proxyPort;
52      
53      /***
54       * Constructor for TestLocalHostBase.
55       * @param testName
56       */
57      public TestLocalHostBase(String testName) {
58          super(testName);
59          String portString = System.getProperty("httpclient.test.localPort","8080");
60          int tempPort = 8080;
61          try {
62              tempPort = Integer.parseInt(portString);
63          } catch(Exception e) {
64              tempPort = 8080;
65          }
66          port = tempPort;
67          String proxyPortString = System.getProperty("httpclient.test.proxy.port","3128");
68          int tempProxyPort = 3128;
69          try {
70              tempProxyPort = Integer.parseInt(proxyPortString);
71          } catch(Exception e) {
72              tempProxyPort = 3128;
73          }
74          proxyPort = tempProxyPort;
75      }
76  
77      /***
78       * Gets a new HttpClient instance.  This instance has been configured
79       * with all appropriate host/proxy values.
80       * 
81       * @return a new HttpClient instance
82       */
83      public HttpClient createHttpClient() {
84          return createHttpClient(null);
85      }
86  
87      /***
88       * Gets a new HttpClient instance that uses the given connection manager. 
89       * This instance has been configured with all appropriate host/proxy values.
90       * 
91       * @param connectionManager the connection manager to use or <code>null</code>
92       * 
93       * @return a new HttpClient instance
94       */
95      public HttpClient createHttpClient(HttpConnectionManager connectionManager) {
96          
97          HttpClient client = null;
98  
99          if (connectionManager == null) {
100             client = new HttpClient();
101         } else {
102             client = new HttpClient(connectionManager);
103         }
104 
105         configureHostConfiguration(client.getHostConfiguration());
106 
107         return client;
108     }
109     
110     /***
111      * Configures the host config with the correct host and proxy settings.
112      * 
113      * @param hostConfiguration
114      */
115     public void configureHostConfiguration(HostConfiguration hostConfiguration) {
116         hostConfiguration.setHost(host, port, protocol);
117         if (proxyHost != null) {
118             hostConfiguration.setProxy(proxyHost, proxyPort);
119         }
120     }
121 
122     /***
123      * @return String
124      */
125     public String getHost() {
126         return host;
127     }
128 
129     /***
130      * @return int
131      */
132     public int getPort() {
133         return port;
134     }
135 
136     /***
137      * @return String
138      */
139     public String getProtocol() {
140         return protocol;
141     }
142 
143 }