| /* |
| * $Header: /home/data/cvs/rt/org.eclipse.ecf/tests/bundles/org.eclipse.ecf.tests.apache.httpclient.server/src/org/apache/commons/httpclient/TestPostParameterEncoding.java,v 1.1 2009/02/13 18:07:50 slewis Exp $ |
| * $Revision: 1.1 $ |
| * $Date: 2009/02/13 18:07:50 $ |
| * ==================================================================== |
| * |
| * 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 java.io.ByteArrayOutputStream; |
| import java.io.IOException; |
| |
| import junit.framework.Test; |
| import junit.framework.TestCase; |
| import junit.framework.TestSuite; |
| |
| import org.apache.commons.httpclient.methods.PostMethod; |
| import org.apache.commons.httpclient.methods.RequestEntity; |
| import org.apache.commons.httpclient.methods.StringRequestEntity; |
| |
| /** |
| * Tests basic method functionality. |
| * |
| * @author Remy Maucherat |
| * @author Rodney Waldhoff |
| * |
| * @version $Id: TestPostParameterEncoding.java,v 1.1 2009/02/13 18:07:50 slewis Exp $ |
| */ |
| public class TestPostParameterEncoding extends TestCase { |
| |
| static final String NAME = "name", VALUE = "value"; |
| static final String NAME0 = "name0", VALUE0 = "value0"; |
| static final String NAME1 = "name1", VALUE1 = "value1"; |
| static final String NAME2 = "name2", VALUE2 = "value2"; |
| |
| static final NameValuePair PAIR = new NameValuePair(NAME, VALUE); |
| static final NameValuePair PAIR0 = new NameValuePair(NAME0, VALUE0); |
| static final NameValuePair PAIR1 = new NameValuePair(NAME1, VALUE1); |
| static final NameValuePair PAIR2 = new NameValuePair(NAME2, VALUE2); |
| |
| public TestPostParameterEncoding(final String testName) throws IOException { |
| super(testName); |
| } |
| |
| public static Test suite() { |
| return new TestSuite(TestPostParameterEncoding.class); |
| } |
| |
| public static void main(String args[]) { |
| String[] testCaseName = { TestPostParameterEncoding.class.getName() }; |
| junit.textui.TestRunner.main(testCaseName); |
| } |
| |
| private String getRequestAsString(RequestEntity entity) throws Exception { |
| ByteArrayOutputStream bos = new ByteArrayOutputStream(); |
| entity.writeRequest(bos); |
| return new String(bos.toByteArray(), "UTF-8"); |
| } |
| |
| public void testPostParametersEncoding() throws Exception { |
| PostMethod post = new PostMethod(); |
| post.setRequestBody(new NameValuePair[] { PAIR }); |
| assertEquals("name=value", getRequestAsString(post.getRequestEntity())); |
| |
| post.setRequestBody(new NameValuePair[]{ PAIR, PAIR1, PAIR2 }); |
| assertEquals("name=value&name1=value1&name2=value2", |
| getRequestAsString(post.getRequestEntity())); |
| |
| post.setRequestBody(new NameValuePair[]{ PAIR, PAIR1, PAIR2, new NameValuePair("hasSpace", "a b c d") }); |
| assertEquals("name=value&name1=value1&name2=value2&hasSpace=a+b+c+d", |
| getRequestAsString(post.getRequestEntity())); |
| |
| post.setRequestBody(new NameValuePair[]{ new NameValuePair("escaping", ",.-\u00f6\u00e4\u00fc!+@#*&()=?:;}{[]$") }); |
| assertEquals("escaping=%2C.-%F6%E4%FC%21%2B%40%23*%26%28%29%3D%3F%3A%3B%7D%7B%5B%5D%24", |
| getRequestAsString(post.getRequestEntity())); |
| |
| } |
| |
| public void testPostSetRequestBody() throws Exception { |
| PostMethod post = new PostMethod("/foo"); |
| String body = "this+is+the+body"; |
| post.setRequestEntity(new StringRequestEntity(body)); |
| assertEquals(body, getRequestAsString(post.getRequestEntity())); |
| } |
| |
| } |