Mypal/devtools/client/webaudioeditor/test/browser_callwatcher-02.js
2019-03-11 13:26:37 +03:00

45 lines
2.2 KiB
JavaScript

/* 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);
});