| // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file |
| // for details. All rights reserved. Use of this source code is governed by a |
| // BSD-style license that can be found in the LICENSE file. |
| |
| import "package:expect/expect.dart"; |
| import 'dart:convert'; |
| |
| main() { |
| testAll(["a", "b", "c"]); |
| testAll([""]); |
| testAll(["a"]); |
| testAll(["", ""]); |
| testAll(["baz"]); |
| |
| testParse("z&y&w&z", { |
| "z": ["", ""], |
| "y": [""], |
| "w": [""] |
| }); |
| testParse("x=42&y=42&x=37&y=37", { |
| "x": ["42", "37"], |
| "y": ["42", "37"] |
| }); |
| testParse("x&x&x&x&x", { |
| "x": ["", "", "", "", ""] |
| }); |
| testParse("x=&&y", { |
| "x": [""], |
| "y": [""] |
| }); |
| } |
| |
| testAll(List values) { |
| var uri = |
| new Uri(scheme: "foo", path: "bar", queryParameters: {"baz": values}); |
| var list = uri.queryParametersAll["baz"]!; |
| Expect.listEquals(values, list); |
| } |
| |
| testParse(query, results) { |
| var uri = new Uri(scheme: "foo", path: "bar", query: query); |
| var params = uri.queryParametersAll; |
| for (var k in results.keys) { |
| Expect.listEquals(results[k], params[k]!); |
| } |
| uri = new Uri(scheme: "foo", path: "bar", queryParameters: results); |
| params = uri.queryParametersAll; |
| for (var k in results.keys) { |
| Expect.listEquals(results[k], params[k]!); |
| } |
| } |