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