1 /*
2 * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/test/org/apache/commons/httpclient/ProxyTestDecorator.java,v 1.1 2004/11/01 02:21:15 mbecke Exp $
3 * $Revision: 155418 $
4 * $Date: 2005-02-26 08:01:52 -0500 (Sat, 26 Feb 2005) $
5 *
6 * ====================================================================
7 *
8 * Copyright 2002-2004 The Apache Software Foundation
9 *
10 * Licensed under the Apache License, Version 2.0 (the "License");
11 * you may not use this file except in compliance with the License.
12 * 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 package org.apache.commons.httpclient;
30
31 import java.util.Enumeration;
32
33 import junit.extensions.TestSetup;
34 import junit.framework.Test;
35 import junit.framework.TestSuite;
36
37
38 /***
39 * A TestDecorator that configures instances of HttpClientTestBase to use
40 * a proxy server.
41 */
42 public class ProxyTestDecorator extends TestSetup {
43
44 /***
45 * Iterates through all test cases included in the suite and adds
46 * copies of them modified to use a proxy server.
47 * @param suite
48 */
49 public static void addTests(TestSuite suite) {
50 TestSuite ts2 = new TestSuite();
51 addTest(ts2, suite);
52 suite.addTest(ts2);
53 }
54
55 private static void addTest(TestSuite suite, Test t) {
56 if (t instanceof HttpClientTestBase) {
57 suite.addTest(new ProxyTestDecorator((HttpClientTestBase) t));
58 } else if (t instanceof TestSuite) {
59 Enumeration en = ((TestSuite) t).tests();
60 while (en.hasMoreElements()) {
61 addTest(suite, (Test) en.nextElement());
62 }
63 }
64 }
65
66 public ProxyTestDecorator(HttpClientTestBase test) {
67 super(test);
68 }
69
70 protected void setUp() throws Exception {
71 HttpClientTestBase base = (HttpClientTestBase) fTest;
72 base.setUseProxy(true);
73 }
74 }