diff options
author | Kyra <kyradiscord@gmail.com> | 2018-11-04 19:05:02 +0100 |
---|---|---|
committer | Ryan Dahl <ry@tinyclouds.org> | 2018-11-04 10:05:02 -0800 |
commit | e93d686e9d5e797f7e4e02bda56a8b6d535326ca (patch) | |
tree | e89490da61e17ee890ce590fdaa99d0701dc8308 /js/form_data_test.ts | |
parent | 1241b8e9babfec3e87c8958e2065966ee5dd1335 (diff) |
Web APIs: `File` and `FormData` (#1056)
Diffstat (limited to 'js/form_data_test.ts')
-rw-r--r-- | js/form_data_test.ts | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/js/form_data_test.ts b/js/form_data_test.ts new file mode 100644 index 000000000..04a05acaf --- /dev/null +++ b/js/form_data_test.ts @@ -0,0 +1,92 @@ +// Copyright 2018 the Deno authors. All rights reserved. MIT license. +import { test, assert, assertEqual } from "./test_util.ts"; + +test(function formDataParamsAppendSuccess() { + const formData = new FormData(); + formData.append("a", "true"); + assertEqual(formData.get("a"), "true"); +}); + +test(function formDataParamsDeleteSuccess() { + const formData = new FormData(); + formData.append("a", "true"); + formData.append("b", "false"); + assertEqual(formData.get("b"), "false"); + formData.delete("b"); + assertEqual(formData.get("a"), "true"); + assertEqual(formData.get("b"), null); +}); + +test(function formDataParamsGetAllSuccess() { + const formData = new FormData(); + formData.append("a", "true"); + formData.append("b", "false"); + formData.append("a", "null"); + assertEqual(formData.getAll("a"), ["true", "null"]); + assertEqual(formData.getAll("b"), ["false"]); + assertEqual(formData.getAll("c"), []); +}); + +test(function formDataParamsGetSuccess() { + const formData = new FormData(); + formData.append("a", "true"); + formData.append("b", "false"); + formData.append("a", "null"); + formData.append("d", undefined); + formData.append("e", null); + assertEqual(formData.get("a"), "true"); + assertEqual(formData.get("b"), "false"); + assertEqual(formData.get("c"), null); + assertEqual(formData.get("d"), "undefined"); + assertEqual(formData.get("e"), "null"); +}); + +test(function formDataParamsHasSuccess() { + const formData = new FormData(); + formData.append("a", "true"); + formData.append("b", "false"); + assert(formData.has("a")); + assert(formData.has("b")); + assert(!formData.has("c")); +}); + +test(function formDataParamsSetSuccess() { + const formData = new FormData(); + formData.append("a", "true"); + formData.append("b", "false"); + formData.append("a", "null"); + assertEqual(formData.getAll("a"), ["true", "null"]); + assertEqual(formData.getAll("b"), ["false"]); + formData.set("a", "false"); + assertEqual(formData.getAll("a"), ["false"]); + formData.set("d", undefined); + assertEqual(formData.get("d"), "undefined"); + formData.set("e", null); + assertEqual(formData.get("e"), "null"); +}); + +test(function formDataSetEmptyBlobSuccess() { + const formData = new FormData(); + formData.set("a", new Blob([]), "blank.txt"); + const file = formData.get("a"); + assert(file instanceof File); + if (typeof file !== "string") { + assertEqual(file.name, "blank.txt"); + } +}); + +test(function formDataParamsForEachSuccess() { + const init = [["a", "54"], ["b", "true"]]; + const formData = new FormData(); + for (const [name, value] of init) { + formData.append(name, value); + } + let callNum = 0; + formData.forEach((value, key, parent) => { + assertEqual(formData, parent); + assertEqual(value, init[callNum][1]); + assertEqual(key, init[callNum][0]); + callNum++; + }); + assertEqual(callNum, init.length); +}); |