rwaldhoff 01/07/27 15:52:25
Modified: httpclient/src/test/org/apache/commons/httpclient
TestAll.java TestHttps.java TestMethods.java
Added: httpclient/src/test/org/apache/commons/httpclient
TestAllExternal.java TestAllLocal.java
TestMethodsExternalHost.java
TestMethodsLocalHost.java
Log:
refactored to seperate locahost from external-host test
Revision Changes Path
1.4 +5 -4
jakarta-commons/httpclient/src/test/org/apache/commons/httpclient/TestAll.java
Index: TestAll.java
===================================================================
RCS file:
/home/cvs/jakarta-commons/httpclient/src/test/org/apache/commons/httpclient/TestAll.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- TestAll.java 2001/05/17 23:58:51 1.3
+++ TestAll.java 2001/07/27 22:52:25 1.4
@@ -1,7 +1,7 @@
/*
- * $Header:
/home/cvs/jakarta-commons/httpclient/src/test/org/apache/commons/httpclient/TestAll.java,v
1.3 2001/05/17 23:58:51 rwaldhoff Exp $
- * $Revision: 1.3 $
- * $Date: 2001/05/17 23:58:51 $
+ * $Header:
/home/cvs/jakarta-commons/httpclient/src/test/org/apache/commons/httpclient/TestAll.java,v
1.4 2001/07/27 22:52:25 rwaldhoff Exp $
+ * $Revision: 1.4 $
+ * $Date: 2001/07/27 22:52:25 $
*
* ====================================================================
*
@@ -65,7 +65,8 @@
/**
* @author Remy Maucherat
- * @version $Id: TestAll.java,v 1.3 2001/05/17 23:58:51 rwaldhoff Exp $
+ * @author Rodney Waldhoff
+ * @version $Id: TestAll.java,v 1.4 2001/07/27 22:52:25 rwaldhoff Exp $
*/
public class TestAll extends TestCase {
1.2 +5 -4
jakarta-commons/httpclient/src/test/org/apache/commons/httpclient/TestHttps.java
Index: TestHttps.java
===================================================================
RCS file:
/home/cvs/jakarta-commons/httpclient/src/test/org/apache/commons/httpclient/TestHttps.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- TestHttps.java 2001/05/17 23:58:51 1.1
+++ TestHttps.java 2001/07/27 22:52:25 1.2
@@ -1,7 +1,7 @@
/*
- * $Header:
/home/cvs/jakarta-commons/httpclient/src/test/org/apache/commons/httpclient/TestHttps.java,v
1.1 2001/05/17 23:58:51 rwaldhoff Exp $
- * $Revision: 1.1 $
- * $Date: 2001/05/17 23:58:51 $
+ * $Header:
/home/cvs/jakarta-commons/httpclient/src/test/org/apache/commons/httpclient/TestHttps.java,v
1.2 2001/07/27 22:52:25 rwaldhoff Exp $
+ * $Revision: 1.2 $
+ * $Date: 2001/07/27 22:52:25 $
* ====================================================================
* Copyright (C) The Apache Software Foundation. All rights reserved.
*
@@ -28,9 +28,10 @@
* (see build.xml)
*
* @author Rodney Waldhoff
- * @version $Id: TestHttps.java,v 1.1 2001/05/17 23:58:51 rwaldhoff Exp $
+ * @version $Id: TestHttps.java,v 1.2 2001/07/27 22:52:25 rwaldhoff Exp $
*/
public class TestHttps extends TestCase {
+
// ---------------------------------------------------------------- Members
private URL _urlWithPort = null;
private URL _urlWithoutPort = null;
1.6 +14 -224
jakarta-commons/httpclient/src/test/org/apache/commons/httpclient/TestMethods.java
Index: TestMethods.java
===================================================================
RCS file:
/home/cvs/jakarta-commons/httpclient/src/test/org/apache/commons/httpclient/TestMethods.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- TestMethods.java 2001/05/19 22:38:29 1.5
+++ TestMethods.java 2001/07/27 22:52:25 1.6
@@ -1,7 +1,7 @@
/*
- * $Header:
/home/cvs/jakarta-commons/httpclient/src/test/org/apache/commons/httpclient/TestMethods.java,v
1.5 2001/05/19 22:38:29 remm Exp $
- * $Revision: 1.5 $
- * $Date: 2001/05/19 22:38:29 $
+ * $Header:
/home/cvs/jakarta-commons/httpclient/src/test/org/apache/commons/httpclient/TestMethods.java,v
1.6 2001/07/27 22:52:25 rwaldhoff Exp $
+ * $Revision: 1.6 $
+ * $Date: 2001/07/27 22:52:25 $
*
* ====================================================================
*
@@ -67,238 +67,28 @@
import org.apache.commons.httpclient.methods.*;
/**
- * Simple tests for the HTTP client. This test assumes the default
- * configuration of Tomcat 4 is used as the server.
+ * A test-suite encompassing TestMethodsLocalHost and
+ * TestMethodsExtenralHost.
*
* @author Remy Maucherat
- * @version $Id: TestMethods.java,v 1.5 2001/05/19 22:38:29 remm Exp $
+ * @author Rodney Waldhoff
+ * @version $Id: TestMethods.java,v 1.6 2001/07/27 22:52:25 rwaldhoff Exp $
*/
public class TestMethods extends TestCase {
-
- // -------------------------------------------------------------- Constants
-
-
- private static final String host = "127.0.0.1";
- private static final int port = 8080;
-
- // XXX fix me
- // java.sun.com fails for some reason. We should figure out why,
- // but in the interest of having a working test suite,
- // I changed externalHost to jakarta instead.
- private static final String externalHost = "java.sun.com";
- //private static final String externalHost = "jakarta.apache.org";
- private static final int externalPort = 80;
- private static final String externalPath = "/index.html";
-
- // ------------------------------------------------------------ Constructor
-
-
public TestMethods(String testName) {
super(testName);
}
-
- // ------------------------------------------------------- TestCase Methods
-
-
public static Test suite() {
- return new TestSuite(TestMethods.class);
+ TestSuite suite = new TestSuite();
+ suite.addTest(TestMethodsLocalHost.suite());
+ suite.addTest(TestMethodsExternalHost.suite());
+ return suite;
}
-
-
- // ----------------------------------------------------------- OPTIONS Test
-
-
- public void testMethodsOptions() {
-
- HttpClient client = new HttpClient();
- OptionsMethod method = new OptionsMethod("/");
- try {
- client.startSession(host, port);
- client.executeMethod(method);
- } catch (Throwable t) {
- t.printStackTrace();
- fail("Unable to execute method : " + t.toString());
- }
-
- Enumeration methodsAllowed = method.getAllowedMethods();
- // This enumeration musn't be empty
- assert("No HTTP method allowed : result of OPTIONS is incorrect.",
- methodsAllowed.hasMoreElements());
-
+ public static void main(String args[]) {
+ String[] testCaseName = { TestMethods.class.getName() };
+ junit.textui.TestRunner.main(testCaseName);
}
-
-
- public void testMethodsOptionsExternal() {
-
- HttpClient client = new HttpClient();
- client.startSession(externalHost, externalPort);
- OptionsMethod method = new OptionsMethod(externalPath);
-
- try {
- client.startSession(host, port);
- client.executeMethod(method);
- } catch (Throwable t) {
- t.printStackTrace();
- fail("Unable to execute method : " + t.toString());
- }
-
- Enumeration methodsAllowed = method.getAllowedMethods();
- // This enumeration musn't be empty
- assert("No HTTP method allowed : result of OPTIONS is incorrect.",
- methodsAllowed.hasMoreElements());
-
- }
-
-
- // --------------------------------------------------------------- GET Test
-
-
- public void testMethodsGet() {
-
- HttpClient client = new HttpClient();
- client.startSession(host, port);
-
- OptionsMethod opmethod = new OptionsMethod("/");
-
- try {
- client.executeMethod(opmethod);
- } catch (Throwable t) {
- t.printStackTrace();
- fail("Unable to execute method : " + t.toString());
- }
-
- GetMethod method = new GetMethod("/");
- method.setUseDisk(false);
-
- try {
- client.executeMethod(method);
- } catch (Throwable t) {
- t.printStackTrace();
- fail("Unable to execute method : " + t.toString());
- }
-
- try {
- String data = method.getDataAsString();
- // This enumeration musn't be empty
- assert("No data returned.",
- (data.length() > 0));
- } catch (Throwable t) {
- t.printStackTrace();
- fail("Unable to execute method : " + t.toString());
- }
-
- method.recycle();
- method.setPath("/index.html");
- method.setUseDisk(true);
-
- try {
- client.executeMethod(method);
- } catch (Throwable t) {
- t.printStackTrace();
- fail("Unable to execute method : " + t.toString());
- }
-
- try {
- String data = method.getDataAsString();
- // This enumeration musn't be empty
- assert("No data returned.",
- (data.length() > 0));
- } catch (Throwable t) {
- t.printStackTrace();
- fail("Unable to execute method : " + t.toString());
- }
-
- }
-
-
- // -------------------------------------------------------------- HEAD Test
-
-
- public void testMethodsHead() {
-
- HttpClient client = new HttpClient();
- client.startSession(host, port);
-
- OptionsMethod opmethod = new OptionsMethod("/");
-
- try {
- client.executeMethod(opmethod);
- } catch (Throwable t) {
- t.printStackTrace();
- fail("Unable to execute method : " + t.toString());
- }
-
- HeadMethod method = new HeadMethod("/");
-
- try {
- client.executeMethod(method);
- } catch (Throwable t) {
- t.printStackTrace();
- fail("Unable to execute method : " + t.toString());
- }
-
- assert("Method failed : " + method.getStatusCode(),
- (method.getStatusCode() == 200));
-
- method.recycle();
- method.setPath("/index.html");
-
- try {
- client.executeMethod(method);
- } catch (Throwable t) {
- t.printStackTrace();
- fail("Unable to execute method : " + t.toString());
- }
-
- assert("Method failed : " + method.getStatusCode(),
- (method.getStatusCode() == 200));
-
- }
-
- public void testMethodsHeadExternal() {
-
- HttpClient client = new HttpClient();
- client.startSession(externalHost, externalPort);
-
- HeadMethod method = new HeadMethod(externalPath);
-
- try {
- client.executeMethod(method);
- } catch (Throwable t) {
- t.printStackTrace();
- fail("Unable to execute method : " + t.toString());
- }
-
- assert("Method failed : " + method.getStatusCode(),
- (method.getStatusCode() == 200));
-
- }
-
- /**
- * This test proves that bad urls throw an IOException,
- * and not some other throwable like a NullPointerException.
- */
- public void testIOException() {
-
- HttpClient client = new HttpClient();
- client.startSession("http://whaturl.com.org", externalPort);
-
- GetMethod method = new GetMethod("");
-
- try {
- client.executeMethod(method);
- } catch (IOException e) {
- return; // good
- } catch (HttpException e) {
- return; // also good
- }
-
- fail("Should have thrown an exception");
-
- }
-
-
}
1.1
jakarta-commons/httpclient/src/test/org/apache/commons/httpclient/TestAllExternal.java
Index: TestAllExternal.java
===================================================================
/*
* $Header:
/home/cvs/jakarta-commons/httpclient/src/test/org/apache/commons/httpclient/TestAllExternal.java,v
1.1 2001/07/27 22:52:25 rwaldhoff Exp $
* $Revision: 1.1 $
* $Date: 2001/07/27 22:52:25 $
*
* ====================================================================
*
* The Apache Software License, Version 1.1
*
* Copyright (c) 1999-2001 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution, if
* any, must include the following acknowlegement:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowlegement may appear in the software itself,
* if and wherever such third-party acknowlegements normally appear.
*
* 4. The names "The Jakarta Project", "Commons", and "Apache Software
* Foundation" must not be used to endorse or promote products derived
* from this software without prior written permission. For written
* permission, please contact [EMAIL PROTECTED]
*
* 5. Products derived from this software may not be called "Apache"
* nor may "Apache" appear in their names without prior written
* permission of the Apache Group.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*
*/
package org.apache.commons.httpclient;
import junit.framework.*;
/**
* @author Rodney Waldhoff
* @version $Id: TestAllExternal.java,v 1.1 2001/07/27 22:52:25 rwaldhoff Exp $
*/
public class TestAllExternal extends TestCase {
public TestAllExternal(String testName) {
super(testName);
}
public static Test suite() {
TestSuite suite = new TestSuite();
suite.addTest(TestMethodsExternalHost.suite());
suite.addTest(TestCookie.suite());
suite.addTest(TestHttps.suite());
return suite;
}
public static void main(String args[]) {
String[] testCaseName = { TestAllExternal.class.getName() };
junit.textui.TestRunner.main(testCaseName);
}
}
1.1
jakarta-commons/httpclient/src/test/org/apache/commons/httpclient/TestAllLocal.java
Index: TestAllLocal.java
===================================================================
/*
* $Header:
/home/cvs/jakarta-commons/httpclient/src/test/org/apache/commons/httpclient/TestAllLocal.java,v
1.1 2001/07/27 22:52:25 rwaldhoff Exp $
* $Revision: 1.1 $
* $Date: 2001/07/27 22:52:25 $
*
* ====================================================================
*
* The Apache Software License, Version 1.1
*
* Copyright (c) 1999-2001 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution, if
* any, must include the following acknowlegement:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowlegement may appear in the software itself,
* if and wherever such third-party acknowlegements normally appear.
*
* 4. The names "The Jakarta Project", "Commons", and "Apache Software
* Foundation" must not be used to endorse or promote products derived
* from this software without prior written permission. For written
* permission, please contact [EMAIL PROTECTED]
*
* 5. Products derived from this software may not be called "Apache"
* nor may "Apache" appear in their names without prior written
* permission of the Apache Group.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*
*/
package org.apache.commons.httpclient;
import junit.framework.*;
/**
* @author Rodney Waldhoff
* @version $Id: TestAllLocal.java,v 1.1 2001/07/27 22:52:25 rwaldhoff Exp $
*/
public class TestAllLocal extends TestCase {
public TestAllLocal(String testName) {
super(testName);
}
public static Test suite() {
TestSuite suite = new TestSuite();
suite.addTest(TestMethodsLocalHost.suite());
suite.addTest(TestCookie.suite());
return suite;
}
public static void main(String args[]) {
String[] testCaseName = { TestAllLocal.class.getName() };
junit.textui.TestRunner.main(testCaseName);
}
}
1.1
jakarta-commons/httpclient/src/test/org/apache/commons/httpclient/TestMethodsExternalHost.java
Index: TestMethodsExternalHost.java
===================================================================
/*
* $Header:
/home/cvs/jakarta-commons/httpclient/src/test/org/apache/commons/httpclient/TestMethodsExternalHost.java,v
1.1 2001/07/27 22:52:25 rwaldhoff Exp $
* $Revision: 1.1 $
* $Date: 2001/07/27 22:52:25 $
*
* ====================================================================
*
* The Apache Software License, Version 1.1
*
* Copyright (c) 1999-2001 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution, if
* any, must include the following acknowlegement:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowlegement may appear in the software itself,
* if and wherever such third-party acknowlegements normally appear.
*
* 4. The names "The Jakarta Project", "Commons", and "Apache Software
* Foundation" must not be used to endorse or promote products derived
* from this software without prior written permission. For written
* permission, please contact [EMAIL PROTECTED]
*
* 5. Products derived from this software may not be called "Apache"
* nor may "Apache" appear in their names without prior written
* permission of the Apache Group.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*
*/
package org.apache.commons.httpclient;
import java.io.IOException;
import java.util.Enumeration;
import junit.framework.*;
import org.apache.commons.httpclient.methods.*;
/**
* Simple tests for the HTTP client hitting an external webserver.
*
* This test suite assumes you have an internet connection that
* can communicate with http://java.sun.com/.
*
* @author Remy Maucherat
* @author Rodney Waldhoff
* @version $Id: TestMethodsExternalHost.java,v 1.1 2001/07/27 22:52:25 rwaldhoff
Exp $
*/
public class TestMethodsExternalHost extends TestCase {
// -------------------------------------------------------------- Constants
private static final String externalHost = "java.sun.com";
private static final int externalPort = 80;
private static final String externalPath = "/index.html";
// ------------------------------------------------------------ Constructor
public TestMethodsExternalHost(String testName) {
super(testName);
}
// ------------------------------------------------------- TestCase Methods
public static Test suite() {
return new TestSuite(TestMethodsExternalHost.class);
}
// ----------------------------------------------------------- OPTIONS Test
public void testMethodsOptionsExternal() {
HttpClient client = new HttpClient();
client.startSession(externalHost, externalPort);
OptionsMethod method = new OptionsMethod(externalPath);
try {
client.startSession(externalHost, externalPort);
client.executeMethod(method);
} catch (Throwable t) {
t.printStackTrace();
fail("Unable to execute method : " + t.toString());
}
Enumeration methodsAllowed = method.getAllowedMethods();
// This enumeration musn't be empty
assert("No HTTP method allowed : result of OPTIONS is incorrect.",
methodsAllowed.hasMoreElements());
}
// --------------------------------------------------------------- GET Test
public void testMethodsGetExternal() {
HttpClient client = new HttpClient();
client.startSession(externalHost, externalPort);
GetMethod method = new GetMethod("/");
method.setUseDisk(false);
try {
client.executeMethod(method);
} catch (Throwable t) {
t.printStackTrace();
fail("Unable to execute method : " + t.toString());
}
try {
String data = method.getDataAsString();
// This enumeration musn't be empty
assert("No data returned.",
(data.length() > 0));
} catch (Throwable t) {
t.printStackTrace();
fail("Unable to execute method : " + t.toString());
}
method.recycle();
method.setPath(externalPath);
method.setUseDisk(true);
try {
client.executeMethod(method);
} catch (Throwable t) {
t.printStackTrace();
fail("Unable to execute method : " + t.toString());
}
try {
String data = method.getDataAsString();
// This enumeration musn't be empty
assert("No data returned.",
(data.length() > 0));
} catch (Throwable t) {
t.printStackTrace();
fail("Unable to execute method : " + t.toString());
}
}
// -------------------------------------------------------------- HEAD Test
public void testMethodsHeadExternal() {
HttpClient client = new HttpClient();
client.startSession(externalHost, externalPort);
HeadMethod method = new HeadMethod(externalPath);
try {
client.executeMethod(method);
} catch (Throwable t) {
t.printStackTrace();
fail("Unable to execute method : " + t.toString());
}
assert("Method failed : " + method.getStatusCode(),
(method.getStatusCode() == 200));
}
/**
* This test proves that bad urls throw an IOException,
* and not some other throwable like a NullPointerException.
*/
public void testIOException() {
HttpClient client = new HttpClient();
client.startSession("http://whaturl.com.org", externalPort);
GetMethod method = new GetMethod("");
try {
client.executeMethod(method);
} catch (IOException e) {
return; // good
} catch (HttpException e) {
return; // also good
}
fail("Should have thrown an exception");
}
}
1.1
jakarta-commons/httpclient/src/test/org/apache/commons/httpclient/TestMethodsLocalHost.java
Index: TestMethodsLocalHost.java
===================================================================
/*
* $Header:
/home/cvs/jakarta-commons/httpclient/src/test/org/apache/commons/httpclient/TestMethodsLocalHost.java,v
1.1 2001/07/27 22:52:25 rwaldhoff Exp $
* $Revision: 1.1 $
* $Date: 2001/07/27 22:52:25 $
*
* ====================================================================
*
* The Apache Software License, Version 1.1
*
* Copyright (c) 1999-2001 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution, if
* any, must include the following acknowlegement:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowlegement may appear in the software itself,
* if and wherever such third-party acknowlegements normally appear.
*
* 4. The names "The Jakarta Project", "Commons", and "Apache Software
* Foundation" must not be used to endorse or promote products derived
* from this software without prior written permission. For written
* permission, please contact [EMAIL PROTECTED]
*
* 5. Products derived from this software may not be called "Apache"
* nor may "Apache" appear in their names without prior written
* permission of the Apache Group.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*
*/
package org.apache.commons.httpclient;
import java.io.IOException;
import java.util.Enumeration;
import junit.framework.*;
import org.apache.commons.httpclient.methods.*;
/**
* Simple tests for the HTTP client hitting a local webserver.
*
* This test assumes a webserver is running on port 8080 on
* the 127.0.0.1.
*
* The default configuration of Tomcat 4 will work fine.
*
* Tomcat 3.x will fail the OPTIONS test, because it
* treats OPTIONS as a GET request.
*
* @author Remy Maucherat
* @author Rodney Waldhoff
* @version $Id: TestMethodsLocalHost.java,v 1.1 2001/07/27 22:52:25 rwaldhoff Exp $
*/
public class TestMethodsLocalHost extends TestCase {
// -------------------------------------------------------------- Constants
private static final String host = "127.0.0.1";
private static final int port = 8080;
// ------------------------------------------------------------ Constructor
public TestMethodsLocalHost(String testName) {
super(testName);
}
// ------------------------------------------------------- TestCase Methods
public static Test suite() {
return new TestSuite(TestMethodsLocalHost.class);
}
// ----------------------------------------------------------- OPTIONS Test
/**
* This test assumes that the webserver listening
* on host/port will respond properly to an OPTIONS
* request. Tomcat 4 is one such web server,
* but Tomcat 3.x is not.
*/
public void testMethodsOptions() {
HttpClient client = new HttpClient();
OptionsMethod method = new OptionsMethod("/");
try {
client.startSession(host, port);
client.executeMethod(method);
} catch (Throwable t) {
t.printStackTrace();
fail("Unable to execute method : " + t.toString());
}
Enumeration methodsAllowed = method.getAllowedMethods();
// This enumeration musn't be empty
assert("No HTTP method allowed : result of OPTIONS is incorrect "
+ "(make sure the webserver running on port " + port
+ " supports OPTIONS properly)",
methodsAllowed.hasMoreElements());
}
// --------------------------------------------------------------- GET Test
public void testMethodsGet() {
HttpClient client = new HttpClient();
client.startSession(host, port);
OptionsMethod opmethod = new OptionsMethod("/");
try {
client.executeMethod(opmethod);
} catch (Throwable t) {
t.printStackTrace();
fail("Unable to execute method : " + t.toString());
}
GetMethod method = new GetMethod("/");
method.setUseDisk(false);
try {
client.executeMethod(method);
} catch (Throwable t) {
t.printStackTrace();
fail("Unable to execute method : " + t.toString());
}
try {
String data = method.getDataAsString();
// This enumeration musn't be empty
assert("No data returned.",
(data.length() > 0));
} catch (Throwable t) {
t.printStackTrace();
fail("Unable to execute method : " + t.toString());
}
method.recycle();
method.setPath("/index.html");
method.setUseDisk(true);
try {
client.executeMethod(method);
} catch (Throwable t) {
t.printStackTrace();
fail("Unable to execute method : " + t.toString());
}
try {
String data = method.getDataAsString();
// This enumeration musn't be empty
assert("No data returned.",
(data.length() > 0));
} catch (Throwable t) {
t.printStackTrace();
fail("Unable to execute method : " + t.toString());
}
}
// -------------------------------------------------------------- HEAD Test
public void testMethodsHead() {
HttpClient client = new HttpClient();
client.startSession(host, port);
OptionsMethod opmethod = new OptionsMethod("/");
try {
client.executeMethod(opmethod);
} catch (Throwable t) {
t.printStackTrace();
fail("Unable to execute method : " + t.toString());
}
HeadMethod method = new HeadMethod("/");
try {
client.executeMethod(method);
} catch (Throwable t) {
t.printStackTrace();
fail("Unable to execute method : " + t.toString());
}
assert("Method failed : " + method.getStatusCode(),
(method.getStatusCode() == 200));
method.recycle();
method.setPath("/index.html");
try {
client.executeMethod(method);
} catch (Throwable t) {
t.printStackTrace();
fail("Unable to execute method : " + t.toString());
}
assert("Method failed : " + method.getStatusCode(),
(method.getStatusCode() == 200));
}
}