1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/browser/devtools/webconsole/test/browser_webconsole_console_api_stackframe.js Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,81 @@ 1.4 +/* Any copyright is dedicated to the Public Domain. 1.5 + http://creativecommons.org/publicdomain/zero/1.0/ */ 1.6 + 1.7 +"use strict"; 1.8 + 1.9 +// Test that the console API messages for console.error()/exception()/assert() 1.10 +// include a stackframe. See bug 920116. 1.11 + 1.12 +function test() { 1.13 + let hud; 1.14 + 1.15 + const TEST_URI = "http://example.com/browser/browser/devtools/webconsole/test/test-console-api-stackframe.html"; 1.16 + const TEST_FILE = TEST_URI.substr(TEST_URI.lastIndexOf("/")); 1.17 + 1.18 + Task.spawn(runner).then(finishTest); 1.19 + 1.20 + function* runner() { 1.21 + const {tab} = yield loadTab(TEST_URI); 1.22 + hud = yield openConsole(tab); 1.23 + 1.24 + const stack = [{ 1.25 + file: TEST_FILE, 1.26 + fn: "thirdCall", 1.27 + line: /\b2[123]\b/, // 21,22,23 1.28 + }, { 1.29 + file: TEST_FILE, 1.30 + fn: "secondCall", 1.31 + line: 16, 1.32 + }, { 1.33 + file: TEST_FILE, 1.34 + fn: "firstCall", 1.35 + line: 12, 1.36 + }]; 1.37 + 1.38 + let results = yield waitForMessages({ 1.39 + webconsole: hud, 1.40 + messages: [{ 1.41 + text: "foo-log", 1.42 + category: CATEGORY_WEBDEV, 1.43 + severity: SEVERITY_LOG, 1.44 + collapsible: false, 1.45 + }, { 1.46 + text: "foo-error", 1.47 + category: CATEGORY_WEBDEV, 1.48 + severity: SEVERITY_ERROR, 1.49 + collapsible: true, 1.50 + stacktrace: stack, 1.51 + }, { 1.52 + text: "foo-exception", 1.53 + category: CATEGORY_WEBDEV, 1.54 + severity: SEVERITY_ERROR, 1.55 + collapsible: true, 1.56 + stacktrace: stack, 1.57 + }, { 1.58 + text: "foo-assert", 1.59 + category: CATEGORY_WEBDEV, 1.60 + severity: SEVERITY_ERROR, 1.61 + collapsible: true, 1.62 + stacktrace: stack, 1.63 + }], 1.64 + }); 1.65 + 1.66 + let elem = [...results[1].matched][0]; 1.67 + ok(elem, "message element"); 1.68 + 1.69 + let msg = elem._messageObject; 1.70 + ok(msg, "message object"); 1.71 + 1.72 + ok(msg.collapsed, "message is collapsed"); 1.73 + 1.74 + msg.toggleDetails(); 1.75 + 1.76 + ok(!msg.collapsed, "message is not collapsed"); 1.77 + 1.78 + msg.toggleDetails(); 1.79 + 1.80 + ok(msg.collapsed, "message is collapsed"); 1.81 + 1.82 + yield closeConsole(tab); 1.83 + } 1.84 +}