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

Side by Side Diff: third_party/WebKit/LayoutTests/inspector-protocol/runtime/runtime-await-promise.js

Issue 2954093003: [DevTools] Migrate inspector-protocol/runtime tests to new harness (Closed)
Patch Set: fail: Created 3 years, 5 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 (async function(testRunner) {
2 let {page, session, dp} = await testRunner.startBlank('Tests that Runtime.awai tPromise works.');
3
4 function dumpResult(result) {
5 if (result.exceptionDetails) {
6 if (result.exceptionDetails.stackTrace && result.exceptionDetails.stackTra ce.parent) {
7 for (var frame of result.exceptionDetails.stackTrace.parent.callFrames) {
8 frame.scriptId = 0;
9 frame.url = '';
10 }
11 }
12 result.exceptionDetails.exceptionId = 0;
13 if (result.exceptionDetails.exception)
14 result.exceptionDetails.exception.objectId = 0;
15 }
16 testRunner.logObject(result);
17 }
18
19 await session.evaluate(`
20 var resolveCallback;
21 var rejectCallback;
22 function createPromise() {
23 return new Promise((resolve, reject) => { resolveCallback = resolve; rejec tCallback = reject });
24 }
25
26 function resolvePromise() {
27 resolveCallback(239);
28 resolveCallback = undefined;
29 rejectCallback = undefined;
30 }
31
32 function rejectPromise() {
33 rejectCallback(239);
34 resolveCallback = undefined;
35 rejectCallback = undefined;
36 }
37
38 function runGC() {
39 if (window.gc)
40 window.gc();
41 }
42 `);
43
44 await dp.Debugger.enable();
45 await dp.Debugger.setAsyncCallStackDepth({ maxDepth: 128 });
46
47 await testRunner.runTestSuite([
48 async function testResolvedPromise() {
49 var result = await dp.Runtime.evaluate({ expression: 'Promise.resolve(239) '});
50 result = await dp.Runtime.awaitPromise({ promiseObjectId: result.result.re sult.objectId, returnByValue: false, generatePreview: true });
51 dumpResult(result.result);
52 },
53
54 async function testRejectedPromise() {
55 var result = await dp.Runtime.evaluate({ expression: 'Promise.reject({ a : 1 })'});
56 result = await dp.Runtime.awaitPromise({ promiseObjectId: result.result.r esult.objectId, returnByValue: true, generatePreview: false });
57 dumpResult(result.result);
58 },
59
60 async function testRejectedPromiseWithStack() {
61 var result = await dp.Runtime.evaluate({ expression: 'createPromise()'});
62 var promise = dp.Runtime.awaitPromise({ promiseObjectId: result.result.res ult.objectId });
63 dp.Runtime.evaluate({ expression: 'rejectPromise()' });
64 result = await promise;
65 dumpResult(result.result);
66 },
67
68 async function testPendingPromise() {
69 var result = await dp.Runtime.evaluate({ expression: 'createPromise()'});
70 var promise = dp.Runtime.awaitPromise({ promiseObjectId: result.result.res ult.objectId });
71 dp.Runtime.evaluate({ expression: 'resolvePromise()' });
72 result = await promise;
73 dumpResult(result.result);
74 },
75
76 async function testResolvedWithoutArgsPromise() {
77 var result = await dp.Runtime.evaluate({ expression: 'Promise.resolve()'}) ;
78 result = await dp.Runtime.awaitPromise({ promiseObjectId: result.result.re sult.objectId, returnByValue: true, generatePreview: false });
79 dumpResult(result.result);
80 },
81
82 async function testGarbageCollectedPromise() {
83 var result = await dp.Runtime.evaluate({ expression: 'new Promise(() => un defined)'});
84 var objectId = result.result.result.objectId;
85 var promise = dp.Runtime.awaitPromise({ promiseObjectId: objectId });
86 dp.Runtime.releaseObject({ objectId: objectId}).then(() => dp.Runtime.eval uate({ expression: 'runGC()' }));
87 result = await promise;
88 testRunner.logObject(result.error);
89 }
90 ]);
91 })
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698