diff options
author | Kevin (Kun) "Kassimo" Qian <kevinkassimo@gmail.com> | 2018-12-19 02:57:23 -0500 |
---|---|---|
committer | Ryan Dahl <ry@tinyclouds.org> | 2018-12-19 02:57:23 -0500 |
commit | 57338d98bef93bb45c8aff945ccec5d310d3c241 (patch) | |
tree | 15275505d71e151d472ba156304666f54f61416b /js/headers_test.ts | |
parent | 22874d44a65ed670735fb0d7f6bc8de45f13620a (diff) |
Add illegal header name and value guards (#1375)
Diffstat (limited to 'js/headers_test.ts')
-rw-r--r-- | js/headers_test.ts | 51 |
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" }); +}); |