Bram Moolenaar | 691ddee | 2019-05-09 14:52:41 +0200 | [diff] [blame] | 1 | scriptencoding utf-8 |
| 2 | |
| 3 | func Test_environ() |
| 4 | unlet! $TESTENV |
| 5 | call assert_equal(0, has_key(environ(), 'TESTENV')) |
| 6 | let $TESTENV = 'foo' |
| 7 | call assert_equal(1, has_key(environ(), 'TESTENV')) |
| 8 | let $TESTENV = 'こんにちわ' |
| 9 | call assert_equal('こんにちわ', environ()['TESTENV']) |
| 10 | endfunc |
| 11 | |
| 12 | func Test_getenv() |
| 13 | unlet! $TESTENV |
Bram Moolenaar | 4c313b1 | 2019-08-24 22:58:31 +0200 | [diff] [blame] | 14 | call assert_equal(v:null, 'TESTENV'->getenv()) |
Bram Moolenaar | 691ddee | 2019-05-09 14:52:41 +0200 | [diff] [blame] | 15 | let $TESTENV = 'foo' |
| 16 | call assert_equal('foo', getenv('TESTENV')) |
| 17 | endfunc |
| 18 | |
| 19 | func Test_setenv() |
| 20 | unlet! $TESTENV |
| 21 | call setenv('TEST ENV', 'foo') |
| 22 | call assert_equal('foo', getenv('TEST ENV')) |
| 23 | call setenv('TEST ENV', v:null) |
| 24 | call assert_equal(v:null, getenv('TEST ENV')) |
| 25 | endfunc |
| 26 | |
| 27 | func Test_external_env() |
| 28 | call setenv('FOO', 'HelloWorld') |
| 29 | if has('win32') |
| 30 | let result = system('echo %FOO%') |
| 31 | else |
| 32 | let result = system('echo $FOO') |
| 33 | endif |
| 34 | let result = substitute(result, '[ \r\n]', '', 'g') |
| 35 | call assert_equal('HelloWorld', result) |
| 36 | |
| 37 | call setenv('FOO', v:null) |
| 38 | if has('win32') |
Bram Moolenaar | c974022 | 2019-06-04 08:22:53 +0200 | [diff] [blame] | 39 | let result = system('set | findstr "^FOO="') |
Bram Moolenaar | 691ddee | 2019-05-09 14:52:41 +0200 | [diff] [blame] | 40 | else |
| 41 | let result = system('env | grep ^FOO=') |
| 42 | endif |
| 43 | call assert_equal('', result) |
| 44 | endfunc |