summaryrefslogtreecommitdiff
path: root/js/headers_test.ts
diff options
context:
space:
mode:
authorKevin (Kun) "Kassimo" Qian <kevinkassimo@gmail.com>2018-12-19 02:57:23 -0500
committerRyan Dahl <ry@tinyclouds.org>2018-12-19 02:57:23 -0500
commit57338d98bef93bb45c8aff945ccec5d310d3c241 (patch)
tree15275505d71e151d472ba156304666f54f61416b /js/headers_test.ts
parent22874d44a65ed670735fb0d7f6bc8de45f13620a (diff)
Add illegal header name and value guards (#1375)
Diffstat (limited to 'js/headers_test.ts')
-rw-r--r--js/headers_test.ts51
1 files changed, 51 insertions, 0 deletions
diff --git a/js/headers_test.ts b/js/headers_test.ts
index e40efcda6..53c8ef089 100644
--- a/js/headers_test.ts
+++ b/js/headers_test.ts
@@ -177,3 +177,54 @@ test(function headerTypesAvailable() {
const headers = newHeaders();
assert(headers instanceof Headers);
});
+
+// tslint:disable-next-line:max-line-length
+// Modified from https://github.com/bitinn/node-fetch/blob/7d3293200a91ad52b5ca7962f9d6fd1c04983edb/test/test.js#L2001-L2014
+// Copyright (c) 2016 David Frank. MIT License.
+test(function headerIllegalReject() {
+ let errorCount = 0;
+ try {
+ new Headers({ "He y": "ok" });
+ } catch (e) {
+ errorCount++;
+ }
+ try {
+ new Headers({ "Hé-y": "ok" });
+ } catch (e) {
+ errorCount++;
+ }
+ try {
+ new Headers({ "He-y": "ăk" });
+ } catch (e) {
+ errorCount++;
+ }
+ const headers = new Headers();
+ try {
+ headers.append("Hé-y", "ok");
+ } catch (e) {
+ errorCount++;
+ }
+ try {
+ headers.delete("Hé-y");
+ } catch (e) {
+ errorCount++;
+ }
+ try {
+ headers.get("Hé-y");
+ } catch (e) {
+ errorCount++;
+ }
+ try {
+ headers.has("Hé-y");
+ } catch (e) {
+ errorCount++;
+ }
+ try {
+ headers.set("Hé-y", "ok");
+ } catch (e) {
+ errorCount++;
+ }
+ assertEqual(errorCount, 8);
+ // 'o k' is valid value but invalid name
+ new Headers({ "He-y": "o k" });
+});