Bug 1353535 - Copy as cURL can't copy POST without post data draft
authorFred Lin <gasolin@mozilla.com>
Wed, 05 Apr 2017 14:26:44 +0800
changeset 555977 abf8ce77878855cd9fb86907f8b3f6eaac20ce3c
parent 555725 b043233ec04f06768d59dcdfb9e928142280f3cc
child 622742 15f58cd7e3ab4068a364f91e3c5759336d2f0226
push id52388
push userbmo:gasolin@mozilla.com
push dateWed, 05 Apr 2017 06:26:54 +0000
bugs1353535
milestone55.0a1
Bug 1353535 - Copy as cURL can't copy POST without post data MozReview-Commit-ID: EDJVsAiY6Cq
devtools/client/netmonitor/test/browser_net_curl-utils.js
devtools/client/shared/curl.js
--- a/devtools/client/netmonitor/test/browser_net_curl-utils.js
+++ b/devtools/client/netmonitor/test/browser_net_curl-utils.js
@@ -36,16 +36,17 @@ add_task(function* () {
   };
 
   let data = yield createCurlData(requests.get, getLongString);
   testFindHeader(data);
 
   data = yield createCurlData(requests.post, getLongString);
   testIsUrlEncodedRequest(data);
   testWritePostDataTextParams(data);
+  testWriteEmptyPostDataTextParams(data);
   testDataArgumentOnGeneratedCommand(data);
 
   data = yield createCurlData(requests.multipart, getLongString);
   testIsMultipartRequest(data);
   testGetMultipartBoundary(data);
   testMultiPartHeaders(data);
   testRemoveBinaryDataFromMultipartText(data);
 
@@ -98,16 +99,22 @@ function testMultiPartHeaders(data) {
 }
 
 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 testWriteEmptyPostDataTextParams(data) {
+  let params = CurlUtils.writePostDataTextParams(null);
+  is(params, "",
+    "Should return a empty string when no parameters provided");
+}
+
 function testDataArgumentOnGeneratedCommand(data) {
   let curlCommand = Curl.generateCommand(data);
   ok(curlCommand.includes("--data"),
     "Should return a curl command with --data");
 }
 
 function testGetMultipartBoundary(data) {
   let boundary = CurlUtils.getMultipartBoundary(data);
--- a/devtools/client/shared/curl.js
+++ b/devtools/client/shared/curl.js
@@ -197,16 +197,19 @@ const CurlUtils = {
    * Write out paramters from post data text.
    *
    * @param object postDataText
    *        Post data text.
    * @return string
    *         Post data parameters.
    */
   writePostDataTextParams: function (postDataText) {
+    if (!postDataText) {
+      return "";
+    }
     let lines = postDataText.split("\r\n");
     return lines[lines.length - 1];
   },
 
   /**
    * Finds the header with the given name in the headers array.
    *
    * @param array headers