forked from forwardemail/superagent
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathserialize.js
More file actions
44 lines (39 loc) · 1.33 KB
/
serialize.js
File metadata and controls
44 lines (39 loc) · 1.33 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
var assert = require('assert');
var request = require('../../');
function serialize(obj, res) {
var val = request.serializeObject(obj);
assert(val == res
, JSON.stringify(obj) + ' to "' + res + '" serialization failed. got: '
+ '"' + val + '"');
}
function parse(str, obj) {
var val = request.parseString(str);
assert.deepEqual(val
, obj
, '"' + str + '" to '
+ JSON.stringify(obj) + ' parse failed. got: '
+ JSON.stringify(val));
}
describe('request.serializeObject()', function(){
it('should serialize', function() {
serialize('test', 'test');
serialize('foo=bar', 'foo=bar');
serialize({ foo: 'bar' }, 'foo=bar');
serialize({ foo: null }, '');
serialize({ foo: 'null' }, 'foo=null');
serialize({ foo: undefined }, '');
serialize({ foo: 'undefined' }, 'foo=undefined');
serialize({ name: 'tj', age: 24 }, 'name=tj&age=24');
serialize({ name: '&tj&' }, 'name=%26tj%26');
serialize({ '&name&': 'tj' }, '%26name%26=tj');
});
});
describe('request.parseString()', function(){
it('should parse', function() {
parse('name=tj', { name: 'tj' });
parse('name=Manny&species=cat', { name: 'Manny', species: 'cat' });
parse('redirect=/&ok', { redirect: '/', ok: 'undefined' });
parse('%26name=tj', { '&name': 'tj' });
parse('name=tj%26', { name: 'tj&' });
});
});