1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/toolkit/devtools/webconsole/test/test_object_actor_native_getters.html Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,106 @@ 1.4 +<!DOCTYPE HTML> 1.5 +<html lang="en"> 1.6 +<head> 1.7 + <meta charset="utf8"> 1.8 + <title>Test for the native getters in object actors</title> 1.9 + <script type="text/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script> 1.10 + <script type="text/javascript;version=1.8" src="common.js"></script> 1.11 + <!-- Any copyright is dedicated to the Public Domain. 1.12 + - http://creativecommons.org/publicdomain/zero/1.0/ --> 1.13 +</head> 1.14 +<body> 1.15 +<p>Test for the native getters in object actors</p> 1.16 + 1.17 +<script class="testbody" type="text/javascript;version=1.8"> 1.18 +SimpleTest.waitForExplicitFinish(); 1.19 + 1.20 +let expectedProps = []; 1.21 +let expectedSafeGetters = []; 1.22 + 1.23 +function startTest() 1.24 +{ 1.25 + removeEventListener("load", startTest); 1.26 + 1.27 + attachConsole(["ConsoleAPI"], onAttach, true); 1.28 +} 1.29 + 1.30 +function onAttach(aState, aResponse) 1.31 +{ 1.32 + onConsoleCall = onConsoleCall.bind(null, aState); 1.33 + aState.dbgClient.addListener("consoleAPICall", onConsoleCall); 1.34 + 1.35 + top.console.log("hello", document); 1.36 + 1.37 + expectedProps = { 1.38 + "location": { 1.39 + get: { 1.40 + type: "object", 1.41 + class: "Function", 1.42 + actor: /[a-z]/, 1.43 + }, 1.44 + }, 1.45 + }; 1.46 + 1.47 + expectedSafeGetters = { 1.48 + "title": { 1.49 + getterValue: /native getters in object actors/, 1.50 + getterPrototypeLevel: 2, 1.51 + }, 1.52 + "styleSheets": { 1.53 + getterValue: "[object Object]", 1.54 + getterPrototypeLevel: 2, 1.55 + }, 1.56 + }; 1.57 +} 1.58 + 1.59 +function onConsoleCall(aState, aType, aPacket) 1.60 +{ 1.61 + is(aPacket.from, aState.actor, "console API call actor"); 1.62 + 1.63 + info("checking the console API call packet"); 1.64 + 1.65 + checkConsoleAPICall(aPacket.message, { 1.66 + level: "log", 1.67 + filename: /test_object_actor/, 1.68 + functionName: "onAttach", 1.69 + arguments: ["hello", { 1.70 + type: "object", 1.71 + actor: /[a-z]/, 1.72 + }], 1.73 + }); 1.74 + 1.75 + aState.dbgClient.removeListener("consoleAPICall", onConsoleCall); 1.76 + 1.77 + info("inspecting object properties"); 1.78 + let args = aPacket.message.arguments; 1.79 + onProperties = onProperties.bind(null, aState); 1.80 + 1.81 + let client = new ObjectClient(aState.dbgClient, args[1]); 1.82 + client.getPrototypeAndProperties(onProperties); 1.83 +} 1.84 + 1.85 +function onProperties(aState, aResponse) 1.86 +{ 1.87 + let props = aResponse.ownProperties; 1.88 + let keys = Object.keys(props); 1.89 + info(keys.length + " ownProperties: " + keys); 1.90 + 1.91 + ok(keys.length >= Object.keys(expectedProps).length, "number of properties"); 1.92 + 1.93 + info("check ownProperties"); 1.94 + checkObject(props, expectedProps); 1.95 + info("check safeGetterValues"); 1.96 + checkObject(aResponse.safeGetterValues, expectedSafeGetters); 1.97 + 1.98 + expectedProps = []; 1.99 + expectedSafeGetters = []; 1.100 + 1.101 + closeDebugger(aState, function() { 1.102 + SimpleTest.finish(); 1.103 + }); 1.104 +} 1.105 + 1.106 +addEventListener("load", startTest); 1.107 +</script> 1.108 +</body> 1.109 +</html>