diff -r 000000000000 -r 6474c204b198 browser/devtools/commandline/test/browser_cmd_calllog.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/browser/devtools/commandline/test/browser_cmd_calllog.js Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,119 @@ +/* Any copyright is dedicated to the Public Domain. +* http://creativecommons.org/publicdomain/zero/1.0/ */ + +// Tests that the calllog commands works as they should + +const TEST_URI = "data:text/html;charset=utf-8,gcli-calllog"; + +let tests = {}; + +function test() { + return Task.spawn(function() { + let options = yield helpers.openTab(TEST_URI); + yield helpers.openToolbar(options); + + yield helpers.runTests(options, tests); + + yield helpers.closeToolbar(options); + yield helpers.closeTab(options); + }).then(finish, helpers.handleError); +} + +tests.testCallLogStatus = function(options) { + return helpers.audit(options, [ + { + setup: "calllog", + check: { + input: 'calllog', + hints: '', + markup: 'IIIIIII', + status: 'ERROR' + } + }, + { + setup: "calllog start", + check: { + input: 'calllog start', + hints: '', + markup: 'VVVVVVVVVVVVV', + status: 'VALID' + } + }, + { + setup: "calllog stop", + check: { + input: 'calllog stop', + hints: '', + markup: 'VVVVVVVVVVVV', + status: 'VALID' + } + }, + ]); +}; + +tests.testCallLogExec = function(options) { + var deferred = promise.defer(); + + var onWebConsoleOpen = function(subject) { + Services.obs.removeObserver(onWebConsoleOpen, "web-console-created"); + + subject.QueryInterface(Ci.nsISupportsString); + let hud = HUDService.getHudReferenceById(subject.data); + ok(hud, "console open"); + + helpers.audit(options, [ + { + setup: "calllog stop", + exec: { + output: /Stopped call logging/, + } + }, + { + setup: "console clear", + exec: { + output: "", + }, + post: function() { + let labels = hud.outputNode.querySelectorAll(".webconsole-msg-output"); + is(labels.length, 0, "no output in console"); + } + }, + { + setup: "console close", + exec: { + output: "", + } + }, + ]).then(function() { + deferred.resolve(); + }); + }; + Services.obs.addObserver(onWebConsoleOpen, "web-console-created", false); + + helpers.audit(options, [ + { + setup: "calllog stop", + exec: { + output: /No call logging/, + } + }, + { + name: "calllog start", + setup: function() { + // This test wants to be in a different event + var deferred = promise.defer(); + executeSoon(function() { + helpers.setInput(options, "calllog start").then(() => { + deferred.resolve(); + }); + }); + return deferred.promise; + }, + exec: { + output: /Call logging started/, + }, + }, + ]); + + return deferred.promise; +};