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

Side by Side Diff: LayoutTests/fast/js/Promise-catch.html

Issue 23567043: Promise init callback takes resolve and reject functions (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 7 years, 3 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
OLDNEW
1 <!DOCTYPE html> 1 <!DOCTYPE html>
2 <html> 2 <html>
3 <head> 3 <head>
4 <script src="resources/js-test-pre.js"></script> 4 <script src="resources/js-test-pre.js"></script>
5 </head> 5 </head>
6 <body> 6 <body>
7 <div id="description"></div> 7 <div id="description"></div>
8 <div id="console"></div> 8 <div id="console"></div>
9 <script> 9 <script>
10 description('Test Promise.'); 10 description('Test Promise.');
11 11
12 window.jsTestIsAsync = true; 12 window.jsTestIsAsync = true;
13 var resolver; 13 var reject;
14 14
15 var firstPromise = new Promise(function(newResolver) { 15 var firstPromise = new Promise(function(_, newReject) {
16 window.thisInInit = this; 16 window.thisInInit = this;
17 resolver = newResolver; 17 reject = newReject;
18 }); 18 });
19 19
20 var secondPromise = firstPromise.catch(function(result) { 20 var secondPromise = firstPromise.catch(function(result) {
21 window.thisInFulfillCallback = this; 21 window.thisInFulfillCallback = this;
22 shouldBeFalse('thisInFulfillCallback === firstPromise'); 22 shouldBeFalse('thisInFulfillCallback === firstPromise');
23 shouldBeTrue('thisInFulfillCallback === secondPromise'); 23 shouldBeTrue('thisInFulfillCallback === secondPromise');
24 window.result = result; 24 window.result = result;
25 shouldBeEqualToString('result', 'hello'); 25 shouldBeEqualToString('result', 'hello');
26 return 'bye'; 26 return 'bye';
27 }); 27 });
28 28
29 secondPromise.then(function(result) { 29 secondPromise.then(function(result) {
30 window.result = result; 30 window.result = result;
31 shouldBeEqualToString('result', 'bye'); 31 shouldBeEqualToString('result', 'bye');
32 testPassed('fulfilled'); 32 testPassed('fulfilled');
33 finishJSTest(); 33 finishJSTest();
34 }, function() { 34 }, function() {
35 testFailed('rejected'); 35 testFailed('rejected');
36 finishJSTest(); 36 finishJSTest();
37 }, function() { 37 }, function() {
38 }); 38 });
39 39
40 shouldBeTrue('thisInInit === firstPromise'); 40 shouldBeTrue('thisInInit === firstPromise');
41 shouldBeTrue('firstPromise instanceof Promise'); 41 shouldBeTrue('firstPromise instanceof Promise');
42 shouldBeTrue('secondPromise instanceof Promise'); 42 shouldBeTrue('secondPromise instanceof Promise');
43 43
44 shouldThrow('firstPromise.catch(null)', '"TypeError: rejectCallback must be a fu nction or undefined"'); 44 shouldThrow('firstPromise.catch(null)', '"TypeError: rejectCallback must be a fu nction or undefined"');
45 shouldThrow('firstPromise.catch(37)', '"TypeError: rejectCallback must be a func tion or undefined"'); 45 shouldThrow('firstPromise.catch(37)', '"TypeError: rejectCallback must be a func tion or undefined"');
46 46
47 resolver.reject('hello'); 47 reject('hello');
48 </script> 48 </script>
49 <script src="resources/js-test-post.js"></script> 49 <script src="resources/js-test-post.js"></script>
50 </body> 50 </body>
51 </html> 51 </html>
OLDNEW
« no previous file with comments | « LayoutTests/fast/js/Promise-already-resolved.html ('k') | LayoutTests/fast/js/Promise-chain.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698