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([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$/);

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 }),
{ 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) {

Loading…
Cancel
Save