use of org.eclipse.jetty.util.Fields in project jetty.project by eclipse.
the class HttpClientURITest method testPathWithQueryAndParamValueEncoded.
@Test
public void testPathWithQueryAndParamValueEncoded() throws Exception {
final String name1 = "a";
final String value1 = "€";
final String encodedValue1 = URLEncoder.encode(value1, "UTF-8");
final String name2 = "b";
final String value2 = "¥";
String encodedValue2 = URLEncoder.encode(value2, "UTF-8");
final String query = name1 + "=" + encodedValue1 + "&" + name2 + "=" + encodedValue2;
final String path = "/path";
String pathQuery = path + "?" + query;
start(new AbstractHandler() {
@Override
public void handle(String target, org.eclipse.jetty.server.Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
baseRequest.setHandled(true);
Assert.assertEquals(path, request.getRequestURI());
Assert.assertEquals(query, request.getQueryString());
Assert.assertEquals(value1, request.getParameter(name1));
Assert.assertEquals(value2, request.getParameter(name2));
}
});
Request request = client.newRequest("localhost", connector.getLocalPort()).scheme(scheme).timeout(5, TimeUnit.SECONDS).path(path + "?" + name1 + "=" + encodedValue1).param(name2, value2);
Assert.assertEquals(path, request.getPath());
Assert.assertEquals(query, request.getQuery());
Assert.assertTrue(request.getURI().toString().endsWith(pathQuery));
Fields params = request.getParams();
Assert.assertEquals(2, params.getSize());
Assert.assertEquals(value1, params.get(name1).getValue());
Assert.assertEquals(value2, params.get(name2).getValue());
ContentResponse response = request.send();
Assert.assertEquals(HttpStatus.OK_200, response.getStatus());
}
use of org.eclipse.jetty.util.Fields in project jetty.project by eclipse.
the class HttpClientURITest method testNoParameterNameWithParameterValue.
@Test
public void testNoParameterNameWithParameterValue() throws Exception {
final String path = "/path";
// Bogus query
final String query = "=1";
String pathQuery = path + "?" + query;
start(new AbstractHandler() {
@Override
public void handle(String target, org.eclipse.jetty.server.Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
baseRequest.setHandled(true);
Assert.assertEquals(path, request.getRequestURI());
Assert.assertEquals(query, request.getQueryString());
}
});
Request request = client.newRequest("localhost", connector.getLocalPort()).scheme(scheme).timeout(5, TimeUnit.SECONDS).path(pathQuery);
Assert.assertEquals(path, request.getPath());
Assert.assertEquals(query, request.getQuery());
Assert.assertTrue(request.getURI().toString().endsWith(pathQuery));
Fields params = request.getParams();
Assert.assertEquals(0, params.getSize());
ContentResponse response = request.send();
Assert.assertEquals(HttpStatus.OK_200, response.getStatus());
}
use of org.eclipse.jetty.util.Fields in project jetty.project by eclipse.
the class HttpClientURITest method testNoParameterNameNoParameterValue.
@Test
public void testNoParameterNameNoParameterValue() throws Exception {
final String path = "/path";
// Bogus query
final String query = "=";
String pathQuery = path + "?" + query;
start(new AbstractHandler() {
@Override
public void handle(String target, org.eclipse.jetty.server.Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
baseRequest.setHandled(true);
Assert.assertEquals(path, request.getRequestURI());
Assert.assertEquals(query, request.getQueryString());
}
});
Request request = client.newRequest("localhost", connector.getLocalPort()).scheme(scheme).timeout(5, TimeUnit.SECONDS).path(pathQuery);
Assert.assertEquals(path, request.getPath());
Assert.assertEquals(query, request.getQuery());
Assert.assertTrue(request.getURI().toString().endsWith(pathQuery));
Fields params = request.getParams();
Assert.assertEquals(0, params.getSize());
ContentResponse response = request.send();
Assert.assertEquals(HttpStatus.OK_200, response.getStatus());
}
use of org.eclipse.jetty.util.Fields in project jetty.project by eclipse.
the class TypedContentProviderTest method testFormContentProviderWithDifferentContentType.
@Test
public void testFormContentProviderWithDifferentContentType() throws Exception {
final String name1 = "a";
final String value1 = "1";
final String name2 = "b";
final String value2 = "2";
Fields fields = new Fields();
fields.put(name1, value1);
fields.add(name2, value2);
final String content = FormContentProvider.convert(fields);
final String contentType = "text/plain;charset=UTF-8";
start(new AbstractHandler() {
@Override
public void handle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
baseRequest.setHandled(true);
Assert.assertEquals("POST", request.getMethod());
Assert.assertEquals(contentType, request.getContentType());
Assert.assertEquals(content, IO.toString(request.getInputStream()));
}
});
ContentResponse response = client.newRequest("localhost", connector.getLocalPort()).scheme(scheme).method(HttpMethod.POST).content(new FormContentProvider(fields)).header(HttpHeader.CONTENT_TYPE, contentType).send();
Assert.assertEquals(200, response.getStatus());
}
use of org.eclipse.jetty.util.Fields in project jetty.project by eclipse.
the class TypedContentProviderTest method testFormContentProvider.
@Test
public void testFormContentProvider() throws Exception {
final String name1 = "a";
final String value1 = "1";
final String name2 = "b";
final String value2 = "2";
final String value3 = "€";
start(new AbstractHandler() {
@Override
public void handle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
baseRequest.setHandled(true);
Assert.assertEquals("POST", request.getMethod());
Assert.assertEquals(MimeTypes.Type.FORM_ENCODED.asString(), request.getContentType());
Assert.assertEquals(value1, request.getParameter(name1));
String[] values = request.getParameterValues(name2);
Assert.assertNotNull(values);
Assert.assertEquals(2, values.length);
Assert.assertThat(values, Matchers.arrayContainingInAnyOrder(value2, value3));
}
});
Fields fields = new Fields();
fields.put(name1, value1);
fields.add(name2, value2);
fields.add(name2, value3);
ContentResponse response = client.FORM(scheme + "://localhost:" + connector.getLocalPort(), fields);
Assert.assertEquals(200, response.getStatus());
}
Aggregations