| // 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]); |
| } |
| } |