| <!doctype html> |
| <html> |
| <head> |
| <script src="../../http/tests/inspector/resources/protocol-test.js"></script> |
| <script> |
| function test() |
| { |
| let suite = ProtocolTest.createAsyncSuite("Memory.startTracking and Memory.stopTracking"); |
| |
| suite.addTestCase({ |
| name: "StartAndStopTrackingWithEvent", |
| test(resolve, reject) { |
| InspectorProtocol.awaitEvent({event: "Memory.trackingStart"}).then((messageObject) => { |
| ProtocolTest.log("Memory.trackingStart"); |
| ProtocolTest.expectThat(typeof messageObject.params.timestamp === "number", "Should have a timestamp when starting."); |
| }); |
| |
| InspectorProtocol.awaitEvent({event: "Memory.trackingUpdate"}).then((messageObject) => { |
| ProtocolTest.log("Memory.trackingUpdate"); |
| ProtocolTest.expectThat(typeof messageObject.params.event === "object", "Should have an event object."); |
| ProtocolTest.expectThat(typeof messageObject.params.event.timestamp === "number", "Event should have a timestamp."); |
| ProtocolTest.expectThat(messageObject.params.event.categories.length > 0, "Event should have category data."); |
| |
| let categories = messageObject.params.event.categories; |
| let totalSize = categories.reduce((sum, x) => sum += x.size, 0); |
| let types = categories.reduce((list, x) => { list.push(x.type); return list; }, []).sort(); |
| ProtocolTest.expectThat(totalSize >= 0, "Total size should be non-zero."); |
| ProtocolTest.log("CATEGORIES: " + types.join(", ")); |
| |
| InspectorProtocol.sendCommand("Memory.stopTracking", {}); |
| }); |
| |
| InspectorProtocol.awaitEvent({event: "Memory.trackingComplete"}).then((messageObject) => { |
| ProtocolTest.log("Memory.trackingComplete"); |
| resolve(); |
| }); |
| |
| InspectorProtocol.sendCommand("Memory.startTracking", {}); |
| } |
| }); |
| |
| suite.runTestCasesAndFinish(); |
| } |
| </script> |
| </head> |
| <body onload="runTest()"> |
| <p>Tests that Memory.startTracking and Memory.stopTracking trigger trackingStart, trackingUpdate, and trackingComplete events with expected data.</p> |
| </body> |
| </html> |