From 60edea0203637f9b146e06ba9f3c1e2fc37851da Mon Sep 17 00:00:00 2001 From: janekptacijarabaci Date: Thu, 1 Mar 2018 13:35:53 +0100 Subject: DevTools - network - Copy as cURL (POST) https://github.com/MoonchildProductions/moebius/pull/167 --- .../client/netmonitor/test/browser_net_curl-utils.js | 16 +++++++++++++++- devtools/client/shared/curl.js | 6 +++++- 2 files changed, 20 insertions(+), 2 deletions(-) (limited to 'devtools/client') diff --git a/devtools/client/netmonitor/test/browser_net_curl-utils.js b/devtools/client/netmonitor/test/browser_net_curl-utils.js index 7a5fc7926..0d35c6141 100644 --- a/devtools/client/netmonitor/test/browser_net_curl-utils.js +++ b/devtools/client/netmonitor/test/browser_net_curl-utils.js @@ -7,7 +7,7 @@ * Tests Curl Utils functionality. */ -const { CurlUtils } = require("devtools/client/shared/curl"); +const { Curl, CurlUtils } = require("devtools/client/shared/curl"); add_task(function* () { let { tab, monitor } = yield initNetMonitor(CURL_UTILS_URL); @@ -37,6 +37,8 @@ add_task(function* () { data = yield createCurlData(requests.post.attachment, gNetwork); testIsUrlEncodedRequest(data); testWritePostDataTextParams(data); + testWriteEmptyPostDataTextParams(data); + testDataArgumentOnGeneratedCommand(data); data = yield createCurlData(requests.multipart.attachment, gNetwork); testIsMultipartRequest(data); @@ -85,6 +87,18 @@ function testWritePostDataTextParams(data) { "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); ok(/-{3,}\w+/.test(boundary), diff --git a/devtools/client/shared/curl.js b/devtools/client/shared/curl.js index 44465193f..45122be37 100644 --- a/devtools/client/shared/curl.js +++ b/devtools/client/shared/curl.js @@ -76,7 +76,8 @@ const Curl = { // Create post data. let postData = []; - if (utils.isUrlEncodedRequest(data) || data.method == "PUT") { + if (utils.isUrlEncodedRequest(data) || + ["PUT", "POST"].includes(data.method)) { postDataText = data.postDataText; postData.push("--data"); postData.push(escapeString(utils.writePostDataTextParams(postDataText))); @@ -207,6 +208,9 @@ const CurlUtils = { * Post data parameters. */ writePostDataTextParams: function (postDataText) { + if (!postDataText) { + return ""; + } let lines = postDataText.split("\r\n"); return lines[lines.length - 1]; }, -- cgit v1.2.3