toolkit/devtools/webconsole/test/test_bug819670_getter_throws.html

Thu, 22 Jan 2015 13:21:57 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 22 Jan 2015 13:21:57 +0100
branch
TOR_BUG_9701
changeset 15
b8a032363ba2
permissions
-rw-r--r--

Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6

     1 <!DOCTYPE HTML>
     2 <html lang="en">
     3 <head>
     4   <meta charset="utf8">
     5   <title>Test for Bug 819670 - Web console object inspection does not handle native getters throwing very well</title>
     6   <script type="text/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
     7   <script type="text/javascript;version=1.8" src="common.js"></script>
     8   <!-- Any copyright is dedicated to the Public Domain.
     9      - http://creativecommons.org/publicdomain/zero/1.0/ -->
    10 </head>
    11 <body>
    12 <p>Test for Bug 819670 - Web console object inspection does not handle native getters throwing very well</p>
    14 <script class="testbody" type="text/javascript;version=1.8">
    15 SimpleTest.waitForExplicitFinish();
    17 function startTest()
    18 {
    19   removeEventListener("load", startTest);
    20   attachConsole([], onAttach, true);
    21 }
    23 function onAttach(aState, aResponse)
    24 {
    25   onEvaluate = onEvaluate.bind(null, aState);
    26   aState.client.evaluateJS("document.__proto__", onEvaluate);
    27 }
    29 function onEvaluate(aState, aResponse)
    30 {
    31   checkObject(aResponse, {
    32     from: aState.actor,
    33     input: "document.__proto__",
    34     result: {
    35       type: "object",
    36       actor: /[a-z]/,
    37     },
    38   });
    40   ok(!aResponse.exception, "no eval exception");
    41   ok(!aResponse.helperResult, "no helper result");
    43   onInspect = onInspect.bind(null, aState);
    44   let client = new ObjectClient(aState.dbgClient, aResponse.result);
    45   client.getPrototypeAndProperties(onInspect);
    46 }
    48 function onInspect(aState, aResponse)
    49 {
    50   ok(!aResponse.error, "no response error");
    52   let expectedProps = {
    53     "addBroadcastListenerFor": { value: { type: "object" } },
    54     "commandDispatcher": { get: { type: "object" } },
    55     "getBoxObjectFor": { value: { type: "object" } },
    56     "getElementsByAttribute": { value: { type: "object" } },
    57   };
    59   let props = aResponse.ownProperties;
    60   ok(props, "response properties available");
    62   if (props) {
    63     ok(Object.keys(props).length > Object.keys(expectedProps).length,
    64        "number of enumerable properties");
    65     checkObject(props, expectedProps);
    66   }
    68   closeDebugger(aState, function() {
    69     SimpleTest.finish();
    70   });
    71 }
    73 addEventListener("load", startTest);
    74 </script>
    75 </body>
    76 </html>

mercurial