From dc7d9eb0a94c6ca97c5ee0a06a6c4ae84b5b8575 Mon Sep 17 00:00:00 2001 From: DavidCai Date: Sun, 2 Apr 2017 21:44:20 +0800 Subject: [PATCH] test: increase querystring coverage MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR-URL: https://github.com/nodejs/node/pull/12163 Reviewed-By: Michaël Zasso Reviewed-By: Yuta Hiroto Reviewed-By: James M Snell Reviewed-By: Colin Ihrig --- test/parallel/test-querystring-escape.js | 11 +++++++++-- 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 17073a66bda35a..c62f19a0ae858f 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 4218589226f998..6d8dd2a7f262ef 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) {