/
spec-jsonp.js
76 lines (58 loc) · 2.22 KB
/
spec-jsonp.js
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
define(["cane/net/jsonp"], function(jsonp) {
describe("net/jsonp()", function() {
it("should call resource using jsonp", function() {
var completed = false;
var content = null;
jsonp("/express/jsonp/static", function(data) {
completed = true;
content = data;
});
waitsFor(function() {
return completed;
}, "Request never completed", 10000);
runs(function() {
expect(content).toEqual({ "foo": "bar" });
});
});
it("should send data", function() {
var completed = false;
var content = null;
var parameters = {
foo: "complex string & characters like %^*",
bar: "another value"
};
function onComplete(data) {
completed = true;
content = data;
}
jsonp("/express/jsonp/mirror", onComplete, parameters);
waitsFor(function() {
return completed;
}, "Request never completed", 10000);
runs(function() {
expect(content).toEqual(parameters);
});
});
it("should manage multiple requests parallel", function() {
var complete = [false, false, false];
var content = [];
function onComplete(index) {
return function(data) {
complete[index] = true;
content[index] = data;
};
}
jsonp("/express/jsonp/mirror", onComplete(0), { value: "one" });
jsonp("/express/jsonp/mirror", onComplete(1), { value: "two" });
jsonp("/express/jsonp/mirror", onComplete(2), { value: "three" });
waitsFor(function() {
return complete[0] && complete[1] && complete[2];
}, "Reqeust never completed", 10000 );
runs(function() {
expect(content[0]).toEqual({ value: "one" });
expect(content[1]).toEqual({ value: "two" });
expect(content[2]).toEqual({ value: "three" });
});
});
});
});