use of com.meterware.httpunit.WebConversation in project geode by apache.
the class SessionReplicationIntegrationJUnitTest method testUserCanModifyTheirOwnCookie.
/**
* Test that a servlet can modify cookies
*/
@Test
public void testUserCanModifyTheirOwnCookie() throws Exception {
Callback c = new Callback() {
@Override
public void call(HttpServletRequest request, HttpServletResponse response) throws IOException {
Cookie userCookie = findUserCookie(request.getCookies());
if (userCookie == null) {
userCookie = new Cookie("myCookie", "0");
} else {
userCookie = new Cookie("myCookie", Integer.toString(Integer.valueOf(userCookie.getValue()) + 1));
}
response.addCookie(userCookie);
request.getSession().setAttribute("dummy", "value");
}
};
tester.setAttribute("callback_1", c);
String url = tester.createConnector(true);
tester.start();
WebConversation wc = new WebConversation();
WebRequest req = new GetMethodWebRequest(url + "/test/hello");
req.setHeaderField("Cookie", "myCookie=" + 5);
final WebResponse webResponse = wc.getResponse(req);
assertEquals("6", webResponse.getNewCookieValue("myCookie"));
}
use of com.meterware.httpunit.WebConversation in project geode by apache.
the class SessionReplicationIntegrationJUnitTest method testInvalidateSession9.
/**
* Test that invalidating a session throws an exception on subsequent access.
*/
// GEODE-1943
@Category(FlakyTest.class)
@Test
public void testInvalidateSession9() throws Exception {
Callback c_1 = new Callback() {
@Override
public void call(HttpServletRequest request, HttpServletResponse response) throws IOException {
HttpSession s = request.getSession();
s.invalidate();
PrintWriter out = response.getWriter();
try {
s.isNew();
} catch (IllegalStateException iex) {
out.write("OK");
}
}
};
tester.setAttribute("callback_1", c_1);
servletHolder.setInitParameter("test.callback", "callback_1");
String url = tester.createConnector(true);
tester.start();
WebConversation wc = new WebConversation();
WebRequest req = new GetMethodWebRequest(url + "/test/hello");
req.setHeaderField("Host", "tester");
final WebResponse webResponse = wc.getResponse(req);
assertEquals("OK", webResponse.getResponseMessage());
}
use of com.meterware.httpunit.WebConversation in project geode by apache.
the class TestSessionsTomcat8Base method testInvalidate.
/**
* Test that invalidating a session makes it's attributes inaccessible.
*/
@Test
public void testInvalidate() throws Exception {
String key = "value_testInvalidate";
String value = "Foo";
WebConversation wc = new WebConversation();
WebRequest req = new GetMethodWebRequest(String.format("http://localhost:%d/test", port));
// Set an attribute
req.setParameter("cmd", QueryCommand.SET.name());
req.setParameter("param", key);
req.setParameter("value", value);
WebResponse response = wc.getResponse(req);
// Invalidate the session
req.removeParameter("param");
req.removeParameter("value");
req.setParameter("cmd", QueryCommand.INVALIDATE.name());
wc.getResponse(req);
// The attribute should not be accessible now...
req.setParameter("cmd", QueryCommand.GET.name());
req.setParameter("param", key);
response = wc.getResponse(req);
assertEquals("", response.getText());
}
use of com.meterware.httpunit.WebConversation in project geode by apache.
the class TestSessionsTomcat8Base method testLastAccessedTime.
/**
* Test for issue #46 lastAccessedTime is not updated at the start of the request, but only at the
* end.
*/
@Test
public void testLastAccessedTime() throws Exception {
Callback c = new Callback() {
@Override
public void call(HttpServletRequest request, HttpServletResponse response) throws IOException {
HttpSession session = request.getSession();
// Hack to expose the session to our test context
session.getServletContext().setAttribute("session", session);
session.setAttribute("lastAccessTime", session.getLastAccessedTime());
try {
Thread.sleep(100);
} catch (InterruptedException ex) {
}
session.setAttribute("somethingElse", 1);
request.getSession();
response.getWriter().write("done");
}
};
servlet.getServletContext().setAttribute("callback", c);
WebConversation wc = new WebConversation();
WebRequest req = new GetMethodWebRequest(String.format("http://localhost:%d/test", port));
// Execute the callback
req.setParameter("cmd", QueryCommand.CALLBACK.name());
req.setParameter("param", "callback");
WebResponse response = wc.getResponse(req);
HttpSession session = (HttpSession) servlet.getServletContext().getAttribute("session");
Long lastAccess = (Long) session.getAttribute("lastAccessTime");
assertTrue("Last access time not set correctly: " + lastAccess.longValue() + " not <= " + session.getLastAccessedTime(), lastAccess.longValue() <= session.getLastAccessedTime());
}
Aggregations