diff options
author | DavidCai <davidcai1993@yahoo.com> | 2017-04-02 21:44:20 +0800 |
---|---|---|
committer | James M Snell <jasnell@gmail.com> | 2017-04-04 09:28:36 -0700 |
commit | dc7d9eb0a94c6ca97c5ee0a06a6c4ae84b5b8575 (patch) | |
tree | f8ca4d3799653a40eb9996185ce52461860c54b7 /test | |
parent | b2ac3b60b21b5822e780988a73e914a8733b0645 (diff) | |
download | android-node-v8-dc7d9eb0a94c6ca97c5ee0a06a6c4ae84b5b8575.tar.gz android-node-v8-dc7d9eb0a94c6ca97c5ee0a06a6c4ae84b5b8575.tar.bz2 android-node-v8-dc7d9eb0a94c6ca97c5ee0a06a6c4ae84b5b8575.zip |
test: increase querystring coverage
PR-URL: https://github.com/nodejs/node/pull/12163
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: Yuta Hiroto <hello@about-hiroppy.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Diffstat (limited to 'test')
-rw-r--r-- | test/parallel/test-querystring-escape.js | 11 | ||||
-rw-r--r-- | test/parallel/test-querystring.js | 2 |
2 files changed, 11 insertions, 2 deletions
diff --git a/test/parallel/test-querystring-escape.js b/test/parallel/test-querystring-escape.js index 17073a66bd..c62f19a0ae 100644 --- a/test/parallel/test-querystring-escape.js +++ b/test/parallel/test-querystring-escape.js @@ -9,6 +9,11 @@ assert.deepStrictEqual(qs.escape('test'), 'test'); assert.deepStrictEqual(qs.escape({}), '%5Bobject%20Object%5D'); assert.deepStrictEqual(qs.escape([5, 10]), '5%2C10'); assert.deepStrictEqual(qs.escape('Ŋōđĕ'), '%C5%8A%C5%8D%C4%91%C4%95'); +assert.deepStrictEqual(qs.escape('testŊōđĕ'), 'test%C5%8A%C5%8D%C4%91%C4%95'); +assert.deepStrictEqual(qs.escape(`${String.fromCharCode(0xD800 + 1)}test`), + '%F0%90%91%B4est'); +assert.throws(() => qs.escape(String.fromCharCode(0xD800 + 1)), + /^URIError: URI malformed$/); // using toString for objects assert.strictEqual( @@ -17,9 +22,11 @@ assert.strictEqual( ); // toString is not callable, must throw an error -assert.throws(() => qs.escape({toString: 5})); +assert.throws(() => qs.escape({toString: 5}), + /^TypeError: Cannot convert object to primitive value$/); // should use valueOf instead of non-callable toString assert.strictEqual(qs.escape({toString: 5, valueOf: () => 'test'}), 'test'); -assert.throws(() => qs.escape(Symbol('test'))); +assert.throws(() => qs.escape(Symbol('test')), + /^TypeError: Cannot convert a Symbol value to a string$/); diff --git a/test/parallel/test-querystring.js b/test/parallel/test-querystring.js index 4218589226..6d8dd2a7f2 100644 --- a/test/parallel/test-querystring.js +++ b/test/parallel/test-querystring.js @@ -373,6 +373,8 @@ function demoDecode(str) { } check(qs.parse('a=a&b=b&c=c', null, null, { decodeURIComponent: demoDecode }), { aa: 'aa', bb: 'bb', cc: 'cc' }); +check(qs.parse('a=a&b=b&c=c', null, '==', { decodeURIComponent: (str) => str }), + { 'a=a': '', 'b=b': '', 'c=c': '' }); // Test QueryString.unescape function errDecode(str) { |