1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- /* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
- /* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/ */
- "use strict";
- const TEST_URI = "data:text/html;charset=utf-8,<p>Web Console test for " +
- "notifications";
- add_task(function* () {
- yield loadTab(TEST_URI);
- let consoleOpened = promise.defer();
- let gotEvents = waitForEvents(consoleOpened.promise);
- yield openConsole().then(() => {
- consoleOpened.resolve();
- });
- yield gotEvents;
- });
- function waitForEvents(onConsoleOpened) {
- let deferred = promise.defer();
- function webConsoleCreated(id) {
- Services.obs.removeObserver(observer, "web-console-created");
- ok(HUDService.getHudReferenceById(id), "We have a hud reference");
- content.wrappedJSObject.console.log("adding a log message");
- }
- function webConsoleDestroyed(id) {
- Services.obs.removeObserver(observer, "web-console-destroyed");
- ok(!HUDService.getHudReferenceById(id), "We do not have a hud reference");
- executeSoon(deferred.resolve);
- }
- function webConsoleMessage(id, nodeID) {
- Services.obs.removeObserver(observer, "web-console-message-created");
- ok(id, "we have a console ID");
- is(typeof nodeID, "string", "message node id is a string");
- onConsoleOpened.then(closeConsole);
- }
- let observer = {
- QueryInterface: XPCOMUtils.generateQI([Ci.nsIObserver]),
- observe: function observe(subject, topic, data) {
- subject = subject.QueryInterface(Ci.nsISupportsString);
- switch (topic) {
- case "web-console-created":
- webConsoleCreated(subject.data);
- break;
- case "web-console-destroyed":
- webConsoleDestroyed(subject.data);
- break;
- case "web-console-message-created":
- webConsoleMessage(subject, data);
- break;
- default:
- break;
- }
- },
- init: function init() {
- Services.obs.addObserver(this, "web-console-created", false);
- Services.obs.addObserver(this, "web-console-destroyed", false);
- Services.obs.addObserver(this, "web-console-message-created", false);
- }
- };
- observer.init();
- return deferred.promise;
- }
|