diff options
Diffstat (limited to 'devtools/shared/worker/tests/browser/browser_worker-02.js')
-rw-r--r-- | devtools/shared/worker/tests/browser/browser_worker-02.js | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/devtools/shared/worker/tests/browser/browser_worker-02.js b/devtools/shared/worker/tests/browser/browser_worker-02.js new file mode 100644 index 000000000..e6a9a54cf --- /dev/null +++ b/devtools/shared/worker/tests/browser/browser_worker-02.js @@ -0,0 +1,46 @@ +/* Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ */ + +// Tests errors are handled properly by the DevToolsWorker. + +const { DevToolsWorker } = require("devtools/shared/worker/worker"); +const WORKER_URL = + "resource://devtools/client/shared/widgets/GraphsWorker.js"; + +add_task(function* () { + try { + let workerNotFound = new DevToolsWorker("resource://i/dont/exist.js"); + ok(false, "Creating a DevToolsWorker with an invalid URL throws"); + } catch (e) { + ok(true, "Creating a DevToolsWorker with an invalid URL throws"); + } + + let worker = new DevToolsWorker(WORKER_URL); + try { + // plotTimestampsGraph requires timestamp, interval an duration props on the object + // passed in so there should be an error thrown in the worker + let results = yield worker.performTask("plotTimestampsGraph", {}); + ok(false, "DevToolsWorker returns a rejected promise when an error occurs in the worker"); + } catch (e) { + ok(true, "DevToolsWorker returns a rejected promise when an error occurs in the worker"); + } + + try { + let results = yield worker.performTask("not a real task"); + ok(false, "DevToolsWorker returns a rejected promise when task does not exist"); + } catch (e) { + ok(true, "DevToolsWorker returns a rejected promise when task does not exist"); + } + + worker.destroy(); + try { + let results = yield worker.performTask("plotTimestampsGraph", { + timestamps: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], + interval: 1, + duration: 1 + }); + ok(false, "DevToolsWorker rejects when performing a task on a destroyed worker"); + } catch (e) { + ok(true, "DevToolsWorker rejects when performing a task on a destroyed worker"); + } +}); |