gecko/toolkit/devtools/tests/unit/test_consoleID.js

89 lines
2.4 KiB
JavaScript

/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
const { console, ConsoleAPI } = Cu.import("resource://gre/modules/devtools/Console.jsm");
const { require } = Cu.import("resource://gre/modules/devtools/Loader.jsm", {}).devtools;
const { ConsoleAPIListener } = require("devtools/toolkit/webconsole/utils");
var seenMessages = 0;
var seenTypes = 0;
var callback = {
onConsoleAPICall: function(aMessage) {
switch (aMessage.consoleID) {
case "foo":
do_check_eq(aMessage.level, "warn");
do_check_eq(aMessage.arguments[0], "Warning from foo");
seenTypes |= 1;
break;
case "bar":
do_check_eq(aMessage.level, "error");
do_check_eq(aMessage.arguments[0], "Error from bar");
seenTypes |= 2;
break;
default:
do_check_eq(aMessage.level, "log");
do_check_eq(aMessage.arguments[0], "Hello from default console");
seenTypes |= 4;
break;
}
seenMessages++;
}
};
/**
* Tests that the consoleID property of the ConsoleAPI options gets passed
* through to console messages.
*/
function run_test() {
let console1 = new ConsoleAPI({
consoleID: "foo"
});
let console2 = new ConsoleAPI({
consoleID: "bar"
});
console.log("Hello from default console");
console1.warn("Warning from foo");
console2.error("Error from bar");
let listener = new ConsoleAPIListener(null, callback);
listener.init();
let messages = listener.getCachedMessages();
seenTypes = 0;
seenMessages = 0;
messages.forEach(callback.onConsoleAPICall);
do_check_eq(seenMessages, 3);
do_check_eq(seenTypes, 7);
seenTypes = 0;
seenMessages = 0;
console.log("Hello from default console");
console1.warn("Warning from foo");
console2.error("Error from bar");
do_check_eq(seenMessages, 3);
do_check_eq(seenTypes, 7);
listener.destroy();
listener = new ConsoleAPIListener(null, callback, "foo");
listener.init();
let messages = listener.getCachedMessages();
seenTypes = 0;
seenMessages = 0;
messages.forEach(callback.onConsoleAPICall);
do_check_eq(seenMessages, 2);
do_check_eq(seenTypes, 1);
seenTypes = 0;
seenMessages = 0;
console.log("Hello from default console");
console1.warn("Warning from foo");
console2.error("Error from bar");
do_check_eq(seenMessages, 1);
do_check_eq(seenTypes, 1);
}