1
1
/*
2
- * Copyright 2002-2019 the original author or authors.
2
+ * Copyright 2002-2020 the original author or authors.
3
3
*
4
4
* Licensed under the Apache License, Version 2.0 (the "License");
5
5
* you may not use this file except in compliance with the License.
@@ -49,98 +49,101 @@ public class ServerHttpRequestTests {
49
49
50
50
@ Test
51
51
public void queryParamsNone () throws Exception {
52
- MultiValueMap <String , String > params = createHttpRequest ("/path" ).getQueryParams ();
52
+ MultiValueMap <String , String > params = createRequest ("/path" ).getQueryParams ();
53
53
assertThat (params .size ()).isEqualTo (0 );
54
54
}
55
55
56
56
@ Test
57
57
public void queryParams () throws Exception {
58
- MultiValueMap <String , String > params = createHttpRequest ("/path?a=A&b=B" ).getQueryParams ();
58
+ MultiValueMap <String , String > params = createRequest ("/path?a=A&b=B" ).getQueryParams ();
59
59
assertThat (params .size ()).isEqualTo (2 );
60
60
assertThat (params .get ("a" )).isEqualTo (Collections .singletonList ("A" ));
61
61
assertThat (params .get ("b" )).isEqualTo (Collections .singletonList ("B" ));
62
62
}
63
63
64
64
@ Test
65
65
public void queryParamsWithMultipleValues () throws Exception {
66
- MultiValueMap <String , String > params = createHttpRequest ("/path?a=1&a=2" ).getQueryParams ();
66
+ MultiValueMap <String , String > params = createRequest ("/path?a=1&a=2" ).getQueryParams ();
67
67
assertThat (params .size ()).isEqualTo (1 );
68
68
assertThat (params .get ("a" )).isEqualTo (Arrays .asList ("1" , "2" ));
69
69
}
70
70
71
71
@ Test // SPR-15140
72
72
public void queryParamsWithEncodedValue () throws Exception {
73
- MultiValueMap <String , String > params = createHttpRequest ("/path?a=%20%2B+%C3%A0" ).getQueryParams ();
73
+ MultiValueMap <String , String > params = createRequest ("/path?a=%20%2B+%C3%A0" ).getQueryParams ();
74
74
assertThat (params .size ()).isEqualTo (1 );
75
75
assertThat (params .get ("a" )).isEqualTo (Collections .singletonList (" + \u00e0 " ));
76
76
}
77
77
78
78
@ Test
79
79
public void queryParamsWithEmptyValue () throws Exception {
80
- MultiValueMap <String , String > params = createHttpRequest ("/path?a=" ).getQueryParams ();
80
+ MultiValueMap <String , String > params = createRequest ("/path?a=" ).getQueryParams ();
81
81
assertThat (params .size ()).isEqualTo (1 );
82
82
assertThat (params .get ("a" )).isEqualTo (Collections .singletonList ("" ));
83
83
}
84
84
85
85
@ Test
86
86
public void queryParamsWithNoValue () throws Exception {
87
- MultiValueMap <String , String > params = createHttpRequest ("/path?a" ).getQueryParams ();
87
+ MultiValueMap <String , String > params = createRequest ("/path?a" ).getQueryParams ();
88
88
assertThat (params .size ()).isEqualTo (1 );
89
89
assertThat (params .get ("a" )).isEqualTo (Collections .singletonList (null ));
90
90
}
91
91
92
92
@ Test
93
- public void mutateRequest () throws Exception {
93
+ public void mutateRequestMethod () throws Exception {
94
+ ServerHttpRequest request = createRequest ("/" ).mutate ().method (HttpMethod .DELETE ).build ();
95
+ assertThat (request .getMethod ()).isEqualTo (HttpMethod .DELETE );
96
+ }
97
+
98
+ @ Test
99
+ public void mutateSslInfo () throws Exception {
94
100
SslInfo sslInfo = mock (SslInfo .class );
95
- ServerHttpRequest request = createHttpRequest ("/" ).mutate ().sslInfo (sslInfo ).build ();
101
+ ServerHttpRequest request = createRequest ("/" ).mutate ().sslInfo (sslInfo ).build ();
96
102
assertThat (request .getSslInfo ()).isSameAs (sslInfo );
103
+ }
97
104
98
- request = createHttpRequest ("/" ).mutate ().method (HttpMethod .DELETE ).build ();
99
- assertThat (request .getMethod ()).isEqualTo (HttpMethod .DELETE );
100
-
105
+ @ Test
106
+ public void mutateUriAndPath () throws Exception {
101
107
String baseUri = "https://aaa.org:8080/a" ;
102
108
103
- request = createHttpRequest (baseUri ).mutate ().uri (URI .create ("https://bbb.org:9090/b" )).build ();
109
+ ServerHttpRequest request = createRequest (baseUri ).mutate ().uri (URI .create ("https://bbb.org:9090/b" )).build ();
104
110
assertThat (request .getURI ().toString ()).isEqualTo ("https://bbb.org:9090/b" );
105
111
106
- request = createHttpRequest (baseUri ).mutate ().path ("/b/c/d" ).build ();
112
+ request = createRequest (baseUri ).mutate ().path ("/b/c/d" ).build ();
107
113
assertThat (request .getURI ().toString ()).isEqualTo ("https://aaa.org:8080/b/c/d" );
108
114
109
- request = createHttpRequest (baseUri ).mutate ().path ("/app/b/c/d" ).contextPath ("/app" ).build ();
115
+ request = createRequest (baseUri ).mutate ().path ("/app/b/c/d" ).contextPath ("/app" ).build ();
110
116
assertThat (request .getURI ().toString ()).isEqualTo ("https://aaa.org:8080/app/b/c/d" );
111
117
assertThat (request .getPath ().contextPath ().value ()).isEqualTo ("/app" );
112
118
}
113
119
114
- @ Test
115
- public void mutateWithInvalidPath () throws Exception {
116
- assertThatIllegalArgumentException ().isThrownBy (() ->
117
- createHttpRequest ("/" ).mutate ().path ("foo-bar" ));
118
- }
119
-
120
120
@ Test // SPR-16434
121
121
public void mutatePathWithEncodedQueryParams () throws Exception {
122
- ServerHttpRequest request = createHttpRequest ("/path?name=%E6%89%8E%E6%A0%B9" );
122
+ ServerHttpRequest request = createRequest ("/path?name=%E6%89%8E%E6%A0%B9" );
123
123
request = request .mutate ().path ("/mutatedPath" ).build ();
124
124
125
125
assertThat (request .getURI ().getRawPath ()).isEqualTo ("/mutatedPath" );
126
126
assertThat (request .getURI ().getRawQuery ()).isEqualTo ("name=%E6%89%8E%E6%A0%B9" );
127
127
}
128
128
129
+ @ Test
130
+ public void mutateWithInvalidPath () {
131
+ assertThatIllegalArgumentException ().isThrownBy (() -> createRequest ("/" ).mutate ().path ("foo-bar" ));
132
+ }
133
+
129
134
@ Test
130
135
public void mutateHeadersViaConsumer () throws Exception {
131
136
String headerName = "key" ;
132
137
String headerValue1 = "value1" ;
133
138
String headerValue2 = "value2" ;
134
139
135
- ServerHttpRequest request = createHttpRequest ("/path" );
140
+ ServerHttpRequest request = createRequest ("/path" );
136
141
assertThat (request .getHeaders ().get (headerName )).isNull ();
137
142
138
143
request = request .mutate ().headers (headers -> headers .add (headerName , headerValue1 )).build ();
139
-
140
144
assertThat (request .getHeaders ().get (headerName )).containsExactly (headerValue1 );
141
145
142
146
request = request .mutate ().headers (headers -> headers .add (headerName , headerValue2 )).build ();
143
-
144
147
assertThat (request .getHeaders ().get (headerName )).containsExactly (headerValue1 , headerValue2 );
145
148
}
146
149
@@ -151,19 +154,17 @@ public void mutateHeaderBySettingHeaderValues() throws Exception {
151
154
String headerValue2 = "value2" ;
152
155
String headerValue3 = "value3" ;
153
156
154
- ServerHttpRequest request = createHttpRequest ("/path" );
157
+ ServerHttpRequest request = createRequest ("/path" );
155
158
assertThat (request .getHeaders ().get (headerName )).isNull ();
156
159
157
160
request = request .mutate ().header (headerName , headerValue1 , headerValue2 ).build ();
158
-
159
161
assertThat (request .getHeaders ().get (headerName )).containsExactly (headerValue1 , headerValue2 );
160
162
161
163
request = request .mutate ().header (headerName , headerValue3 ).build ();
162
-
163
164
assertThat (request .getHeaders ().get (headerName )).containsExactly (headerValue3 );
164
165
}
165
166
166
- private ServerHttpRequest createHttpRequest (String uriString ) throws Exception {
167
+ private ServerHttpRequest createRequest (String uriString ) throws Exception {
167
168
URI uri = URI .create (uriString );
168
169
MockHttpServletRequest request = new TestHttpServletRequest (uri );
169
170
AsyncContext asyncContext = new MockAsyncContext (request , new MockHttpServletResponse ());
0 commit comments