Example usage for org.springframework.mock.web MockHttpServletRequest setRequestURI

List of usage examples for org.springframework.mock.web MockHttpServletRequest setRequestURI

Introduction

In this page you can find the example usage for org.springframework.mock.web MockHttpServletRequest setRequestURI.

Prototype

public void setRequestURI(@Nullable String requestURI) 

Source Link

Usage

From source file:com.tasktop.c2c.server.common.service.tests.ajp.AjpProxyWebTest.java

@Test
public void testProxyHandlesCookies() throws Exception {
    final String ajpBaseUri = String.format("ajp://localhost:%s", container.getAjpPort());
    Payload payload = new Payload(HttpServletResponse.SC_OK, "some content\none two three\n\nfour");
    payload.getResponseHeaders().put("foo", "bar");
    payload.getSessionVariables().put("s1", "v1");
    TestServlet.setResponsePayload(payload);

    MockHttpServletRequest request = new MockHttpServletRequest();
    request.setMethod("GET");
    request.setRequestURI("/test");
    request.setQueryString("a=b");
    request.setParameter("a", new String[] { "b" });
    request.addHeader("c", "d ef");
    MockHttpServletResponse response = new MockHttpServletResponse();
    proxy.proxyRequest(ajpBaseUri + "/foo", request, response);

    Request firstRequest = null;//from  w ww.j ava  2  s.  com
    for (int i = 0; i < 100; i++) {
        firstRequest = TestServlet.getLastRequest();

        // If our request is not yet there, then pause and retry shortly - proxying is an async process, and this
        // request was sometimes coming back as null which was causing test failures on the first assert below.
        if (firstRequest == null) {
            Thread.sleep(10);
        } else {
            // Got our request, so break now.
            break;
        }
    }

    Assert.assertTrue(firstRequest.isNewSession());
    Assert.assertEquals("v1", firstRequest.getSessionAttributes().get("s1"));

    List<org.apache.commons.httpclient.Cookie> cookies = new ArrayList<org.apache.commons.httpclient.Cookie>();
    for (String headerName : response.getHeaderNames()) {
        if (headerName.equalsIgnoreCase("set-cookie") || headerName.equalsIgnoreCase("set-cookie2")) {
            cookies.addAll(Arrays.asList(new RFC2965Spec().parse("localhost", container.getPort(), "/", false,
                    response.getHeader(headerName).toString())));
        }
    }
    Assert.assertEquals(1, cookies.size());
    Cookie cookie = cookies.get(0);
    Assert.assertEquals("almp.JSESSIONID", cookie.getName());

    MockHttpServletRequest request2 = new MockHttpServletRequest();
    request2.setMethod("GET");
    request2.setRequestURI("/test");
    request2.addHeader("Cookie", cookie.toExternalForm());
    MockHttpServletResponse response2 = new MockHttpServletResponse();

    payload = new Payload(HttpServletResponse.SC_OK, "test");
    TestServlet.setResponsePayload(payload);

    proxy.proxyRequest(ajpBaseUri + "/foo", request2, response2);

    Request secondRequest = TestServlet.getLastRequest();
    Assert.assertFalse(secondRequest.isNewSession());
    Assert.assertEquals(firstRequest.getSessionId(), secondRequest.getSessionId());
    Assert.assertEquals("v1", secondRequest.getSessionAttributes().get("s1"));
}

From source file:org.eclipse.virgo.apps.repository.web.RepositoryControllerTests.java

@Test
public void getIndexForUnknownRepository() throws Exception {
    MockHttpServletRequest request = new MockHttpServletRequest();
    MockHttpServletResponse response = new MockHttpServletResponse();

    request.setRequestURI("http://localhost:8080/org.eclipse.virgo.server.repository/my-repo");
    request.setMethod("GET");

    expect(this.repositoryManager.getIndex("my-repo")).andReturn(null);

    replay(this.repositoryManager);

    repositoryController.getIndex(request, response);

    verify(this.repositoryManager);

    assertEquals(response.getStatus(), HttpServletResponse.SC_NOT_FOUND);
}

From source file:org.eclipse.virgo.apps.repository.web.RepositoryControllerTests.java

