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

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

cleanup unit tests

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