diff options
Diffstat (limited to 'browser/devtools/webconsole/test/browser_netpanel_longstring_expand.js')
-rw-r--r-- | browser/devtools/webconsole/test/browser_netpanel_longstring_expand.js | 309 |
1 files changed, 0 insertions, 309 deletions
diff --git a/browser/devtools/webconsole/test/browser_netpanel_longstring_expand.js b/browser/devtools/webconsole/test/browser_netpanel_longstring_expand.js deleted file mode 100644 index 8488ad37e..000000000 --- a/browser/devtools/webconsole/test/browser_netpanel_longstring_expand.js +++ /dev/null @@ -1,309 +0,0 @@ -/* vim:set ts=2 sw=2 sts=2 et: */ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -// Tests that the network panel works with LongStringActors. - -const TEST_URI = "http://example.com/browser/browser/devtools/webconsole/test/test-console.html"; -const TEST_IMG = "http://example.com/browser/browser/devtools/webconsole/test/test-image.png"; - -const TEST_IMG_BASE64 = - "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAVRJREFU" + - "OI2lk7FLw0AUxr+YpC1CBqcMWfsvCCLdXFzqEJCgDl1EQRGxg9AhSBEJONhFhG52UCuFDjq5dxD8" + - "FwoO0qGDOBQkl7vLOeWa2EQDffDBvTu+373Hu1OEEJgntGgxGD6J+7fLXKbt5VNUyhsKAChRBQcP" + - "FVFeWskFGH694mZroCQqCLlAwPxcgJBP254CmAD5B7C7dgHLMLF3uzoL4DQEod+Z5sP1FizDxGgy" + - "BqfhLID9AahX29J89bwPFgMsSEAQglAf9WobhPpScbPXr4FQHyzIADTsDizDRMPuIOC+zEeTMZo9" + - "BwH3EfAMACccbtfGaDKGZZg423yUZrdrg3EqxQlPr0BTdTR7joREN2uqnlBmCwW1hIJagtev4f3z" + - "A16/JvfiigMSYyzqJXlw/XKUyOORMUaBor6YavgdjKa8xGOnidadmwtwsnMu18q83/kHSou+bFND" + - "Dr4AAAAASUVORK5CYII="; - -let testDriver; - -function test() { - addTab(TEST_URI); - browser.addEventListener("load", function onLoad() { - browser.removeEventListener("load", onLoad, true); - openConsole(null, testNetworkPanel); - }, true); -} - -function testNetworkPanel() { - testDriver = testGen(); - testDriver.next(); -} - -function checkIsVisible(aPanel, aList) { - for (let id in aList) { - let node = aPanel.document.getElementById(id); - let isVisible = aList[id]; - is(node.style.display, (isVisible ? "block" : "none"), id + " isVisible=" + isVisible); - } -} - -function checkNodeContent(aPanel, aId, aContent) { - let node = aPanel.document.getElementById(aId); - if (node == null) { - ok(false, "Tried to access node " + aId + " that doesn't exist!"); - } - else if (node.textContent.indexOf(aContent) != -1) { - ok(true, "checking content of " + aId); - } - else { - ok(false, "Got false value for " + aId + ": " + node.textContent + " doesn't have " + aContent); - } -} - -function checkNodeKeyValue(aPanel, aId, aKey, aValue) { - let node = aPanel.document.getElementById(aId); - - let headers = node.querySelectorAll("th"); - for (let i = 0; i < headers.length; i++) { - if (headers[i].textContent == (aKey + ":")) { - is(headers[i].nextElementSibling.textContent, aValue, - "checking content of " + aId + " for key " + aKey); - return; - } - } - - ok(false, "content check failed for " + aId + ", key " + aKey); -} - -function testGen() { - let hud = HUDService.getHudByWindow(content); - let filterBox = hud.ui.filterBox; - - let headerValue = (new Array(456)).join("fooz bar"); - let headerValueGrip = { - type: "longString", - initial: headerValue.substr(0, 123), - length: headerValue.length, - actor: "faktor", - _fullString: headerValue, - }; - - let imageContentGrip = { - type: "longString", - initial: TEST_IMG_BASE64.substr(0, 143), - length: TEST_IMG_BASE64.length, - actor: "faktor2", - _fullString: TEST_IMG_BASE64, - }; - - let postDataValue = (new Array(123)).join("post me"); - let postDataGrip = { - type: "longString", - initial: postDataValue.substr(0, 172), - length: postDataValue.length, - actor: "faktor3", - _fullString: postDataValue, - }; - - let httpActivity = { - updates: ["responseContent", "eventTimings"], - discardRequestBody: false, - discardResponseBody: false, - startedDateTime: (new Date()).toISOString(), - request: { - url: TEST_IMG, - method: "GET", - cookies: [], - headers: [ - { name: "foo", value: "bar" }, - { name: "loongstring", value: headerValueGrip }, - ], - postData: { text: postDataGrip }, - }, - response: { - httpVersion: "HTTP/3.14", - status: 2012, - statusText: "ddahl likes tacos :)", - headers: [ - { name: "Content-Type", value: "image/png" }, - ], - content: { mimeType: "image/png", text: imageContentGrip }, - cookies: [], - }, - timings: { wait: 15, receive: 23 }, - }; - - let networkPanel = hud.ui.openNetworkPanel(filterBox, httpActivity); - - is(filterBox._netPanel, networkPanel, - "Network panel stored on the anchor object"); - - networkPanel._onUpdate = function() { - networkPanel._onUpdate = null; - executeSoon(function() { - testDriver.next(); - }); - }; - - yield; - - info("test 1: check if a header value is expandable"); - - checkIsVisible(networkPanel, { - requestCookie: false, - requestFormData: false, - requestBody: false, - requestBodyFetchLink: true, - responseContainer: true, - responseBody: false, - responseNoBody: false, - responseImage: true, - responseImageCached: false, - responseBodyFetchLink: true, - }); - - checkNodeKeyValue(networkPanel, "requestHeadersContent", "foo", "bar"); - checkNodeKeyValue(networkPanel, "requestHeadersContent", "loongstring", - headerValueGrip.initial + "[\u2026]"); - - let webConsoleClient = networkPanel.webconsole.webConsoleClient; - let longStringFn = webConsoleClient.longString; - - let expectedGrip = headerValueGrip; - - function longStringClientProvider(aLongString) - { - is(aLongString, expectedGrip, - "longString grip is correct"); - - return { - initial: expectedGrip.initial, - length: expectedGrip.length, - substring: function(aStart, aEnd, aCallback) { - is(aStart, expectedGrip.initial.length, - "substring start is correct"); - is(aEnd, expectedGrip.length, - "substring end is correct"); - - executeSoon(function() { - aCallback({ - substring: expectedGrip._fullString.substring(aStart, aEnd), - }); - - executeSoon(function() { - testDriver.next(); - }); - }); - }, - }; - } - - webConsoleClient.longString = longStringClientProvider; - - let clickable = networkPanel.document - .querySelector("#requestHeadersContent .longStringEllipsis"); - ok(clickable, "long string ellipsis is shown"); - - EventUtils.sendMouseEvent({ type: "mousedown"}, clickable, - networkPanel.document.defaultView); - - yield; - - clickable = networkPanel.document - .querySelector("#requestHeadersContent .longStringEllipsis"); - ok(!clickable, "long string ellipsis is not shown"); - - checkNodeKeyValue(networkPanel, "requestHeadersContent", "loongstring", - expectedGrip._fullString); - - info("test 2: check that response body image fetching works"); - expectedGrip = imageContentGrip; - - let imgNode = networkPanel.document.getElementById("responseImageNode"); - ok(!imgNode.getAttribute("src"), "no image is displayed"); - - clickable = networkPanel.document.querySelector("#responseBodyFetchLink"); - EventUtils.sendMouseEvent({ type: "mousedown"}, clickable, - networkPanel.document.defaultView); - - yield; - - imgNode = networkPanel.document.getElementById("responseImageNode"); - is(imgNode.getAttribute("src"), "data:image/png;base64," + TEST_IMG_BASE64, - "displayed image is correct"); - is(clickable.style.display, "none", "#responseBodyFetchLink is not visible"); - - info("test 3: expand the request body"); - - expectedGrip = postDataGrip; - - clickable = networkPanel.document.querySelector("#requestBodyFetchLink"); - EventUtils.sendMouseEvent({ type: "mousedown"}, clickable, - networkPanel.document.defaultView); - yield; - - is(clickable.style.display, "none", "#requestBodyFetchLink is not visible"); - - checkIsVisible(networkPanel, { - requestBody: true, - requestBodyFetchLink: false, - }); - - checkNodeContent(networkPanel, "requestBodyContent", expectedGrip._fullString); - - webConsoleClient.longString = longStringFn; - - networkPanel.panel.hidePopup(); - - info("test 4: reponse body long text"); - - httpActivity.response.content.mimeType = "text/plain"; - httpActivity.response.headers[0].value = "text/plain"; - - expectedGrip = imageContentGrip; - - // Reset response.content.text to avoid caching of the full string. - httpActivity.response.content.text = expectedGrip; - - networkPanel = hud.ui.openNetworkPanel(filterBox, httpActivity); - is(filterBox._netPanel, networkPanel, - "Network panel stored on httpActivity object"); - - networkPanel._onUpdate = function() { - networkPanel._onUpdate = null; - executeSoon(function() { - testDriver.next(); - }); - }; - - yield; - - checkIsVisible(networkPanel, { - requestCookie: false, - requestFormData: false, - requestBody: true, - requestBodyFetchLink: false, - responseContainer: true, - responseBody: true, - responseNoBody: false, - responseImage: false, - responseImageCached: false, - responseBodyFetchLink: true, - }); - - checkNodeContent(networkPanel, "responseBodyContent", expectedGrip.initial); - - webConsoleClient.longString = longStringClientProvider; - - clickable = networkPanel.document.querySelector("#responseBodyFetchLink"); - EventUtils.sendMouseEvent({ type: "mousedown"}, clickable, - networkPanel.document.defaultView); - - yield; - - webConsoleClient.longString = longStringFn; - is(clickable.style.display, "none", "#responseBodyFetchLink is not visible"); - checkNodeContent(networkPanel, "responseBodyContent", expectedGrip._fullString); - - networkPanel.panel.hidePopup(); - - // All done! - testDriver = null; - executeSoon(finishTest); - - yield; -} |