support url argument in other common curl configurations, closes #4, #7

This commit is contained in:
Nick Carneiro
2016-02-13 22:40:57 -08:00
parent 2dc2dbc99d
commit 6545539f5b
6 changed files with 49 additions and 0 deletions

1
test/curl14.txt Normal file
View File

@@ -0,0 +1 @@
curl -L http://www.google.com

1
test/curl15.txt Normal file
View File

@@ -0,0 +1 @@
curl -H "Host: api.ipify.org" -H "Accept: */*" -H "User-Agent: GiftTalk/2.7.2 (iPhone; iOS 9.0.2; Scale/3.00)" -H "Accept-Language: en-CN;q=1, zh-Hans-CN;q=0.9" --compressed http://api.ipify.org/?format=json&

13
test/node_output14.js Normal file
View File

@@ -0,0 +1,13 @@
var request = require('request');
var options = {
url: 'http://www.google.com'
};
function callback(error, response, body) {
if (!error && response.statusCode == 200) {
console.log(body);
}
}
request(options, callback);

8
test/python_output8.py Normal file
View File

@@ -0,0 +1,8 @@
headers = {
'Host': 'api.ipify.org',
'Accept': '*/*',
'User-Agent': 'GiftTalk/2.7.2 (iPhone; iOS 9.0.2; Scale/3.00)',
'Accept-Language': 'en-CN;q=1, zh-Hans-CN;q=0.9',
}
requests.get('http://api.ipify.org/?format=json&', headers=headers)

View File

@@ -212,3 +212,21 @@ test('http post with escaped double quotes inside double quotes body - node', fu
t.equal(nodeCode, goodNodeCode);
t.end();
});
test('http get with -L param - node', function (t) {
var curlHttpPostCommand = fs.readFileSync(__dirname + '/curl14.txt', 'utf-8');
var nodeCode = curlconverter.toNode(curlHttpPostCommand);
var goodNodeCode = fs.readFileSync(__dirname + '/node_output14.js', 'utf-8').trim();
t.equal(nodeCode, goodNodeCode);
t.end();
});
test('http with charles syntax - python', function (t) {
var curlHttpGetCommand = fs.readFileSync(__dirname + '/curl15.txt', 'utf-8');
var pythonCode = curlconverter.toPython(curlHttpGetCommand);
var goodPythonCode = fs.readFileSync(__dirname + '/python_output8.py', 'utf-8').trim();
t.equal(pythonCode, goodPythonCode);
t.end();
});

View File

@@ -7,6 +7,14 @@ var parseCurlCommand = function(curlCommand) {
var cookieString;
var cookies;
var url = parsedArguments._[1];
// if url argument wasn't where we expected it, check other places
// it shows up
if (!url && parsedArguments['L']) {
url = parsedArguments['L'];
}
if (!url && parsedArguments['compressed']) {
url = parsedArguments['compressed'];
}
var headers;
if (parsedArguments.H) {
headers = {};