var common = require('../common');
|
|
var QuerystringParser = require(common.lib + '/querystring_parser').QuerystringParser,
|
|
Buffer = require('buffer').Buffer,
|
|
gently,
|
|
parser;
|
|
|
|
function test(test) {
|
|
gently = new Gently();
|
|
parser = new QuerystringParser();
|
|
test();
|
|
gently.verify(test.name);
|
|
}
|
|
|
|
test(function constructor() {
|
|
assert.equal(parser.buffer, '');
|
|
assert.equal(parser.constructor.name, 'QuerystringParser');
|
|
});
|
|
|
|
test(function write() {
|
|
var a = new Buffer('a=1');
|
|
assert.equal(parser.write(a), a.length);
|
|
|
|
var b = new Buffer('&b=2');
|
|
parser.write(b);
|
|
assert.equal(parser.buffer, a + b);
|
|
});
|
|
|
|
test(function end() {
|
|
var FIELDS = {a: ['b', {c: 'd'}], e: 'f'};
|
|
|
|
gently.expect(GENTLY.hijacked.querystring, 'parse', function(str) {
|
|
assert.equal(str, parser.buffer);
|
|
return FIELDS;
|
|
});
|
|
|
|
gently.expect(parser, 'onField', Object.keys(FIELDS).length, function(key, val) {
|
|
assert.deepEqual(FIELDS[key], val);
|
|
});
|
|
|
|
gently.expect(parser, 'onEnd');
|
|
|
|
parser.buffer = 'my buffer';
|
|
parser.end();
|
|
assert.equal(parser.buffer, '');
|
|
});
|