|
|
|
'use strict';
|
|
|
|
var assert = require('assert');
|
|
|
|
var child_process = require('child_process');
|
|
|
|
var spawn = child_process.spawn;
|
|
|
|
var cmd = require('../common').isWindows ? 'rundll32' : 'ls';
|
|
|
|
var invalidArgsMsg = /Incorrect value of args option/;
|
|
|
|
var invalidOptionsMsg = /options argument must be an object/;
|
|
|
|
|
|
|
|
// verify that args argument must be an array
|
|
|
|
assert.throws(function() {
|
|
|
|
spawn(cmd, 'this is not an array');
|
|
|
|
}, TypeError);
|
|
|
|
|
|
|
|
// verify that valid argument combinations do not throw
|
|
|
|
assert.doesNotThrow(function() {
|
|
|
|
spawn(cmd);
|
|
|
|
});
|
|
|
|
|
|
|
|
assert.doesNotThrow(function() {
|
|
|
|
spawn(cmd, []);
|
|
|
|
});
|
|
|
|
|
|
|
|
assert.doesNotThrow(function() {
|
|
|
|
spawn(cmd, {});
|
|
|
|
});
|
|
|
|
|
|
|
|
assert.doesNotThrow(function() {
|
|
|
|
spawn(cmd, [], {});
|
|
|
|
});
|
|
|
|
|
|
|
|
// verify that invalid argument combinations throw
|
|
|
|
assert.throws(function() {
|
|
|
|
spawn();
|
|
|
|
}, /Bad argument/);
|
|
|
|
|
|
|
|
assert.throws(function() {
|
|
|
|
spawn(cmd, null);
|
|
|
|
}, invalidArgsMsg);
|
|
|
|
|
|
|
|
assert.throws(function() {
|
|
|
|
spawn(cmd, true);
|
|
|
|
}, invalidArgsMsg);
|
|
|
|
|
|
|
|
assert.throws(function() {
|
|
|
|
spawn(cmd, [], null);
|
|
|
|
}, invalidOptionsMsg);
|
|
|
|
|
|
|
|
assert.throws(function() {
|
|
|
|
spawn(cmd, [], 1);
|
|
|
|
}, invalidOptionsMsg);
|
|
|
|
|