summaryrefslogtreecommitdiff
path: root/js/url_search_params_test.ts
diff options
context:
space:
mode:
authorKyra <kyradiscord@gmail.com>2018-10-21 17:07:29 +0200
committerRyan Dahl <ry@tinyclouds.org>2018-10-21 08:07:29 -0700
commitfbb3f05b6ffd9d132cb643c831867b272b95dc0e (patch)
treeb414c6af5792a5d9768320dd40074e4febf12d57 /js/url_search_params_test.ts
parent86409eb8369107a4c4944d3db0090ffc79395823 (diff)
Add URLSearchParams (#1049)
Diffstat (limited to 'js/url_search_params_test.ts')
-rw-r--r--js/url_search_params_test.ts114
1 files changed, 114 insertions, 0 deletions
diff --git a/js/url_search_params_test.ts b/js/url_search_params_test.ts
new file mode 100644
index 000000000..46e8103d9
--- /dev/null
+++ b/js/url_search_params_test.ts
@@ -0,0 +1,114 @@
+// Copyright 2018 the Deno authors. All rights reserved. MIT license.
+import { test, assert, assertEqual } from "./test_util.ts";
+
+test(function urlSearchParamsInitString() {
+ const init = "c=4&a=2&b=3&%C3%A1=1";
+ const searchParams = new URLSearchParams(init);
+ assert(
+ init === searchParams.toString(),
+ "The init query string does not match"
+ );
+});
+
+test(function urlSearchParamsInitIterable() {
+ const init = [["a", "54"], ["b", "true"]];
+ const searchParams = new URLSearchParams(init);
+ assertEqual(searchParams.toString(), "a=54&b=true");
+});
+
+test(function urlSearchParamsInitRecord() {
+ const init = { a: "54", b: "true" };
+ const searchParams = new URLSearchParams(init);
+ assertEqual(searchParams.toString(), "a=54&b=true");
+});
+
+test(function urlSearchParamsAppendSuccess() {
+ const searchParams = new URLSearchParams();
+ searchParams.append("a", "true");
+ assertEqual(searchParams.toString(), "a=true");
+});
+
+test(function urlSearchParamsDeleteSuccess() {
+ const init = "a=54&b=true";
+ const searchParams = new URLSearchParams(init);
+ searchParams.delete("b");
+ assertEqual(searchParams.toString(), "a=54");
+});
+
+test(function urlSearchParamsGetAllSuccess() {
+ const init = "a=54&b=true&a=true";
+ const searchParams = new URLSearchParams(init);
+ assertEqual(searchParams.getAll("a"), ["54", "true"]);
+ assertEqual(searchParams.getAll("b"), ["true"]);
+ assertEqual(searchParams.getAll("c"), []);
+});
+
+test(function urlSearchParamsGetSuccess() {
+ const init = "a=54&b=true&a=true";
+ const searchParams = new URLSearchParams(init);
+ assertEqual(searchParams.get("a"), "54");
+ assertEqual(searchParams.get("b"), "true");
+ assertEqual(searchParams.get("c"), null);
+});
+
+test(function urlSearchParamsHasSuccess() {
+ const init = "a=54&b=true&a=true";
+ const searchParams = new URLSearchParams(init);
+ assert(searchParams.has("a"));
+ assert(searchParams.has("b"));
+ assert(!searchParams.has("c"));
+});
+
+test(function urlSearchParamsSetSuccess() {
+ const init = "a=54&b=true&a=true";
+ const searchParams = new URLSearchParams(init);
+ searchParams.set("a", "false");
+ assertEqual(searchParams.toString(), "b=true&a=false");
+});
+
+test(function urlSearchParamsSortSuccess() {
+ const init = "c=4&a=2&b=3&a=1";
+ const searchParams = new URLSearchParams(init);
+ searchParams.sort();
+ assertEqual(searchParams.toString(), "a=2&a=1&b=3&c=4");
+});
+
+test(function urlSearchParamsForEachSuccess() {
+ const init = [["a", "54"], ["b", "true"]];
+ const searchParams = new URLSearchParams(init);
+ let callNum = 0;
+ searchParams.forEach((value, key, parent) => {
+ assertEqual(searchParams, parent);
+ assertEqual(value, init[callNum][1]);
+ assertEqual(key, init[callNum][0]);
+ callNum++;
+ });
+ assertEqual(callNum, init.length);
+});
+
+test(function urlSearchParamsMissingName() {
+ const init = "=4";
+ const searchParams = new URLSearchParams(init);
+ assertEqual(searchParams.get(""), "4");
+ assertEqual(searchParams.toString(), "=4");
+});
+
+test(function urlSearchParamsMissingValue() {
+ const init = "4=";
+ const searchParams = new URLSearchParams(init);
+ assertEqual(searchParams.get("4"), "");
+ assertEqual(searchParams.toString(), "4=");
+});
+
+test(function urlSearchParamsMissingEqualSign() {
+ const init = "4";
+ const searchParams = new URLSearchParams(init);
+ assertEqual(searchParams.get("4"), "");
+ assertEqual(searchParams.toString(), "4=");
+});
+
+test(function urlSearchParamsMissingPair() {
+ const init = "c=4&&a=54&";
+ const searchParams = new URLSearchParams(init);
+ assertEqual(searchParams.toString(), "c=4&a=54");
+});