in src/main/java/org/apache/sling/servlethelpers/MockSlingHttpServletRequest.java [321:343]
private void parseQueryString(Map<String, MockRequestParameter[]> map, String query) throws UnsupportedEncodingException {
Map<String, List<String>> queryPairs = new LinkedHashMap<>();
String[] pairs = query.split("&");
for (String pair : pairs) {
int idx = pair.indexOf('=');
String key = idx > 0 ? URLDecoder.decode(pair.substring(0, idx), CharEncoding.UTF_8) : pair;
if (!queryPairs.containsKey(key)) {
queryPairs.put(key, new ArrayList<String>());
}
String value = idx > 0 && pair.length() > idx + 1 ? URLDecoder.decode(pair.substring(idx + 1), CharEncoding.UTF_8) : null;
queryPairs.get(key).add(value);
}
map.clear();
for (Map.Entry<String, List<String>> entry : queryPairs.entrySet()) {
List<String> valueList = entry.getValue();
int numEntries = valueList.size();
MockRequestParameter[] values = new MockRequestParameter[numEntries];
for (int i = 0; i < numEntries; i++) {
values[i] = new MockRequestParameter(entry.getKey(), valueList.get(i));
}
map.put(entry.getKey(), values);
}
}