summaryrefslogtreecommitdiffstats
path: root/node_modules/shell-quote/test/env.js
diff options
context:
space:
mode:
authorGravatar Piotr Russ <mail@pruss.it> 2020-11-16 00:10:28 +0100
committerGravatar Piotr Russ <mail@pruss.it> 2020-11-16 00:10:28 +0100
commite06ec920f7a5d784e674c4c4b4e6d1da3dc7391d (patch)
tree55713f725f77b44ebfec86e4eec3ce33e71458ca /node_modules/shell-quote/test/env.js
downloadwebsite_creator-e06ec920f7a5d784e674c4c4b4e6d1da3dc7391d.tar.gz
website_creator-e06ec920f7a5d784e674c4c4b4e6d1da3dc7391d.tar.bz2
website_creator-e06ec920f7a5d784e674c4c4b4e6d1da3dc7391d.zip
api, login, auth
Diffstat (limited to 'node_modules/shell-quote/test/env.js')
-rw-r--r--node_modules/shell-quote/test/env.js41
1 files changed, 41 insertions, 0 deletions
diff --git a/node_modules/shell-quote/test/env.js b/node_modules/shell-quote/test/env.js
new file mode 100644
index 0000000..b3faeb0
--- /dev/null
+++ b/node_modules/shell-quote/test/env.js
@@ -0,0 +1,41 @@
+var test = require('tape');
+var parse = require('../').parse;
+
+test('expand environment variables', function (t) {
+ t.same(parse('a $XYZ c', { XYZ: 'b' }), [ 'a', 'b', 'c' ]);
+ t.same(parse('a${XYZ}c', { XYZ: 'b' }), [ 'abc' ]);
+ t.same(parse('a${XYZ}c $XYZ', { XYZ: 'b' }), [ 'abc', 'b' ]);
+ t.same(parse('"-$X-$Y-"', { X: 'a', Y: 'b' }), [ '-a-b-' ]);
+ t.same(parse("'-$X-$Y-'", { X: 'a', Y: 'b' }), [ '-$X-$Y-' ]);
+ t.same(parse('qrs"$zzz"wxy', { zzz: 'tuv' }), [ 'qrstuvwxy' ]);
+ t.same(parse("qrs'$zzz'wxy", { zzz: 'tuv' }), [ 'qrs$zzzwxy' ]);
+ t.same(parse("qrs${zzz}wxy"), [ 'qrswxy' ]);
+ t.same(parse("qrs$wxy $"), [ 'qrs', '$' ]);
+ t.same(parse('grep "xy$"'), [ 'grep', 'xy$' ]);
+ t.same(parse("ab$x", { x: 'c' }), [ 'abc' ]);
+ t.same(parse("ab\\$x", { x: 'c' }), [ 'ab$x' ]);
+ t.same(parse("ab${x}def", { x: 'c' }), [ 'abcdef' ]);
+ t.same(parse("ab\\${x}def", { x: 'c' }), [ 'ab${x}def' ]);
+ t.same(parse('"ab\\${x}def"', { x: 'c' }), [ 'ab${x}def' ]);
+
+ t.end();
+});
+
+test('environment variables with metacharacters', function (t) {
+ t.same(parse('a $XYZ c', { XYZ: '"b"' }), [ 'a', '"b"', 'c' ]);
+ t.same(parse('a $XYZ c', { XYZ: '$X', X: 5 }), [ 'a', '$X', 'c' ]);
+ t.same(parse('a"$XYZ"c', { XYZ: "'xyz'" }), [ "a'xyz'c" ]);
+
+ t.end();
+});
+
+test('special shell parameters', function (t) {
+ var chars = '*@#?-$!0_'.split('');
+ t.plan(chars.length);
+
+ chars.forEach(function (c) {
+ var env = {};
+ env[c] = 'xxx';
+ t.same(parse('a $' + c + ' c', env), [ 'a', 'xxx', 'c' ]);
+ });
+});