extensions/cookie/test/unit_ipc/test_child.js

changeset 0
6474c204b198
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/extensions/cookie/test/unit_ipc/test_child.js	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,58 @@
     1.4 +const Ci = Components.interfaces;
     1.5 +const Cc = Components.classes;
     1.6 +const Cr = Components.results;
     1.7 +
     1.8 +var gIoService = Components.classes["@mozilla.org/network/io-service;1"]
     1.9 +                           .getService(Components.interfaces.nsIIOService);
    1.10 +
    1.11 +function isParentProcess() {
    1.12 +    let appInfo = Cc["@mozilla.org/xre/app-info;1"];
    1.13 +    return (!appInfo || appInfo.getService(Ci.nsIXULRuntime).processType == Ci.nsIXULRuntime.PROCESS_TYPE_DEFAULT);
    1.14 +}
    1.15 +
    1.16 +function getPrincipalForURI(aURI) {
    1.17 +  var uri =  gIoService.newURI(aURI, null, null);
    1.18 +  return Components.classes["@mozilla.org/scriptsecuritymanager;1"]
    1.19 +                   .getService(Ci.nsIScriptSecurityManager)
    1.20 +                   .getNoAppCodebasePrincipal(uri);
    1.21 +}
    1.22 +
    1.23 +function run_test() {
    1.24 +  if (!isParentProcess()) {
    1.25 +    const Ci = Components.interfaces;
    1.26 +    const Cc = Components.classes;
    1.27 +
    1.28 +    var mM = Cc["@mozilla.org/childprocessmessagemanager;1"].
    1.29 +                         getService(Ci.nsISyncMessageSender);
    1.30 +
    1.31 +    var messageListener = {
    1.32 +      receiveMessage: function(aMessage) {
    1.33 +        switch(aMessage.name) {
    1.34 +          case "TESTING:Stage2A":
    1.35 +            // Permissions created after the child is present
    1.36 +            do_check_eq(pm.testPermissionFromPrincipal(getPrincipalForURI("http://mozilla.org"), "cookie1"), pm.ALLOW_ACTION);
    1.37 +            do_check_eq(pm.testPermissionFromPrincipal(getPrincipalForURI("http://mozilla.com"), "cookie2"), pm.DENY_ACTION);
    1.38 +            do_check_eq(pm.testPermissionFromPrincipal(getPrincipalForURI("http://mozilla.net"), "cookie3"), pm.ALLOW_ACTION);
    1.39 +            do_check_eq(pm.testPermissionFromPrincipal(getPrincipalForURI("http://firefox.org"), "cookie1"), pm.ALLOW_ACTION);
    1.40 +            do_check_eq(pm.testPermissionFromPrincipal(getPrincipalForURI("http://firefox.com"), "cookie2"), pm.DENY_ACTION);
    1.41 +            do_check_eq(pm.testPermissionFromPrincipal(getPrincipalForURI("http://firefox.net"), "cookie3"), pm.ALLOW_ACTION);
    1.42 +
    1.43 +            mM.sendAsyncMessage("TESTING:Stage3");
    1.44 +            break;
    1.45 +
    1.46 +        }
    1.47 +        return true;
    1.48 +      },
    1.49 +    };
    1.50 +
    1.51 +    mM.addMessageListener("TESTING:Stage2A", messageListener);
    1.52 +
    1.53 +    var pm = Cc["@mozilla.org/permissionmanager;1"].getService(Ci.nsIPermissionManager);
    1.54 +    do_check_eq(pm.testPermissionFromPrincipal(getPrincipalForURI("http://mozilla.org"), "cookie1"), pm.ALLOW_ACTION);
    1.55 +    do_check_eq(pm.testPermissionFromPrincipal(getPrincipalForURI("http://mozilla.com"), "cookie2"), pm.DENY_ACTION);
    1.56 +    do_check_eq(pm.testPermissionFromPrincipal(getPrincipalForURI("http://mozilla.net"), "cookie3"), pm.ALLOW_ACTION);
    1.57 +
    1.58 +    mM.sendAsyncMessage("TESTING:Stage2");
    1.59 +  }
    1.60 +}
    1.61 +

mercurial