File tree 2 files changed +27
-2
lines changed
2 files changed +27
-2
lines changed Original file line number Diff line number Diff line change @@ -45,9 +45,9 @@ def parse_path_info(event)
45
45
46
46
def parse_query_string ( event )
47
47
if event . include? 'multiValueQueryStringParameters'
48
- Rack ::Utils . build_query ( event [ 'multiValueQueryStringParameters' ] || { } )
48
+ Rack ::Utils . unescape ( Rack :: Utils . build_query ( event [ 'multiValueQueryStringParameters' ] || { } ) )
49
49
else
50
- Rack ::Utils . build_query ( event [ 'queryStringParameters' ] || { } )
50
+ Rack ::Utils . unescape ( Rack :: Utils . build_query ( event [ 'queryStringParameters' ] || { } ) )
51
51
end
52
52
end
53
53
Original file line number Diff line number Diff line change 180
180
)
181
181
end
182
182
183
+ it 'handles escaped characters in parameters' do
184
+ @event [ 'queryStringParameters' ] = { 'param1' => 'value%231' , 'param2' => 'value%232' }
185
+
186
+ handler (
187
+ event : @event ,
188
+ context : { 'memory_limit_in_mb' => '128' }
189
+ )
190
+
191
+ expect ( @app . last_environ [ 'QUERY_STRING' ] ) . to eq ( 'param1=value%231¶m2=value%232' )
192
+ end
193
+
194
+ it 'handles escaped characters in multi-value query string parameters' do
195
+ @event [ 'multiValueQueryStringParameters' ] = {
196
+ 'param1' => [ 'value%231' ] ,
197
+ 'param2' => %w[ value%232 value%233 ]
198
+ }
199
+
200
+ handler (
201
+ event : @event ,
202
+ context : { 'memory_limit_in_mb' => '128' }
203
+ )
204
+
205
+ expect ( @app . last_environ [ 'QUERY_STRING' ] ) . to eq ( 'param1=value%231¶m2=value%232¶m2=value%233' )
206
+ end
207
+
183
208
it 'handles a request in china region' do
184
209
@event [ 'headers' ] [ 'Host' ] = 'x.amazonaws.com.cn'
185
210
You can’t perform that action at this time.
0 commit comments