Bug 1305162: Part 1c - Fix devtools tests that expect headers in upload stream. r?ochameau
MozReview-Commit-ID: BirgY62GRn7
--- a/devtools/client/netmonitor/test/browser_net_curl-utils.js
+++ b/devtools/client/netmonitor/test/browser_net_curl-utils.js
@@ -36,20 +36,25 @@ add_task(function* () {
data = yield createCurlData(requests.post, gNetwork);
testIsUrlEncodedRequest(data);
testWritePostDataTextParams(data);
data = yield createCurlData(requests.multipart, gNetwork);
testIsMultipartRequest(data);
testGetMultipartBoundary(data);
+ testMultiPartHeaders(data);
testRemoveBinaryDataFromMultipartText(data);
data = yield createCurlData(requests.multipartForm, gNetwork);
- testGetHeadersFromMultipartText(data);
+ testMultiPartHeaders(data);
+
+ testGetHeadersFromMultipartText({
+ postDataText: "Content-Type: text/plain\r\n\r\n",
+ });
if (Services.appinfo.OS != "WINNT") {
testEscapeStringPosix();
} else {
testEscapeStringWin();
}
yield teardown(monitor);
@@ -74,16 +79,24 @@ function testFindHeader(data) {
is(hostName, "example.com",
"Header with name 'Host' should be found in the request array.");
is(requestedWithLowerCased, "XMLHttpRequest",
"The search should be case insensitive.");
is(doesNotExist, null,
"Should return null when a header is not found.");
}
+function testMultiPartHeaders(data) {
+ let headers = data.headers;
+ let contentType = CurlUtils.findHeader(headers, "Content-Type");
+
+ ok(contentType.startsWith("multipart/form-data; boundary="),
+ "Multi-part content type header is present in headers array");
+}
+
function testWritePostDataTextParams(data) {
let params = CurlUtils.writePostDataTextParams(data.postDataText);
is(params, "param1=value1¶m2=value2¶m3=value3",
"Should return a serialized representation of the request parameters");
}
function testGetMultipartBoundary(data) {
let boundary = CurlUtils.getMultipartBoundary(data);
--- a/devtools/client/webconsole/test/browser_webconsole_netlogging.js
+++ b/devtools/client/webconsole/test/browser_webconsole_netlogging.js
@@ -113,23 +113,28 @@ add_task(function* testFormSubmission()
form.submit();
}`);
let request = yield finishedRequest;
ok(request, "testFormSubmission() was logged");
let client = hud.ui.webConsoleClient;
const postData = yield client.getRequestPostData(request.actor);
+ const requestHeaders = yield client.getRequestHeaders(request.actor);
const responseContent = yield client.getResponseContent(request.actor);
+ let getHeader = name => {
+ let header = requestHeaders.headers.find(h => h.name == name);
+ return header && header.value;
+ };
+
is(request.request.method, "POST", "Method is correct");
- isnot(postData.postData.text
- .indexOf("Content-Type: application/x-www-form-urlencoded"), -1,
- "Content-Type is correct");
- isnot(postData.postData.text
- .indexOf("Content-Length: 20"), -1, "Content-length is correct");
+ is(getHeader("Content-Type"), "application/x-www-form-urlencoded",
+ "Content-Type is correct");
+ is(getHeader("Content-Length"), "20",
+ "Content-length is correct");
isnot(postData.postData.text
.indexOf("name=foo+bar&age=144"), -1, "Form data is correct");
is(responseContent.content.text.indexOf("<!DOCTYPE HTML>"), 0,
"Response body's beginning is okay");
yield closeTabAndToolbox();
});