107 lines
4.1 KiB
HTML
107 lines
4.1 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<script src="../../http/tests/inspector/resources/inspector-test.js"></script>
|
|
<script src="resources/breakpoint-options-utilities.js"></script>
|
|
<script>
|
|
function triggerMicrotask() {
|
|
queueMicrotask(() => {
|
|
TestPage.dispatchEventToFrontend("TestPage-microtask");
|
|
});
|
|
}
|
|
|
|
function test()
|
|
{
|
|
let suite = InspectorTest.createAsyncSuite("Debugger.setPauseOnMicrotasks");
|
|
|
|
const tests = [
|
|
{
|
|
name: "queueMicrotask",
|
|
expression: `queueMicrotask(() => {})`,
|
|
},
|
|
{
|
|
name: "Promise.resolve",
|
|
expression: `Promise.resolve().then(() => {})`,
|
|
},
|
|
{
|
|
name: "Promise.reject",
|
|
expression: `Promise.reject().catch(() => {})`,
|
|
},
|
|
];
|
|
|
|
for (let {name, expression} of tests) {
|
|
suite.addTestCase({
|
|
name: "Debugger.setPauseOnMicrotasks.Disabled." + name,
|
|
description: "Do not pause on microtasks when disabled.",
|
|
test(resolve, reject) {
|
|
WI.debuggerManager.createAllMicrotasksBreakpoint({disabled: true});
|
|
InspectorTest.assert(WI.debuggerManager.allMicrotasksBreakpoint, "Should have created all microtasks breakpoint.");
|
|
InspectorTest.assert(WI.debuggerManager.allMicrotasksBreakpoint.disabled, "All microtasks breakpoint should be disabled.");
|
|
|
|
let didPause = false;
|
|
let listener = WI.debuggerManager.singleFireEventListener(WI.DebuggerManager.Event.Paused, (event) => {
|
|
WI.debuggerManager.resume();
|
|
didPause = true;
|
|
});
|
|
|
|
InspectorTest.evaluateInPage(expression, () => {
|
|
InspectorTest.expectThat(!didPause, "Should not have paused.");
|
|
if (!didPause)
|
|
WI.debuggerManager.removeEventListener(WI.DebuggerManager.Event.Paused, listener);
|
|
|
|
WI.debuggerManager.allMicrotasksBreakpoint.remove();
|
|
InspectorTest.assert(!WI.debuggerManager.allMicrotasksBreakpoint, "Should have destroyed all microtasks breakpoint.");
|
|
resolve();
|
|
});
|
|
}
|
|
});
|
|
|
|
suite.addTestCase({
|
|
name: "Debugger.setPauseOnMicrotasks.Enabled." + name,
|
|
description: "Do not pause on microtasks when disabled.",
|
|
test(resolve, reject) {
|
|
WI.debuggerManager.createAllMicrotasksBreakpoint();
|
|
InspectorTest.assert(WI.debuggerManager.allMicrotasksBreakpoint, "Should have created all microtasks breakpoint.");
|
|
InspectorTest.assert(!WI.debuggerManager.allMicrotasksBreakpoint.disabled, "All microtasks breakpoint should be enabled.");
|
|
|
|
let didPause = false;
|
|
let listener = WI.debuggerManager.singleFireEventListener(WI.DebuggerManager.Event.Paused, (event) => {
|
|
WI.debuggerManager.resume();
|
|
didPause = true;
|
|
});
|
|
|
|
InspectorTest.evaluateInPage(expression, () => {
|
|
InspectorTest.expectThat(didPause, "Should have paused.");
|
|
if (!didPause)
|
|
WI.debuggerManager.removeEventListener(WI.DebuggerManager.Event.Paused, listener);
|
|
|
|
WI.debuggerManager.allMicrotasksBreakpoint.remove();
|
|
InspectorTest.assert(!WI.debuggerManager.allMicrotasksBreakpoint, "Should have destroyed all microtasks breakpoint.");
|
|
resolve();
|
|
});
|
|
}
|
|
});
|
|
}
|
|
|
|
InspectorTest.BreakpointOptions.addTestCases(suite, {
|
|
createBreakpoint() {
|
|
WI.debuggerManager.createAllMicrotasksBreakpoint();
|
|
return WI.debuggerManager.allMicrotasksBreakpoint;
|
|
},
|
|
triggerBreakpoint() {
|
|
return Promise.all([
|
|
InspectorTest.awaitEvent("TestPage-microtask"),
|
|
InspectorTest.evaluateInPage(`triggerMicrotask()`),
|
|
]);
|
|
},
|
|
});
|
|
|
|
suite.runTestCasesAndFinish();
|
|
}
|
|
</script>
|
|
</head>
|
|
<body onload="runTest()">
|
|
<p>Tests for Debugger.setPauseOnMicrotasks command.</p>
|
|
</body>
|
|
</html>
|