xpcom/tests/unit/test_compmgr_warnings.js

Sat, 03 Jan 2015 20:18:00 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Sat, 03 Jan 2015 20:18:00 +0100
branch
TOR_BUG_3246
changeset 7
129ffea94266
permissions
-rw-r--r--

Conditionally enable double key logic according to:
private browsing mode or privacy.thirdparty.isolate preference and
implement in GetCookieStringCommon and FindCookie where it counts...
With some reservations of how to convince FindCookie users to test
condition and pass a nullptr when disabling double key logic.

     1 Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
     3 const Cc = Components.classes;
     4 const Ci = Components.interfaces;
     6 function info(s) {
     7   dump("TEST-INFO | test_compmgr_warnings.js | " + s + "\n");
     8 }
    10 var gMessagesExpected = [
    11   { line: 2, message: /Malformed CID/, found: false },
    12   { line: 6, message: /re-register/, found: false },
    13   { line: 9, message: /Could not/, found: false },
    14   { line: 2, message: /binary component twice/, found: false },
    15   { line: 3, message: /binary component twice/, found: false },
    16 ];
    18 const kConsoleListener = {
    19   QueryInterface: XPCOMUtils.generateQI([Ci.nsIConsoleListener]),
    21   observe: function listener_observe(message) {
    22     if (!(message instanceof Ci.nsIScriptError)) {
    23       info("Not a script error: " + message.message);
    24       return;
    25     }
    27     info("Script error... " + message.sourceName + ":" + message.lineNumber + ": " + message.errorMessage);
    28     for each (let expected in gMessagesExpected) {
    29       if (message.lineNumber != expected.line)
    30         continue;
    32       if (!expected.message.test(message.errorMessage))
    33         continue;
    35       info("Found expected message: " + expected.message);
    36       do_check_false(expected.found);
    38       expected.found = true;
    39     }
    40   }
    41 };
    43 function run_deferred_event(fn) {
    44   do_test_pending();
    45   Components.classes["@mozilla.org/thread-manager;1"].
    46     getService(Ci.nsIThreadManager).mainThread.dispatch(function() {
    47       fn();
    48       do_test_finished();
    49     }, 0);
    50 }
    52 function run_test()
    53 {
    54   let cs = Components.classes["@mozilla.org/consoleservice;1"].
    55     getService(Ci.nsIConsoleService);
    56   cs.registerListener(kConsoleListener);
    58   var manifest = do_get_file('compmgr_warnings.manifest');
    59   Components.manager.QueryInterface(Ci.nsIComponentRegistrar).
    60     autoRegister(manifest);
    61   manifest = do_get_file('testcomponent.manifest');
    62   Components.manager.autoRegister(manifest);
    64   run_deferred_event(function() {
    65     cs.unregisterListener(kConsoleListener);
    67     for each (let expected in gMessagesExpected) {
    68       info("checking " + expected.message);
    69       do_check_true(expected.found);
    70     }
    71   });
    72 }

mercurial