gecko/browser/devtools/netmonitor/test/browser_net_raw_headers.js

73 lines
2.4 KiB
JavaScript

/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
let gPanelWin;
let gPanelDoc;
/**
* Tests if showing raw headers works.
*/
function test() {
initNetMonitor(POST_DATA_URL).then(([aTab, aDebuggee, aMonitor]) => {
info("Starting test... ");
gPanelWin = aMonitor.panelWin;
gPanelDoc = gPanelWin.document;
let { document, Editor, NetMonitorView } = gPanelWin;
let { RequestsMenu } = NetMonitorView;
let TAB_UPDATED = gPanelWin.EVENTS.TAB_UPDATED;
RequestsMenu.lazyUpdate = false;
waitForNetworkEvents(aMonitor, 0, 2).then(() => {
let origItem = RequestsMenu.getItemAtIndex(0);
RequestsMenu.selectedItem = origItem;
waitFor(aMonitor.panelWin, TAB_UPDATED).then(() => {
EventUtils.sendMouseEvent({ type: "click" }, document.getElementById("toggle-raw-headers"));
testShowRawHeaders(origItem.attachment);
EventUtils.sendMouseEvent({ type: "click" }, document.getElementById("toggle-raw-headers"));
testHideRawHeaders(document);
finishUp(aMonitor);
});
});
aDebuggee.performRequests();
});
}
/*
* Tests that raw headers were displayed correctly
*/
function testShowRawHeaders(aData) {
let requestHeaders = gPanelDoc.getElementById("raw-request-headers-textarea").value;
for (let header of aData.requestHeaders.headers) {
ok(requestHeaders.indexOf(header.name + ": " + header.value) >= 0, "textarea contains request headers");
}
let responseHeaders = gPanelDoc.getElementById("raw-response-headers-textarea").value;
for (let header of aData.responseHeaders.headers) {
ok(responseHeaders.indexOf(header.name + ": " + header.value) >= 0, "textarea contains response headers");
}
}
/*
* Tests that raw headers textareas are hidden and empty
*/
function testHideRawHeaders(document) {
let rawHeadersHidden = document.getElementById("raw-headers").getAttribute("hidden");
let requestTextarea = document.getElementById("raw-request-headers-textarea");
let responseTextare = document.getElementById("raw-response-headers-textarea");
ok(rawHeadersHidden, "raw headers textareas are hidden");
ok(requestTextarea.value == '', "raw request headers textarea is empty");
ok(responseTextare.value == '', "raw response headers textarea is empty");
}
function finishUp(aMonitor) {
gPanelWin = null;
gPanelDoc = null;
teardown(aMonitor).then(finish);
}