diff options
Diffstat (limited to 'addon-sdk/source/test/test-traceback.js')
-rw-r--r-- | addon-sdk/source/test/test-traceback.js | 139 |
1 files changed, 0 insertions, 139 deletions
diff --git a/addon-sdk/source/test/test-traceback.js b/addon-sdk/source/test/test-traceback.js deleted file mode 100644 index e6548b94e..000000000 --- a/addon-sdk/source/test/test-traceback.js +++ /dev/null @@ -1,139 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - "use strict"; - -var traceback = require("sdk/console/traceback"); -var {Cc,Ci,Cr,Cu} = require("chrome"); -const { on, off } = require("sdk/system/events"); - -function throwNsIException() { - var ios = Cc['@mozilla.org/network/io-service;1'] - .getService(Ci.nsIIOService); - ios.newURI("i'm a malformed URI", null, null); -} - -function throwError() { - throw new Error("foob"); -} - -exports.testFormatDoesNotFetchRemoteFiles = function(assert) { - ["http", "https"].forEach( - function(scheme) { - var httpRequests = 0; - function onHttp() { - httpRequests++; - } - - on("http-on-modify-request", onHttp); - - try { - var tb = [{filename: scheme + "://www.mozilla.org/", - lineNumber: 1, - name: "blah"}]; - traceback.format(tb); - } catch (e) { - assert.fail(e); - } - - off("http-on-modify-request", onHttp); - - assert.equal(httpRequests, 0, - "traceback.format() does not make " + - scheme + " request"); - }); -}; - -exports.testFromExceptionWithString = function(assert) { - try { - throw "foob"; - assert.fail("an exception should've been thrown"); - } catch (e) { - if (e == "foob") { - var tb = traceback.fromException(e); - assert.equal(tb.length, 0); - } - else { - throw e; - } - } -}; - -exports.testFormatWithString = function(assert) { - // This can happen if e.g. a thrown exception was - // a string instead of an Error instance. - assert.equal(traceback.format("blah"), - "Traceback (most recent call last):"); -}; - -exports.testFromExceptionWithError = function(assert) { - try { - throwError(); - assert.fail("an exception should've been thrown"); - } catch (e) { - if (e instanceof Error) { - var tb = traceback.fromException(e); - - var xulApp = require("sdk/system/xul-app"); - assert.equal(tb.slice(-1)[0].name, "throwError"); - } - else { - throw e; - } - } -}; - -exports.testFromExceptionWithNsIException = function(assert) { - try { - throwNsIException(); - assert.fail("an exception should've been thrown"); - } catch (e) { - if (e.result == Cr.NS_ERROR_MALFORMED_URI) { - var tb = traceback.fromException(e); - assert.equal(tb[tb.length - 1].name, "throwNsIException"); - } - else { - throw e; - } - } -}; - -exports.testFormat = function(assert) { - function getTraceback() { - return traceback.format(); - } - - var formatted = getTraceback(); - assert.equal(typeof(formatted), "string"); - var lines = formatted.split("\n"); - - assert.equal(lines[lines.length - 2].indexOf("getTraceback") > 0, - true, - "formatted traceback should include function name"); - - assert.equal(lines[lines.length - 1].trim(), - "return traceback.format();", - "formatted traceback should include source code"); -}; - -exports.testExceptionsWithEmptyStacksAreLogged = function(assert) { - // Ensures that our fix to bug 550368 works. - var sandbox = Cu.Sandbox("http://www.foo.com"); - var excRaised = false; - try { - Cu.evalInSandbox("returns 1 + 2;", sandbox, "1.8", - "blah.js", 25); - } catch (e) { - excRaised = true; - var stack = traceback.fromException(e); - assert.equal(stack.length, 1, "stack should have one frame"); - - assert.ok(stack[0].fileName, "blah.js", "frame should have filename"); - assert.ok(stack[0].lineNumber, 25, "frame should have line no"); - assert.equal(stack[0].name, null, "frame should have null function name"); - } - if (!excRaised) - assert.fail("Exception should have been raised."); -}; - -require('sdk/test').run(exports); |