Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRaymond Auge2016-04-12 03:24:01 +0000
committerRaymond Auge2016-04-12 15:33:16 +0000
commita8b08fe3c892821f746ad9db52e754a5cf5f3185 (patch)
tree61e434973e6ac4b5e7676dc74b36cea3bc96ad17 /bundles/org.eclipse.equinox.http.servlet.tests
parent5bac9576d0c5ab84b44d0c19908de7893539f991 (diff)
downloadrt.equinox.bundles-a8b08fe3c892821f746ad9db52e754a5cf5f3185.tar.gz
rt.equinox.bundles-a8b08fe3c892821f746ad9db52e754a5cf5f3185.tar.xz
rt.equinox.bundles-a8b08fe3c892821f746ad9db52e754a5cf5f3185.zip
Bug 490644 [http whiteboard] Pass attribute to parent httpSession if value is null, in order to fulfill httpSession.setAttribute API
Signed-off-by: Juan Gonzalez <juan.gonzalez@liferay.com>
Diffstat (limited to 'bundles/org.eclipse.equinox.http.servlet.tests')
-rw-r--r--bundles/org.eclipse.equinox.http.servlet.tests/src/org/eclipse/equinox/http/servlet/tests/ServletTest.java63
1 files changed, 63 insertions, 0 deletions
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 7a9a13338..099130400 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
@@ -31,6 +31,7 @@ import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.Dictionary;
+import java.util.Enumeration;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Hashtable;
@@ -1513,6 +1514,68 @@ public class ServletTest extends BaseTest {
}
@Test
+ public void test_Sessions02() {
+ final AtomicReference<HttpSession> sessionReference = new AtomicReference<HttpSession>();
+
+ HttpServlet sessionServlet = new HttpServlet() {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException,
+ IOException {
+ HttpSession session = request.getSession();
+ sessionReference.set(session);
+ if (session.getAttribute("test.attribute") == null) {
+ session.setAttribute("test.attribute", "foo");
+ response.getWriter().print("created");
+ } else {
+ session.setAttribute("test.attribute", null);
+ response.getWriter().print("attribute set to null");
+ }
+ }
+ };
+ ServiceRegistration<Servlet> servletReg = null;
+ Dictionary<String, Object> servletProps = new Hashtable<String, Object>();
+ servletProps.put(HttpWhiteboardConstants.HTTP_WHITEBOARD_SERVLET_PATTERN, "/sessions");
+ String actual = null;
+ CookieHandler previous = CookieHandler.getDefault();
+ CookieHandler.setDefault(new CookieManager( null, CookiePolicy.ACCEPT_ALL ) );
+ try {
+ servletReg = getBundleContext().registerService(Servlet.class, sessionServlet, servletProps);
+
+ // first call will create the session
+ actual = requestAdvisor.request("sessions");
+ assertEquals("Wrong result", "created", actual);
+
+ // second call will set parameter to null
+ actual = requestAdvisor.request("sessions");
+ assertEquals("Wrong result", "attribute set to null", actual);
+
+ HttpSession httpSession = sessionReference.get();
+
+ Enumeration<String> names = httpSession.getAttributeNames();
+
+ boolean exist = false;
+
+ while (names.hasMoreElements()) {
+ String name = names.nextElement();
+ if (name.equals("test.attribute")) {
+ exist = true;
+ }
+ }
+
+ assertFalse("Session atribute was not removed", exist);
+ } catch (Exception e) {
+ fail("Unexpected exception: " + e);
+ } finally {
+ if (servletReg != null) {
+ servletReg.unregister();
+ }
+ CookieHandler.setDefault(previous);
+ }
+ }
+
+ @Test
public void test_Resource1() throws Exception {
String expected = "a";
String actual;

Back to the top