OLD | NEW |
1 <html> | 1 <html> |
2 <head> | 2 <head> |
3 <script src="../../../http/tests/inspector/inspector-test.js"></script> | 3 <script src="../../../http/tests/inspector/inspector-test.js"></script> |
4 <script src="../../../http/tests/inspector/debugger-test.js"></script> | 4 <script src="../../../http/tests/inspector/debugger-test.js"></script> |
5 <script> | 5 <script> |
6 | 6 |
7 function testFunction() | 7 function testFunction() |
8 { | 8 { |
9 var promise = new Promise(function promiseConstructor(resolve, reject) { | 9 var promise = new Promise(function promiseConstructor(resolve, reject) { |
10 resolve("Resolved!"); | 10 resolve("Resolved!"); |
(...skipping 28 matching lines...) Expand all Loading... |
39 } | 39 } |
40 | 40 |
41 function didGetPromises(error, response) | 41 function didGetPromises(error, response) |
42 { | 42 { |
43 InspectorTest.assertTrue(!error, "FAIL: " + error); | 43 InspectorTest.assertTrue(!error, "FAIL: " + error); |
44 | 44 |
45 function comparePromiseData(x, y) | 45 function comparePromiseData(x, y) |
46 { | 46 { |
47 var t1 = x.creationTime || 0; | 47 var t1 = x.creationTime || 0; |
48 var t2 = y.creationTime || 0; | 48 var t2 = y.creationTime || 0; |
49 return t1 - t2; | 49 return t1 - t2 || x.id - y.id; |
50 } | 50 } |
51 | 51 |
52 InspectorTest.assertEquals(3, response.length, "FAIL: Invalid number of
Promises."); | 52 InspectorTest.assertEquals(3, response.length, "FAIL: Invalid number of
Promises."); |
53 var minPromiseId = response[0].id; | 53 var minPromiseId = response[0].id; |
54 for (var i = 0; i < response.length; i++) | 54 for (var i = 0; i < response.length; i++) |
55 minPromiseId = Math.min(minPromiseId, response[i].id); | 55 minPromiseId = Math.min(minPromiseId, response[i].id); |
56 response.sort(comparePromiseData); | 56 response.sort(comparePromiseData); |
57 | 57 |
58 var output = []; | 58 var output = []; |
59 for (var i = 0; i < response.length; i++) { | 59 for (var i = 0; i < response.length; i++) { |
60 var promise = response[i]; | 60 var promise = response[i]; |
61 InspectorTest.assertTrue(promise.creationTime > 0, "FAIL: invalid Pr
omise creation time."); | 61 InspectorTest.assertTrue(promise.creationTime > 0, "FAIL: invalid Pr
omise creation time."); |
62 InspectorTest.assertTrue(!promise.settlementTime || (promise.settlem
entTime >= promise.creationTime), "FAIL: invalid Promise creation or settlement
time."); | 62 InspectorTest.assertTrue(!promise.settlementTime || (promise.settlem
entTime >= promise.creationTime), "FAIL: invalid Promise creation or settlement
time."); |
63 var parentId = promise.parentId ? promise.parentId - minPromiseId :
undefined; | 63 var parentId = promise.parentId ? promise.parentId - minPromiseId :
undefined; |
64 var promiseInfo = "Promise:" + | 64 var promiseInfo = "Promise:" + |
65 "\n id: " + (promise.id - minPromiseId) + | 65 "\n id: " + (promise.id - minPromiseId) + |
66 "\n status: " + promise.status + | 66 "\n status: " + promise.status + |
67 "\n parent id: " + parentId; | 67 "\n parent id: " + parentId; |
68 var callFrame = promise.callFrame; | 68 var callFrame = promise.callFrame; |
69 if (callFrame) { | 69 if (callFrame) { |
70 var url = WebInspector.displayNameForURL(callFrame.url); | 70 var url = WebInspector.displayNameForURL(callFrame.url); |
71 promiseInfo += "\n " + callFrame.functionName + " " + url + "
:" + callFrame.lineNumber; | 71 promiseInfo += "\n " + callFrame.functionName + " " + url + "
:" + callFrame.lineNumber; |
72 } | 72 } |
73 output.push(promiseInfo); | 73 output.push(promiseInfo); |
74 } | 74 } |
75 | 75 |
76 InspectorTest.assertTrue(response[0].settlementTime <= response[1].settl
ementTime && !response[2].settlementTime, "FAIL: invalid Promise settlement time
."); | 76 InspectorTest.assertGreaterOrEqual(response[1].settlementTime, response[
0].settlementTime, "FAIL: invalid Promise settlement time."); |
| 77 InspectorTest.assertTrue(!response[2].settlementTime, "FAIL: a pending P
romise should not have settlement time."); |
77 | 78 |
78 InspectorTest.addResults(output); | 79 InspectorTest.addResults(output); |
79 | 80 |
80 DebuggerAgent.getPromiseById(response[0].id, "console", didGetPromiseByI
d); | 81 DebuggerAgent.getPromiseById(response[0].id, "console", didGetPromiseByI
d); |
81 } | 82 } |
82 | 83 |
83 function didGetPromiseById(error, response) | 84 function didGetPromiseById(error, response) |
84 { | 85 { |
85 InspectorTest.assertTrue(!error, "FAIL: " + error); | 86 InspectorTest.assertTrue(!error, "FAIL: " + error); |
86 InspectorTest.assertTrue(response && response.type === "object" && respo
nse.className === "Promise", "FAIL: returned by ID object is not a Promise."); | 87 InspectorTest.assertTrue(response && response.type === "object" && respo
nse.className === "Promise", "FAIL: returned by ID object is not a Promise."); |
87 | 88 |
88 RuntimeAgent.getProperties(response.objectId, didGetProperties); | 89 RuntimeAgent.getProperties(response.objectId, didGetProperties); |
89 } | 90 } |
90 | 91 |
91 function didGetProperties(error, properties, internalProperties) { | 92 function didGetProperties(error, properties, internalProperties) |
| 93 { |
92 InspectorTest.assertTrue(!error, "FAIL: " + error); | 94 InspectorTest.assertTrue(!error, "FAIL: " + error); |
93 InspectorTest.assertTrue(internalProperties && internalProperties.length
> 0, "FAIL: no internal properties."); | 95 InspectorTest.assertTrue(internalProperties && internalProperties.length
> 0, "FAIL: no internal properties."); |
94 | 96 |
95 var status, value; | 97 var status, value; |
96 for (var i = 0; i < internalProperties.length; i++) { | 98 for (var i = 0; i < internalProperties.length; i++) { |
97 var property = internalProperties[i]; | 99 var property = internalProperties[i]; |
98 if (property.name === "[[PromiseStatus]]") | 100 if (property.name === "[[PromiseStatus]]") |
99 status = property.value.value; | 101 status = property.value.value; |
100 if (property.name === "[[PromiseValue]]") | 102 if (property.name === "[[PromiseValue]]") |
101 value = property.value.value; | 103 value = property.value.value; |
(...skipping 15 matching lines...) Expand all Loading... |
117 | 119 |
118 </script> | 120 </script> |
119 </head> | 121 </head> |
120 | 122 |
121 <body onload="runTest()"> | 123 <body onload="runTest()"> |
122 <p> | 124 <p> |
123 Tests promise tracker in debugger. | 125 Tests promise tracker in debugger. |
124 </p> | 126 </p> |
125 </body> | 127 </body> |
126 </html> | 128 </html> |
OLD | NEW |