KickJava   Java API By Example, From Geeks To Geeks.

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


1 /*
2  * $Header: $
3  * $Revision: $
4  * $Date: $
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 junit.framework.Test;
34 import junit.framework.TestSuite;
35
36 import org.apache.commons.httpclient.methods.TraceMethod;
37
38 /**
39  *
40  * Simple tests of {@link TraceMethod}.
41  *
42  * @author Sean C. Sullivan
43  * @version $Id: TestGetMethodLocal.java,v 1.3 2002/02/04 15:26:43 dion Exp $
44  *
45  */

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

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

58
59     public static Test suite() {
60         return new TestSuite(TestTraceMethodLocal.class);
61     }
62
63
64     // ------------------------------------------------------------------ Tests
65

66
67
68     public void testExecute() {
69         
70         HttpClient client = createHttpClient();
71
72         TraceMethod method = new TraceMethod("/");
73
74         final String JavaDoc strTestHeaderName = "MyTestHeader";
75         
76         final String JavaDoc strTestHeaderValue = "This-is-a-test-value.";
77         
78         method.setRequestHeader(
79                     strTestHeaderName,
80                     strTestHeaderValue);
81         
82         try {
83             client.executeMethod(method);
84
85             final int iResponseStatusCode = method.getStatusCode();
86             assertEquals(200, iResponseStatusCode);
87             
88             Header[] requestHeaders = method.getRequestHeaders();
89             assertTrue( requestHeaders.length > 0);
90
91             Header[] responseHeaders = method.getResponseHeaders();
92             assertNotNull(responseHeaders);
93             
94             //
95
// note: the reason that we convert the String's to lowercase is
96
// because some HTTP servers send a response body that contains
97
// lower request headers
98
//
99
final String JavaDoc strResponseBody_lowercase = method.getResponseBodyAsString().toLowerCase();
100             assertNotNull(strResponseBody_lowercase);
101             assertTrue( strResponseBody_lowercase.length() > 0);
102             
103             assertTrue( strResponseBody_lowercase.indexOf(strTestHeaderName.toLowerCase()) != -1);
104             assertTrue( strResponseBody_lowercase.indexOf(strTestHeaderValue.toLowerCase()) != -1);
105             
106         } catch (Throwable JavaDoc t) {
107             t.printStackTrace();
108             fail("Unable to execute method : " + t.toString());
109         }
110     }
111     
112     public void testRecycle() {
113         HttpClient client = createHttpClient();
114
115         TraceMethod method = new TraceMethod("/");
116         
117         try {
118             client.executeMethod(method);
119         } catch (Throwable JavaDoc t) {
120             t.printStackTrace();
121             fail("Unable to execute method : " + t.toString());
122         }
123
124         try {
125             String JavaDoc data = method.getResponseBodyAsString();
126             assertTrue("No data returned.",(data.length() > 0));
127         } catch (Throwable JavaDoc t) {
128             t.printStackTrace();
129             fail("Unable to execute method : " + t.toString());
130         }
131
132         method.recycle();
133         method.setPath("/");
134
135         try {
136             client.executeMethod(method);
137         } catch (Throwable JavaDoc t) {
138             t.printStackTrace();
139             fail("Unable to execute method : " + t.toString());
140         }
141
142         try {
143             String JavaDoc data = method.getResponseBodyAsString();
144             assertTrue("No data returned.",(data.length() > 0));
145         } catch (Throwable JavaDoc t) {
146             t.printStackTrace();
147             fail("Unable to execute method : " + t.toString());
148         }
149     }
150
151     public static void main(String JavaDoc args[]) {
152         String JavaDoc[] testCaseName = { TestTraceMethodLocal.class.getName() };
153         junit.textui.TestRunner.main(testCaseName);
154     }
155     
156
157 }
158
Popular Tags