aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDmitry Volyntsev <xeioex@nginx.com>2025-01-29 21:35:08 -0800
committerDmitry Volyntsev <xeioexception@gmail.com>2025-02-07 18:14:25 -0800
commitf289dcb99a9e4c9b72ca8d1c60659a43e58547cd (patch)
tree0781d9f51b31c56a2ac21bf9921ac3a7fb5ffcd6 /src
parent246f4ca082f125fd1fd20ddc7cb45e40f19de04d (diff)
downloadnjs-f289dcb99a9e4c9b72ca8d1c60659a43e58547cd.tar.gz
njs-f289dcb99a9e4c9b72ca8d1c60659a43e58547cd.zip
QuickJS: added querystring module.
Diffstat (limited to 'src')
-rw-r--r--src/test/njs_unit_test.c354
1 files changed, 0 insertions, 354 deletions
diff --git a/src/test/njs_unit_test.c b/src/test/njs_unit_test.c
index 81fee436..e99a6d8a 100644
--- a/src/test/njs_unit_test.c
+++ b/src/test/njs_unit_test.c
@@ -20491,354 +20491,6 @@ static njs_unit_test_t njs_crypto_module_test[] =
njs_str("TypeError: \"this\" is not a hash object") },
};
-static njs_unit_test_t njs_querystring_module_test[] =
-{
- { njs_str("var qs = require('querystring');"
- "var obj = qs.parse('baz=fuz');"
- "njs.dump(obj)"),
- njs_str("{baz:'fuz'}") },
-
- { njs_str("var qs = require('querystring');"
- "var obj = qs.parse('baz=');"
- "njs.dump(obj)"),
- njs_str("{baz:''}") },
-
- { njs_str("var qs = require('querystring');"
- "var obj = qs.parse('baz=fuz&muz=tax');"
- "njs.dump(obj)"),
- njs_str("{baz:'fuz',muz:'tax'}") },
-
- { njs_str("var qs = require('querystring');"
- "var obj = qs.parse('baz=fuz&');"
- "njs.dump(obj)"),
- njs_str("{baz:'fuz'}") },
-
- { njs_str("var qs = require('querystring');"
- "var obj = qs.parse('&baz=fuz');"
- "njs.dump(obj)"),
- njs_str("{baz:'fuz'}") },
-
- { njs_str("var qs = require('querystring');"
- "var obj = qs.parse('&&&&&baz=fuz');"
- "njs.dump(obj)"),
- njs_str("{baz:'fuz'}") },
-
- { njs_str("var qs = require('querystring');"
- "var obj = qs.parse('=fuz');"
- "njs.dump(obj)"),
- njs_str("{:'fuz'}") },
-
- { njs_str("var qs = require('querystring');"
- "var obj = qs.parse('=fuz=');"
- "njs.dump(obj)"),
- njs_str("{:'fuz='}") },
-
- { njs_str("var qs = require('querystring');"
- "var obj = qs.parse('===fu=z');"
- "njs.dump(obj)"),
- njs_str("{:'==fu=z'}") },
-
- { njs_str("var qs = require('querystring');"
- "var obj = qs.parse('baz=fuz&baz=tax');"
- "njs.dump(obj)"),
- njs_str("{baz:['fuz','tax']}") },
-
- { njs_str("var qs = require('querystring');"
- "var obj = qs.parse('freespace');"
- "njs.dump(obj)"),
- njs_str("{freespace:''}") },
-
- { njs_str("var qs = require('querystring');"
- "var obj = qs.parse('name&value=12');"
- "njs.dump(obj)"),
- njs_str("{name:'',value:'12'}") },
-
- { njs_str("var qs = require('querystring');"
- "var obj = qs.parse('baz=fuz&muz=tax', 'fuz');"
- "njs.dump(obj)"),
- njs_str("{baz:'',&muz:'tax'}") },
-
- { njs_str("var qs = require('querystring');"
- "var obj = qs.parse('baz=fuz&muz=tax', '');"
- "njs.dump(obj)"),
- njs_str("{baz:'fuz',muz:'tax'}") },
-
- { njs_str("var qs = require('querystring');"
- "var obj = qs.parse('baz=fuz&muz=tax', null);"
- "njs.dump(obj)"),
- njs_str("{baz:'fuz',muz:'tax'}") },
-
- { njs_str("var qs = require('querystring');"
- "var obj = qs.parse('baz=fuz&muz=tax', undefined);"
- "njs.dump(obj)"),
- njs_str("{baz:'fuz',muz:'tax'}") },
-
- { njs_str("var qs = require('querystring');"
- "var obj = qs.parse('baz=fuz123muz=tax', 123);"
- "njs.dump(obj)"),
- njs_str("{baz:'fuz',muz:'tax'}") },
-
- { njs_str("var qs = require('querystring');"
- "var obj = qs.parse('baz=fuzαααmuz=tax', 'ααα');"
- "njs.dump(obj)"),
- njs_str("{baz:'fuz',muz:'tax'}") },
-
- { njs_str("var qs = require('querystring');"
- "var obj = qs.parse('baz=fuz&muz=tax', '=');"
- "njs.dump(obj)"),
- njs_str("{baz:'',fuz&muz:'',tax:''}") },
-
- { njs_str("var qs = require('querystring');"
- "var obj = qs.parse('baz=fuz&muz=tax', null, 'fuz');"
- "njs.dump(obj)"),
- njs_str("{baz=:'',muz=tax:''}") },
-
- { njs_str("var qs = require('querystring');"
- "var obj = qs.parse('baz=fuz&muz=tax', null, '&');"
- "njs.dump(obj)"),
- njs_str("{baz=fuz:'',muz=tax:''}") },
-
- { njs_str("var qs = require('querystring');"
- "var obj = qs.parse('baz123fuz&muz123tax', null, 123);"
- "njs.dump(obj)"),
- njs_str("{baz:'fuz',muz:'tax'}") },
-
- { njs_str("var qs = require('querystring');"
- "var obj = qs.parse('bazαααfuz&muzαααtax', null, 'ααα');"
- "njs.dump(obj)"),
- njs_str("{baz:'fuz',muz:'tax'}") },
-
- { njs_str("var qs = require('querystring');"
- "var obj = qs.parse('baz=fuz&muz=tax', null, null, {maxKeys: 1});"
- "njs.dump(obj)"),
- njs_str("{baz:'fuz'}") },
-
- { njs_str("var qs = require('querystring'); var out = [];"
- "var obj = qs.parse('baz=fuz&muz=tax', null, null, {decodeURIComponent: (key) => {out.push(key)}});"
- "out.join('; ');"),
- njs_str("baz; fuz; muz; tax") },
-
- { njs_str("var qs = require('querystring'); var i = 0;"
- "var obj = qs.parse('baz=fuz&muz=tax', null, null, {decodeURIComponent: (key) => 'α' + i++});"
- "njs.dump(obj);"),
- njs_str("{α0:'α1',α2:'α3'}") },
-
- { njs_str("var qs = require('querystring');"
- "qs.parse('baz=fuz&muz=tax', null, null, {decodeURIComponent: 123});"),
- njs_str("TypeError: option decodeURIComponent is not a function") },
-
- { njs_str("var qs = require('querystring');"
- "qs.unescape = 123;"
- "qs.parse('baz=fuz&muz=tax');"),
- njs_str("TypeError: QueryString.unescape is not a function") },
-
- { njs_str("var qs = require('querystring'); var out = [];"
- "qs.unescape = (key) => {out.push(key)};"
- "qs.parse('baz=fuz&muz=tax');"
- "out.join('; ');"),
- njs_str("baz; fuz; muz; tax") },
-
- { njs_str("var qs = require('querystring');"
- "var obj = qs.parse('ba%32z=f%32uz');"
- "njs.dump(obj)"),
- njs_str("{ba2z:'f2uz'}") },
-
- { njs_str("var qs = require('querystring');"
- "var obj = qs.parse('ba%32z=f%32uz');"
- "njs.dump(obj)"),
- njs_str("{ba2z:'f2uz'}") },
-
- { njs_str("var qs = require('querystring');"
- "var obj = qs.parse('ba%F0%9F%92%A9z=f%F0%9F%92%A9uz');"
- "njs.dump(obj)"),
- njs_str("{ba💩z:'f💩uz'}") },
-
- { njs_str("var qs = require('querystring');"
- "var obj = qs.parse('======');"
- "njs.dump(obj)"),
- njs_str("{:'====='}") },
-
- { njs_str("var qs = require('querystring');"
- "var obj = qs.parse('baz=%F0%9F%A9');"
- "njs.dump(obj)"),
- njs_str("{baz:'�'}") },
-
- { njs_str("var qs = require('querystring');"
- "var obj = qs.parse('baz=αααααα%\x00\x01\x02αααα');"
- "njs.dump(obj)"),
- njs_str("{baz:'αααααα%\\u0000\\u0001\\u0002αααα'}") },
-
- { njs_str("var qs = require('querystring');"
- "var obj = qs.parse('baz=%F6α');"
- "njs.dump(obj)"),
- njs_str("{baz:'�α'}") },
-
- { njs_str("var qs = require('querystring');"
- "var obj = qs.parse('baz=%F6');"
- "njs.dump(obj)"),
- njs_str("{baz:'�'}") },
-
- { njs_str("var qs = require('querystring');"
- "var obj = qs.parse('baz=%FG');"
- "njs.dump(obj)"),
- njs_str("{baz:'%FG'}") },
-
- { njs_str("var qs = require('querystring');"
- "var obj = qs.parse('baz=%F');"
- "njs.dump(obj)"),
- njs_str("{baz:'%F'}") },
-
- { njs_str("var qs = require('querystring');"
- "var obj = qs.parse('baz=%');"
- "njs.dump(obj)"),
- njs_str("{baz:'%'}") },
-
- { njs_str("var qs = require('querystring');"
- "var obj = qs.parse('ba+z=f+uz');"
- "njs.dump(obj)"),
- njs_str("{ba z:'f uz'}") },
-
-
- { njs_str("var qs = require('querystring');"
- "qs.parse('X='+'α'.repeat(33)).X.length"),
- njs_str("33") },
-
- { njs_str("var qs = require('querystring');"
- "var x = qs.parse('X='+'α1'.repeat(33)).X;"
- "[x.length, x[33], x[34]]"),
- njs_str("66,1,α") },
-
- { njs_str("var qs = require('querystring');"
- "qs.stringify({'baz': 'fuz'})"),
- njs_str("baz=fuz") },
-
- { njs_str("var qs = require('querystring');"
- "qs.stringify({'baz': 'fuz', 'muz': 'tax'})"),
- njs_str("baz=fuz&muz=tax") },
-
- { njs_str("var qs = require('querystring');"
- "qs.stringify({'baαz': 'fαuz', 'muαz': 'tαax'});"),
- njs_str("ba%CE%B1z=f%CE%B1uz&mu%CE%B1z=t%CE%B1ax") },
-
- { njs_str("var qs = require('querystring');"
- "qs.stringify({'baz': ['fuz', 'tax']})"),
- njs_str("baz=fuz&baz=tax") },
-
- { njs_str("var qs = require('querystring');"
- njs_declare_sparse_array("arr", 2)
- "arr[0] = 0; arr[1] = 1.5;"
- "qs.stringify({'baz': arr})"),
- njs_str("baz=0&baz=1.5") },
-
- { njs_str("var qs = require('querystring'); var out = [];"
- "qs.stringify({'baz': 'fuz', 'muz': 'tax'}, null, null, {encodeURIComponent: (key) => {out.push(key)}});"
- "out.join('; ')"),
- njs_str("baz; fuz; muz; tax") },
-
- { njs_str("var qs = require('querystring');"
- "qs.stringify({'baz': 'fuz', 'muz': 'tax'}, null, null, {encodeURIComponent: 123});"
- "out.join('; ')"),
- njs_str("TypeError: option encodeURIComponent is not a function") },
-
- { njs_str("var qs = require('querystring');"
- "qs.escape = 123;"
- "qs.stringify({'baz': 'fuz', 'muz': 'tax'})"),
- njs_str("TypeError: QueryString.escape is not a function") },
-
- { njs_str("var qs = require('querystring'); var out = [];"
- "qs.escape = (key) => {out.push(key)};"
- "qs.stringify({'baz': 'fuz', 'muz': 'tax'});"
- "out.join('; ')"),
- njs_str("baz; fuz; muz; tax") },
-
- { njs_str("var qs = require('querystring');"
- "qs.stringify({'baz': 'fuz', 'muz': 'tax'}, '****')"),
- njs_str("baz=fuz****muz=tax") },
-
- { njs_str("var qs = require('querystring');"
- "qs.stringify({'baz': 'fuz', 'muz': 'tax'}, null, '^^^^')"),
- njs_str("baz^^^^fuz&muz^^^^tax") },
-
- { njs_str("var qs = require('querystring');"
- "var obj = {A:'α'}; obj['δ'] = 'D';"
- "var s = qs.stringify(obj,'γ=','&β'); [s, s.length]"),
- njs_str("A&β%CE%B1γ=%CE%B4&βD,20") },
-
- { njs_str("var qs = require('querystring');"
- "qs.stringify({'baz': 'fuz', 'muz': 'tax'}, '', '')"),
- njs_str("baz=fuz&muz=tax") },
-
- { njs_str("var qs = require('querystring');"
- "qs.stringify({'baz': 'fuz', 'muz': 'tax'}, undefined, undefined)"),
- njs_str("baz=fuz&muz=tax") },
-
- { njs_str("var qs = require('querystring');"
- "qs.stringify({'baz': 'fuz', 'muz': 'tax'}, '?', '/')"),
- njs_str("baz/fuz?muz/tax") },
-
- { njs_str("var qs = require('querystring');"
- "qs.stringify('123')"),
- njs_str("") },
-
- { njs_str("var qs = require('querystring');"
- "qs.stringify(123)"),
- njs_str("") },
-
- { njs_str("var qs = require('querystring');"
- "qs.stringify({X:{toString(){return 3}}})"),
- njs_str("X=") },
-
- { njs_str("var qs = require('querystring');"
- "qs.stringify({ name: undefined, age: 12 })"),
- njs_str("name=&age=12") },
-
- { njs_str("var qs = require('querystring');"
- "qs.stringify(Object.create({ name: undefined, age: 12 }))"),
- njs_str("") },
-
- { njs_str("var qs = require('querystring');"
- "qs.stringify([])"),
- njs_str("") },
-
- { njs_str("var qs = require('querystring');"
- "qs.stringify(['','',''])"),
- njs_str("0=&1=&2=") },
-
- { njs_str("var qs = require('querystring');"
- "qs.stringify([undefined, null, Symbol(), Object(0), Object('test'), Object(false),,,])"),
- njs_str("0=&1=&2=&3=&4=&5=") },
-
-#if 0
- { njs_str("var qs = require('querystring');"
- "qs.stringify([NaN, Infinity, -Infinity, 2**69, 2**70])"),
- njs_str("0=&1=&2=&3=590295810358705700000&4=1.1805916207174113e%2B21") },
-#else
- { njs_str("var qs = require('querystring');"
- "qs.stringify([NaN, Infinity, -Infinity, 2**69, 2**70])"),
- njs_str("0=&1=&2=&3=590295810358705700000&4=1.1805916207174114e%2B21") },
-#endif
-
- { njs_str("var qs = require('querystring');"
- "qs.stringify([[1,2,3],[4,5,6]])"),
- njs_str("0=1&0=2&0=3&1=4&1=5&1=6") },
-
- { njs_str("var qs = require('querystring');"
- "qs.stringify([['a',,,],['b',,,]])"),
- njs_str("0=a&0=&0=&1=b&1=&1=") },
-
- { njs_str("var qs = require('querystring');"
- "qs.stringify([[,'a','b',,]])"),
- njs_str("0=&0=a&0=b&0=") },
-
- { njs_str("var qs = require('querystring');"
- "qs.escape('abcααααdef')"),
- njs_str("abc%CE%B1%CE%B1%CE%B1%CE%B1def") },
-
- { njs_str("var qs = require('querystring');"
- "qs.unescape('abc%CE%B1%CE%B1%CE%B1%CE%B1def')"),
- njs_str("abcααααdef") },
-};
-
#define NJS_XML_DOC "const xml = require('xml');" \
"let data = `<note><to b=\"bar\" a= \"foo\" >Tove</to><from>Jani</from></note>`;" \
@@ -23918,12 +23570,6 @@ static njs_test_suite_t njs_suites[] =
njs_nitems(njs_crypto_module_test),
njs_unit_test },
- { njs_str("querystring module"),
- { .repeat = 1, .unsafe = 1 },
- njs_querystring_module_test,
- njs_nitems(njs_querystring_module_test),
- njs_unit_test },
-
{ njs_str("externals"),
{ .externals = 1, .repeat = 1, .unsafe = 1 },
njs_externals_test,