|
|
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, ''); });
|