/* * ==================================================================== * * Copyright 1999-2004 The Apache Software Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * ==================================================================== * * 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 org.apache.commons.httpclient.protocol.Protocol; import junit.framework.*; /** * Simple tests for {@link StatusLine}. * * @author <a href="mailto:oleg@ural.ru">oleg Kalnichevski</a> * @version $Id: TestRequestLine.java,v 1.1 2009/02/13 18:07:49 slewis Exp $ */ public class TestRequestLine extends TestCase { // ------------------------------------------------------------ Constructor public TestRequestLine(String testName) { super(testName); } // ------------------------------------------------------------------- Main public static void main(String args[]) { String[] testCaseName = { TestRequestLine.class.getName() }; junit.textui.TestRunner.main(testCaseName); } // ------------------------------------------------------- TestCase Methods public static Test suite() { return new TestSuite(TestRequestLine.class); } // ----------------------------------------------------------- Test Methods public void testRequestLineGeneral() throws Exception { HttpConnection conn = new HttpConnection("localhost", 80); FakeHttpMethod method = new FakeHttpMethod(); assertEquals("Simple / HTTP/1.1\r\n", method.generateRequestLine(conn, HttpVersion.HTTP_1_1)); method = new FakeHttpMethod("stuff"); assertEquals("Simple stuff HTTP/1.1\r\n", method.generateRequestLine(conn, HttpVersion.HTTP_1_1)); conn = new HttpConnection("proxy", 8080, "localhost", 80, Protocol.getProtocol("http")); method = new FakeHttpMethod(); assertEquals("Simple http://localhost/ HTTP/1.1\r\n", method.generateRequestLine(conn, HttpVersion.HTTP_1_1)); method = new FakeHttpMethod("stuff"); assertEquals("Simple http://localhost/stuff HTTP/1.1\r\n", method.generateRequestLine(conn, HttpVersion.HTTP_1_1)); conn = new HttpConnection("proxy", 8080, "localhost", -1, Protocol.getProtocol("http")); method = new FakeHttpMethod(); assertEquals("Simple http://localhost/ HTTP/1.1\r\n", method.generateRequestLine(conn, HttpVersion.HTTP_1_1)); method = new FakeHttpMethod("stuff"); assertEquals("Simple http://localhost/stuff HTTP/1.1\r\n", method.generateRequestLine(conn, HttpVersion.HTTP_1_1)); conn = new HttpConnection("proxy", 8080, "localhost", 666, Protocol.getProtocol("http")); method = new FakeHttpMethod(); assertEquals("Simple http://localhost:666/ HTTP/1.1\r\n", method.generateRequestLine(conn, HttpVersion.HTTP_1_1)); method = new FakeHttpMethod("stuff"); assertEquals("Simple http://localhost:666/stuff HTTP/1.1\r\n", method.generateRequestLine(conn, HttpVersion.HTTP_1_1)); } public void testRequestLineQuery() throws Exception { HttpConnection conn = new HttpConnection("localhost", 80); FakeHttpMethod method = new FakeHttpMethod(); method.setQueryString( new NameValuePair[] { new NameValuePair("param1", " !#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~"), new NameValuePair("param2", "some stuff") } ); assertEquals("Simple /?param1=+%21%23%24%25%26%27%28%29*%2B%2C-.%2F%3A%3B%3C%3D%3E%3F%40%5B%5C%5D%5E_%60%7B%7C%7D%7E¶m2=some+stuff HTTP/1.1\r\n", method.generateRequestLine(conn, HttpVersion.HTTP_1_1)); } public void testRequestLinePath() throws Exception { HttpConnection conn = new HttpConnection("localhost", 80); FakeHttpMethod method = new FakeHttpMethod(); method.setPath("/some%20stuff/"); assertEquals("Simple /some%20stuff/ HTTP/1.1\r\n", method.generateRequestLine(conn, HttpVersion.HTTP_1_1)); method = new FakeHttpMethod("/some%20stuff/"); assertEquals("Simple /some%20stuff/ HTTP/1.1\r\n", method.generateRequestLine(conn, HttpVersion.HTTP_1_1)); } }