jasmine-ajax/spec/javascripts/fake-xml-http-request-spec.js

61 lines
1.8 KiB
JavaScript
Raw Normal View History

describe("FakeXMLHttpRequest", function() {
var xhr;
beforeEach(function() {
xhr = new FakeXMLHttpRequest();
});
it("should have an initial readyState of 0 (uninitialized)", function() {
expect(xhr.readyState).toEqual(0);
});
describe("when opened", function() {
beforeEach(function() {
xhr.open("GET", "http://example.com")
});
it("should have a readyState of 1 (open)", function() {
expect(xhr.readyState).toEqual(1);
});
describe("when sent", function() {
it("should have a readyState of 2 (sent)", function() {
xhr.send(null);
expect(xhr.readyState).toEqual(2);
});
});
describe("when a response comes in", function() {
it("should have a readyState of 4 (loaded)", function() {
xhr.response({status: 200});
expect(xhr.readyState).toEqual(4);
});
});
describe("when aborted", function() {
it("should have a readyState of 0 (uninitialized)", function() {
xhr.abort();
expect(xhr.readyState).toEqual(0);
});
});
});
2011-06-08 11:43:20 +08:00
it("can be extended", function(){
FakeXMLHttpRequest.prototype.foo = function(){
return "foo";
}
expect(new FakeXMLHttpRequest().foo()).toEqual("foo");
});
describe("data", function() {
beforeEach(function() {
xhr.open("POST", "http://example.com?this=that")
2012-05-17 03:09:37 +08:00
xhr.send('3+stooges=shemp&3+stooges=larry%20%26%20moe%20%26%20curly&some%3Dthing=else+entirely')
});
it("should return request params as a hash of arrays with values sorted alphabetically", function() {
var data = xhr.data();
2012-05-17 03:09:37 +08:00
expect(data['3 stooges'].length).toEqual(2);
expect(data['3 stooges'][0]).toEqual('larry & moe & curly');
expect(data['3 stooges'][1]).toEqual('shemp');
expect(data['some=thing']).toEqual(['else entirely']);
});
});
});