UNPKG

@cliqz-oss/firefox-client

Version:
107 lines (87 loc) 2.81 kB
var assert = require("assert"), utils = require("./utils"); var tab; var Console; before(function(done) { utils.loadTab('logs.html', function(aTab) { tab = aTab; Console = aTab.Console; Console.startListening(function() { done(); }) }); }); // Console - startLogging(), stopLogging(), getCachedMessages(), // clearCachedMessages(), event:page-error, event:console-api-call describe('getCachedMessages()', function() { it('should get messages from before listening', function(done) { Console.getCachedLogs(function(err, messages) { assert.strictEqual(err, null); var hasLog = messages.some(function(message) { return message.level == "log"; }) assert.ok(hasLog); var hasDir = messages.some(function(message) { return message.level == "dir"; }) assert.ok(hasDir); var hasError = messages.some(function(message) { return message.errorMessage == "ReferenceError: foo is not defined"; }) assert.ok(hasError); done(); }); }) }) describe('clearCachedMessages()', function() { it('should clear cached messages', function(done) { Console.clearCachedLogs(function() { Console.getCachedLogs(function(err, messages) { assert.strictEqual(err, null); // The error message should be left assert.equal(messages.length, 1); assert.equal(messages[0].errorMessage, "ReferenceError: foo is not defined") done(); }) }); }) }) describe('"page-error" event', function() { it('should receive "page-error" event with message', function(done) { Console.once('page-error', function(event) { assert.equal(event.errorMessage, "ReferenceError: foo is not defined"); assert.ok(event.sourceName.indexOf("logs.html") > 0); assert.equal(event.lineNumber, 10); assert.equal(event.columnNumber, 0); assert.ok(event.exception); done(); }); tab.reload(); }) }) describe('"console-api-call" event', function() { it('should receive "console-api-call" for console.log', function(done) { Console.on('console-api-call', function(event) { if (event.level == "log") { assert.deepEqual(event.arguments, ["hi"]); Console.removeAllListeners('console-api-call'); done(); } }); tab.reload(); }) it('should receive "console-api-call" for console.dir', function(done) { Console.on('console-api-call', function(event) { if (event.level == "dir") { var obj = event.arguments[0]; assert.ok(obj.ownPropertyNames, "dir argument has JSObject methods"); Console.removeAllListeners('console-api-call'); done(); } }); tab.reload(); }) }) after(function() { Console.stopListening(); })