1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
|
/* Any copyright is dedicated to the Public Domain.
* http://creativecommons.org/publicdomain/zero/1.0/ */
"use strict";
/**
* Tests if editing and resending a XHR request works and the
* cloned request retains the same cause type.
*/
add_task(async function () {
if (
Services.prefs.getBoolPref(
"devtools.netmonitor.features.newEditAndResend",
true
)
) {
ok(
true,
"Skip this test when pref is true, because this panel won't be default when that is the case."
);
return;
}
const { tab, monitor } = await initNetMonitor(POST_RAW_URL, {
requestCount: 1,
});
const { document, store, windowRequire } = monitor.panelWin;
const Actions = windowRequire("devtools/client/netmonitor/src/actions/index");
store.dispatch(Actions.batchEnable(false));
// Executes 1 XHR request
await performRequests(monitor, tab, 1);
// Selects 1st XHR request
const xhrRequest = document.querySelectorAll(".request-list-item")[0];
EventUtils.sendMouseEvent({ type: "mousedown" }, xhrRequest);
// Stores original request for comparison of values later
const { getSelectedRequest } = windowRequire(
"devtools/client/netmonitor/src/selectors/index"
);
const original = getSelectedRequest(store.getState());
// Context Menu > "Edit & Resend"
EventUtils.sendMouseEvent({ type: "contextmenu" }, xhrRequest);
await selectContextMenuItem(monitor, "request-list-context-edit-resend");
// 1) Wait for "Edit & Resend" panel to appear
// 2) Click the "Send" button
// 3) Wait till the new request appears in the list
await waitUntil(() => document.querySelector(".custom-request-panel"));
document.querySelector("#custom-request-send-button").click();
await waitForNetworkEvents(monitor, 1);
// Selects cloned request
const clonedRequest = document.querySelectorAll(".request-list-item")[1];
EventUtils.sendMouseEvent({ type: "mousedown" }, clonedRequest);
const cloned = getSelectedRequest(store.getState());
// Compares if the requests have the same cause type (XHR)
ok(
original.cause.type === cloned.cause.type,
"Both requests retain the same cause type"
);
await teardown(monitor);
});
/**
* Tests if editing and resending a XHR request works and the
* new request retains the same cause type.
*/
add_task(async function () {
if (
Services.prefs.getBoolPref(
"devtools.netmonitor.features.newEditAndResend",
true
)
) {
const { tab, monitor } = await initNetMonitor(POST_RAW_URL, {
requestCount: 1,
});
const { document, store, windowRequire } = monitor.panelWin;
const Actions = windowRequire(
"devtools/client/netmonitor/src/actions/index"
);
store.dispatch(Actions.batchEnable(false));
// Executes 1 XHR request
await performRequests(monitor, tab, 1);
// Selects 1st XHR request
const xhrRequest = document.querySelectorAll(".request-list-item")[0];
EventUtils.sendMouseEvent({ type: "mousedown" }, xhrRequest);
// Stores original request for comparison of values later
const { getSelectedRequest } = windowRequire(
"devtools/client/netmonitor/src/selectors/index"
);
const original = getSelectedRequest(store.getState());
// Context Menu > "Edit & Resend"
EventUtils.sendMouseEvent({ type: "contextmenu" }, xhrRequest);
await selectContextMenuItem(monitor, "request-list-context-edit-resend");
// 1) Wait for "Edit & Resend" panel to appear
// 2) Wait for the Send button to be enabled (i.e all the data is loaded)
// 2) Click the "Send" button
// 3) Wait till the new request appears in the list
await waitUntil(
() =>
document.querySelector(".http-custom-request-panel") &&
document.querySelector("#http-custom-request-send-button").disabled ===
false
);
document.querySelector("#http-custom-request-send-button").click();
await waitForNetworkEvents(monitor, 1);
// Selects new request
const newRequest = document.querySelectorAll(".request-list-item")[1];
EventUtils.sendMouseEvent({ type: "mousedown" }, newRequest);
const request = getSelectedRequest(store.getState());
ok(
original.cause.type === request.cause.type,
"Both requests retain the same cause type"
);
await teardown(monitor);
}
});
|