extensions/cookie/test/unit/test_permmanager_getPermissionObject.js

Thu, 22 Jan 2015 13:21:57 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 22 Jan 2015 13:21:57 +0100
branch
TOR_BUG_9701
changeset 15
b8a032363ba2
permissions
-rw-r--r--

Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6

     1 /* Any copyright is dedicated to the Public Domain.
     2    http://creativecommons.org/publicdomain/zero/1.0/ */
     4 function getPrincipalFromURI(uri) {
     5   return Cc["@mozilla.org/scriptsecuritymanager;1"]
     6            .getService(Ci.nsIScriptSecurityManager)
     7            .getNoAppCodebasePrincipal(NetUtil.newURI(uri));
     8 }
    10 function getSystemPrincipal() {
    11   return Cc["@mozilla.org/scriptsecuritymanager;1"]
    12            .getService(Ci.nsIScriptSecurityManager)
    13            .getSystemPrincipal();
    14 }
    16 function run_test() {
    17   var pm = Cc["@mozilla.org/permissionmanager;1"].
    18            getService(Ci.nsIPermissionManager);
    20   do_check_null(pm.getPermissionObject(getSystemPrincipal(), "test/pobject", false));
    22   let principal = getPrincipalFromURI("http://example.com");
    23   let subPrincipal = getPrincipalFromURI("http://sub.example.com");
    24   let subSubPrincipal = getPrincipalFromURI("http://sub.sub.example.com");
    26   do_check_null(pm.getPermissionObject(principal, "test/pobject", false));
    27   do_check_null(pm.getPermissionObject(principal, "test/pobject", true));
    29   pm.addFromPrincipal(principal, "test/pobject", pm.ALLOW_ACTION);
    30   var rootPerm = pm.getPermissionObject(principal, "test/pobject", false);
    31   do_check_true(rootPerm != null);
    32   do_check_eq(rootPerm.host, "example.com");
    33   do_check_eq(rootPerm.type, "test/pobject");
    34   do_check_eq(rootPerm.capability, pm.ALLOW_ACTION);
    35   do_check_eq(rootPerm.expireType, pm.EXPIRE_NEVER);
    37   var rootPerm2 = pm.getPermissionObject(principal, "test/pobject", true);
    38   do_check_true(rootPerm != null);
    39   do_check_eq(rootPerm.host, "example.com");
    41   var subPerm = pm.getPermissionObject(subPrincipal, "test/pobject", true);
    42   do_check_null(subPerm);
    43   subPerm = pm.getPermissionObject(subPrincipal, "test/pobject", false);
    44   do_check_true(subPerm != null);
    45   do_check_eq(subPerm.host, "example.com");
    46   do_check_eq(subPerm.type, "test/pobject");
    47   do_check_eq(subPerm.capability, pm.ALLOW_ACTION);
    49   subPerm = pm.getPermissionObject(subSubPrincipal, "test/pobject", true);
    50   do_check_null(subPerm);
    51   subPerm = pm.getPermissionObject(subSubPrincipal, "test/pobject", false);
    52   do_check_true(subPerm != null);
    53   do_check_eq(subPerm.host, "example.com");
    55   pm.addFromPrincipal(principal, "test/pobject", pm.DENY_ACTION, pm.EXPIRE_SESSION);
    57   // make sure permission objects are not dynamic
    58   do_check_eq(rootPerm.capability, pm.ALLOW_ACTION);
    60   // but do update on change
    61   rootPerm = pm.getPermissionObject(principal, "test/pobject", true);
    62   do_check_eq(rootPerm.capability, pm.DENY_ACTION);
    63   do_check_eq(rootPerm.expireType, pm.EXPIRE_SESSION);
    65   subPerm = pm.getPermissionObject(subPrincipal, "test/pobject", false);
    66   do_check_eq(subPerm.host, "example.com");
    67   do_check_eq(subPerm.capability, pm.DENY_ACTION);
    68   do_check_eq(subPerm.expireType, pm.EXPIRE_SESSION);
    70   pm.addFromPrincipal(subPrincipal, "test/pobject", pm.PROMPT_ACTION);
    71   rootPerm = pm.getPermissionObject(principal, "test/pobject", true);
    72   do_check_eq(rootPerm.host, "example.com");
    73   do_check_eq(rootPerm.capability, pm.DENY_ACTION);
    75   subPerm = pm.getPermissionObject(subPrincipal, "test/pobject", true);
    76   do_check_eq(subPerm.host, "sub.example.com");
    77   do_check_eq(subPerm.capability, pm.PROMPT_ACTION);
    79   subPerm = pm.getPermissionObject(subPrincipal, "test/pobject", false);
    80   do_check_eq(subPerm.host, "sub.example.com");
    81   do_check_eq(subPerm.capability, pm.PROMPT_ACTION);
    83   subPerm = pm.getPermissionObject(subSubPrincipal, "test/pobject", true);
    84   do_check_null(subPerm);
    86   subPerm = pm.getPermissionObject(subSubPrincipal, "test/pobject", false);
    87   do_check_eq(subPerm.host, "sub.example.com");
    88   do_check_eq(subPerm.capability, pm.PROMPT_ACTION);
    90   pm.removeFromPrincipal(principal, "test/pobject");
    92   rootPerm = pm.getPermissionObject(principal, "test/pobject", true);
    93   do_check_null(rootPerm);
    94 }

mercurial