KickJava   Java API By Example, From Geeks To Geeks.

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


1 /*
2  * $Header: /home/cvs/jakarta-commons/httpclient/src/test/org/apache/commons/httpclient/TestGetMethodLocal.java,v 1.10.2.1 2004/02/22 18:21:16 olegk Exp $
3  * $Revision: 1.10.2.1 $
4  * $Date: 2004/02/22 18:21:16 $
5  * ====================================================================
6  *
7  * Copyright 1999-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
31 package org.apache.commons.httpclient;
32
33 import java.io.IOException JavaDoc;
34
35 import junit.framework.Test;
36 import junit.framework.TestSuite;
37
38 import org.apache.commons.httpclient.methods.GetMethod;
39
40 /**
41  * Simple tests of {@link GetMethod}.
42  *
43  * @author Rodney Waldhoff
44  * @version $Id: TestGetMethodLocal.java,v 1.10.2.1 2004/02/22 18:21:16 olegk Exp $
45  */

46 public class TestGetMethodLocal extends TestLocalHostBase {
47
48     // ------------------------------------------------------------ Constructor
49

50     public TestGetMethodLocal(String JavaDoc testName) {
51         super(testName);
52     }
53
54
55     // ------------------------------------------------------- TestCase Methods
56

57     public static Test suite() {
58         return new TestSuite(TestGetMethodLocal.class);
59     }
60
61     // ------------------------------------------------------------------ Tests
62

63     public void testGetSlash() {
64         HttpClient client = createHttpClient();
65
66         GetMethod method = new GetMethod("/");
67         
68         try {
69             client.executeMethod(method);
70         } catch (Throwable JavaDoc t) {
71             t.printStackTrace();
72             fail("Unable to execute method : " + t.toString());
73         }
74
75         try {
76             String JavaDoc data = method.getResponseBodyAsString();
77             assertTrue("No data returned.",(data.length() > 0));
78         } catch (Throwable JavaDoc t) {
79             t.printStackTrace();
80             fail("Unable to execute method : " + t.toString());
81         }
82         assertEquals(200,method.getStatusCode());
83     }
84
85     public void testExecuteMultipleMethods() throws Exception JavaDoc {
86
87         HttpClient client = createHttpClient();
88
89         GetMethod getSlash = new GetMethod("/");
90         for(int i=0;i<10;i++) {
91             assertEquals(200, client.executeMethod(getSlash));
92             String JavaDoc data = getSlash.getResponseBodyAsString();
93             assertTrue(null != data);
94             assertTrue(data.length() > 0);
95             getSlash.recycle();
96             getSlash.setPath("/");
97         }
98     }
99
100     public void testRecycle() {
101         HttpClient client = createHttpClient(null);
102
103         GetMethod method = new GetMethod("/");
104         
105         try {
106             client.executeMethod(method);
107         } catch (Throwable JavaDoc t) {
108             t.printStackTrace();
109             fail("Unable to execute method : " + t.toString());
110         }
111
112         try {
113             String JavaDoc data = method.getResponseBodyAsString();
114             assertTrue("No data returned.",(data.length() > 0));
115         } catch (Throwable JavaDoc t) {
116             t.printStackTrace();
117             fail("Unable to execute method : " + t.toString());
118         }
119         assertEquals(200,method.getStatusCode());
120
121         method.recycle();
122         method.setPath("/");
123
124         try {
125             client.executeMethod(method);
126         } catch (Throwable JavaDoc t) {
127             t.printStackTrace();
128             fail("Unable to execute method : " + t.toString());
129         }
130
131         try {
132             String JavaDoc data = method.getResponseBodyAsString();
133             assertTrue("No data returned.",(data.length() > 0));
134         } catch (Throwable JavaDoc t) {
135             t.printStackTrace();
136             fail("Unable to execute method : " + t.toString());
137         }
138         assertEquals(200,method.getStatusCode());
139
140     }
141
142     public void test404() {
143         HttpClient client = createHttpClient(null);
144
145         GetMethod method = new GetMethod("/i/am/assuming/this/path/and/file/doesnt/exist/on/the/web/server.xyzzy");
146         
147         try {
148             client.executeMethod(method);
149         } catch (Throwable JavaDoc t) {
150             t.printStackTrace();
151             fail("Unable to execute method : " + t.toString());
152         }
153         assertEquals(404,method.getStatusCode());
154
155     }
156
157     /**
158      * The intent of this test is to allow for the incomplete parsing of a GET
159      * response, and to make it particularly tricky, the GET response issues
160      * a Connection: close".
161      *
162      * <p>This wants to insure that a recoverable exception is not unexpectedly
163      * triggered.</p>
164      */

165     public void testGetResponseNotReadAutoRecover() {
166         HttpClient client = createHttpClient(null);
167
168         try {
169             // issue a GET with a connection: close, and don't parse the body.
170
String JavaDoc path = "/";
171             GetMethod method1 = new GetMethod(path);
172             method1.addRequestHeader("Connection", "close");
173             client.executeMethod(method1);
174             assertEquals(0, method1.getRecoverableExceptionCount() );
175
176             // issue another GET.
177
GetMethod method2 = new GetMethod(path);
178             client.executeMethod(method2);
179             assertEquals(0, method2.getRecoverableExceptionCount() );
180         }
181         catch (IOException JavaDoc ioe) {
182
183             fail("Problem executing method : " + ioe.toString() );
184         }
185     }
186
187 }
188
Popular Tags