blob: ba61b17d5ca9e8a5d10b89f458001867f7ed3898 [file] [log] [blame]
Bram Moolenaar691ddee2019-05-09 14:52:41 +02001scriptencoding utf-8
2
3func 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'])
10endfunc
11
12func Test_getenv()
13 unlet! $TESTENV
Bram Moolenaar4c313b12019-08-24 22:58:31 +020014 call assert_equal(v:null, 'TESTENV'->getenv())
Bram Moolenaar691ddee2019-05-09 14:52:41 +020015 let $TESTENV = 'foo'
16 call assert_equal('foo', getenv('TESTENV'))
17endfunc
18
19func 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'))
25endfunc
26
27func 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 Moolenaarc9740222019-06-04 08:22:53 +020039 let result = system('set | findstr "^FOO="')
Bram Moolenaar691ddee2019-05-09 14:52:41 +020040 else
41 let result = system('env | grep ^FOO=')
42 endif
43 call assert_equal('', result)
44endfunc