toolkit/devtools/server/tests/unit/test_framebindings-01.js

branch
TOR_BUG_3246
changeset 7
129ffea94266
equal deleted inserted replaced
-1:000000000000 0:02f45e2f4420
1 /* Any copyright is dedicated to the Public Domain.
2 http://creativecommons.org/publicdomain/zero/1.0/ */
3
4 /**
5 * Check a frame actor's bindings property.
6 */
7
8 var gDebuggee;
9 var gClient;
10 var gThreadClient;
11
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 }
25
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;
32
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);
42
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);
48
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");
55
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);
61
62 gThreadClient.resume(function() {
63 finishClient(gClient);
64 });
65 });
66 });
67
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