From d5fe2173d930b0effd6b960bbfe3b9afbab92e26 Mon Sep 17 00:00:00 2001 From: nightwing Date: Thu, 15 Sep 2016 06:27:57 +0000 Subject: [PATCH] add tests --- node_modules/c9/ssh.js | 7 +++--- node_modules/c9/ssh_test.js | 47 +++++++++++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+), 3 deletions(-) create mode 100644 node_modules/c9/ssh_test.js diff --git a/node_modules/c9/ssh.js b/node_modules/c9/ssh.js index 532a450d..5fd562fb 100644 --- a/node_modules/c9/ssh.js +++ b/node_modules/c9/ssh.js @@ -16,7 +16,8 @@ function quote(str) { return "'" + str.replace(/'/g, "'\\''") + "'"; } -function addProxyCommand(args, proxy) { +exports.quote = quote; +exports.addProxyCommand = function(args, proxy) { var m = proxy.split(":"); var proxyHost = m[0]; var proxyPort = parseInt(m[1], 10) || 22; @@ -25,7 +26,7 @@ function addProxyCommand(args, proxy) { args.push( "-o", proxyCmd ); -} +}; exports.buildArgs = function(prvkeyFile, host, proxy) { var args = [ @@ -43,7 +44,7 @@ exports.buildArgs = function(prvkeyFile, host, proxy) { ]; if (proxy) - addProxyCommand(args, proxy); + exports.addProxyCommand(args, proxy); if (host) { host = host.split(":"); diff --git a/node_modules/c9/ssh_test.js b/node_modules/c9/ssh_test.js new file mode 100644 index 00000000..3dd9a4c3 --- /dev/null +++ b/node_modules/c9/ssh_test.js @@ -0,0 +1,47 @@ +"use strict"; + +"use server"; + +var assert = require("assert"); +var ssh = require("./ssh"); +function arrayEqual(a, b) { + assert.equal(a.length, b.length); + for (var i = 0; i < a.length; i++) + assert.equal(a[i], b[i]); +} + +module.exports = { + + "test quote" : function() { + assert.equal(ssh.quote("a'b'c"), "'a'\\''b'\\''c'"); + assert.equal(ssh.quote("abc"), "'abc'"); + }, + + "test buildArgs": function() { + var expectedArgs = [ + "-o","PasswordAuthentication=no", + "-o","IdentityFile=/key", + "-o","UserKnownHostsFile=/dev/null", + "-o","StrictHostKeyChecking=no", + "-o","IdentitiesOnly=yes", + "-F","/dev/null","-t","-t", + "-o","BatchMode=yes", + "-o","ConnectTimeout=10", + "-p",22,"foo12@124.255.121.12" + ]; + var proxyCmd = 'ProxyCommand=ssh -W %h:%p \'-o\' \'PasswordAuthentication=no\' \'-o\' \'IdentityFile=/key\' \'-o\' \'UserKnownHostsFile=/dev/null\' \'-o\' \'StrictHostKeyChecking=no\' \'-o\' \'IdentitiesOnly=yes\' \'-F\' \'/dev/null\' \'-t\' \'-t\' \'-o\' \'BatchMode=yes\' \'-o\' \'ConnectTimeout=10\' -p 22 \'24@100.20.12.12\''; + var args = ssh.buildArgs('/key', "foo12@124.255.121.12"); + arrayEqual(args, expectedArgs); + + args = ssh.buildArgs('/key', "foo12@124.255.121.12", "24@100.20.12.12"); + expectedArgs.splice(expectedArgs.length - 3, 0, "-o", proxyCmd); + arrayEqual(args, expectedArgs); + + args = ssh.buildArgs('/key', "foo12@124.255.121.12:1888", "24@100.20.12.12:88788"); + expectedArgs[expectedArgs.length - 2] = 1888; + expectedArgs[expectedArgs.length - 4] = expectedArgs[expectedArgs.length - 4].replace(22, 88788); + arrayEqual(args, expectedArgs); + }, +}; + +!module.parent && require("asyncjs").test.testcase(module.exports).exec();