From 47d714b019724ff0af5a61098b23b8709080e0c4 Mon Sep 17 00:00:00 2001 From: Raymond Auge Date: Tue, 21 Apr 2015 13:49:44 -0400 Subject: Bug 464377 - test Signed-off-by: Raymond Auge --- .../equinox/http/servlet/tests/ServletTest.java | 22 +++++++++++ .../http/servlet/tests/util/BufferedServlet.java | 46 ++++++++++++++++++++++ 2 files changed, 68 insertions(+) create mode 100644 bundles/org.eclipse.equinox.http.servlet.tests/src/org/eclipse/equinox/http/servlet/tests/util/BufferedServlet.java (limited to 'bundles/org.eclipse.equinox.http.servlet.tests') diff --git a/bundles/org.eclipse.equinox.http.servlet.tests/src/org/eclipse/equinox/http/servlet/tests/ServletTest.java b/bundles/org.eclipse.equinox.http.servlet.tests/src/org/eclipse/equinox/http/servlet/tests/ServletTest.java index ce9032f8d..6aa3e70c5 100644 --- a/bundles/org.eclipse.equinox.http.servlet.tests/src/org/eclipse/equinox/http/servlet/tests/ServletTest.java +++ b/bundles/org.eclipse.equinox.http.servlet.tests/src/org/eclipse/equinox/http/servlet/tests/ServletTest.java @@ -76,6 +76,7 @@ import org.eclipse.equinox.http.servlet.tests.util.BaseServletContextAttributeLi import org.eclipse.equinox.http.servlet.tests.util.BaseServletContextListener; import org.eclipse.equinox.http.servlet.tests.util.BaseServletRequestAttributeListener; import org.eclipse.equinox.http.servlet.tests.util.BaseServletRequestListener; +import org.eclipse.equinox.http.servlet.tests.util.BufferedServlet; import org.eclipse.equinox.http.servlet.tests.util.ServletRequestAdvisor; import org.junit.Assert; @@ -1995,6 +1996,27 @@ public class ServletTest extends TestCase { Assert.assertEquals(expected, actual); } + public void test_BufferedOutput() throws Exception { + Collection> registrations = new ArrayList>(); + try { + Dictionary servletProps1 = new Hashtable(); + servletProps1.put(HttpWhiteboardConstants.HTTP_WHITEBOARD_SERVLET_NAME, "S9"); + servletProps1.put(HttpWhiteboardConstants.HTTP_WHITEBOARD_SERVLET_PATTERN, "/s9"); + registrations.add(getBundleContext().registerService(Servlet.class, new BufferedServlet(), servletProps1)); + + Map> response = requestAdvisor.request( + "s9", Collections.>emptyMap()); + + String responseCode = response.get("responseCode").get(0); + Assert.assertEquals("200", responseCode); + } + finally { + for (ServiceRegistration registration : registrations) { + registration.unregister(); + } + } + } + private static final String PROTOTYPE = "prototype/"; private static final String CONFIGURE = "configure"; private static final String UNREGISTER = "unregister"; diff --git a/bundles/org.eclipse.equinox.http.servlet.tests/src/org/eclipse/equinox/http/servlet/tests/util/BufferedServlet.java b/bundles/org.eclipse.equinox.http.servlet.tests/src/org/eclipse/equinox/http/servlet/tests/util/BufferedServlet.java new file mode 100644 index 000000000..f8117b59f --- /dev/null +++ b/bundles/org.eclipse.equinox.http.servlet.tests/src/org/eclipse/equinox/http/servlet/tests/util/BufferedServlet.java @@ -0,0 +1,46 @@ +/******************************************************************************* + * Copyright (c) 2015 Raymond Augé and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Raymond Augé - Bug 464377 + ******************************************************************************/ + +package org.eclipse.equinox.http.servlet.tests.util; + +import java.io.IOException; +import java.io.PrintWriter; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +public class BufferedServlet extends HttpServlet { + + static final char[] value = String.format("%01023d", 1).toCharArray(); + + @Override + protected void service( + HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + + response.setContentType( "text/html" ); + response.setBufferSize(value.length); + + PrintWriter writer = response.getWriter(); + + for (int i = 0; i < 10; i++) { + writer.print(value); + + response.flushBuffer(); + response.setStatus(HttpServletResponse.SC_OK); + } + + writer.print(value); + } + +} \ No newline at end of file -- cgit v1.2.3