diff options
Diffstat (limited to 'devtools/client/debugger/new/test/mochitest/browser_dbg-pause-exceptions.js')
-rw-r--r-- | devtools/client/debugger/new/test/mochitest/browser_dbg-pause-exceptions.js | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/devtools/client/debugger/new/test/mochitest/browser_dbg-pause-exceptions.js b/devtools/client/debugger/new/test/mochitest/browser_dbg-pause-exceptions.js new file mode 100644 index 000000000..133316b54 --- /dev/null +++ b/devtools/client/debugger/new/test/mochitest/browser_dbg-pause-exceptions.js @@ -0,0 +1,46 @@ +/* Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/publicdomain/zero/1.0/ */ + +function uncaughtException() { + return invokeInTab("uncaughtException").catch(() => {}); +} + +function caughtException() { + return invokeInTab("caughtException"); +} + +/* + Tests Pausing on exception + 1. skip an uncaught exception + 2. pause on an uncaught exception + 3. pause on a caught error + 4. skip a caught error +*/ +add_task(function* () { + const dbg = yield initDebugger("doc-exceptions.html"); + + // test skipping an uncaught exception + yield togglePauseOnExceptions(dbg, false, false); + yield uncaughtException(); + ok(!isPaused(dbg)); + + // Test pausing on an uncaught exception + yield togglePauseOnExceptions(dbg, true, false); + uncaughtException(); + yield waitForPaused(dbg); + assertPausedLocation(dbg, "exceptions.js", 2); + yield resume(dbg); + + // Test pausing on a caught Error + caughtException(); + yield waitForPaused(dbg); + assertPausedLocation(dbg, "exceptions.js", 15); + yield resume(dbg); + + // Test skipping a caught error + yield togglePauseOnExceptions(dbg, true, true); + caughtException(); + yield waitForPaused(dbg); + assertPausedLocation(dbg, "exceptions.js", 17); + yield resume(dbg); +}); |