toolkit/devtools/server/tests/unit/test_framebindings-01.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 /* Any copyright is dedicated to the Public Domain.
     2    http://creativecommons.org/publicdomain/zero/1.0/ */
     4 /**
     5  * Check a frame actor's bindings property.
     6  */
     8 var gDebuggee;
     9 var gClient;
    10 var gThreadClient;
    12 function run_test()
    13 {
    14   initTestDebuggerServer();
    15   gDebuggee = addTestGlobal("test-stack");
    16   gClient = new DebuggerClient(DebuggerServer.connectPipe());
    17   gClient.connect(function() {
    18     attachTestTabAndResume(gClient, "test-stack", function(aResponse, aTabClient, aThreadClient) {
    19       gThreadClient = aThreadClient;
    20       test_pause_frame();
    21     });
    22   });
    23   do_test_pending();
    24 }
    26 function test_pause_frame()
    27 {
    28   gThreadClient.addOneTimeListener("paused", function(aEvent, aPacket) {
    29     let bindings = aPacket.frame.environment.bindings;
    30     let args = bindings.arguments;
    31     let vars = bindings.variables;
    33     do_check_eq(args.length, 6);
    34     do_check_eq(args[0].aNumber.value, 42);
    35     do_check_eq(args[1].aBool.value, true);
    36     do_check_eq(args[2].aString.value, "nasu");
    37     do_check_eq(args[3].aNull.value.type, "null");
    38     do_check_eq(args[4].aUndefined.value.type, "undefined");
    39     do_check_eq(args[5].aObject.value.type, "object");
    40     do_check_eq(args[5].aObject.value.class, "Object");
    41     do_check_true(!!args[5].aObject.value.actor);
    43     do_check_eq(vars.a.value, 1);
    44     do_check_eq(vars.b.value, true);
    45     do_check_eq(vars.c.value.type, "object");
    46     do_check_eq(vars.c.value.class, "Object");
    47     do_check_true(!!vars.c.value.actor);
    49     let objClient = gThreadClient.pauseGrip(vars.c.value);
    50     objClient.getPrototypeAndProperties(function(aResponse) {
    51       do_check_eq(aResponse.ownProperties.a.configurable, true);
    52       do_check_eq(aResponse.ownProperties.a.enumerable, true);
    53       do_check_eq(aResponse.ownProperties.a.writable, true);
    54       do_check_eq(aResponse.ownProperties.a.value, "a");
    56       do_check_eq(aResponse.ownProperties.b.configurable, true);
    57       do_check_eq(aResponse.ownProperties.b.enumerable, true);
    58       do_check_eq(aResponse.ownProperties.b.writable, true);
    59       do_check_eq(aResponse.ownProperties.b.value.type, "undefined");
    60       do_check_false("class" in aResponse.ownProperties.b.value);
    62       gThreadClient.resume(function() {
    63         finishClient(gClient);
    64       });
    65     });
    66   });
    68   gDebuggee.eval("(" + function() {
    69     function stopMe(aNumber, aBool, aString, aNull, aUndefined, aObject) {
    70       var a = 1;
    71       var b = true;
    72       var c = { a: "a", b: undefined };
    73       debugger;
    74     };
    75     stopMe(42, true, "nasu", null, undefined, { foo: "bar" });
    76   } + ")()");
    77 }

mercurial