browser_dbg_addon-console.js 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. /* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
  2. /* Any copyright is dedicated to the Public Domain.
  3. * http://creativecommons.org/publicdomain/zero/1.0/ */
  4. // Test that the we can see console messages from the add-on
  5. const ADDON_ID = "browser_dbg_addon4@tests.mozilla.org";
  6. const ADDON_PATH = "addon4.xpi";
  7. function getCachedMessages(webConsole) {
  8. let deferred = promise.defer();
  9. webConsole.getCachedMessages(["ConsoleAPI"], (aResponse) => {
  10. if (aResponse.error) {
  11. deferred.reject(aResponse.error);
  12. return;
  13. }
  14. deferred.resolve(aResponse.messages);
  15. });
  16. return deferred.promise;
  17. }
  18. function test() {
  19. Task.spawn(function* () {
  20. let addon = yield addTemporaryAddon(ADDON_PATH);
  21. let addonDebugger = yield initAddonDebugger(ADDON_ID);
  22. let webConsole = addonDebugger.webConsole;
  23. let messages = yield getCachedMessages(webConsole);
  24. is(messages.length, 1, "Should be one cached message");
  25. is(messages[0].arguments[0].type, "object", "Should have logged an object");
  26. is(messages[0].arguments[0].preview.ownProperties.msg.value, "Hello from the test add-on", "Should have got the right message");
  27. let consolePromise = addonDebugger.once("console");
  28. console.log("Bad message");
  29. Services.obs.notifyObservers(null, "addon-test-ping", "");
  30. let messageGrip = yield consolePromise;
  31. is(messageGrip.arguments[0].type, "object", "Should have logged an object");
  32. is(messageGrip.arguments[0].preview.ownProperties.msg.value, "Hello again", "Should have got the right message");
  33. yield addonDebugger.destroy();
  34. yield removeAddon(addon);
  35. finish();
  36. });
  37. }