browser/devtools/netmonitor/test/browser_net_status-codes.js

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 /* Any copyright is dedicated to the Public Domain.
     2    http://creativecommons.org/publicdomain/zero/1.0/ */
     4 /**
     5  * Tests if requests display the correct status code and text in the UI.
     6  */
     8 function test() {
     9   initNetMonitor(STATUS_CODES_URL).then(([aTab, aDebuggee, aMonitor]) => {
    10     info("Starting test... ");
    12     let { document, L10N, NetMonitorView } = aMonitor.panelWin;
    13     let { RequestsMenu, NetworkDetails } = NetMonitorView;
    15     RequestsMenu.lazyUpdate = false;
    16     NetworkDetails._params.lazyEmpty = false;
    18     waitForNetworkEvents(aMonitor, 5).then(() => {
    19       let requestItems = [];
    21       verifyRequestItemTarget(requestItems[0] = RequestsMenu.getItemAtIndex(0),
    22         "GET", STATUS_CODES_SJS + "?sts=100", {
    23           status: 101,
    24           statusText: "Switching Protocols",
    25           type: "plain",
    26           fullMimeType: "text/plain; charset=utf-8",
    27           size: L10N.getFormatStrWithNumbers("networkMenu.sizeKB", 0),
    28           time: true
    29         });
    30       verifyRequestItemTarget(requestItems[1] = RequestsMenu.getItemAtIndex(1),
    31         "GET", STATUS_CODES_SJS + "?sts=200", {
    32           status: 202,
    33           statusText: "Created",
    34           type: "plain",
    35           fullMimeType: "text/plain; charset=utf-8",
    36           size: L10N.getFormatStrWithNumbers("networkMenu.sizeKB", 0.02),
    37           time: true
    38         });
    39       verifyRequestItemTarget(requestItems[2] = RequestsMenu.getItemAtIndex(2),
    40         "GET", STATUS_CODES_SJS + "?sts=300", {
    41           status: 303,
    42           statusText: "See Other",
    43           type: "plain",
    44           fullMimeType: "text/plain; charset=utf-8",
    45           size: L10N.getFormatStrWithNumbers("networkMenu.sizeKB", 0),
    46           time: true
    47         });
    48       verifyRequestItemTarget(requestItems[3] = RequestsMenu.getItemAtIndex(3),
    49         "GET", STATUS_CODES_SJS + "?sts=400", {
    50           status: 404,
    51           statusText: "Not Found",
    52           type: "plain",
    53           fullMimeType: "text/plain; charset=utf-8",
    54           size: L10N.getFormatStrWithNumbers("networkMenu.sizeKB", 0.02),
    55           time: true
    56         });
    57       verifyRequestItemTarget(requestItems[4] = RequestsMenu.getItemAtIndex(4),
    58         "GET", STATUS_CODES_SJS + "?sts=500", {
    59           status: 501,
    60           statusText: "Not Implemented",
    61           type: "plain",
    62           fullMimeType: "text/plain; charset=utf-8",
    63           size: L10N.getFormatStrWithNumbers("networkMenu.sizeKB", 0.02),
    64           time: true
    65         });
    67       // Test summaries...
    68       EventUtils.sendMouseEvent({ type: "mousedown" },
    69         document.querySelectorAll("#details-pane tab")[0]);
    71       EventUtils.sendMouseEvent({ type: "mousedown" }, requestItems[0].target);
    72       testSummary("GET", STATUS_CODES_SJS + "?sts=100", "101", "Switching Protocols");
    74       EventUtils.sendMouseEvent({ type: "mousedown" }, requestItems[1].target);
    75       testSummary("GET", STATUS_CODES_SJS + "?sts=200", "202", "Created");
    77       EventUtils.sendMouseEvent({ type: "mousedown" }, requestItems[2].target);
    78       testSummary("GET", STATUS_CODES_SJS + "?sts=300", "303", "See Other");
    80       EventUtils.sendMouseEvent({ type: "mousedown" }, requestItems[3].target);
    81       testSummary("GET", STATUS_CODES_SJS + "?sts=400", "404", "Not Found");
    83       EventUtils.sendMouseEvent({ type: "mousedown" }, requestItems[4].target);
    84       testSummary("GET", STATUS_CODES_SJS + "?sts=500", "501", "Not Implemented");
    86       // Test params...
    87       EventUtils.sendMouseEvent({ type: "mousedown" },
    88         document.querySelectorAll("#details-pane tab")[2]);
    90       EventUtils.sendMouseEvent({ type: "mousedown" }, requestItems[0].target);
    91       testParamsTab("\"100\"");
    93       EventUtils.sendMouseEvent({ type: "mousedown" }, requestItems[1].target);
    94       testParamsTab("\"200\"");
    96       EventUtils.sendMouseEvent({ type: "mousedown" }, requestItems[2].target);
    97       testParamsTab("\"300\"");
    99       EventUtils.sendMouseEvent({ type: "mousedown" }, requestItems[3].target);
   100       testParamsTab("\"400\"");
   102       EventUtils.sendMouseEvent({ type: "mousedown" }, requestItems[4].target);
   103       testParamsTab("\"500\"");
   105       // We're done here.
   106       teardown(aMonitor).then(finish);
   108       function testSummary(aMethod, aUrl, aStatus, aStatusText) {
   109         let tab = document.querySelectorAll("#details-pane tab")[0];
   110         let tabpanel = document.querySelectorAll("#details-pane tabpanel")[0];
   112         is(tabpanel.querySelector("#headers-summary-url-value").getAttribute("value"),
   113           aUrl, "The url summary value is incorrect.");
   114         is(tabpanel.querySelector("#headers-summary-method-value").getAttribute("value"),
   115           aMethod, "The method summary value is incorrect.");
   116         is(tabpanel.querySelector("#headers-summary-status-circle").getAttribute("code"),
   117           aStatus, "The status summary code is incorrect.");
   118         is(tabpanel.querySelector("#headers-summary-status-value").getAttribute("value"),
   119           aStatus + " " + aStatusText, "The status summary value is incorrect.");
   120       }
   122       function testParamsTab(aStatusParamValue) {
   123         let tab = document.querySelectorAll("#details-pane tab")[2];
   124         let tabpanel = document.querySelectorAll("#details-pane tabpanel")[2];
   126         is(tabpanel.querySelectorAll(".variables-view-scope").length, 1,
   127           "There should be 1 param scope displayed in this tabpanel.");
   128         is(tabpanel.querySelectorAll(".variable-or-property").length, 1,
   129           "There should be 1 param value displayed in this tabpanel.");
   130         is(tabpanel.querySelectorAll(".variables-view-empty-notice").length, 0,
   131           "The empty notice should not be displayed in this tabpanel.");
   133         let paramsScope = tabpanel.querySelectorAll(".variables-view-scope")[0];
   135         is(paramsScope.querySelector(".name").getAttribute("value"),
   136           L10N.getStr("paramsQueryString"),
   137           "The params scope doesn't have the correct title.");
   139         is(paramsScope.querySelectorAll(".variables-view-variable .name")[0].getAttribute("value"),
   140           "sts", "The param name was incorrect.");
   141         is(paramsScope.querySelectorAll(".variables-view-variable .value")[0].getAttribute("value"),
   142           aStatusParamValue, "The param value was incorrect.");
   144         is(tabpanel.querySelector("#request-params-box")
   145           .hasAttribute("hidden"), false,
   146           "The request params box should not be hidden.");
   147         is(tabpanel.querySelector("#request-post-data-textarea-box")
   148           .hasAttribute("hidden"), true,
   149           "The request post data textarea box should be hidden.");
   150       }
   151     });
   153     aDebuggee.performRequests();
   154   });
   155 }

mercurial