forked from mirrors/gecko-dev
Differential Revision: https://phabricator.services.mozilla.com/D19641 --HG-- rename : devtools/client/sourceeditor/.eslintrc.js => devtools/client/shared/sourceeditor/.eslintrc.js rename : devtools/client/sourceeditor/README => devtools/client/shared/sourceeditor/README rename : devtools/client/sourceeditor/autocomplete.js => devtools/client/shared/sourceeditor/autocomplete.js rename : devtools/client/sourceeditor/codemirror/LICENSE => devtools/client/shared/sourceeditor/codemirror/LICENSE rename : devtools/client/sourceeditor/codemirror/addon/comment/comment.js => devtools/client/shared/sourceeditor/codemirror/addon/comment/comment.js rename : devtools/client/sourceeditor/codemirror/addon/comment/continuecomment.js => devtools/client/shared/sourceeditor/codemirror/addon/comment/continuecomment.js rename : devtools/client/sourceeditor/codemirror/addon/dialog/dialog.css => devtools/client/shared/sourceeditor/codemirror/addon/dialog/dialog.css rename : devtools/client/sourceeditor/codemirror/addon/dialog/dialog.js => devtools/client/shared/sourceeditor/codemirror/addon/dialog/dialog.js rename : devtools/client/sourceeditor/codemirror/addon/edit/closebrackets.js => devtools/client/shared/sourceeditor/codemirror/addon/edit/closebrackets.js rename : devtools/client/sourceeditor/codemirror/addon/edit/closetag.js => devtools/client/shared/sourceeditor/codemirror/addon/edit/closetag.js rename : devtools/client/sourceeditor/codemirror/addon/edit/continuelist.js => devtools/client/shared/sourceeditor/codemirror/addon/edit/continuelist.js rename : devtools/client/sourceeditor/codemirror/addon/edit/matchbrackets.js => devtools/client/shared/sourceeditor/codemirror/addon/edit/matchbrackets.js rename : devtools/client/sourceeditor/codemirror/addon/edit/matchtags.js => devtools/client/shared/sourceeditor/codemirror/addon/edit/matchtags.js rename : devtools/client/sourceeditor/codemirror/addon/edit/trailingspace.js => devtools/client/shared/sourceeditor/codemirror/addon/edit/trailingspace.js rename : devtools/client/sourceeditor/codemirror/addon/fold/brace-fold.js => devtools/client/shared/sourceeditor/codemirror/addon/fold/brace-fold.js rename : devtools/client/sourceeditor/codemirror/addon/fold/comment-fold.js => devtools/client/shared/sourceeditor/codemirror/addon/fold/comment-fold.js rename : devtools/client/sourceeditor/codemirror/addon/fold/foldcode.js => devtools/client/shared/sourceeditor/codemirror/addon/fold/foldcode.js rename : devtools/client/sourceeditor/codemirror/addon/fold/foldgutter.css => devtools/client/shared/sourceeditor/codemirror/addon/fold/foldgutter.css rename : devtools/client/sourceeditor/codemirror/addon/fold/foldgutter.js => devtools/client/shared/sourceeditor/codemirror/addon/fold/foldgutter.js rename : devtools/client/sourceeditor/codemirror/addon/fold/indent-fold.js => devtools/client/shared/sourceeditor/codemirror/addon/fold/indent-fold.js rename : devtools/client/sourceeditor/codemirror/addon/fold/markdown-fold.js => devtools/client/shared/sourceeditor/codemirror/addon/fold/markdown-fold.js rename : devtools/client/sourceeditor/codemirror/addon/fold/xml-fold.js => devtools/client/shared/sourceeditor/codemirror/addon/fold/xml-fold.js rename : devtools/client/sourceeditor/codemirror/addon/hint/show-hint.js => devtools/client/shared/sourceeditor/codemirror/addon/hint/show-hint.js rename : devtools/client/sourceeditor/codemirror/addon/runmode/runmode.js => devtools/client/shared/sourceeditor/codemirror/addon/runmode/runmode.js rename : devtools/client/sourceeditor/codemirror/addon/search/match-highlighter.js => devtools/client/shared/sourceeditor/codemirror/addon/search/match-highlighter.js rename : devtools/client/sourceeditor/codemirror/addon/search/search.js => devtools/client/shared/sourceeditor/codemirror/addon/search/search.js rename : devtools/client/sourceeditor/codemirror/addon/search/searchcursor.js => devtools/client/shared/sourceeditor/codemirror/addon/search/searchcursor.js rename : devtools/client/sourceeditor/codemirror/addon/selection/active-line.js => devtools/client/shared/sourceeditor/codemirror/addon/selection/active-line.js rename : devtools/client/sourceeditor/codemirror/addon/selection/mark-selection.js => devtools/client/shared/sourceeditor/codemirror/addon/selection/mark-selection.js rename : devtools/client/sourceeditor/codemirror/addon/tern/tern.css => devtools/client/shared/sourceeditor/codemirror/addon/tern/tern.css rename : devtools/client/sourceeditor/codemirror/addon/tern/tern.js => devtools/client/shared/sourceeditor/codemirror/addon/tern/tern.js rename : devtools/client/sourceeditor/codemirror/cmiframe.html => devtools/client/shared/sourceeditor/codemirror/cmiframe.html rename : devtools/client/sourceeditor/codemirror/codemirror.bundle.js => devtools/client/shared/sourceeditor/codemirror/codemirror.bundle.js rename : devtools/client/sourceeditor/codemirror/keymap/emacs.js => devtools/client/shared/sourceeditor/codemirror/keymap/emacs.js rename : devtools/client/sourceeditor/codemirror/keymap/sublime.js => devtools/client/shared/sourceeditor/codemirror/keymap/sublime.js rename : devtools/client/sourceeditor/codemirror/keymap/vim.js => devtools/client/shared/sourceeditor/codemirror/keymap/vim.js rename : devtools/client/sourceeditor/codemirror/lib/codemirror.css => devtools/client/shared/sourceeditor/codemirror/lib/codemirror.css rename : devtools/client/sourceeditor/codemirror/lib/codemirror.js => devtools/client/shared/sourceeditor/codemirror/lib/codemirror.js rename : devtools/client/sourceeditor/codemirror/mode/clike/clike.js => devtools/client/shared/sourceeditor/codemirror/mode/clike/clike.js rename : devtools/client/sourceeditor/codemirror/mode/clojure/clojure.js => devtools/client/shared/sourceeditor/codemirror/mode/clojure/clojure.js rename : devtools/client/sourceeditor/codemirror/mode/coffeescript/coffeescript.js => devtools/client/shared/sourceeditor/codemirror/mode/coffeescript/coffeescript.js rename : devtools/client/sourceeditor/codemirror/mode/css/css.js => devtools/client/shared/sourceeditor/codemirror/mode/css/css.js rename : devtools/client/sourceeditor/codemirror/mode/elm/elm.js => devtools/client/shared/sourceeditor/codemirror/mode/elm/elm.js rename : devtools/client/sourceeditor/codemirror/mode/haxe/haxe.js => devtools/client/shared/sourceeditor/codemirror/mode/haxe/haxe.js rename : devtools/client/sourceeditor/codemirror/mode/htmlmixed/htmlmixed.js => devtools/client/shared/sourceeditor/codemirror/mode/htmlmixed/htmlmixed.js rename : devtools/client/sourceeditor/codemirror/mode/javascript/javascript.js => devtools/client/shared/sourceeditor/codemirror/mode/javascript/javascript.js rename : devtools/client/sourceeditor/codemirror/mode/jsx/jsx.js => devtools/client/shared/sourceeditor/codemirror/mode/jsx/jsx.js rename : devtools/client/sourceeditor/codemirror/mode/wasm/wasm.js => devtools/client/shared/sourceeditor/codemirror/mode/wasm/wasm.js rename : devtools/client/sourceeditor/codemirror/mode/xml/xml.js => devtools/client/shared/sourceeditor/codemirror/mode/xml/xml.js rename : devtools/client/sourceeditor/codemirror/mozilla.css => devtools/client/shared/sourceeditor/codemirror/mozilla.css rename : devtools/client/sourceeditor/css-autocompleter.js => devtools/client/shared/sourceeditor/css-autocompleter.js rename : devtools/client/sourceeditor/debugger.js => devtools/client/shared/sourceeditor/debugger.js rename : devtools/client/sourceeditor/editor-commands-controller.js => devtools/client/shared/sourceeditor/editor-commands-controller.js rename : devtools/client/sourceeditor/editor.js => devtools/client/shared/sourceeditor/editor.js rename : devtools/client/sourceeditor/moz.build => devtools/client/shared/sourceeditor/moz.build rename : devtools/client/sourceeditor/package.json => devtools/client/shared/sourceeditor/package.json rename : devtools/client/sourceeditor/tern/README => devtools/client/shared/sourceeditor/tern/README rename : devtools/client/sourceeditor/tern/browser.js => devtools/client/shared/sourceeditor/tern/browser.js rename : devtools/client/sourceeditor/tern/comment.js => devtools/client/shared/sourceeditor/tern/comment.js rename : devtools/client/sourceeditor/tern/condense.js => devtools/client/shared/sourceeditor/tern/condense.js rename : devtools/client/sourceeditor/tern/def.js => devtools/client/shared/sourceeditor/tern/def.js rename : devtools/client/sourceeditor/tern/ecma5.js => devtools/client/shared/sourceeditor/tern/ecma5.js rename : devtools/client/sourceeditor/tern/infer.js => devtools/client/shared/sourceeditor/tern/infer.js rename : devtools/client/sourceeditor/tern/moz.build => devtools/client/shared/sourceeditor/tern/moz.build rename : devtools/client/sourceeditor/tern/signal.js => devtools/client/shared/sourceeditor/tern/signal.js rename : devtools/client/sourceeditor/tern/tern.js => devtools/client/shared/sourceeditor/tern/tern.js rename : devtools/client/sourceeditor/tern/tests/unit/head_tern.js => devtools/client/shared/sourceeditor/tern/tests/unit/head_tern.js rename : devtools/client/sourceeditor/tern/tests/unit/test_autocompletion.js => devtools/client/shared/sourceeditor/tern/tests/unit/test_autocompletion.js rename : devtools/client/sourceeditor/tern/tests/unit/test_import_tern.js => devtools/client/shared/sourceeditor/tern/tests/unit/test_import_tern.js rename : devtools/client/sourceeditor/tern/tests/unit/xpcshell.ini => devtools/client/shared/sourceeditor/tern/tests/unit/xpcshell.ini rename : devtools/client/sourceeditor/test/.eslintrc.js => devtools/client/shared/sourceeditor/test/.eslintrc.js rename : devtools/client/sourceeditor/test/browser.ini => devtools/client/shared/sourceeditor/test/browser.ini rename : devtools/client/sourceeditor/test/browser_codemirror.js => devtools/client/shared/sourceeditor/test/browser_codemirror.js rename : devtools/client/sourceeditor/test/browser_css_autocompletion.js => devtools/client/shared/sourceeditor/test/browser_css_autocompletion.js rename : devtools/client/sourceeditor/test/browser_css_getInfo.js => devtools/client/shared/sourceeditor/test/browser_css_getInfo.js rename : devtools/client/sourceeditor/test/browser_css_statemachine.js => devtools/client/shared/sourceeditor/test/browser_css_statemachine.js rename : devtools/client/sourceeditor/test/browser_detectindent.js => devtools/client/shared/sourceeditor/test/browser_detectindent.js rename : devtools/client/sourceeditor/test/browser_editor_addons.js => devtools/client/shared/sourceeditor/test/browser_editor_addons.js rename : devtools/client/sourceeditor/test/browser_editor_alt_b_f.js => devtools/client/shared/sourceeditor/test/browser_editor_alt_b_f.js rename : devtools/client/sourceeditor/test/browser_editor_autocomplete_basic.js => devtools/client/shared/sourceeditor/test/browser_editor_autocomplete_basic.js rename : devtools/client/sourceeditor/test/browser_editor_autocomplete_events.js => devtools/client/shared/sourceeditor/test/browser_editor_autocomplete_events.js rename : devtools/client/sourceeditor/test/browser_editor_autocomplete_js.js => devtools/client/shared/sourceeditor/test/browser_editor_autocomplete_js.js rename : devtools/client/sourceeditor/test/browser_editor_basic.js => devtools/client/shared/sourceeditor/test/browser_editor_basic.js rename : devtools/client/sourceeditor/test/browser_editor_cursor.js => devtools/client/shared/sourceeditor/test/browser_editor_cursor.js rename : devtools/client/sourceeditor/test/browser_editor_find_again.js => devtools/client/shared/sourceeditor/test/browser_editor_find_again.js rename : devtools/client/sourceeditor/test/browser_editor_goto_line.js => devtools/client/shared/sourceeditor/test/browser_editor_goto_line.js rename : devtools/client/sourceeditor/test/browser_editor_history.js => devtools/client/shared/sourceeditor/test/browser_editor_history.js rename : devtools/client/sourceeditor/test/browser_editor_markers.js => devtools/client/shared/sourceeditor/test/browser_editor_markers.js rename : devtools/client/sourceeditor/test/browser_editor_movelines.js => devtools/client/shared/sourceeditor/test/browser_editor_movelines.js rename : devtools/client/sourceeditor/test/browser_editor_prefs.js => devtools/client/shared/sourceeditor/test/browser_editor_prefs.js rename : devtools/client/sourceeditor/test/browser_editor_script_injection.js => devtools/client/shared/sourceeditor/test/browser_editor_script_injection.js rename : devtools/client/sourceeditor/test/browser_vimemacs.js => devtools/client/shared/sourceeditor/test/browser_vimemacs.js rename : devtools/client/sourceeditor/test/cm_mode_ruby.js => devtools/client/shared/sourceeditor/test/cm_mode_ruby.js rename : devtools/client/sourceeditor/test/cm_script_injection_test.js => devtools/client/shared/sourceeditor/test/cm_script_injection_test.js rename : devtools/client/sourceeditor/test/codemirror/codemirror.html => devtools/client/shared/sourceeditor/test/codemirror/codemirror.html rename : devtools/client/sourceeditor/test/codemirror/comment_test.js => devtools/client/shared/sourceeditor/test/codemirror/comment_test.js rename : devtools/client/sourceeditor/test/codemirror/doc_test.js => devtools/client/shared/sourceeditor/test/codemirror/doc_test.js rename : devtools/client/sourceeditor/test/codemirror/driver.js => devtools/client/shared/sourceeditor/test/codemirror/driver.js rename : devtools/client/sourceeditor/test/codemirror/emacs_test.js => devtools/client/shared/sourceeditor/test/codemirror/emacs_test.js rename : devtools/client/sourceeditor/test/codemirror/mode/javascript/test.js => devtools/client/shared/sourceeditor/test/codemirror/mode/javascript/test.js rename : devtools/client/sourceeditor/test/codemirror/mode_test.css => devtools/client/shared/sourceeditor/test/codemirror/mode_test.css rename : devtools/client/sourceeditor/test/codemirror/mode_test.js => devtools/client/shared/sourceeditor/test/codemirror/mode_test.js rename : devtools/client/sourceeditor/test/codemirror/multi_test.js => devtools/client/shared/sourceeditor/test/codemirror/multi_test.js rename : devtools/client/sourceeditor/test/codemirror/search_test.js => devtools/client/shared/sourceeditor/test/codemirror/search_test.js rename : devtools/client/sourceeditor/test/codemirror/sublime_test.js => devtools/client/shared/sourceeditor/test/codemirror/sublime_test.js rename : devtools/client/sourceeditor/test/codemirror/test.js => devtools/client/shared/sourceeditor/test/codemirror/test.js rename : devtools/client/sourceeditor/test/codemirror/vim_test.js => devtools/client/shared/sourceeditor/test/codemirror/vim_test.js rename : devtools/client/sourceeditor/test/codemirror/vimemacs.html => devtools/client/shared/sourceeditor/test/codemirror/vimemacs.html rename : devtools/client/sourceeditor/test/css_autocompletion_tests.json => devtools/client/shared/sourceeditor/test/css_autocompletion_tests.json rename : devtools/client/sourceeditor/test/css_statemachine_testcases.css => devtools/client/shared/sourceeditor/test/css_statemachine_testcases.css rename : devtools/client/sourceeditor/test/css_statemachine_tests.json => devtools/client/shared/sourceeditor/test/css_statemachine_tests.json rename : devtools/client/sourceeditor/test/head.js => devtools/client/shared/sourceeditor/test/head.js rename : devtools/client/sourceeditor/test/head.xul => devtools/client/shared/sourceeditor/test/head.xul rename : devtools/client/sourceeditor/test/helper_codemirror_runner.js => devtools/client/shared/sourceeditor/test/helper_codemirror_runner.js rename : devtools/client/sourceeditor/wasm.js => devtools/client/shared/sourceeditor/wasm.js rename : devtools/client/sourceeditor/webpack.config.js => devtools/client/shared/sourceeditor/webpack.config.js extra : moz-landing-system : lando
272 lines
12 KiB
JavaScript
272 lines
12 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
|
|
"use strict";
|
|
|
|
/**
|
|
* Tests if requests render correct information in the details UI.
|
|
*/
|
|
|
|
add_task(async function() {
|
|
const { L10N } = require("devtools/client/netmonitor/src/utils/l10n");
|
|
|
|
const { tab, monitor } = await initNetMonitor(SIMPLE_SJS);
|
|
info("Starting test... ");
|
|
|
|
const { document, store, windowRequire, NetMonitorView } = monitor.panelWin;
|
|
const Actions = windowRequire("devtools/client/netmonitor/src/actions/index");
|
|
const { EVENTS } = windowRequire("devtools/client/netmonitor/src/constants");
|
|
const {
|
|
getSelectedRequest,
|
|
getSortedRequests,
|
|
} = windowRequire("devtools/client/netmonitor/src/selectors/index");
|
|
const Editor = require("devtools/client/shared/sourceeditor/editor");
|
|
|
|
store.dispatch(Actions.batchEnable(false));
|
|
|
|
const wait = waitForNetworkEvents(monitor, 1);
|
|
tab.linkedBrowser.reload();
|
|
await wait;
|
|
|
|
is(getSelectedRequest(store.getState()), undefined,
|
|
"There shouldn't be any selected item in the requests menu.");
|
|
is(store.getState().requests.requests.size, 1,
|
|
"The requests menu should not be empty after the first request.");
|
|
is(!!document.querySelector(".network-details-panel"), false,
|
|
"The network details panel should still be hidden after first request.");
|
|
|
|
store.dispatch(Actions.toggleNetworkDetails());
|
|
|
|
isnot(getSelectedRequest(store.getState()), undefined,
|
|
"There should be a selected item in the requests menu.");
|
|
is(getSelectedIndex(store.getState()), 0,
|
|
"The first item should be selected in the requests menu.");
|
|
is(!!document.querySelector(".network-details-panel"), true,
|
|
"The network details panel should not be hidden after toggle button was pressed.");
|
|
|
|
testHeadersTab();
|
|
await testCookiesTab();
|
|
testParamsTab();
|
|
await testResponseTab();
|
|
testTimingsTab();
|
|
return teardown(monitor);
|
|
|
|
function getSelectedIndex(state) {
|
|
if (!state.requests.selectedId) {
|
|
return -1;
|
|
}
|
|
return getSortedRequests(state).findIndex(r => r.id === state.requests.selectedId);
|
|
}
|
|
|
|
function testHeadersTab() {
|
|
const tabEl = document.querySelectorAll("#details-pane tab")[0];
|
|
const tabpanel = document.querySelectorAll("#details-pane tabpanel")[0];
|
|
|
|
is(tabEl.getAttribute("selected"), "true",
|
|
"The headers tab in the network details pane should be selected.");
|
|
|
|
is(tabpanel.querySelector("#headers-summary-url-value").getAttribute("value"),
|
|
SIMPLE_SJS, "The url summary value is incorrect.");
|
|
is(tabpanel.querySelector("#headers-summary-url-value").getAttribute("tooltiptext"),
|
|
SIMPLE_SJS, "The url summary tooltiptext is incorrect.");
|
|
is(tabpanel.querySelector("#headers-summary-method-value").getAttribute("value"),
|
|
"GET", "The method summary value is incorrect.");
|
|
is(tabpanel.querySelector("#headers-summary-address-value").getAttribute("value"),
|
|
"127.0.0.1:8888", "The remote address summary value is incorrect.");
|
|
is(tabpanel.querySelector("#headers-summary-status-circle").getAttribute("data-code"),
|
|
"200", "The status summary code is incorrect.");
|
|
is(tabpanel.querySelector("#headers-summary-status-value").getAttribute("value"),
|
|
"200 Och Aye", "The status summary value is incorrect.");
|
|
|
|
is(tabpanel.querySelectorAll(".variables-view-scope").length, 2,
|
|
"There should be 2 header scopes displayed in this tabpanel.");
|
|
is(tabpanel.querySelectorAll(".variable-or-property").length, 19,
|
|
"There should be 19 header values displayed in this tabpanel.");
|
|
|
|
is(tabpanel.querySelectorAll(".variables-view-empty-notice").length, 0,
|
|
"The empty notice should not be displayed in this tabpanel.");
|
|
|
|
const responseScope = tabpanel.querySelectorAll(".variables-view-scope")[0];
|
|
const requestScope = tabpanel.querySelectorAll(".variables-view-scope")[1];
|
|
|
|
is(responseScope.querySelector(".name").getAttribute("value"),
|
|
L10N.getStr("responseHeaders") + " (" +
|
|
L10N.getFormatStr("networkMenu.sizeKB",
|
|
L10N.numberWithDecimals(330 / 1024, 3)) + ")",
|
|
"The response headers scope doesn't have the correct title.");
|
|
|
|
ok(requestScope.querySelector(".name").getAttribute("value").includes(
|
|
L10N.getStr("requestHeaders") + " (0"),
|
|
"The request headers scope doesn't have the correct title.");
|
|
// Can't test for full request headers title because the size may
|
|
// vary across platforms ("User-Agent" header differs). We're pretty
|
|
// sure it's smaller than 1 MB though, so it starts with a 0.
|
|
|
|
is(responseScope.querySelectorAll(".variables-view-variable .name")[0]
|
|
.getAttribute("value"),
|
|
"Cache-Control", "The first response header name was incorrect.");
|
|
is(responseScope.querySelectorAll(".variables-view-variable .value")[0]
|
|
.getAttribute("value"),
|
|
"\"no-cache, no-store, must-revalidate\"",
|
|
"The first response header value was incorrect.");
|
|
is(responseScope.querySelectorAll(".variables-view-variable .name")[1]
|
|
.getAttribute("value"),
|
|
"Connection", "The second response header name was incorrect.");
|
|
is(responseScope.querySelectorAll(".variables-view-variable .value")[1]
|
|
.getAttribute("value"),
|
|
"\"close\"", "The second response header value was incorrect.");
|
|
is(responseScope.querySelectorAll(".variables-view-variable .name")[2]
|
|
.getAttribute("value"),
|
|
"Content-Length", "The third response header name was incorrect.");
|
|
is(responseScope.querySelectorAll(".variables-view-variable .value")[2]
|
|
.getAttribute("value"),
|
|
"\"12\"", "The third response header value was incorrect.");
|
|
is(responseScope.querySelectorAll(".variables-view-variable .name")[3]
|
|
.getAttribute("value"),
|
|
"Content-Type", "The fourth response header name was incorrect.");
|
|
is(responseScope.querySelectorAll(".variables-view-variable .value")[3]
|
|
.getAttribute("value"),
|
|
"\"text/plain; charset=utf-8\"", "The fourth response header value was incorrect.");
|
|
is(responseScope.querySelectorAll(".variables-view-variable .name")[9]
|
|
.getAttribute("value"),
|
|
"foo-bar", "The last response header name was incorrect.");
|
|
is(responseScope.querySelectorAll(".variables-view-variable .value")[9]
|
|
.getAttribute("value"),
|
|
"\"baz\"", "The last response header value was incorrect.");
|
|
|
|
is(requestScope.querySelectorAll(".variables-view-variable .name")[0]
|
|
.getAttribute("value"),
|
|
"Host", "The first request header name was incorrect.");
|
|
is(requestScope.querySelectorAll(".variables-view-variable .value")[0]
|
|
.getAttribute("value"),
|
|
"\"example.com\"", "The first request header value was incorrect.");
|
|
is(requestScope.querySelectorAll(".variables-view-variable .name")[6]
|
|
.getAttribute("value"),
|
|
"Connection", "The ante-penultimate request header name was incorrect.");
|
|
is(requestScope.querySelectorAll(".variables-view-variable .value")[6]
|
|
.getAttribute("value"),
|
|
"\"keep-alive\"", "The ante-penultimate request header value was incorrect.");
|
|
is(requestScope.querySelectorAll(".variables-view-variable .name")[7]
|
|
.getAttribute("value"),
|
|
"Pragma", "The penultimate request header name was incorrect.");
|
|
is(requestScope.querySelectorAll(".variables-view-variable .value")[7]
|
|
.getAttribute("value"),
|
|
"\"no-cache\"", "The penultimate request header value was incorrect.");
|
|
is(requestScope.querySelectorAll(".variables-view-variable .name")[8]
|
|
.getAttribute("value"),
|
|
"Cache-Control", "The last request header name was incorrect.");
|
|
is(requestScope.querySelectorAll(".variables-view-variable .value")[8]
|
|
.getAttribute("value"),
|
|
"\"no-cache\"", "The last request header value was incorrect.");
|
|
}
|
|
|
|
async function testCookiesTab() {
|
|
const onEvent = monitor.panelWin.api.once(EVENTS.TAB_UPDATED);
|
|
EventUtils.sendMouseEvent({ type: "mousedown" },
|
|
document.querySelectorAll("#details-pane tab")[1]);
|
|
await onEvent;
|
|
|
|
const tabEl = document.querySelectorAll("#details-pane tab")[1];
|
|
const tabpanel = document.querySelectorAll("#details-pane tabpanel")[1];
|
|
|
|
is(tabEl.getAttribute("selected"), "true",
|
|
"The cookies tab in the network details pane should be selected.");
|
|
|
|
is(tabpanel.querySelectorAll(".variables-view-scope").length, 2,
|
|
"There should be 2 cookie scopes displayed in this tabpanel.");
|
|
is(tabpanel.querySelectorAll(".variable-or-property").length, 6,
|
|
"There should be 6 cookie values displayed in this tabpanel.");
|
|
}
|
|
|
|
function testParamsTab() {
|
|
EventUtils.sendMouseEvent({ type: "mousedown" },
|
|
document.querySelectorAll("#details-pane tab")[2]);
|
|
|
|
const tabEl = document.querySelectorAll("#details-pane tab")[2];
|
|
const tabpanel = document.querySelectorAll("#details-pane tabpanel")[2];
|
|
|
|
is(tabEl.getAttribute("selected"), "true",
|
|
"The params tab in the network details pane should be selected.");
|
|
|
|
is(tabpanel.querySelectorAll(".variables-view-scope").length, 0,
|
|
"There should be no param scopes displayed in this tabpanel.");
|
|
is(tabpanel.querySelectorAll(".variable-or-property").length, 0,
|
|
"There should be no param values displayed in this tabpanel.");
|
|
is(tabpanel.querySelectorAll(".variables-view-empty-notice").length, 1,
|
|
"The empty notice should be displayed in this tabpanel.");
|
|
|
|
is(tabpanel.querySelector("#request-params-box")
|
|
.hasAttribute("hidden"), false,
|
|
"The request params box should not be hidden.");
|
|
is(tabpanel.querySelector("#request-post-data-textarea-box")
|
|
.hasAttribute("hidden"), true,
|
|
"The request post data textarea box should be hidden.");
|
|
}
|
|
|
|
async function testResponseTab() {
|
|
const onEvent = monitor.panelWin.api.once(EVENTS.TAB_UPDATED);
|
|
EventUtils.sendMouseEvent({ type: "mousedown" },
|
|
document.querySelectorAll("#details-pane tab")[3]);
|
|
await onEvent;
|
|
|
|
const tabEl = document.querySelectorAll("#details-pane tab")[3];
|
|
const tabpanel = document.querySelectorAll("#details-pane tabpanel")[3];
|
|
|
|
is(tabEl.getAttribute("selected"), "true",
|
|
"The response tab in the network details pane should be selected.");
|
|
|
|
is(tabpanel.querySelector("#response-content-info-header")
|
|
.hasAttribute("hidden"), true,
|
|
"The response info header should be hidden.");
|
|
is(tabpanel.querySelector("#response-content-json-box")
|
|
.hasAttribute("hidden"), true,
|
|
"The response content json box should be hidden.");
|
|
is(tabpanel.querySelector("#response-content-textarea-box")
|
|
.hasAttribute("hidden"), false,
|
|
"The response content textarea box should not be hidden.");
|
|
is(tabpanel.querySelector("#response-content-image-box")
|
|
.hasAttribute("hidden"), true,
|
|
"The response content image box should be hidden.");
|
|
|
|
const editor = await NetMonitorView.editor("#response-content-textarea");
|
|
is(editor.getText(), "Hello world!",
|
|
"The text shown in the source editor is incorrect.");
|
|
is(editor.getMode(), Editor.modes.text,
|
|
"The mode active in the source editor is incorrect.");
|
|
}
|
|
|
|
function testTimingsTab() {
|
|
EventUtils.sendMouseEvent({ type: "mousedown" },
|
|
document.querySelectorAll("#details-pane tab")[4]);
|
|
|
|
const tabEl = document.querySelectorAll("#details-pane tab")[4];
|
|
const tabpanel = document.querySelectorAll("#details-pane tabpanel")[4];
|
|
|
|
is(tabEl.getAttribute("selected"), "true",
|
|
"The timings tab in the network details pane should be selected.");
|
|
|
|
ok(tabpanel.querySelector("#timings-summary-blocked .requests-list-timings-total")
|
|
.getAttribute("value").match(/[0-9]+/),
|
|
"The blocked timing info does not appear to be correct.");
|
|
|
|
ok(tabpanel.querySelector("#timings-summary-dns .requests-list-timings-total")
|
|
.getAttribute("value").match(/[0-9]+/),
|
|
"The dns timing info does not appear to be correct.");
|
|
|
|
ok(tabpanel.querySelector("#timings-summary-connect .requests-list-timings-total")
|
|
.getAttribute("value").match(/[0-9]+/),
|
|
"The connect timing info does not appear to be correct.");
|
|
|
|
ok(tabpanel.querySelector("#timings-summary-send .requests-list-timings-total")
|
|
.getAttribute("value").match(/[0-9]+/),
|
|
"The send timing info does not appear to be correct.");
|
|
|
|
ok(tabpanel.querySelector("#timings-summary-wait .requests-list-timings-total")
|
|
.getAttribute("value").match(/[0-9]+/),
|
|
"The wait timing info does not appear to be correct.");
|
|
|
|
ok(tabpanel.querySelector("#timings-summary-receive .requests-list-timings-total")
|
|
.getAttribute("value").match(/[0-9]+/),
|
|
"The receive timing info does not appear to be correct.");
|
|
}
|
|
});
|