Bug 1305162: Part 1c - Fix devtools tests that expect headers in upload stream. r?ochameau draft
authorKris Maglione <maglione.k@gmail.com>
Tue, 10 Jan 2017 14:24:45 -0800
changeset 458715 c639b044f833122f70a6492dba95a2e95652a231
parent 458714 7b32b3e6d774f5272cacc9382cd0d17531d1a5eb
child 458716 e3115f38e1079569055b3b056d25de22759cad39
push id41026
push usermaglione.k@gmail.com
push dateTue, 10 Jan 2017 22:29:18 +0000
reviewersochameau
bugs1305162
milestone53.0a1
Bug 1305162: Part 1c - Fix devtools tests that expect headers in upload stream. r?ochameau MozReview-Commit-ID: BirgY62GRn7
devtools/client/netmonitor/test/browser_net_curl-utils.js
devtools/client/webconsole/test/browser_webconsole_netlogging.js
--- 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&param2=value2&param3=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();
 });