Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(14)

Side by Side Diff: chrome/browser/resources/shared/js/cr/promise_test.html

Issue 11962043: Move webui resources from chrome\browser\resources\shared to ui\webui\resources. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 7 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <!-- TODO(arv): Check in Closue unit tests and make this run as part of the
5 tests -->
6 <script src="http://closure-library.googlecode.com/svn/trunk/closure/goog/base.j s"></script>
7 <script src="../cr.js"></script>
8 <script src="promise.js"></script>
9 <script>
10
11 goog.require('goog.testing.jsunit');
12 goog.require('goog.testing.MockClock');
13
14 </script>
15 </head>
16 <body>
17 <script>
18
19 var mockClock;
20
21 function setUp() {
22 mockClock = new goog.testing.MockClock();
23 mockClock.install();
24 }
25
26 function tearDown() {
27 mockClock.uninstall();
28 }
29
30 const Promise = cr.Promise;
31
32 function testCallbacks() {
33 var calls1 = 0;
34 var calls2 = 0;
35 var V = {};
36 function f1(v) {
37 calls1++;
38 assertEquals(V, v);
39 }
40 function f2(v) {
41 calls2++;
42 assertEquals(V, v);
43 }
44 var p = new Promise;
45 p.addListener(f1);
46 p.addListener(f2);
47 p.value = V;
48 assertEquals(1, calls1);
49 assertEquals(1, calls2);
50 }
51
52 function testCallbacks2() {
53 var calls1 = 0;
54 var calls2 = 0;
55 var V = {};
56 function f1(v) {
57 calls1++;
58 assertEquals(V, v);
59 }
60 function f2(v) {
61 calls2++;
62 assertEquals(V, v);
63 }
64 var p = new Promise;
65 p.addListener(f1);
66 p.addListener(f2);
67 p.removeListener(f1);
68 p.value = V;
69 assertEquals(0, calls1);
70 assertEquals(1, calls2);
71 }
72
73 function testCallbacks3() {
74 var calls1 = 0;
75 var calls2 = 0;
76 var V = {};
77 function f1(v) {
78 calls1++;
79 assertEquals(V, v);
80 }
81 function f2(v) {
82 calls2++;
83 assertEquals(V, v);
84 }
85 var p = new Promise;
86 p.addListener(f1);
87 assertEquals(0, calls1);
88 assertEquals(0, calls2);
89 p.value = V;
90 assertEquals(1, calls1);
91 assertEquals(0, calls2);
92 p.addListener(f2);
93 assertEquals(1, calls1);
94 assertEquals(1, calls2);
95 }
96
97 function testCallbacks4() {
98 var calls1 = 0;
99 var calls2 = 0;
100 var V = {};
101 function f1(v) {
102 calls1++;
103 assertEquals(V, v);
104 }
105 function f2(v) {
106 calls2++;
107 assertEquals(V, v);
108 }
109 var p = new Promise(V);
110 p.addListener(f1);
111 p.addListener(f2);
112 assertEquals(1, calls1);
113 assertEquals(1, calls2);
114 }
115
116 function testThisInCallback() {
117 var calls = 0;
118 var V = {};
119 function f(v) {
120 calls++;
121 assertEquals(V, v);
122 assertNotEquals(p, this);
123 }
124 var p = new Promise;
125 p.addListener(f);
126 p.value = V;
127 assertEquals(1, calls);
128 }
129
130 function testPending() {
131 var p = new Promise;
132 assertEquals(undefined, p.value);
133 assertFalse(p.done);
134 }
135
136 function testValueCanBeUndefined() {
137 var p = new Promise;
138 p.value = undefined;
139 assertEquals(undefined, p.value);
140 assertTrue(p.done);
141 }
142
143 function testDone() {
144 var p = new Promise;
145 assertFalse(p.done);
146 p.value = 42;
147 assertTrue(p.done);
148 }
149
150 function testWhen() {
151 const V = {};
152 var calls = 0;
153 var p = new Promise;
154 p.value = V;
155 Promise.when(p, function(v) {
156 assertEquals(V, v);
157 calls++;
158 });
159 assertEquals(1, calls);
160 }
161
162 function testWhen2() {
163 const V = {};
164 var calls = 0;
165 var p = new Promise;
166 Promise.when(p, function(v) {
167 assertEquals(V, v);
168 calls++;
169 });
170 p.value = V;
171 assertEquals(1, calls);
172 }
173
174 function testWait() {
175 const S = {};
176 var p = Promise.wait(1000, S);
177 assertFalse(p.done);
178 mockClock.tick(500);
179 assertFalse(p.done);
180 mockClock.tick(500);
181 assertTrue(p.done);
182 assertEquals(S, p.value);
183 }
184
185 function testAny() {
186 var p1 = new Promise;
187 var p2 = new Promise;
188 var p3 = new Promise;
189
190 var any = Promise.any(p1, p2, p3);
191 p2.value = 2;
192 assertEquals(2, any.value);
193 p1.value = 1;
194 assertEquals(2, any.value);
195 }
196
197 function testAll() {
198 var p1 = new Promise;
199 var p2 = new Promise;
200 var p3 = new Promise;
201
202 var pAll = Promise.all(p1, p2, p3);
203 p1.value = 1;
204 p2.value = 2;
205 p3.value = 3;
206 assertArrayEquals([1, 2, 3], pAll.value);
207 }
208
209 function testAllEmpty() {
210 var pAll = Promise.all();
211 assertArrayEquals([], pAll.value);
212 }
213
214 function testAllAlreadyDone() {
215 var p1 = new Promise(1);
216 var p2 = new Promise(2);
217 var p3 = new Promise(3);
218
219 var pAll = Promise.all(p1, p2, p3);
220 assertArrayEquals([1, 2, 3], pAll.value);
221 }
222
223 function testEvent() {
224 var p = Promise.event(document.body, 'foo');
225 var e = new cr.Event('foo');
226 document.body.dispatchEvent(e);
227 assertEquals(e, p.value);
228 }
229
230 function testToString() {
231 var p1 = new Promise;
232 assertEquals('[object Promise]', String(p1));
233
234 var p2 = new Promise;
235 p2.value = 'Hello world';
236 assertEquals('Hello world', String(p2));
237 }
238
239 function testValueOf() {
240 var p = new Promise;
241 p.value = 42;
242
243 assertTrue(p < 43);
244 assertTrue(p > 41);
245 assertTrue(p == 42);
246 }
247
248 </script>
249 </body>
250 </html>
OLDNEW
« no previous file with comments | « chrome/browser/resources/shared/js/cr/promise.js ('k') | chrome/browser/resources/shared/js/cr/ui.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698