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

Side by Side Diff: third_party/WebKit/LayoutTests/inspector-protocol/runtime/runtime-promise-then.html

Issue 2185233002: [DevTools] Added Runtime.awaitPromise protocol method (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: a Created 4 years, 4 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
(Empty)
1 <html>
2 <head>
3 <script type="text/javascript" src="../../http/tests/inspector-protocol/inspecto r-protocol-test.js"></script>
4 <script>
5
6 var callback;
7 function createPromise()
8 {
9 return new Promise(fulfill => callback = fulfill);
10 }
11
12 function fulfillPromise()
13 {
14 callback(239);
15 callback = undefined;
16 }
17
18 function runGC()
19 {
20 if (window.gc)
21 window.gc();
22 }
23
24 function test()
25 {
26 InspectorTest.runTestSuite([
27 function testResolvedPromise(next)
28 {
29 InspectorTest.runtimeEvaluatePromise("Promise.resolve(239)")
30 .then((result) => InspectorTest.runtimePromiseThenPromise(result .result.result.objectId, /* returnByValue */ false, /* generatePreview */ true))
31 .then((result) => InspectorTest.logObject(result.result))
32 .then(() => next());
33 },
34
35 function testRejectedPromise(next)
36 {
37 InspectorTest.runtimeEvaluatePromise("Promise.reject({ a : 1 })")
38 .then((result) => InspectorTest.runtimePromiseThenPromise(result .result.result.objectId, /* returnByValue */ true, /* generatePreview */ false))
39 .then((result) => InspectorTest.logObject(result.result))
40 .then(() => next());
41 },
42
43 function testPengingPromise(next)
dgozman 2016/07/28 00:07:56 typo: pending
kozy 2016/07/28 22:54:09 Done.
44 {
45 InspectorTest.runtimeEvaluatePromise("createPromise()")
46 .then((result) => scheduleFulfillAndPromiseThen(result))
47 .then((result) => InspectorTest.logObject(result.result))
48 .then(() => next());
49
50 function scheduleFulfillAndPromiseThen(result)
51 {
52 setTimeout(() => InspectorTest.runtimeEvaluatePromise("fulfillPr omise()"), 0);
53 return InspectorTest.runtimePromiseThenPromise(result.result.res ult.objectId);
54 }
55 },
56
57 function testResolvedWithoutArgsPromise(next)
58 {
59 InspectorTest.runtimeEvaluatePromise("Promise.resolve()")
60 .then((result) => InspectorTest.runtimePromiseThenPromise(result .result.result.objectId))
61 .then((result) => InspectorTest.logObject(result.result))
62 .then(() => next());
63 },
64
65 function testGarbageCollectedPromise(next)
66 {
67 InspectorTest.runtimeEvaluatePromise("new Promise(() => undefined)")
68 .then((result) => scheduleGCAndPromiseThen(result))
69 .then((result) => InspectorTest.logObject(result.error))
70 .then(() => next());
71
72 function scheduleGCAndPromiseThen(result)
73 {
74 var objectId = result.result.result.objectId;
75 setTimeout(gcPromise.bind(null, objectId), 0);
dgozman 2016/07/28 00:07:56 Let's try without setTimeout.
kozy 2016/07/28 22:54:09 Done.
76 return InspectorTest.runtimePromiseThenPromise(objectId);
77 }
78
79 function gcPromise(objectId)
80 {
81 InspectorTest.runtimeReleaseObjectPromise(objectId)
82 .then(() => InspectorTest.runtimeEvaluatePromise("runGC()")) ;
83 }
84 }
85 ]);
86 }
87 </script>
88 </head>
89 <body onLoad="runTest();">
90 Tests that Runtime.promiseThen works.
91 </body>
92 </html>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698