Search in sources :

Example 41 with WebConversation

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"));
}
Also used : HttpServletRequest(javax.servlet.http.HttpServletRequest) Cookie(javax.servlet.http.Cookie) WebResponse(com.meterware.httpunit.WebResponse) WebConversation(com.meterware.httpunit.WebConversation) WebRequest(com.meterware.httpunit.WebRequest) GetMethodWebRequest(com.meterware.httpunit.GetMethodWebRequest) HttpServletResponse(javax.servlet.http.HttpServletResponse) GetMethodWebRequest(com.meterware.httpunit.GetMethodWebRequest) FlakyTest(org.apache.geode.test.junit.categories.FlakyTest) Test(org.junit.Test) IntegrationTest(org.apache.geode.test.junit.categories.IntegrationTest)

Example 42 with WebConversation

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());
}
Also used : HttpServletRequest(javax.servlet.http.HttpServletRequest) WebResponse(com.meterware.httpunit.WebResponse) WebConversation(com.meterware.httpunit.WebConversation) WebRequest(com.meterware.httpunit.WebRequest) GetMethodWebRequest(com.meterware.httpunit.GetMethodWebRequest) HttpSession(javax.servlet.http.HttpSession) HttpServletResponse(javax.servlet.http.HttpServletResponse) GetMethodWebRequest(com.meterware.httpunit.GetMethodWebRequest) PrintWriter(java.io.PrintWriter) Category(org.junit.experimental.categories.Category) FlakyTest(org.apache.geode.test.junit.categories.FlakyTest) Test(org.junit.Test) IntegrationTest(org.apache.geode.test.junit.categories.IntegrationTest)

Example 43 with WebConversation

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());
}
Also used : WebResponse(com.meterware.httpunit.WebResponse) WebConversation(com.meterware.httpunit.WebConversation) WebRequest(com.meterware.httpunit.WebRequest) GetMethodWebRequest(com.meterware.httpunit.GetMethodWebRequest) GetMethodWebRequest(com.meterware.httpunit.GetMethodWebRequest) Test(org.junit.Test)

Example 44 with WebConversation

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());
}
Also used : HttpServletRequest(javax.servlet.http.HttpServletRequest) WebResponse(com.meterware.httpunit.WebResponse) WebConversation(com.meterware.httpunit.WebConversation) WebRequest(com.meterware.httpunit.WebRequest) GetMethodWebRequest(com.meterware.httpunit.GetMethodWebRequest) HttpSession(javax.servlet.http.HttpSession) HttpServletResponse(javax.servlet.http.HttpServletResponse) GetMethodWebRequest(com.meterware.httpunit.GetMethodWebRequest) Test(org.junit.Test)

Aggregations

WebConversation (com.meterware.httpunit.WebConversation)44 Test (org.junit.Test)44 WebResponse (com.meterware.httpunit.WebResponse)43 GetMethodWebRequest (com.meterware.httpunit.GetMethodWebRequest)42 WebRequest (com.meterware.httpunit.WebRequest)38 HttpServletRequest (javax.servlet.http.HttpServletRequest)14 HttpServletResponse (javax.servlet.http.HttpServletResponse)14 HttpSession (javax.servlet.http.HttpSession)9 WebForm (com.meterware.httpunit.WebForm)7 OperateOnDeployment (org.jboss.arquillian.container.test.api.OperateOnDeployment)5 AuthorizationRequiredException (com.meterware.httpunit.AuthorizationRequiredException)3 PrintWriter (java.io.PrintWriter)3 IntegrationTest (org.apache.geode.test.junit.categories.IntegrationTest)3 HttpException (com.meterware.httpunit.HttpException)2 FlakyTest (org.apache.geode.test.junit.categories.FlakyTest)2 PostMethodWebRequest (com.meterware.httpunit.PostMethodWebRequest)1 PutMethodWebRequest (com.meterware.httpunit.PutMethodWebRequest)1 WebLink (com.meterware.httpunit.WebLink)1 ByteArrayInputStream (java.io.ByteArrayInputStream)1 Cookie (javax.servlet.http.Cookie)1