browser/devtools/debugger/test/browser_dbg_variables-view-05.js

changeset 0
6474c204b198
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/browser/devtools/debugger/test/browser_dbg_variables-view-05.js	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,228 @@
     1.4 +/* Any copyright is dedicated to the Public Domain.
     1.5 +   http://creativecommons.org/publicdomain/zero/1.0/ */
     1.6 +
     1.7 +/**
     1.8 + * Tests that grips are correctly applied to variables and properties.
     1.9 + */
    1.10 +
    1.11 +const TAB_URL = EXAMPLE_URL + "doc_recursion-stack.html";
    1.12 +
    1.13 +function test() {
    1.14 +  initDebugger(TAB_URL).then(([aTab, aDebuggee, aPanel]) => {
    1.15 +    let variables = aPanel.panelWin.DebuggerView.Variables;
    1.16 +
    1.17 +    let globalScope = variables.addScope("Test-Global");
    1.18 +    let localScope = variables.addScope("Test-Local");
    1.19 +
    1.20 +    ok(globalScope, "The globalScope hasn't been created correctly.");
    1.21 +    ok(localScope, "The localScope hasn't been created correctly.");
    1.22 +
    1.23 +    is(globalScope.target.querySelector(".separator"), null,
    1.24 +      "No separator string should be created for scopes (1).");
    1.25 +    is(localScope.target.querySelector(".separator"), null,
    1.26 +      "No separator string should be created for scopes (2).");
    1.27 +
    1.28 +    let windowVar = globalScope.addItem("window");
    1.29 +    let documentVar = globalScope.addItem("document");
    1.30 +
    1.31 +    ok(windowVar, "The windowVar hasn't been created correctly.");
    1.32 +    ok(documentVar, "The documentVar hasn't been created correctly.");
    1.33 +
    1.34 +    ok(windowVar.target.querySelector(".separator").hidden,
    1.35 +      "No separator string should be shown for variables without a grip (1).");
    1.36 +    ok(documentVar.target.querySelector(".separator").hidden,
    1.37 +      "No separator string should be shown for variables without a grip (2).");
    1.38 +
    1.39 +    windowVar.setGrip({ type: "object", class: "Window" });
    1.40 +    documentVar.setGrip({ type: "object", class: "HTMLDocument" });
    1.41 +
    1.42 +    is(windowVar.target.querySelector(".separator").hidden, false,
    1.43 +      "A separator string should now be shown after setting the grip (1).");
    1.44 +    is(documentVar.target.querySelector(".separator").hidden, false,
    1.45 +      "A separator string should now be shown after setting the grip (2).");
    1.46 +
    1.47 +    is(windowVar.target.querySelector(".separator").getAttribute("value"), ": ",
    1.48 +      "The separator string label is correct (1).");
    1.49 +    is(documentVar.target.querySelector(".separator").getAttribute("value"), ": ",
    1.50 +      "The separator string label is correct (2).");
    1.51 +
    1.52 +    let localVar0 = localScope.addItem("localVar0");
    1.53 +    let localVar1 = localScope.addItem("localVar1");
    1.54 +    let localVar2 = localScope.addItem("localVar2");
    1.55 +    let localVar3 = localScope.addItem("localVar3");
    1.56 +    let localVar4 = localScope.addItem("localVar4");
    1.57 +    let localVar5 = localScope.addItem("localVar5");
    1.58 +
    1.59 +    let localVar6 = localScope.addItem("localVar6");
    1.60 +    let localVar7 = localScope.addItem("localVar7");
    1.61 +    let localVar8 = localScope.addItem("localVar8");
    1.62 +    let localVar9 = localScope.addItem("localVar9");
    1.63 +
    1.64 +    ok(localVar0, "The localVar0 hasn't been created correctly.");
    1.65 +    ok(localVar1, "The localVar1 hasn't been created correctly.");
    1.66 +    ok(localVar2, "The localVar2 hasn't been created correctly.");
    1.67 +    ok(localVar3, "The localVar3 hasn't been created correctly.");
    1.68 +    ok(localVar4, "The localVar4 hasn't been created correctly.");
    1.69 +    ok(localVar5, "The localVar5 hasn't been created correctly.");
    1.70 +    ok(localVar6, "The localVar6 hasn't been created correctly.");
    1.71 +    ok(localVar7, "The localVar7 hasn't been created correctly.");
    1.72 +    ok(localVar8, "The localVar8 hasn't been created correctly.");
    1.73 +    ok(localVar9, "The localVar9 hasn't been created correctly.");
    1.74 +
    1.75 +    localVar0.setGrip(42);
    1.76 +    localVar1.setGrip(true);
    1.77 +    localVar2.setGrip("nasu");
    1.78 +
    1.79 +    localVar3.setGrip({ type: "undefined" });
    1.80 +    localVar4.setGrip({ type: "null" });
    1.81 +    localVar5.setGrip({ type: "object", class: "Object" });
    1.82 +    localVar6.setGrip({ type: "Infinity" });
    1.83 +    localVar7.setGrip({ type: "-Infinity" });
    1.84 +    localVar8.setGrip({ type: "NaN" });
    1.85 +    localVar9.setGrip({ type: "-0" });
    1.86 +
    1.87 +    localVar5.addItems({
    1.88 +      someProp0: { value: 42, enumerable: true },
    1.89 +      someProp1: { value: true, enumerable: true },
    1.90 +      someProp2: { value: "nasu", enumerable: true },
    1.91 +      someProp3: { value: { type: "undefined" }, enumerable: true },
    1.92 +      someProp4: { value: { type: "null" }, enumerable: true },
    1.93 +      someProp5: { value: { type: "object", class: "Object" }, enumerable: true },
    1.94 +      someProp6: { value: { type: "Infinity" }, enumerable: true },
    1.95 +      someProp7: { value: { type: "-Infinity" }, enumerable: true },
    1.96 +      someProp8: { value: { type: "NaN" }, enumerable: true },
    1.97 +      someProp9: { value: { type: "-0" }, enumerable: true },
    1.98 +      someUndefined: {
    1.99 +        get: { type: "undefined" },
   1.100 +        set: { type: "undefined" },
   1.101 +        enumerable: true
   1.102 +      },
   1.103 +      someAccessor: {
   1.104 +        get: { type: "object", class: "Function" },
   1.105 +        set: { type: "undefined" },
   1.106 +        enumerable: true
   1.107 +      }
   1.108 +    });
   1.109 +
   1.110 +    localVar5.get("someProp5").addItems({
   1.111 +      someProp0: { value: 42, enumerable: true },
   1.112 +      someProp1: { value: true, enumerable: true },
   1.113 +      someProp2: { value: "nasu", enumerable: true },
   1.114 +      someProp3: { value: { type: "undefined" }, enumerable: true },
   1.115 +      someProp4: { value: { type: "null" }, enumerable: true },
   1.116 +      someProp5: { value: { type: "object", class: "Object" }, enumerable: true },
   1.117 +      someProp6: { value: { type: "Infinity" }, enumerable: true },
   1.118 +      someProp7: { value: { type: "-Infinity" }, enumerable: true },
   1.119 +      someProp8: { value: { type: "NaN" }, enumerable: true },
   1.120 +      someProp9: { value: { type: "-0" }, enumerable: true },
   1.121 +      someUndefined: {
   1.122 +        get: { type: "undefined" },
   1.123 +        set: { type: "undefined" },
   1.124 +        enumerable: true
   1.125 +      },
   1.126 +      someAccessor: {
   1.127 +        get: { type: "object", class: "Function" },
   1.128 +        set: { type: "undefined" },
   1.129 +        enumerable: true
   1.130 +      }
   1.131 +    });
   1.132 +
   1.133 +    is(globalScope.target.querySelector(".enum").childNodes.length, 0,
   1.134 +      "The globalScope doesn't contain all the created enumerable variable elements.");
   1.135 +    is(globalScope.target.querySelector(".nonenum").childNodes.length, 2,
   1.136 +      "The globalScope doesn't contain all the created non-enumerable variable elements.");
   1.137 +
   1.138 +    is(localScope.target.querySelector(".enum").childNodes.length, 0,
   1.139 +      "The localScope doesn't contain all the created enumerable variable elements.");
   1.140 +    is(localScope.target.querySelector(".nonenum").childNodes.length, 10,
   1.141 +      "The localScope doesn't contain all the created non-enumerable variable elements.");
   1.142 +
   1.143 +    is(localVar5.target.querySelector(".enum").childNodes.length, 12,
   1.144 +      "The localVar5 doesn't contain all the created enumerable properties.");
   1.145 +    is(localVar5.target.querySelector(".nonenum").childNodes.length, 0,
   1.146 +      "The localVar5 doesn't contain all the created non-enumerable properties.");
   1.147 +
   1.148 +    is(localVar5.get("someProp5").target.querySelector(".enum").childNodes.length, 12,
   1.149 +      "The localVar5.someProp5 doesn't contain all the created enumerable properties.");
   1.150 +    is(localVar5.get("someProp5").target.querySelector(".nonenum").childNodes.length, 0,
   1.151 +      "The localVar5.someProp5 doesn't contain all the created non-enumerable properties.");
   1.152 +
   1.153 +    is(windowVar.target.querySelector(".value").getAttribute("value"), "Window",
   1.154 +      "The grip information for the windowVar wasn't set correctly.");
   1.155 +    is(documentVar.target.querySelector(".value").getAttribute("value"), "HTMLDocument",
   1.156 +      "The grip information for the documentVar wasn't set correctly.");
   1.157 +
   1.158 +    is(localVar0.target.querySelector(".value").getAttribute("value"), "42",
   1.159 +      "The grip information for the localVar0 wasn't set correctly.");
   1.160 +    is(localVar1.target.querySelector(".value").getAttribute("value"), "true",
   1.161 +      "The grip information for the localVar1 wasn't set correctly.");
   1.162 +    is(localVar2.target.querySelector(".value").getAttribute("value"), "\"nasu\"",
   1.163 +      "The grip information for the localVar2 wasn't set correctly.");
   1.164 +    is(localVar3.target.querySelector(".value").getAttribute("value"), "undefined",
   1.165 +      "The grip information for the localVar3 wasn't set correctly.");
   1.166 +    is(localVar4.target.querySelector(".value").getAttribute("value"), "null",
   1.167 +      "The grip information for the localVar4 wasn't set correctly.");
   1.168 +    is(localVar5.target.querySelector(".value").getAttribute("value"), "Object",
   1.169 +      "The grip information for the localVar5 wasn't set correctly.");
   1.170 +    is(localVar6.target.querySelector(".value").getAttribute("value"), "Infinity",
   1.171 +      "The grip information for the localVar6 wasn't set correctly.");
   1.172 +    is(localVar7.target.querySelector(".value").getAttribute("value"), "-Infinity",
   1.173 +      "The grip information for the localVar7 wasn't set correctly.");
   1.174 +    is(localVar8.target.querySelector(".value").getAttribute("value"), "NaN",
   1.175 +      "The grip information for the localVar8 wasn't set correctly.");
   1.176 +    is(localVar9.target.querySelector(".value").getAttribute("value"), "-0",
   1.177 +      "The grip information for the localVar9 wasn't set correctly.");
   1.178 +
   1.179 +    is(localVar5.get("someProp0").target.querySelector(".value").getAttribute("value"), "42",
   1.180 +      "The grip information for the someProp0 wasn't set correctly.");
   1.181 +    is(localVar5.get("someProp1").target.querySelector(".value").getAttribute("value"), "true",
   1.182 +      "The grip information for the someProp1 wasn't set correctly.");
   1.183 +    is(localVar5.get("someProp2").target.querySelector(".value").getAttribute("value"), "\"nasu\"",
   1.184 +      "The grip information for the someProp2 wasn't set correctly.");
   1.185 +    is(localVar5.get("someProp3").target.querySelector(".value").getAttribute("value"), "undefined",
   1.186 +      "The grip information for the someProp3 wasn't set correctly.");
   1.187 +    is(localVar5.get("someProp4").target.querySelector(".value").getAttribute("value"), "null",
   1.188 +      "The grip information for the someProp4 wasn't set correctly.");
   1.189 +    is(localVar5.get("someProp5").target.querySelector(".value").getAttribute("value"), "Object",
   1.190 +      "The grip information for the someProp5 wasn't set correctly.");
   1.191 +    is(localVar5.get("someProp6").target.querySelector(".value").getAttribute("value"), "Infinity",
   1.192 +      "The grip information for the someProp6 wasn't set correctly.");
   1.193 +    is(localVar5.get("someProp7").target.querySelector(".value").getAttribute("value"), "-Infinity",
   1.194 +      "The grip information for the someProp7 wasn't set correctly.");
   1.195 +    is(localVar5.get("someProp8").target.querySelector(".value").getAttribute("value"), "NaN",
   1.196 +      "The grip information for the someProp8 wasn't set correctly.");
   1.197 +    is(localVar5.get("someProp9").target.querySelector(".value").getAttribute("value"), "-0",
   1.198 +      "The grip information for the someProp9 wasn't set correctly.");
   1.199 +    is(localVar5.get("someUndefined").target.querySelector(".value").getAttribute("value"), "",
   1.200 +      "The grip information for the someUndefined wasn't set correctly.");
   1.201 +    is(localVar5.get("someAccessor").target.querySelector(".value").getAttribute("value"), "",
   1.202 +      "The grip information for the someAccessor wasn't set correctly.");
   1.203 +
   1.204 +    is(localVar5.get("someProp5").get("someProp0").target.querySelector(".value").getAttribute("value"), "42",
   1.205 +      "The grip information for the sub-someProp0 wasn't set correctly.");
   1.206 +    is(localVar5.get("someProp5").get("someProp1").target.querySelector(".value").getAttribute("value"), "true",
   1.207 +      "The grip information for the sub-someProp1 wasn't set correctly.");
   1.208 +    is(localVar5.get("someProp5").get("someProp2").target.querySelector(".value").getAttribute("value"), "\"nasu\"",
   1.209 +      "The grip information for the sub-someProp2 wasn't set correctly.");
   1.210 +    is(localVar5.get("someProp5").get("someProp3").target.querySelector(".value").getAttribute("value"), "undefined",
   1.211 +      "The grip information for the sub-someProp3 wasn't set correctly.");
   1.212 +    is(localVar5.get("someProp5").get("someProp4").target.querySelector(".value").getAttribute("value"), "null",
   1.213 +      "The grip information for the sub-someProp4 wasn't set correctly.");
   1.214 +    is(localVar5.get("someProp5").get("someProp5").target.querySelector(".value").getAttribute("value"), "Object",
   1.215 +      "The grip information for the sub-someProp5 wasn't set correctly.");
   1.216 +    is(localVar5.get("someProp5").get("someProp6").target.querySelector(".value").getAttribute("value"), "Infinity",
   1.217 +      "The grip information for the sub-someProp6 wasn't set correctly.");
   1.218 +    is(localVar5.get("someProp5").get("someProp7").target.querySelector(".value").getAttribute("value"), "-Infinity",
   1.219 +      "The grip information for the sub-someProp7 wasn't set correctly.");
   1.220 +    is(localVar5.get("someProp5").get("someProp8").target.querySelector(".value").getAttribute("value"), "NaN",
   1.221 +      "The grip information for the sub-someProp8 wasn't set correctly.");
   1.222 +    is(localVar5.get("someProp5").get("someProp9").target.querySelector(".value").getAttribute("value"), "-0",
   1.223 +      "The grip information for the sub-someProp9 wasn't set correctly.");
   1.224 +    is(localVar5.get("someProp5").get("someUndefined").target.querySelector(".value").getAttribute("value"), "",
   1.225 +      "The grip information for the sub-someUndefined wasn't set correctly.");
   1.226 +    is(localVar5.get("someProp5").get("someAccessor").target.querySelector(".value").getAttribute("value"), "",
   1.227 +      "The grip information for the sub-someAccessor wasn't set correctly.");
   1.228 +
   1.229 +    closeDebuggerAndFinish(aPanel);
   1.230 +  });
   1.231 +}

mercurial