TAP version 13
# test basic
ok 1 prase id=918854443121279438895193
# test that the canonical qs is parsed properly
ok 2 parse foo=918854443121279438895193
ok 3 parse foo=bar
ok 4 parse foo=bar&foo=quux
ok 5 parse foo=1&bar=2
ok 6 parse my+weird+field=q1%212%22%27w%245%267%2Fz8%29%3F
ok 7 parse foo%3Dbaz=bar
ok 8 parse foo=baz=bar
ok 9 parse str=foo&arr=1&arr=2&arr=3&somenull=&undef=
ok 10 parse foo = bar
ok 11 parse foo=%EF%BF%BD
ok 12 parse hasOwnProperty=x&toString=foo&valueOf=bar&__defineGetter__=baz
ok 13 parse foo&bar=baz
# test that the colon test cases can do the same
ok 14 parse foo:bar -> ; :
ok 15 parse foo:bar;foo:quux -> ; :
ok 16 parse foo:1&bar:2;baz:quux -> ; :
ok 17 parse foo%3Abaz:bar -> ; :
ok 18 parse foo:baz:bar -> ; :
# test the weird objects, that they get parsed properly
ok 19 parse regexp=
ok 20 parse regexp=
ok 21 parse fn=
ok 22 parse fn=
ok 23 parse math=
ok 24 parse e=
ok 25 parse d=
ok 26 parse d=
ok 27 parse f=&t=
ok 28 parse f=false&t=true
ok 29 parse n=
ok 30 parse nan=
ok 31 parse inf=
# test non munge test cases
ok 32 stringify {} -> & =
ok 33 stringify {"foo":["bar","baz"]} -> & =
ok 34 stringify {"blah":"burp"} -> & =
ok 35 stringify {"gragh":["1","3"],"goo":"2"} -> & =
ok 36 stringify {"frappucino":"muffin","goat[]":"scone","pond":"moose"} -> & =
ok 37 stringify {"trololol":"yes","lololo":"no"} -> & =
# test the nested qs-in-qs case
ok 38 parse a=b&q=x%3Dy%26y%3Dz
# test nested in colon
ok 39 stringify {"a":"b","qs.stringify -> q":{"x":"y","y":"z"}} -> ; :
ok 40 parse undefined
# test stringifying
ok 41 stringify {"foo":"918854443121279438895193"}
ok 42 stringify {"foo":"bar"}
ok 43 stringify {"foo":["bar","quux"]}
ok 44 stringify {"foo":"1","bar":"2"}
ok 45 stringify {"my weird field":"q1!2\"'w$5&7/z8)?"}
ok 46 stringify {"foo=baz":"bar"}
ok 47 stringify {"foo":"baz=bar"}
ok 48 stringify {"str":"foo","arr":["1","2","3"],"somenull":"","undef":""}
ok 49 stringify {" foo ":" bar "}
ok 50 stringify {"foo":"�"}
ok 51 stringify {"hasOwnProperty":"x","toString":"foo","valueOf":"bar","__defineGetter__":"baz"}
ok 52 stringify {"foo":"","bar":"baz"}
ok 53 stringify {"foo":"bar"} -> ; :
ok 54 stringify {"foo":["bar","quux"]} -> ; :
ok 55 stringify {"foo":"1&bar:2","baz":"quux"} -> ; :
ok 56 stringify {"foo:baz":"bar"} -> ; :
ok 57 stringify {"foo":"baz:bar"} -> ; :
ok 58 stringify {"regexp":{}}
ok 59 stringify {"regexp":{}}
ok 60 stringify {}
ok 61 stringify {}
ok 62 stringify {"math":{}}
ok 63 stringify {}
ok 64 stringify {"d":"2013-03-05T22:23:14.870Z"}
ok 65 stringify {}
ok 66 stringify {"f":false,"t":true}
ok 67 stringify {"f":false,"t":true}
ok 68 stringify {"n":null}
ok 69 stringify {"nan":null}
ok 70 stringify {"inf":null}
# test stringifying nested
ok 71 {"a":"b","qs.stringify -> q":{"x":"y","y":"z"}}
ok 72 does not throws on undefined
1..72
# tests 72
# pass 72
# ok