diff options
author | 迷渡 <justjavac@gmail.com> | 2018-12-27 10:12:55 +0800 |
---|---|---|
committer | Ryan Dahl <ry@tinyclouds.org> | 2018-12-27 02:12:55 +0000 |
commit | 5e518b741704b738e29352c341ee6a956cce1fff (patch) | |
tree | 3eab76cf45be5cd60c5fa0e0ebd49de6c41c2f06 /js/headers_test.ts | |
parent | 9bfe9a005b7b90f880414747cecad4f8def02a02 (diff) |
check runtime `FormData` and `Headers` params (#1415)
Diffstat (limited to 'js/headers_test.ts')
-rw-r--r-- | js/headers_test.ts | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/js/headers_test.ts b/js/headers_test.ts index 53c8ef089..9591b24f8 100644 --- a/js/headers_test.ts +++ b/js/headers_test.ts @@ -228,3 +228,73 @@ test(function headerIllegalReject() { // 'o k' is valid value but invalid name new Headers({ "He-y": "o k" }); }); + +test(function headerParamsArgumentsCheck() { + const methodRequireOneParam = ["delete", "get", "has", "forEach"]; + + const methodRequireTwoParams = ["append", "set"]; + + methodRequireOneParam.forEach(method => { + const headers = new Headers(); + let hasThrown = 0; + let errMsg = ""; + try { + headers[method](); + hasThrown = 1; + } catch (err) { + errMsg = err.message; + if (err instanceof TypeError) { + hasThrown = 2; + } else { + hasThrown = 3; + } + } + assertEqual(hasThrown, 2); + assertEqual( + errMsg, + `Headers.${method} requires at least 1 argument, but only 0 present` + ); + }); + + methodRequireTwoParams.forEach(method => { + const headers = new Headers(); + let hasThrown = 0; + let errMsg = ""; + + try { + headers[method](); + hasThrown = 1; + } catch (err) { + errMsg = err.message; + if (err instanceof TypeError) { + hasThrown = 2; + } else { + hasThrown = 3; + } + } + assertEqual(hasThrown, 2); + assertEqual( + errMsg, + `Headers.${method} requires at least 2 arguments, but only 0 present` + ); + + hasThrown = 0; + errMsg = ""; + try { + headers[method]("foo"); + hasThrown = 1; + } catch (err) { + errMsg = err.message; + if (err instanceof TypeError) { + hasThrown = 2; + } else { + hasThrown = 3; + } + } + assertEqual(hasThrown, 2); + assertEqual( + errMsg, + `Headers.${method} requires at least 2 arguments, but only 1 present` + ); + }); +}); |