Return-Path: Delivered-To: apmail-jakarta-httpclient-commits-archive@www.apache.org Received: (qmail 43594 invoked from network); 4 Apr 2005 21:51:47 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 4 Apr 2005 21:51:47 -0000 Received: (qmail 83467 invoked by uid 500); 4 Apr 2005 21:51:47 -0000 Mailing-List: contact httpclient-commits-help@jakarta.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: httpclient-dev@jakarta.apache.org Delivered-To: mailing list httpclient-commits@jakarta.apache.org Received: (qmail 83453 invoked by uid 500); 4 Apr 2005 21:51:47 -0000 Delivered-To: apmail-jakarta-httpclient-cvs@jakarta.apache.org Received: (qmail 83449 invoked by uid 99); 4 Apr 2005 21:51:47 -0000 X-ASF-Spam-Status: No, hits=-9.8 required=10.0 tests=ALL_TRUSTED,NO_REAL_NAME X-Spam-Check-By: apache.org Received: from minotaur.apache.org (HELO minotaur.apache.org) (209.237.227.194) by apache.org (qpsmtpd/0.28) with SMTP; Mon, 04 Apr 2005 14:51:46 -0700 Received: (qmail 43585 invoked by uid 65534); 4 Apr 2005 21:51:45 -0000 Message-ID: <20050404215145.43584.qmail@minotaur.apache.org> Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Mailer: svnmailer-1.0.0-dev Date: Mon, 04 Apr 2005 21:51:45 -0000 Subject: svn commit: r160102 - jakarta/httpclient/trunk/http-common/src/test/org/apache/http/impl/TestAllImpl.java jakarta/httpclient/trunk/http-common/src/test/org/apache/http/impl/TestDefaultEntityGenerator.java To: httpclient-cvs@jakarta.apache.org From: olegk@apache.org X-Virus-Checked: Checked X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N Author: olegk Date: Mon Apr 4 14:51:44 2005 New Revision: 160102 URL: http://svn.apache.org/viewcvs?view=3Drev&rev=3D160102 Log: Extra test coverage ('Transfer-Encoding' not covered yet) Added: jakarta/httpclient/trunk/http-common/src/test/org/apache/http/impl/Test= DefaultEntityGenerator.java (with props) Modified: jakarta/httpclient/trunk/http-common/src/test/org/apache/http/impl/Test= AllImpl.java Modified: jakarta/httpclient/trunk/http-common/src/test/org/apache/http/imp= l/TestAllImpl.java URL: http://svn.apache.org/viewcvs/jakarta/httpclient/trunk/http-common/src= /test/org/apache/http/impl/TestAllImpl.java?view=3Ddiff&r1=3D160101&r2=3D16= 0102 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- jakarta/httpclient/trunk/http-common/src/test/org/apache/http/impl/Test= AllImpl.java (original) +++ jakarta/httpclient/trunk/http-common/src/test/org/apache/http/impl/Test= AllImpl.java Mon Apr 4 14:51:44 2005 @@ -42,6 +42,7 @@ suite.addTest(TestNIOHttpTransmitterAndReceiver.suite()); suite.addTest(TestAutoCloseInputStream.suite()); suite.addTest(TestDefaultConnectionReuseStrategy.suite()); + suite.addTest(TestDefaultEntityGenerator.suite()); return suite; } =20 Added: jakarta/httpclient/trunk/http-common/src/test/org/apache/http/impl/T= estDefaultEntityGenerator.java URL: http://svn.apache.org/viewcvs/jakarta/httpclient/trunk/http-common/src= /test/org/apache/http/impl/TestDefaultEntityGenerator.java?view=3Dauto&rev= =3D160102 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- jakarta/httpclient/trunk/http-common/src/test/org/apache/http/impl/Test= DefaultEntityGenerator.java (added) +++ jakarta/httpclient/trunk/http-common/src/test/org/apache/http/impl/Test= DefaultEntityGenerator.java Mon Apr 4 14:51:44 2005 @@ -0,0 +1,255 @@ +/* + * $HeadURL$ + * $Revision$ + * $Date$ + * =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D + * + * Copyright 2002-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 implie= d=2E + * See the License for the specific language governing permissions and + * limitations under the License. + * =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D + * + * 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 + * . + * + */ + +package org.apache.http.impl; + +import java.io.ByteArrayInputStream; +import java.io.InputStream; + +import org.apache.http.Header; +import org.apache.http.HttpEntity; +import org.apache.http.HttpMutableMessage; +import org.apache.http.ProtocolException; +import org.apache.http.io.ChunkedInputStream; +import org.apache.http.io.ContentLengthInputStream; +import org.apache.http.io.HttpDataInputStream; +import org.apache.http.io.HttpDataReceiver; +import org.apache.http.io.InputStreamHttpDataReceiver; +import org.apache.http.mockup.HttpDataReceiverMockup; +import org.apache.http.params.HttpParams; +import org.apache.http.params.HttpProtocolParams; + +import junit.framework.Test; +import junit.framework.TestCase; +import junit.framework.TestSuite; + +public class TestDefaultEntityGenerator extends TestCase { + + public TestDefaultEntityGenerator(String testName) { + super(testName); + } + + // ------------------------------------------------------- TestCase Me= thods + + public static Test suite() { + return new TestSuite(TestDefaultEntityGenerator.class); + } + + // -------------------------------------------------------------------= Main + public static void main(String args[]) { + String[] testCaseName =3D { TestDefaultEntityGenerator.class.getNa= me() }; + junit.textui.TestRunner.main(testCaseName); + } + + public void testIllegalResponseArg() throws Exception { + EntityGenerator entitygen =3D new DefaultEntityGenerator(); + try { + entitygen.generate(null, null); + fail("IllegalArgumentException should have been thrown"); + } catch (IllegalArgumentException ex) { + // expected + } + try { + entitygen.generate(new HttpDataReceiverMockup(new byte[] {}) ,= null); + fail("IllegalArgumentException should have been thrown"); + } catch (IllegalArgumentException ex) { + // expected + } + } + + public void testEntityWithContentLength() throws Exception { + HttpDataReceiver datareceiver =3D new HttpDataReceiverMockup(new b= yte[] {}); + HttpMutableMessage message =3D new BasicHttpMessage(); + HttpParams params =3D new DefaultHttpParams(null); + message.setParams(params); + =20 + // lenient mode=20 + params.setBooleanParameter(HttpProtocolParams.STRICT_TRANSFER_ENCO= DING, false); + message.addHeader(new Header("Content-Type", "unknown")); + message.addHeader(new Header("Content-Length", "0")); + EntityGenerator entitygen =3D new DefaultEntityGenerator(); + HttpEntity entity =3D entitygen.generate(datareceiver, message); + assertNotNull(entity); + assertEquals(0, entity.getContentLength()); + assertFalse(entity.isChunked()); + assertTrue(entity.getInputStream() instanceof ContentLengthInputSt= ream); + } + + public void testEntityWithMultipleContentLength() throws Exception { + HttpDataReceiver datareceiver =3D new HttpDataReceiverMockup(new b= yte[] {'0'}); + HttpMutableMessage message =3D new BasicHttpMessage(); + HttpParams params =3D new DefaultHttpParams(null); + message.setParams(params); + + // lenient mode=20 + params.setBooleanParameter(HttpProtocolParams.STRICT_TRANSFER_ENCO= DING, false); + message.addHeader(new Header("Content-Type", "unknown")); + message.addHeader(new Header("Content-Length", "0")); + message.addHeader(new Header("Content-Length", "0")); + message.addHeader(new Header("Content-Length", "1")); + EntityGenerator entitygen =3D new DefaultEntityGenerator(); + HttpEntity entity =3D entitygen.generate(datareceiver, message); + assertNotNull(entity); + assertEquals(1, entity.getContentLength()); + assertFalse(entity.isChunked()); + assertNotNull(entity.getInputStream()); + assertTrue(entity.getInputStream() instanceof ContentLengthInputSt= ream); + =20 + // strict mode=20 + params.setBooleanParameter(HttpProtocolParams.STRICT_TRANSFER_ENCO= DING, true); + try { + entitygen.generate(datareceiver, message); + fail("ProtocolException should have been thrown"); + } catch (ProtocolException ex) { + // expected + } + } + =20 + public void testEntityWithMultipleContentLengthSomeWrong() throws Exce= ption { + HttpDataReceiver datareceiver =3D new HttpDataReceiverMockup(new b= yte[] {'0'}); + HttpMutableMessage message =3D new BasicHttpMessage(); + HttpParams params =3D new DefaultHttpParams(null); + message.setParams(params); + + // lenient mode=20 + params.setBooleanParameter(HttpProtocolParams.STRICT_TRANSFER_ENCO= DING, false); + message.addHeader(new Header("Content-Type", "unknown")); + message.addHeader(new Header("Content-Length", "1")); + message.addHeader(new Header("Content-Length", "yyy")); + message.addHeader(new Header("Content-Length", "xxx")); + EntityGenerator entitygen =3D new DefaultEntityGenerator(); + HttpEntity entity =3D entitygen.generate(datareceiver, message); + assertNotNull(entity); + assertEquals(1, entity.getContentLength()); + assertFalse(entity.isChunked()); + assertNotNull(entity.getInputStream()); + assertTrue(entity.getInputStream() instanceof ContentLengthInputSt= ream); + =20 + // strict mode=20 + params.setBooleanParameter(HttpProtocolParams.STRICT_TRANSFER_ENCO= DING, true); + try { + entitygen.generate(datareceiver, message); + fail("ProtocolException should have been thrown"); + } catch (ProtocolException ex) { + // expected + } + } + =20 + public void testEntityWithMultipleContentLengthAllWrong() throws Excep= tion { + HttpDataReceiver datareceiver =3D new HttpDataReceiverMockup(new b= yte[] {'0'}); + HttpMutableMessage message =3D new BasicHttpMessage(); + HttpParams params =3D new DefaultHttpParams(null); + message.setParams(params); + + // lenient mode=20 + params.setBooleanParameter(HttpProtocolParams.STRICT_TRANSFER_ENCO= DING, false); + message.addHeader(new Header("Content-Type", "unknown")); + message.addHeader(new Header("Content-Length", "yyy")); + message.addHeader(new Header("Content-Length", "xxx")); + EntityGenerator entitygen =3D new DefaultEntityGenerator(); + HttpEntity entity =3D entitygen.generate(datareceiver, message); + assertNotNull(entity); + assertEquals(-1, entity.getContentLength()); + assertFalse(entity.isChunked()); + assertNotNull(entity.getInputStream()); + assertFalse(entity.getInputStream() instanceof ContentLengthInputS= tream); + assertTrue(entity.getInputStream() instanceof HttpDataInputStream); + =20 + // strict mode=20 + params.setBooleanParameter(HttpProtocolParams.STRICT_TRANSFER_ENCO= DING, true); + try { + entitygen.generate(datareceiver, message); + fail("ProtocolException should have been thrown"); + } catch (ProtocolException ex) { + // expected + } + } + + public void testEntityWithInvalidContentLength() throws Exception { + HttpDataReceiver datareceiver =3D new HttpDataReceiverMockup(new b= yte[] {'0'}); + HttpMutableMessage message =3D new BasicHttpMessage(); + HttpParams params =3D new DefaultHttpParams(null); + message.setParams(params); + + // lenient mode=20 + params.setBooleanParameter(HttpProtocolParams.STRICT_TRANSFER_ENCO= DING, false); + message.addHeader(new Header("Content-Type", "unknown")); + message.addHeader(new Header("Content-Length", "xxx")); + EntityGenerator entitygen =3D new DefaultEntityGenerator(); + HttpEntity entity =3D entitygen.generate(datareceiver, message); + assertNotNull(entity); + assertEquals(-1, entity.getContentLength()); + assertFalse(entity.isChunked()); + assertNotNull(entity.getInputStream()); + assertFalse(entity.getInputStream() instanceof ContentLengthInputS= tream); + assertTrue(entity.getInputStream() instanceof HttpDataInputStream); + =20 + // strict mode=20 + params.setBooleanParameter(HttpProtocolParams.STRICT_TRANSFER_ENCO= DING, true); + try { + entitygen.generate(datareceiver, message); + fail("ProtocolException should have been thrown"); + } catch (ProtocolException ex) { + // expected + } + } + + public void testEntityNeitherContentLengthNorTransferEncoding() throws= Exception { + HttpDataReceiver datareceiver =3D new HttpDataReceiverMockup(new b= yte[] {'0'}); + HttpMutableMessage message =3D new BasicHttpMessage(); + HttpParams params =3D new DefaultHttpParams(null); + message.setParams(params); + + // lenient mode=20 + params.setBooleanParameter(HttpProtocolParams.STRICT_TRANSFER_ENCO= DING, false); + EntityGenerator entitygen =3D new DefaultEntityGenerator(); + HttpEntity entity =3D entitygen.generate(datareceiver, message); + assertNotNull(entity); + assertEquals(-1, entity.getContentLength()); + assertFalse(entity.isChunked()); + assertNotNull(entity.getInputStream()); + assertFalse(entity.getInputStream() instanceof ContentLengthInputS= tream); + assertFalse(entity.getInputStream() instanceof ChunkedInputStream); + assertTrue(entity.getInputStream() instanceof HttpDataInputStream); + } + + public void testOldIOWrapper() throws Exception { + InputStream instream =3D new ByteArrayInputStream(new byte[] {}); + HttpDataReceiver datareceiver =3D new InputStreamHttpDataReceiver(= instream); + HttpMutableMessage message =3D new BasicHttpMessage(); + message.addHeader(new Header("Content-Type", "unknown")); + EntityGenerator entitygen =3D new DefaultEntityGenerator(); + HttpEntity entity =3D entitygen.generate(datareceiver, message); + assertNotNull(entity); + assertEquals(-1, entity.getContentLength()); + assertFalse(entity.isChunked()); + assertTrue(entity.getInputStream() instanceof ByteArrayInputStream= ); + } + +} + Propchange: jakarta/httpclient/trunk/http-common/src/test/org/apache/http/i= mpl/TestDefaultEntityGenerator.java ---------------------------------------------------------------------------= --- svn:eol-style =3D native Propchange: jakarta/httpclient/trunk/http-common/src/test/org/apache/http/i= mpl/TestDefaultEntityGenerator.java ---------------------------------------------------------------------------= --- svn:keywords =3D Date Author Id Revision HeadURL Propchange: jakarta/httpclient/trunk/http-common/src/test/org/apache/http/i= mpl/TestDefaultEntityGenerator.java ---------------------------------------------------------------------------= --- svn:mime-type =3D text/plain