@Test public void buildRequestQueryWithSingleQueryParam() throws Exception { String expectedQuery = "param=value"; webRequest.setUrl(new URL("http://example.com/example?" + expectedQuery)); MockHttpServletRequest actualRequest = requestBuilder.buildRequest(servletContext); assertThat(actualRequest.getQueryString(), equalTo(expectedQuery)); }
@Test public void buildRequestQueryWithSingleQueryParamWithoutValueButWithEqualsSign() throws Exception { String expectedQuery = "param="; webRequest.setUrl(new URL("http://example.com/example?" + expectedQuery)); MockHttpServletRequest actualRequest = requestBuilder.buildRequest(servletContext); assertThat(actualRequest.getQueryString(), equalTo(expectedQuery)); }
@Test public void buildRequestQueryWithSingleQueryParamWithoutValueAndWithoutEqualsSign() throws Exception { String expectedQuery = "param"; webRequest.setUrl(new URL("http://example.com/example?" + expectedQuery)); MockHttpServletRequest actualRequest = requestBuilder.buildRequest(servletContext); assertThat(actualRequest.getQueryString(), equalTo(expectedQuery)); }
@Test public void buildRequestQueryWithSingleQueryParamWithValueSetToEncodedSpace() throws Exception { String expectedQuery = "param=%20"; webRequest.setUrl(new URL("http://example.com/example?" + expectedQuery)); MockHttpServletRequest actualRequest = requestBuilder.buildRequest(servletContext); assertThat(actualRequest.getQueryString(), equalTo(expectedQuery)); }
@Test public void buildRequestQueryWithMultipleQueryParams() throws Exception { String expectedQuery = "param1=value1¶m2=value2"; webRequest.setUrl(new URL("http://example.com/example?" + expectedQuery)); MockHttpServletRequest actualRequest = requestBuilder.buildRequest(servletContext); assertThat(actualRequest.getQueryString(), equalTo(expectedQuery)); }
@Test // SPR-11043 public void requestParameterFromQueryNull() { this.builder = new MockHttpServletRequestBuilder(HttpMethod.GET, "/?foo"); MockHttpServletRequest request = this.builder.buildRequest(this.servletContext); Map<String, String[]> parameterMap = request.getParameterMap(); assertArrayEquals(new String[] {null}, parameterMap.get("foo")); assertEquals("foo", request.getQueryString()); }
@Test public void requestParameterFromQuery() { this.builder = new MockHttpServletRequestBuilder(HttpMethod.GET, "/?foo=bar&foo=baz"); MockHttpServletRequest request = this.builder.buildRequest(this.servletContext); Map<String, String[]> parameterMap = request.getParameterMap(); assertArrayEquals(new String[] {"bar", "baz"}, parameterMap.get("foo")); assertEquals("foo=bar&foo=baz", request.getQueryString()); }
@Test public void requestParameterFromQueryWithEncoding() { this.builder = new MockHttpServletRequestBuilder(HttpMethod.GET, "/?foo={value}", "bar=baz"); MockHttpServletRequest request = this.builder.buildRequest(this.servletContext); assertEquals("foo=bar%3Dbaz", request.getQueryString()); assertEquals("bar=baz", request.getParameter("foo")); }
@Test public void requestParameterFromQueryList() { this.builder = new MockHttpServletRequestBuilder(HttpMethod.GET, "/?foo[0]=bar&foo[1]=baz"); MockHttpServletRequest request = this.builder.buildRequest(this.servletContext); assertEquals("foo%5B0%5D=bar&foo%5B1%5D=baz", request.getQueryString()); assertEquals("bar", request.getParameter("foo[0]")); assertEquals("baz", request.getParameter("foo[1]")); }
@Test public void uri() { String uri = "https://java.sun.com:8080/javase/6/docs/api/java/util/BitSet.html?foo=bar#and(java.util.BitSet)"; this.builder = new MockHttpServletRequestBuilder(HttpMethod.GET, uri); MockHttpServletRequest request = this.builder.buildRequest(this.servletContext); assertEquals("https", request.getScheme()); assertEquals("foo=bar", request.getQueryString()); assertEquals("java.sun.com", request.getServerName()); assertEquals(8080, request.getServerPort()); assertEquals("/javase/6/docs/api/java/util/BitSet.html", request.getRequestURI()); assertEquals("https://java.sun.com:8080/javase/6/docs/api/java/util/BitSet.html", request.getRequestURL().toString()); }
// given MockHttpServletRequest request = new MockHttpServletRequest(); request.setServerName("www.example.com"); request.setRequestURI("/foo"); request.setQueryString("param1=value1¶m"); // when String url = request.getRequestURL() + '?' + request.getQueryString(); // assuming there is always queryString. // then assertThat(url, is("http://www.example.com:80/foo?param1=value1¶m"));
@Override public OperationRequest convert(MockHttpServletRequest mockRequest) { try { HttpHeaders headers = extractHeaders(mockRequest); Parameters parameters = extractParameters(mockRequest); List<OperationRequestPart> parts = extractParts(mockRequest); Collection<RequestCookie> cookies = extractCookies(mockRequest, headers); String queryString = mockRequest.getQueryString(); if (!StringUtils.hasText(queryString) && "GET".equals(mockRequest.getMethod())) { queryString = parameters.toQueryString(); } return new OperationRequestFactory().create( URI.create( getRequestUri(mockRequest) + (StringUtils.hasText(queryString) ? "?" + queryString : "")), HttpMethod.valueOf(mockRequest.getMethod()), mockRequest.getContentAsByteArray(), headers, parameters, parts, cookies); } catch (Exception ex) { throw new ConversionException(ex); } }
@Override public Values getQueryValues() { final String q = delegate.getQueryString(); try { return UriComponents.parseQuery(q == null ? null : UriUtils.decode(q, "utf-8")); } catch (UnsupportedEncodingException e) { throw new AssertionError(e); } }
@Override public Values getQueryValues() { final String q = delegate.getQueryString(); try { return UriComponents.parseQuery(q == null ? null : UriUtils.decode(q, "utf-8")); } catch (UnsupportedEncodingException e) { throw new AssertionError(e); } }
public void fill(MockHttpServletRequest request) { if(!request.getQueryString().isEmpty()){ for(String query : request.getQueryString().split("\\&")){ String[] parts = query.split("="); request.addParameter(parts[0], parts[1]); } } for (Parameter param : parameters) { request.addParameter(param.getName(),param.getValue()); } for (Parameter param : headers) { request.addHeader(param.getName(), param.getValue()); } if(isContentfilled()){ request.setContent(content.getBytes()); } }
@Override public OperationRequest convert(MockHttpServletRequest mockRequest) { try { HttpHeaders headers = extractHeaders(mockRequest); Parameters parameters = extractParameters(mockRequest); List<OperationRequestPart> parts = extractParts(mockRequest); Collection<RequestCookie> cookies = extractCookies(mockRequest, headers); String queryString = mockRequest.getQueryString(); if (!StringUtils.hasText(queryString) && "GET".equals(mockRequest.getMethod())) { queryString = parameters.toQueryString(); } return new OperationRequestFactory().create( URI.create( getRequestUri(mockRequest) + (StringUtils.hasText(queryString) ? "?" + queryString : "")), HttpMethod.valueOf(mockRequest.getMethod()), mockRequest.getContentAsByteArray(), headers, parameters, parts, cookies); } catch (Exception ex) { throw new ConversionException(ex); } }
@Test public void testRedirectWithQueryString() throws Exception { final MockHttpSession session = new MockHttpSession(); final MockHttpServletRequest request = new MockHttpServletRequest(); final MockHttpServletResponse response = new MockHttpServletResponse(); request.setQueryString("test=12456"); request.setRequestURI("/test"); request.setSecure(true); final FilterChain filterChain = new FilterChain() { public void doFilter(ServletRequest request, ServletResponse response) throws IOException, ServletException { // nothing to do } }; request.setSession(session); this.filter = new AuthenticationFilter(); final MockFilterConfig config = new MockFilterConfig(); config.addInitParameter("casServerLoginUrl", CAS_LOGIN_URL); config.addInitParameter("serverName", "localhost:8443"); this.filter.init(config); this.filter.doFilter(request, response, filterChain); assertEquals( CAS_LOGIN_URL + "?service=" + URLEncoder.encode( "https://localhost:8443" + request.getRequestURI() + "?" + request.getQueryString(), "UTF-8"), response.getRedirectedUrl()); }