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