mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-08 08:48:39 +09:00
import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo
This commit is contained in:
commit
dcd9973243
150858 changed files with 23884658 additions and 0 deletions
174
devtools/client/netmonitor/test/browser_net_resend.js
Normal file
174
devtools/client/netmonitor/test/browser_net_resend.js
Normal file
|
|
@ -0,0 +1,174 @@
|
|||
/* Any copyright is dedicated to the Public Domain.
|
||||
http://creativecommons.org/publicdomain/zero/1.0/ */
|
||||
|
||||
"use strict";
|
||||
|
||||
/**
|
||||
* Tests if resending a request works.
|
||||
*/
|
||||
|
||||
const ADD_QUERY = "t1=t2";
|
||||
const ADD_HEADER = "Test-header: true";
|
||||
const ADD_UA_HEADER = "User-Agent: Custom-Agent";
|
||||
const ADD_POSTDATA = "&t3=t4";
|
||||
|
||||
add_task(function* () {
|
||||
let { tab, monitor } = yield initNetMonitor(POST_DATA_URL);
|
||||
info("Starting test... ");
|
||||
|
||||
let { panelWin } = monitor;
|
||||
let { document, EVENTS, NetMonitorView } = panelWin;
|
||||
let { RequestsMenu } = NetMonitorView;
|
||||
|
||||
RequestsMenu.lazyUpdate = false;
|
||||
|
||||
let wait = waitForNetworkEvents(monitor, 0, 2);
|
||||
yield ContentTask.spawn(tab.linkedBrowser, {}, function* () {
|
||||
content.wrappedJSObject.performRequests();
|
||||
});
|
||||
yield wait;
|
||||
|
||||
let origItem = RequestsMenu.getItemAtIndex(0);
|
||||
|
||||
let onTabUpdated = panelWin.once(EVENTS.TAB_UPDATED);
|
||||
RequestsMenu.selectedItem = origItem;
|
||||
yield onTabUpdated;
|
||||
|
||||
// add a new custom request cloned from selected request
|
||||
let onPopulated = panelWin.once(EVENTS.CUSTOMREQUESTVIEW_POPULATED);
|
||||
RequestsMenu.cloneSelectedRequest();
|
||||
yield onPopulated;
|
||||
|
||||
testCustomForm(origItem.attachment);
|
||||
|
||||
let customItem = RequestsMenu.selectedItem;
|
||||
testCustomItem(customItem, origItem);
|
||||
|
||||
// edit the custom request
|
||||
yield editCustomForm();
|
||||
testCustomItemChanged(customItem, origItem);
|
||||
|
||||
// send the new request
|
||||
wait = waitForNetworkEvents(monitor, 0, 1);
|
||||
RequestsMenu.sendCustomRequest();
|
||||
yield wait;
|
||||
|
||||
let sentItem = RequestsMenu.selectedItem;
|
||||
testSentRequest(sentItem.attachment, origItem.attachment);
|
||||
|
||||
return teardown(monitor);
|
||||
|
||||
function testCustomItem(item, orig) {
|
||||
let method = item.target.querySelector(".requests-menu-method").value;
|
||||
let origMethod = orig.target.querySelector(".requests-menu-method").value;
|
||||
is(method, origMethod, "menu item is showing the same method as original request");
|
||||
|
||||
let file = item.target.querySelector(".requests-menu-file").value;
|
||||
let origFile = orig.target.querySelector(".requests-menu-file").value;
|
||||
is(file, origFile, "menu item is showing the same file name as original request");
|
||||
|
||||
let domain = item.target.querySelector(".requests-menu-domain").value;
|
||||
let origDomain = orig.target.querySelector(".requests-menu-domain").value;
|
||||
is(domain, origDomain, "menu item is showing the same domain as original request");
|
||||
}
|
||||
|
||||
function testCustomItemChanged(item, orig) {
|
||||
let file = item.target.querySelector(".requests-menu-file").value;
|
||||
let expectedFile = orig.target.querySelector(".requests-menu-file").value +
|
||||
"&" + ADD_QUERY;
|
||||
|
||||
is(file, expectedFile, "menu item is updated to reflect url entered in form");
|
||||
}
|
||||
|
||||
/*
|
||||
* Test that the New Request form was populated correctly
|
||||
*/
|
||||
function testCustomForm(data) {
|
||||
is(document.getElementById("custom-method-value").value, data.method,
|
||||
"new request form showing correct method");
|
||||
|
||||
is(document.getElementById("custom-url-value").value, data.url,
|
||||
"new request form showing correct url");
|
||||
|
||||
let query = document.getElementById("custom-query-value");
|
||||
is(query.value, "foo=bar\nbaz=42\ntype=urlencoded",
|
||||
"new request form showing correct query string");
|
||||
|
||||
let headers = document.getElementById("custom-headers-value").value.split("\n");
|
||||
for (let {name, value} of data.requestHeaders.headers) {
|
||||
ok(headers.indexOf(name + ": " + value) >= 0, "form contains header from request");
|
||||
}
|
||||
|
||||
let postData = document.getElementById("custom-postdata-value");
|
||||
is(postData.value, data.requestPostData.postData.text,
|
||||
"new request form showing correct post data");
|
||||
}
|
||||
|
||||
/*
|
||||
* Add some params and headers to the request form
|
||||
*/
|
||||
function* editCustomForm() {
|
||||
panelWin.focus();
|
||||
|
||||
let query = document.getElementById("custom-query-value");
|
||||
let queryFocus = once(query, "focus", false);
|
||||
// Bug 1195825: Due to some unexplained dark-matter with promise,
|
||||
// focus only works if delayed by one tick.
|
||||
query.setSelectionRange(query.value.length, query.value.length);
|
||||
executeSoon(() => query.focus());
|
||||
yield queryFocus;
|
||||
|
||||
// add params to url query string field
|
||||
type(["VK_RETURN"]);
|
||||
type(ADD_QUERY);
|
||||
|
||||
let headers = document.getElementById("custom-headers-value");
|
||||
let headersFocus = once(headers, "focus", false);
|
||||
headers.setSelectionRange(headers.value.length, headers.value.length);
|
||||
headers.focus();
|
||||
yield headersFocus;
|
||||
|
||||
// add a header
|
||||
type(["VK_RETURN"]);
|
||||
type(ADD_HEADER);
|
||||
|
||||
// add a User-Agent header, to check if default headers can be modified
|
||||
// (there will be two of them, first gets overwritten by the second)
|
||||
type(["VK_RETURN"]);
|
||||
type(ADD_UA_HEADER);
|
||||
|
||||
let postData = document.getElementById("custom-postdata-value");
|
||||
let postFocus = once(postData, "focus", false);
|
||||
postData.setSelectionRange(postData.value.length, postData.value.length);
|
||||
postData.focus();
|
||||
yield postFocus;
|
||||
|
||||
// add to POST data
|
||||
type(ADD_POSTDATA);
|
||||
}
|
||||
|
||||
/*
|
||||
* Make sure newly created event matches expected request
|
||||
*/
|
||||
function testSentRequest(data, origData) {
|
||||
is(data.method, origData.method, "correct method in sent request");
|
||||
is(data.url, origData.url + "&" + ADD_QUERY, "correct url in sent request");
|
||||
|
||||
let { headers } = data.requestHeaders;
|
||||
let hasHeader = headers.some(h => `${h.name}: ${h.value}` == ADD_HEADER);
|
||||
ok(hasHeader, "new header added to sent request");
|
||||
|
||||
let hasUAHeader = headers.some(h => `${h.name}: ${h.value}` == ADD_UA_HEADER);
|
||||
ok(hasUAHeader, "User-Agent header added to sent request");
|
||||
|
||||
is(data.requestPostData.postData.text,
|
||||
origData.requestPostData.postData.text + ADD_POSTDATA,
|
||||
"post data added to sent request");
|
||||
}
|
||||
|
||||
function type(string) {
|
||||
for (let ch of string) {
|
||||
EventUtils.synthesizeKey(ch, {}, panelWin);
|
||||
}
|
||||
}
|
||||
});
|
||||
Loading…
Add table
Add a link
Reference in a new issue