summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorDavidCai <davidcai1993@yahoo.com>2017-04-02 21:44:20 +0800
committerJames M Snell <jasnell@gmail.com>2017-04-04 09:28:36 -0700
commitdc7d9eb0a94c6ca97c5ee0a06a6c4ae84b5b8575 (patch)
treef8ca4d3799653a40eb9996185ce52461860c54b7 /test
parentb2ac3b60b21b5822e780988a73e914a8733b0645 (diff)
downloadandroid-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.js11
-rw-r--r--test/parallel/test-querystring.js2
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) {