js/xpconnect/tests/unit/test_allowedDomains.js

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     1 function run_test() {
     2   var cu = Components.utils;
     3   var sbMaster = cu.Sandbox(["http://www.a.com",
     4                            "http://www.b.com",
     5                            "http://www.d.com"]);
     6   var sbSubset = cu.Sandbox(["http://www.d.com",                           
     7                            "http://www.a.com"]);
     9   var sbA = cu.Sandbox("http://www.a.com");
    10   var sbB = cu.Sandbox("http://www.b.com");
    11   var sbC = cu.Sandbox("http://www.c.com");
    13   sbMaster.objA = cu.evalInSandbox("var obj = {prop1:200}; obj", sbA);
    14   sbMaster.objB = cu.evalInSandbox("var obj = {prop1:200}; obj", sbB);
    15   sbMaster.objC = cu.evalInSandbox("var obj = {prop1:200}; obj", sbC);
    16   sbMaster.objOwn = cu.evalInSandbox("var obj = {prop1:200}; obj", sbMaster);
    18   sbMaster.objSubset = cu.evalInSandbox("var obj = {prop1:200}; obj", sbSubset);
    19   sbA.objMaster = cu.evalInSandbox("var obj = {prop1:200}; obj", sbMaster);
    20   sbSubset.objMaster = cu.evalInSandbox("var obj = {prop1:200}; obj", sbMaster);
    22   var ret;
    23   ret = cu.evalInSandbox("objA.prop1", sbMaster);
    24   do_check_eq(ret, 200);
    25   ret = cu.evalInSandbox("objB.prop1", sbMaster);
    26   do_check_eq(ret, 200);
    27   ret = cu.evalInSandbox("objSubset.prop1", sbMaster);
    28   do_check_eq(ret, 200);
    30   function evalAndCatch(str, sb) {
    31     try {
    32       ret = cu.evalInSandbox(str, sb);
    33       do_check_true(false, "unexpected pass")
    34     } catch (e) {    
    35       do_check_true(e.message && e.message.indexOf("Permission denied to access property") != -1);
    36     }  
    37   }
    39   evalAndCatch("objC.prop1", sbMaster);
    40   evalAndCatch("objMaster.prop1", sbA);
    41   evalAndCatch("objMaster.prop1", sbSubset);
    43   // Bug 777705:
    44   sbMaster.Components = cu.getComponentsForScope(sbMaster);
    45   Components.utils.evalInSandbox("Components.interfaces", sbMaster);
    46   do_check_true(true);
    47 }

mercurial