return request body params in a consistent and usable way
This commit is contained in:
parent
ddd5c50e9e
commit
fa9a44a659
@ -78,6 +78,21 @@ function FakeXMLHttpRequest() {
|
||||
this.readyState = 2;
|
||||
},
|
||||
|
||||
data: function() {
|
||||
var data = {};
|
||||
if (typeof this.params !== 'string') return data;
|
||||
var params = this.params.split('&');
|
||||
|
||||
for (var i = 0; i < params.length; ++i) {
|
||||
var kv = params[i].split('=');
|
||||
var key = decodeURIComponent(kv[0]);
|
||||
data[key] = data[key] || [];
|
||||
data[key].push(decodeURIComponent(kv[1]));
|
||||
data[key].sort();
|
||||
}
|
||||
return data;
|
||||
},
|
||||
|
||||
getResponseHeader: function(name) {
|
||||
return this.responseHeaders[name];
|
||||
},
|
||||
|
@ -42,4 +42,19 @@ describe("FakeXMLHttpRequest", function() {
|
||||
}
|
||||
expect(new FakeXMLHttpRequest().foo()).toEqual("foo");
|
||||
});
|
||||
|
||||
describe("data", function() {
|
||||
beforeEach(function() {
|
||||
xhr.open("POST", "http://example.com?this=that")
|
||||
xhr.send('stooges=shemp&stooges=larry%20%26%20moe%20%26%20curly&some%3Dthing=else')
|
||||
});
|
||||
|
||||
it("should return request params as a hash of arrays with values sorted alphabetically", function() {
|
||||
var data = xhr.data();
|
||||
expect(data['stooges'].length).toEqual(2);
|
||||
expect(data['stooges'][0]).toEqual('larry & moe & curly');
|
||||
expect(data['stooges'][1]).toEqual('shemp');
|
||||
expect(data['some=thing']).toEqual(['else']);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
Loading…
Reference in New Issue
Block a user