use of com.meterware.httpunit.WebConversation in project geode by apache.
the class TestSessionsTomcat8Base method testCallback.
/**
* Test callback functionality. This is here really just as an example. Callbacks are useful to
* implement per test actions which can be defined within the actual test method instead of in a
* separate servlet class.
*/
@Test
public void testCallback() throws Exception {
final String helloWorld = "Hello World";
Callback c = new Callback() {
@Override
public void call(HttpServletRequest request, HttpServletResponse response) throws IOException {
PrintWriter out = response.getWriter();
out.write(helloWorld);
}
};
servlet.getServletContext().setAttribute("callback", c);
WebConversation wc = new WebConversation();
WebRequest req = new GetMethodWebRequest(String.format("http://localhost:%d/test", port));
req.setParameter("cmd", QueryCommand.CALLBACK.name());
req.setParameter("param", "callback");
WebResponse response = wc.getResponse(req);
assertEquals(helloWorld, response.getText());
}
use of com.meterware.httpunit.WebConversation in project geode by apache.
the class TestSessionsTomcat8Base method testIsNew.
/**
* Test that calling session.isNew() works for the initial as well as subsequent requests.
*/
@Test
public void testIsNew() throws Exception {
Callback c = new Callback() {
@Override
public void call(HttpServletRequest request, HttpServletResponse response) throws IOException {
HttpSession session = request.getSession();
response.getWriter().write(Boolean.toString(session.isNew()));
}
};
servlet.getServletContext().setAttribute("callback", c);
WebConversation wc = new WebConversation();
WebRequest req = new GetMethodWebRequest(String.format("http://localhost:%d/test", port));
req.setParameter("cmd", QueryCommand.CALLBACK.name());
req.setParameter("param", "callback");
WebResponse response = wc.getResponse(req);
assertEquals("true", response.getText());
response = wc.getResponse(req);
assertEquals("false", response.getText());
}
use of com.meterware.httpunit.WebConversation in project geode by apache.
the class TestSessionsTomcat8Base method testRemoveAttribute.
/**
* Test that removing a session attribute also removes it from the region
*/
@Test
public void testRemoveAttribute() throws Exception {
String key = "value_testRemoveAttribute";
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);
String sessionId = response.getNewCookieValue("JSESSIONID");
// Implicitly remove the attribute
req.removeParameter("value");
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());
assertNull(region.get(sessionId).getAttribute(key));
}
use of com.meterware.httpunit.WebConversation in project geode by apache.
the class TestSessionsTomcat8Base method testMultipleAttributeUpdates.
/**
* Test that multiple attribute updates, within the same request result in only the latest one
* being effective.
*/
@Test
public void testMultipleAttributeUpdates() throws Exception {
final String key = "value_testMultipleAttributeUpdates";
Callback c = new Callback() {
@Override
public void call(HttpServletRequest request, HttpServletResponse response) throws IOException {
HttpSession session = request.getSession();
for (int i = 0; i < 1000; i++) {
session.setAttribute(key, Integer.toString(i));
}
}
};
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);
String sessionId = response.getNewCookieValue("JSESSIONID");
assertEquals("999", region.get(sessionId).getAttribute(key));
}
use of com.meterware.httpunit.WebConversation in project geode by apache.
the class TestSessionsTomcat8Base method testSanity.
/**
* Check that the basics are working
*/
@Test
public void testSanity() throws Exception {
WebConversation wc = new WebConversation();
WebRequest req = new GetMethodWebRequest(String.format("http://localhost:%d/test", port));
req.setParameter("cmd", QueryCommand.GET.name());
req.setParameter("param", "null");
WebResponse response = wc.getResponse(req);
assertEquals("JSESSIONID", response.getNewCookieNames()[0]);
}
Aggregations