Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 result = undefined; | 13 result = undefined; |
| 14 | 14 |
|
yhirano
2013/09/18 12:52:39
Can you explain why you changed the test code?
yusukesuzuki
2013/09/18 14:48:24
When Promise.some(...).then(callback) is executed,
| |
| 15 var p1 = new Promise(function(r) { r.fulfill('p1'); }); | 15 var p1 = new Promise(function(resolve) { resolve('p1'); }); |
| 16 var p2 = new Promise(function(r) { r.fulfill('p2'); }); | 16 var p2 = new Promise(function(resolve) { resolve('p2'); }); |
| 17 var p3 = new Promise(function(r) { r.fulfill('p3'); }); | 17 var p3 = new Promise(function(resolve) { resolve('p3'); }); |
| 18 var p4 = new Promise(function() {}); | 18 var p4 = new Promise(function() {}); |
| 19 var p5 = new Promise(function() {}); | 19 var p5 = new Promise(function() {}); |
| 20 var p6 = new Promise(function(r) { r.reject('p6'); }); | 20 var p6 = new Promise(function(_, reject) { reject('p6'); }); |
| 21 var p7 = new Promise(function(r) { r.reject('p7'); }); | 21 var p7 = new Promise(function(_, reject) { reject('p7'); }); |
| 22 var p8 = new Promise(function(r) { r.reject('p8'); }); | 22 var p8 = new Promise(function(_, reject) { reject('p8'); }); |
| 23 var p9 = new Promise(function(r) { r.fulfill(p2); }); | 23 var p9 = new Promise(function(resolve) { resolve(p2); }); |
| 24 | 24 |
| 25 var case0 = Promise.some().then(function(result) { | 25 Promise.some(p5, p6, p7).then(function(result) { |
| 26 debug('FAIL Promise.some(p5, p6, p7) is fulfilled.'); | |
| 27 }, function() { | |
| 28 debug('FAIL Promise.some(p5, p6, p7) is rejected.'); | |
| 29 }); | |
| 30 | |
| 31 Promise.some().then(function(result) { | |
| 26 debug('PASS Promise.some() is fulfilled.'); | 32 debug('PASS Promise.some() is fulfilled.'); |
| 27 window.result = result; | 33 window.result = result; |
| 28 shouldBe('result', 'undefined'); | 34 shouldBe('result', 'undefined'); |
| 29 }, function() { | 35 }, function() { |
| 30 debug('FAIL Promise.some() is rejected.'); | 36 debug('FAIL Promise.some() is rejected.'); |
| 31 }); | 37 }).then(function() { |
| 32 | 38 return Promise.some(p6, p7, p8).then(function(result) { |
| 33 var case1 = Promise.some(p6, p7, p8).then(function(result) { | 39 debug('FAIL Promise.some(p6, p7, p8) is fulfilled.'); |
| 34 debug('FAIL Promise.some(p6, p7, p8) is fulfilled.'); | 40 }, function(result) { |
| 35 }, function(result) { | 41 debug('PASS Promise.some(p6, p7, p8) is rejected.'); |
| 36 debug('PASS Promise.some(p6, p7, p8) is rejected.'); | 42 window.result = result; |
| 37 window.result = result; | 43 shouldBe('result.length', '3'); |
| 38 shouldBe('result.length', '3'); | 44 shouldBeEqualToString('result[0]', 'p6'); |
| 39 shouldBeEqualToString('result[0]', 'p6'); | 45 shouldBeEqualToString('result[1]', 'p7'); |
| 40 shouldBeEqualToString('result[1]', 'p7'); | 46 shouldBeEqualToString('result[2]', 'p8'); |
| 41 shouldBeEqualToString('result[2]', 'p8'); | 47 }); |
| 42 }); | 48 }).then(function() { |
| 43 | 49 return Promise.some(p5, p7, p1).then(function(result) { |
| 44 var case2 = Promise.some(p5, p6, p7).then(function(result) { | 50 debug('PASS Promise.some(p5, p7, p1) is fulfilled.'); |
| 45 debug('FAIL Promise.some(p5, p6, p7) is fulfilled.'); | 51 window.result = result; |
| 46 }, function() { | 52 shouldBeEqualToString('result', 'p1'); |
| 47 debug('FAIL Promise.some(p5, p6, p7) is rejected.'); | 53 }, function(result) { |
| 48 }); | 54 debug('FAIL Promise.some(p5, p7, p1) is rejected.'); |
| 49 | 55 }); |
| 50 var case3 = Promise.some(p5, p7, p1).then(function(result) { | 56 }).then(function() { |
| 51 debug('PASS Promise.some(p5, p7, p1) is fulfilled.'); | 57 return Promise.some(p9).then(function(result) { |
| 52 window.result = result; | 58 debug('PASS Promise.some(p9) is fulfilled.'); |
| 53 shouldBeEqualToString('result', 'p1'); | 59 window.result = result; |
| 54 }, function(result) { | 60 shouldBeEqualToString('result', 'p2'); |
| 55 debug('FAIL Promise.some(p5, p7, p1) is rejected.'); | 61 }, function(result) { |
| 56 }); | 62 debug('FAIL Promise.some(p9) is rejected.'); |
| 57 | 63 }); |
| 58 var case4 = Promise.some(p9).then(function(result) { | 64 }).then(finishJSTest, finishJSTest); |
| 59 debug('PASS Promise.some(p9) is fulfilled.'); | |
| 60 window.result = result; | |
| 61 shouldBeEqualToString('result', 'p2'); | |
| 62 }, function(result) { | |
| 63 debug('FAIL Promise.some(p9) is rejected.'); | |
| 64 }); | |
| 65 | 65 |
| 66 shouldBe('result', 'undefined'); | 66 shouldBe('result', 'undefined'); |
| 67 Promise.every(case0, case1, case3, case4).then(finishJSTest, finishJSTest); | |
| 68 | 67 |
| 69 </script> | 68 </script> |
| 70 <script src="resources/js-test-post.js"></script> | 69 <script src="resources/js-test-post.js"></script> |
| 71 </body> | 70 </body> |
| 72 </html> | 71 </html> |
| OLD | NEW |