source: josm/trunk/test/unit/org/openstreetmap/josm/io/remotecontrol/handler/RequestHandlerTest.java@ 8540

Last change on this file since 8540 was 8540, checked in by Don-vip, 9 years ago

fix remaining checkstyle issues

File size: 2.8 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.io.remotecontrol.handler;
3
4import static org.hamcrest.CoreMatchers.is;
5import static org.junit.Assert.assertThat;
6
7import java.util.Collections;
8import java.util.HashMap;
9import java.util.Map;
10
11import org.junit.Test;
12import org.openstreetmap.josm.io.remotecontrol.PermissionPrefWithDefault;
13
14public class RequestHandlerTest {
15
16 Map<String, String> getRequestParameter(String url) {
17 final RequestHandler req = new RequestHandler() {
18 @Override
19 protected void validateRequest() throws RequestHandlerBadRequestException {
20 }
21
22 @Override
23 protected void handleRequest() throws RequestHandlerErrorException, RequestHandlerBadRequestException {
24 }
25
26 @Override
27 public String getPermissionMessage() {
28 return null;
29 }
30
31 @Override
32 public PermissionPrefWithDefault getPermissionPref() {
33 return null;
34 }
35
36 @Override
37 public String[] getMandatoryParams() {
38 return new String[0];
39 }
40 };
41 req.setUrl(url);
42 return req.args;
43 }
44
45 @Test
46 public void testRequestParameter1() {
47 final Map<String, String> expected = new HashMap<>();
48 expected.put("query", "a");
49 expected.put("b", "=c");
50 assertThat(getRequestParameter("http://example.com/?query=a&b==c"),
51 is(expected));
52 }
53
54 @Test
55 public void testRequestParameter12() {
56 assertThat(getRequestParameter("http://example.com/?query=a%26b==c"),
57 is(Collections.singletonMap("query", "a&b==c")));
58 }
59
60 @Test
61 public void testRequestParameter3() {
62 assertThat(getRequestParameter("http://example.com/blue+light%20blue?blue%2Blight+blue").keySet(),
63 is((Collections.singleton("blue+light blue"))));
64 }
65
66 /**
67 * @see <a href="http://blog.lunatech.com/2009/02/03/what-every-web-developer-must-know-about-url-encoding">
68 * What every web developer must know about URL encoding</a>
69 */
70 @Test
71 public void testRequestParameter4() {
72 assertThat(getRequestParameter(
73 // CHECKSTYLE.OFF: LineLength
74 "http://example.com/:@-._~!$&'()*+,=;:@-._~!$&'()*+,=:@-._~!$&'()*+,==?/?:@-._~!$'()*+,;=/?:@-._~!$'()*+,;==#/?:@-._~!$&'()*+,;="),
75 // CHECKSTYLE.ON: LineLength
76 is(Collections.singletonMap("/?:@-._~!$'()* ,;", "/?:@-._~!$'()* ,;==")));
77 }
78
79 @Test
80 public void testRequestParameter5() {
81 final Map<String, String> expected = new HashMap<>();
82 expected.put("space", " ");
83 expected.put("tab", "\t");
84 assertThat(getRequestParameter("http://example.com/?space=%20&tab=%09"),
85 is(expected));
86 }
87}
Note: See TracBrowser for help on using the repository browser.