Browse Source

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>
v6
DavidCai 8 years ago
committed by James M Snell
parent
commit
dc7d9eb0a9
  1. 11
      test/parallel/test-querystring-escape.js
  2. 2
      test/parallel/test-querystring.js

11
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({}), '%5Bobject%20Object%5D');
assert.deepStrictEqual(qs.escape([5, 10]), '5%2C10'); assert.deepStrictEqual(qs.escape([5, 10]), '5%2C10');
assert.deepStrictEqual(qs.escape('Ŋōđĕ'), '%C5%8A%C5%8D%C4%91%C4%95'); 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 // using toString for objects
assert.strictEqual( assert.strictEqual(
@ -17,9 +22,11 @@ assert.strictEqual(
); );
// toString is not callable, must throw an error // 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 // should use valueOf instead of non-callable toString
assert.strictEqual(qs.escape({toString: 5, valueOf: () => 'test'}), 'test'); 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$/);

2
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 }), check(qs.parse('a=a&b=b&c=c', null, null, { decodeURIComponent: demoDecode }),
{ aa: 'aa', bb: 'bb', cc: 'cc' }); { 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 // Test QueryString.unescape
function errDecode(str) { function errDecode(str) {

Loading…
Cancel
Save