@Test
public void getUnknownArtefact() throws Exception {
    MockHttpServletRequest request = new MockHttpServletRequest();
    MockHttpServletResponse response = new MockHttpServletResponse();

    request.setRequestURI(
            "http://localhost:8080/org.eclipse.virgo.server.repository/my-repo/bundle/com.foo/1.0.0");
    request.setMethod("GET");

    expect(this.repositoryManager.getArtifact("my-repo", "bundle", "com.foo", "1.0.0")).andReturn(null);

    replay(this.repositoryManager);

    repositoryController.getArtifact(request, response);

    verify(this.repositoryManager);

    assertEquals(response.getStatus(), HttpServletResponse.SC_NOT_FOUND);
}

From source file:com.github.jrialland.ajpclient.servlet.TestServletProxy.java

@Test
public void doTestGet() throws Exception {
    final MockHttpServletRequest request = new MockHttpServletRequest();
    request.setMethod("GET");
    request.setRequestURI("/dizzy.mp4");
    final MockHttpServletResponse response = new MockHttpServletResponse();
    AjpServletProxy.forHost("localhost", getPort()).forward(request, response, 10, TimeUnit.SECONDS, true);
    if (response.getStatus() != 200) {
        System.out.println(response.getContentAsString());
        Assert.fail(response.getErrorMessage());
    }/*from ww  w.  ja  v a2s  .c o m*/
}

From source file:org.eclipse.virgo.apps.repository.web.RepositoryControllerTests.java

@Test
public void getArtefact() throws Exception {
    MockHttpServletRequest request = new MockHttpServletRequest();
    MockHttpServletResponse response = new MockHttpServletResponse();

    request.setRequestURI(
            "http://localhost:8080/org.eclipse.virgo.server.repository/my-repo/bundle/com.foo/1.0.0");
    request.setMethod("GET");

    byte[] artefactBytes = new byte[] { 1, 2, 3, 4, 5, 6, 7, 8 };

    expect(this.repositoryManager.getArtifact("my-repo", "bundle", "com.foo", "1.0.0"))
            .andReturn(new ByteArrayInputStream(artefactBytes));

    replay(this.repositoryManager);

    repositoryController.getArtifact(request, response);

    verify(this.repositoryManager);

    assertEquals("application/octet-stream", response.getContentType());
    assertArrayEquals(artefactBytes, response.getContentAsByteArray());
}

From source file:org.eclipse.virgo.apps.repository.web.RepositoryControllerTests.java

@Test
public void getIndex() throws Exception {
    MockHttpServletRequest request = new MockHttpServletRequest();
    MockHttpServletResponse response = new MockHttpServletResponse();

    request.setRequestURI("http://localhost:8080/org.eclipse.virgo.server.repository/my-repo");
    request.setMethod("GET");

    byte[] indexBytes = new byte[] { 1, 2, 3, 4, 5, 6, 7, 8 };

    RepositoryIndex repositoryIndex = createMock(RepositoryIndex.class);
    expect(repositoryIndex.getInputStream()).andReturn(new ByteArrayInputStream(indexBytes)).anyTimes();
    expect(repositoryIndex.getETag()).andReturn("123456789").anyTimes();
    expect(repositoryIndex.getLength()).andReturn(indexBytes.length).anyTimes();

    expect(this.repositoryManager.getIndex("my-repo")).andReturn(repositoryIndex);

    replay(this.repositoryManager, repositoryIndex);

    repositoryController.getIndex(request, response);

    verify(this.repositoryManager, repositoryIndex);

    assertEquals("application/org.eclipse.virgo.repository.Index", response.getContentType());
    assertArrayEquals(indexBytes, response.getContentAsByteArray());
}

From source file:com.github.jrialland.ajpclient.servlet.TestServletProxy.java

/**
 * Test that is fails with a request bigger that 8k
 *//*  ww w .  j av  a2  s.  c o  m*/
@Test
public void testTooBigRequest() throws Exception {

    final MockHttpServletRequest request = new MockHttpServletRequest();
    request.setMethod("GET");
    request.setRequestURI("/dizzy.mp4");

    // generate a request with an enormous 'Cookie' header
    String cookie = "";
    final int i = 0;
    while (cookie.length() < Constants.MAX_MESSAGE_SIZE) {
        cookie = cookie + "COOKIE" + i + "=foo;";
    }
    request.addHeader("Cookie", cookie);

    final MockHttpServletResponse response = new MockHttpServletResponse();
    AjpServletProxy.forHost("localhost", getPort()).forward(request, response);
    Assert.assertEquals(HttpServletResponse.SC_BAD_REQUEST, response.getStatus());
}

