browser/devtools/debugger/test/browser_dbg_variables-view-05.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.

michael@0 1 /* Any copyright is dedicated to the Public Domain.
michael@0 2 http://creativecommons.org/publicdomain/zero/1.0/ */
michael@0 3
michael@0 4 /**
michael@0 5 * Tests that grips are correctly applied to variables and properties.
michael@0 6 */
michael@0 7
michael@0 8 const TAB_URL = EXAMPLE_URL + "doc_recursion-stack.html";
michael@0 9
michael@0 10 function test() {
michael@0 11 initDebugger(TAB_URL).then(([aTab, aDebuggee, aPanel]) => {
michael@0 12 let variables = aPanel.panelWin.DebuggerView.Variables;
michael@0 13
michael@0 14 let globalScope = variables.addScope("Test-Global");
michael@0 15 let localScope = variables.addScope("Test-Local");
michael@0 16
michael@0 17 ok(globalScope, "The globalScope hasn't been created correctly.");
michael@0 18 ok(localScope, "The localScope hasn't been created correctly.");
michael@0 19
michael@0 20 is(globalScope.target.querySelector(".separator"), null,
michael@0 21 "No separator string should be created for scopes (1).");
michael@0 22 is(localScope.target.querySelector(".separator"), null,
michael@0 23 "No separator string should be created for scopes (2).");
michael@0 24
michael@0 25 let windowVar = globalScope.addItem("window");
michael@0 26 let documentVar = globalScope.addItem("document");
michael@0 27
michael@0 28 ok(windowVar, "The windowVar hasn't been created correctly.");
michael@0 29 ok(documentVar, "The documentVar hasn't been created correctly.");
michael@0 30
michael@0 31 ok(windowVar.target.querySelector(".separator").hidden,
michael@0 32 "No separator string should be shown for variables without a grip (1).");
michael@0 33 ok(documentVar.target.querySelector(".separator").hidden,
michael@0 34 "No separator string should be shown for variables without a grip (2).");
michael@0 35
michael@0 36 windowVar.setGrip({ type: "object", class: "Window" });
michael@0 37 documentVar.setGrip({ type: "object", class: "HTMLDocument" });
michael@0 38
michael@0 39 is(windowVar.target.querySelector(".separator").hidden, false,
michael@0 40 "A separator string should now be shown after setting the grip (1).");
michael@0 41 is(documentVar.target.querySelector(".separator").hidden, false,
michael@0 42 "A separator string should now be shown after setting the grip (2).");
michael@0 43
michael@0 44 is(windowVar.target.querySelector(".separator").getAttribute("value"), ": ",
michael@0 45 "The separator string label is correct (1).");
michael@0 46 is(documentVar.target.querySelector(".separator").getAttribute("value"), ": ",
michael@0 47 "The separator string label is correct (2).");
michael@0 48
michael@0 49 let localVar0 = localScope.addItem("localVar0");
michael@0 50 let localVar1 = localScope.addItem("localVar1");
michael@0 51 let localVar2 = localScope.addItem("localVar2");
michael@0 52 let localVar3 = localScope.addItem("localVar3");
michael@0 53 let localVar4 = localScope.addItem("localVar4");
michael@0 54 let localVar5 = localScope.addItem("localVar5");
michael@0 55
michael@0 56 let localVar6 = localScope.addItem("localVar6");
michael@0 57 let localVar7 = localScope.addItem("localVar7");
michael@0 58 let localVar8 = localScope.addItem("localVar8");
michael@0 59 let localVar9 = localScope.addItem("localVar9");
michael@0 60
michael@0 61 ok(localVar0, "The localVar0 hasn't been created correctly.");
michael@0 62 ok(localVar1, "The localVar1 hasn't been created correctly.");
michael@0 63 ok(localVar2, "The localVar2 hasn't been created correctly.");
michael@0 64 ok(localVar3, "The localVar3 hasn't been created correctly.");
michael@0 65 ok(localVar4, "The localVar4 hasn't been created correctly.");
michael@0 66 ok(localVar5, "The localVar5 hasn't been created correctly.");
michael@0 67 ok(localVar6, "The localVar6 hasn't been created correctly.");
michael@0 68 ok(localVar7, "The localVar7 hasn't been created correctly.");
michael@0 69 ok(localVar8, "The localVar8 hasn't been created correctly.");
michael@0 70 ok(localVar9, "The localVar9 hasn't been created correctly.");
michael@0 71
michael@0 72 localVar0.setGrip(42);
michael@0 73 localVar1.setGrip(true);
michael@0 74 localVar2.setGrip("nasu");
michael@0 75
michael@0 76 localVar3.setGrip({ type: "undefined" });
michael@0 77 localVar4.setGrip({ type: "null" });
michael@0 78 localVar5.setGrip({ type: "object", class: "Object" });
michael@0 79 localVar6.setGrip({ type: "Infinity" });
michael@0 80 localVar7.setGrip({ type: "-Infinity" });
michael@0 81 localVar8.setGrip({ type: "NaN" });
michael@0 82 localVar9.setGrip({ type: "-0" });
michael@0 83
michael@0 84 localVar5.addItems({
michael@0 85 someProp0: { value: 42, enumerable: true },
michael@0 86 someProp1: { value: true, enumerable: true },
michael@0 87 someProp2: { value: "nasu", enumerable: true },
michael@0 88 someProp3: { value: { type: "undefined" }, enumerable: true },
michael@0 89 someProp4: { value: { type: "null" }, enumerable: true },
michael@0 90 someProp5: { value: { type: "object", class: "Object" }, enumerable: true },
michael@0 91 someProp6: { value: { type: "Infinity" }, enumerable: true },
michael@0 92 someProp7: { value: { type: "-Infinity" }, enumerable: true },
michael@0 93 someProp8: { value: { type: "NaN" }, enumerable: true },
michael@0 94 someProp9: { value: { type: "-0" }, enumerable: true },
michael@0 95 someUndefined: {
michael@0 96 get: { type: "undefined" },
michael@0 97 set: { type: "undefined" },
michael@0 98 enumerable: true
michael@0 99 },
michael@0 100 someAccessor: {
michael@0 101 get: { type: "object", class: "Function" },
michael@0 102 set: { type: "undefined" },
michael@0 103 enumerable: true
michael@0 104 }
michael@0 105 });
michael@0 106
michael@0 107 localVar5.get("someProp5").addItems({
michael@0 108 someProp0: { value: 42, enumerable: true },
michael@0 109 someProp1: { value: true, enumerable: true },
michael@0 110 someProp2: { value: "nasu", enumerable: true },
michael@0 111 someProp3: { value: { type: "undefined" }, enumerable: true },
michael@0 112 someProp4: { value: { type: "null" }, enumerable: true },
michael@0 113 someProp5: { value: { type: "object", class: "Object" }, enumerable: true },
michael@0 114 someProp6: { value: { type: "Infinity" }, enumerable: true },
michael@0 115 someProp7: { value: { type: "-Infinity" }, enumerable: true },
michael@0 116 someProp8: { value: { type: "NaN" }, enumerable: true },
michael@0 117 someProp9: { value: { type: "-0" }, enumerable: true },
michael@0 118 someUndefined: {
michael@0 119 get: { type: "undefined" },
michael@0 120 set: { type: "undefined" },
michael@0 121 enumerable: true
michael@0 122 },
michael@0 123 someAccessor: {
michael@0 124 get: { type: "object", class: "Function" },
michael@0 125 set: { type: "undefined" },
michael@0 126 enumerable: true
michael@0 127 }
michael@0 128 });
michael@0 129
michael@0 130 is(globalScope.target.querySelector(".enum").childNodes.length, 0,
michael@0 131 "The globalScope doesn't contain all the created enumerable variable elements.");
michael@0 132 is(globalScope.target.querySelector(".nonenum").childNodes.length, 2,
michael@0 133 "The globalScope doesn't contain all the created non-enumerable variable elements.");
michael@0 134
michael@0 135 is(localScope.target.querySelector(".enum").childNodes.length, 0,
michael@0 136 "The localScope doesn't contain all the created enumerable variable elements.");
michael@0 137 is(localScope.target.querySelector(".nonenum").childNodes.length, 10,
michael@0 138 "The localScope doesn't contain all the created non-enumerable variable elements.");
michael@0 139
michael@0 140 is(localVar5.target.querySelector(".enum").childNodes.length, 12,
michael@0 141 "The localVar5 doesn't contain all the created enumerable properties.");
michael@0 142 is(localVar5.target.querySelector(".nonenum").childNodes.length, 0,
michael@0 143 "The localVar5 doesn't contain all the created non-enumerable properties.");
michael@0 144
michael@0 145 is(localVar5.get("someProp5").target.querySelector(".enum").childNodes.length, 12,
michael@0 146 "The localVar5.someProp5 doesn't contain all the created enumerable properties.");
michael@0 147 is(localVar5.get("someProp5").target.querySelector(".nonenum").childNodes.length, 0,
michael@0 148 "The localVar5.someProp5 doesn't contain all the created non-enumerable properties.");
michael@0 149
michael@0 150 is(windowVar.target.querySelector(".value").getAttribute("value"), "Window",
michael@0 151 "The grip information for the windowVar wasn't set correctly.");
michael@0 152 is(documentVar.target.querySelector(".value").getAttribute("value"), "HTMLDocument",
michael@0 153 "The grip information for the documentVar wasn't set correctly.");
michael@0 154
michael@0 155 is(localVar0.target.querySelector(".value").getAttribute("value"), "42",
michael@0 156 "The grip information for the localVar0 wasn't set correctly.");
michael@0 157 is(localVar1.target.querySelector(".value").getAttribute("value"), "true",
michael@0 158 "The grip information for the localVar1 wasn't set correctly.");
michael@0 159 is(localVar2.target.querySelector(".value").getAttribute("value"), "\"nasu\"",
michael@0 160 "The grip information for the localVar2 wasn't set correctly.");
michael@0 161 is(localVar3.target.querySelector(".value").getAttribute("value"), "undefined",
michael@0 162 "The grip information for the localVar3 wasn't set correctly.");
michael@0 163 is(localVar4.target.querySelector(".value").getAttribute("value"), "null",
michael@0 164 "The grip information for the localVar4 wasn't set correctly.");
michael@0 165 is(localVar5.target.querySelector(".value").getAttribute("value"), "Object",
michael@0 166 "The grip information for the localVar5 wasn't set correctly.");
michael@0 167 is(localVar6.target.querySelector(".value").getAttribute("value"), "Infinity",
michael@0 168 "The grip information for the localVar6 wasn't set correctly.");
michael@0 169 is(localVar7.target.querySelector(".value").getAttribute("value"), "-Infinity",
michael@0 170 "The grip information for the localVar7 wasn't set correctly.");
michael@0 171 is(localVar8.target.querySelector(".value").getAttribute("value"), "NaN",
michael@0 172 "The grip information for the localVar8 wasn't set correctly.");
michael@0 173 is(localVar9.target.querySelector(".value").getAttribute("value"), "-0",
michael@0 174 "The grip information for the localVar9 wasn't set correctly.");
michael@0 175
michael@0 176 is(localVar5.get("someProp0").target.querySelector(".value").getAttribute("value"), "42",
michael@0 177 "The grip information for the someProp0 wasn't set correctly.");
michael@0 178 is(localVar5.get("someProp1").target.querySelector(".value").getAttribute("value"), "true",
michael@0 179 "The grip information for the someProp1 wasn't set correctly.");
michael@0 180 is(localVar5.get("someProp2").target.querySelector(".value").getAttribute("value"), "\"nasu\"",
michael@0 181 "The grip information for the someProp2 wasn't set correctly.");
michael@0 182 is(localVar5.get("someProp3").target.querySelector(".value").getAttribute("value"), "undefined",
michael@0 183 "The grip information for the someProp3 wasn't set correctly.");
michael@0 184 is(localVar5.get("someProp4").target.querySelector(".value").getAttribute("value"), "null",
michael@0 185 "The grip information for the someProp4 wasn't set correctly.");
michael@0 186 is(localVar5.get("someProp5").target.querySelector(".value").getAttribute("value"), "Object",
michael@0 187 "The grip information for the someProp5 wasn't set correctly.");
michael@0 188 is(localVar5.get("someProp6").target.querySelector(".value").getAttribute("value"), "Infinity",
michael@0 189 "The grip information for the someProp6 wasn't set correctly.");
michael@0 190 is(localVar5.get("someProp7").target.querySelector(".value").getAttribute("value"), "-Infinity",
michael@0 191 "The grip information for the someProp7 wasn't set correctly.");
michael@0 192 is(localVar5.get("someProp8").target.querySelector(".value").getAttribute("value"), "NaN",
michael@0 193 "The grip information for the someProp8 wasn't set correctly.");
michael@0 194 is(localVar5.get("someProp9").target.querySelector(".value").getAttribute("value"), "-0",
michael@0 195 "The grip information for the someProp9 wasn't set correctly.");
michael@0 196 is(localVar5.get("someUndefined").target.querySelector(".value").getAttribute("value"), "",
michael@0 197 "The grip information for the someUndefined wasn't set correctly.");
michael@0 198 is(localVar5.get("someAccessor").target.querySelector(".value").getAttribute("value"), "",
michael@0 199 "The grip information for the someAccessor wasn't set correctly.");
michael@0 200
michael@0 201 is(localVar5.get("someProp5").get("someProp0").target.querySelector(".value").getAttribute("value"), "42",
michael@0 202 "The grip information for the sub-someProp0 wasn't set correctly.");
michael@0 203 is(localVar5.get("someProp5").get("someProp1").target.querySelector(".value").getAttribute("value"), "true",
michael@0 204 "The grip information for the sub-someProp1 wasn't set correctly.");
michael@0 205 is(localVar5.get("someProp5").get("someProp2").target.querySelector(".value").getAttribute("value"), "\"nasu\"",
michael@0 206 "The grip information for the sub-someProp2 wasn't set correctly.");
michael@0 207 is(localVar5.get("someProp5").get("someProp3").target.querySelector(".value").getAttribute("value"), "undefined",
michael@0 208 "The grip information for the sub-someProp3 wasn't set correctly.");
michael@0 209 is(localVar5.get("someProp5").get("someProp4").target.querySelector(".value").getAttribute("value"), "null",
michael@0 210 "The grip information for the sub-someProp4 wasn't set correctly.");
michael@0 211 is(localVar5.get("someProp5").get("someProp5").target.querySelector(".value").getAttribute("value"), "Object",
michael@0 212 "The grip information for the sub-someProp5 wasn't set correctly.");
michael@0 213 is(localVar5.get("someProp5").get("someProp6").target.querySelector(".value").getAttribute("value"), "Infinity",
michael@0 214 "The grip information for the sub-someProp6 wasn't set correctly.");
michael@0 215 is(localVar5.get("someProp5").get("someProp7").target.querySelector(".value").getAttribute("value"), "-Infinity",
michael@0 216 "The grip information for the sub-someProp7 wasn't set correctly.");
michael@0 217 is(localVar5.get("someProp5").get("someProp8").target.querySelector(".value").getAttribute("value"), "NaN",
michael@0 218 "The grip information for the sub-someProp8 wasn't set correctly.");
michael@0 219 is(localVar5.get("someProp5").get("someProp9").target.querySelector(".value").getAttribute("value"), "-0",
michael@0 220 "The grip information for the sub-someProp9 wasn't set correctly.");
michael@0 221 is(localVar5.get("someProp5").get("someUndefined").target.querySelector(".value").getAttribute("value"), "",
michael@0 222 "The grip information for the sub-someUndefined wasn't set correctly.");
michael@0 223 is(localVar5.get("someProp5").get("someAccessor").target.querySelector(".value").getAttribute("value"), "",
michael@0 224 "The grip information for the sub-someAccessor wasn't set correctly.");
michael@0 225
michael@0 226 closeDebuggerAndFinish(aPanel);
michael@0 227 });
michael@0 228 }

mercurial