js/xpconnect/tests/unit/test_allowedDomains.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.

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

mercurial