From source file:com.github.jrialland.ajpclient.servlet.TestServletProxy.java

@Test
public void testMultiple() throws Exception {

    final int nTasks = 10;

    for (int i = 0; i < nTasks; i++) {
        final MockHttpServletRequest request = new MockHttpServletRequest();
        request.setMethod("GET");
        request.setRequestURI("/long_request");
        request.setMethod("POST");
        request.addHeader("Content-Type", "application/x-www-form-urlencoded");
        request.setContent("duration=1000".getBytes());
        final MockHttpServletResponse response = new MockHttpServletResponse();
        AjpServletProxy.forHost("localhost", getPort()).forward(request, response);
        Assert.assertEquals(HttpServletResponse.SC_OK, response.getStatus());
    }/*w w w  .j  a  v  a2  s.c o m*/
}

From source file:org.wallride.job.UpdatePostViewsItemWriter.java

@Override
public void write(List<? extends List> items) throws Exception {
    WebApplicationContext context = WebApplicationContextUtils.getWebApplicationContext(servletContext,
            "org.springframework.web.servlet.FrameworkServlet.CONTEXT.guestServlet");
    if (context == null) {
        throw new ServiceException("GuestServlet is not ready yet");
    }// w w w. j  a va  2 s . com

    final RequestMappingHandlerMapping mapping = context.getBean(RequestMappingHandlerMapping.class);

    for (List item : items) {
        UriComponents uriComponents = UriComponentsBuilder.fromUriString((String) item.get(0)).build();
        logger.info("Processing [{}]", uriComponents.toString());

        MockHttpServletRequest request = new MockHttpServletRequest(servletContext);
        request.setMethod("GET");
        request.setRequestURI(uriComponents.getPath());
        request.setQueryString(uriComponents.getQuery());
        MockHttpServletResponse response = new MockHttpServletResponse();

        BlogLanguageRewriteRule rewriteRule = new BlogLanguageRewriteRule(blogService);
        BlogLanguageRewriteMatch rewriteMatch = (BlogLanguageRewriteMatch) rewriteRule.matches(request,
                response);
        try {
            rewriteMatch.execute(request, response);
        } catch (ServletException e) {
            throw new ServiceException(e);
        } catch (IOException e) {
            throw new ServiceException(e);
        }

        request.setRequestURI(rewriteMatch.getMatchingUrl());

        HandlerExecutionChain handler;
        try {
            handler = mapping.getHandler(request);
        } catch (Exception e) {
            throw new ServiceException(e);
        }

        if (!(handler.getHandler() instanceof HandlerMethod)) {
            continue;
        }

        HandlerMethod method = (HandlerMethod) handler.getHandler();
        if (!method.getBeanType().equals(ArticleDescribeController.class)
                && !method.getBeanType().equals(PageDescribeController.class)) {
            continue;
        }

        // Last path mean code of post
        String code = uriComponents.getPathSegments().get(uriComponents.getPathSegments().size() - 1);
        Post post = postRepository.findOneByCodeAndLanguage(code, rewriteMatch.getBlogLanguage().getLanguage());
        if (post == null) {
            logger.debug("Post not found [{}]", code);
            continue;
        }

        logger.info("Update the PageView. Post ID [{}]: {} -> {}", post.getId(), post.getViews(), item.get(1));
        post.setViews(Long.parseLong((String) item.get(1)));
        postRepository.saveAndFlush(post);
    }
}

From source file:org.cloudfoundry.identity.uaa.security.web.UaaRequestMatcherTests.java

private MockHttpServletRequest request(String path, String accept, String... parameters) {
    MockHttpServletRequest request = new MockHttpServletRequest();
    request.setContextPath("/ctx");
    request.setRequestURI("/ctx" + path);
    if (accept != null) {
        request.addHeader("Accept", accept);
    }//  w  ww. j a va  2s . c om
    for (int i = 0; i < parameters.length; i += 2) {
        String key = parameters[i];
        String value = parameters[i + 1];
        request.addParameter(key, value);
    }
    return request;
}