summaryrefslogtreecommitdiffstats
path: root/devtools/client/webaudioeditor/test/browser_callwatcher-02.js
diff options
context:
space:
mode:
Diffstat (limited to 'devtools/client/webaudioeditor/test/browser_callwatcher-02.js')
-rw-r--r--devtools/client/webaudioeditor/test/browser_callwatcher-02.js44
1 files changed, 44 insertions, 0 deletions
diff --git a/devtools/client/webaudioeditor/test/browser_callwatcher-02.js b/devtools/client/webaudioeditor/test/browser_callwatcher-02.js
new file mode 100644
index 000000000..f901efdcb
--- /dev/null
+++ b/devtools/client/webaudioeditor/test/browser_callwatcher-02.js
@@ -0,0 +1,44 @@
+/* Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+
+/**
+ * Bug 1112378
+ * Tests to ensure that errors called on wrapped functions via call-watcher
+ * correctly looks like the error comes from the content, not from within the devtools.
+ */
+
+const BUG_1112378_URL = EXAMPLE_URL + "doc_bug_1112378.html";
+
+add_task(function* () {
+ let { target, panel } = yield initWebAudioEditor(BUG_1112378_URL);
+ let { panelWin } = panel;
+ let { gFront, $, $$, EVENTS, gAudioNodes } = panelWin;
+
+ loadFrameScripts();
+
+ let rendered = waitForGraphRendered(panelWin, 2, 0);
+ reload(target);
+ yield rendered;
+
+ let error = yield evalInDebuggee("throwError()");
+ is(error.lineNumber, 21, "error has correct lineNumber");
+ is(error.columnNumber, 11, "error has correct columnNumber");
+ is(error.name, "TypeError", "error has correct name");
+ is(error.message, "Argument 1 is not valid for any of the 2-argument overloads of AudioNode.connect.", "error has correct message");
+ is(error.stringified, "TypeError: Argument 1 is not valid for any of the 2-argument overloads of AudioNode.connect.", "error is stringified correctly");
+ is(error.instanceof, true, "error is correctly an instanceof TypeError");
+ is(error.fileName, "http://example.com/browser/devtools/client/webaudioeditor/test/doc_bug_1112378.html", "error has correct fileName");
+
+ error = yield evalInDebuggee("throwDOMException()");
+ is(error.lineNumber, 37, "exception has correct lineNumber");
+ is(error.columnNumber, 0, "exception has correct columnNumber");
+ is(error.code, 9, "exception has correct code");
+ is(error.result, 2152923145, "exception has correct result");
+ is(error.name, "NotSupportedError", "exception has correct name");
+ is(error.message, "Operation is not supported", "exception has correct message");
+ is(error.stringified, "NotSupportedError: Operation is not supported", "exception is stringified correctly");
+ is(error.instanceof, true, "exception is correctly an instance of DOMException");
+ is(error.filename, "http://example.com/browser/devtools/client/webaudioeditor/test/doc_bug_1112378.html", "exception has correct filename");
+
+ yield teardown(target);
+});