1 | define([ |
---|
2 | "doh/main", |
---|
3 | "dojo/Deferred", |
---|
4 | "dojo/promise/tracer" |
---|
5 | ], function(doh, Deferred, tracer){ |
---|
6 | var tests = { |
---|
7 | "trace() resolved": function(t){ |
---|
8 | var td = new doh.Deferred; |
---|
9 | var obj = {}; |
---|
10 | this.handles.push(tracer.on("resolved", function(value){ |
---|
11 | t.t(value === obj); |
---|
12 | td.callback(true); |
---|
13 | })); |
---|
14 | this.deferred.promise.trace(); |
---|
15 | this.deferred.resolve(obj); |
---|
16 | return td; |
---|
17 | }, |
---|
18 | |
---|
19 | "trace() rejected": function(t){ |
---|
20 | var td = new doh.Deferred; |
---|
21 | var obj = {}; |
---|
22 | this.handles.push(tracer.on("rejected", function(error){ |
---|
23 | t.t(error === obj); |
---|
24 | td.callback(true); |
---|
25 | })); |
---|
26 | this.deferred.promise.trace(); |
---|
27 | this.deferred.reject(obj); |
---|
28 | return td; |
---|
29 | }, |
---|
30 | |
---|
31 | "trace() progress": function(t){ |
---|
32 | var td = new doh.Deferred; |
---|
33 | var obj = {}; |
---|
34 | this.handles.push(tracer.on("progress", function(update){ |
---|
35 | t.t(update === obj); |
---|
36 | td.callback(true); |
---|
37 | })); |
---|
38 | this.deferred.promise.trace(); |
---|
39 | this.deferred.progress(obj); |
---|
40 | return td; |
---|
41 | }, |
---|
42 | |
---|
43 | "passing extra arguments to trace()": function(t){ |
---|
44 | var td = new doh.Deferred; |
---|
45 | var obj = {}; |
---|
46 | this.handles.push(tracer.on("resolved", function(value, arg1, arg2){ |
---|
47 | t.t(value === obj); |
---|
48 | t.is(arg1, "test"); |
---|
49 | t.t(arg2 === obj); |
---|
50 | td.callback(true); |
---|
51 | })); |
---|
52 | this.deferred.promise.trace("test", obj); |
---|
53 | this.deferred.resolve(obj); |
---|
54 | return td; |
---|
55 | }, |
---|
56 | |
---|
57 | "traceRejected()": function(t){ |
---|
58 | var td = new doh.Deferred; |
---|
59 | var obj = {}; |
---|
60 | this.handles.push(tracer.on("rejected", function(error){ |
---|
61 | t.t(error === obj); |
---|
62 | td.callback(true); |
---|
63 | })); |
---|
64 | this.deferred.promise.traceRejected(); |
---|
65 | this.deferred.reject(obj); |
---|
66 | return td; |
---|
67 | }, |
---|
68 | |
---|
69 | "passing extra arguments": function(t){ |
---|
70 | var td = new doh.Deferred; |
---|
71 | var obj = {}; |
---|
72 | this.handles.push(tracer.on("rejected", function(error, arg1, arg2){ |
---|
73 | t.t(error === obj); |
---|
74 | t.is(arg1, "test"); |
---|
75 | t.t(arg2 === obj); |
---|
76 | td.callback(true); |
---|
77 | })); |
---|
78 | this.deferred.promise.traceRejected("test", obj); |
---|
79 | this.deferred.reject(obj); |
---|
80 | return td; |
---|
81 | } |
---|
82 | }; |
---|
83 | |
---|
84 | var wrapped = []; |
---|
85 | for(var name in tests){ |
---|
86 | wrapped.push({ |
---|
87 | name: name, |
---|
88 | setUp: setUp, |
---|
89 | tearDown: tearDown, |
---|
90 | runTest: tests[name] |
---|
91 | }); |
---|
92 | } |
---|
93 | |
---|
94 | function setUp(){ |
---|
95 | this.handles = []; |
---|
96 | this.deferred = new Deferred; |
---|
97 | } |
---|
98 | |
---|
99 | function tearDown(){ |
---|
100 | while(this.handles.length){ |
---|
101 | this.handles.pop().remove(); |
---|
102 | } |
---|
103 | } |
---|
104 | |
---|
105 | doh.register("tests.promise.tracer", wrapped); |
---|
106 | }); |
---|