Bram Moolenaar | af8af8b | 2016-01-04 22:05:24 +0100 | [diff] [blame] | 1 | " Tests for :unlet |
| 2 | |
| 3 | func Test_read_only() |
Bram Moolenaar | 065ee9a | 2016-01-15 20:53:38 +0100 | [diff] [blame] | 4 | " these caused a crash |
| 5 | call assert_fails('unlet count', 'E795:') |
| 6 | call assert_fails('unlet errmsg', 'E795:') |
Bram Moolenaar | af8af8b | 2016-01-04 22:05:24 +0100 | [diff] [blame] | 7 | endfunc |
| 8 | |
| 9 | func Test_existing() |
| 10 | let does_exist = 1 |
| 11 | call assert_true(exists('does_exist')) |
| 12 | unlet does_exist |
| 13 | call assert_false(exists('does_exist')) |
| 14 | endfunc |
| 15 | |
| 16 | func Test_not_existing() |
| 17 | unlet! does_not_exist |
Bram Moolenaar | 065ee9a | 2016-01-15 20:53:38 +0100 | [diff] [blame] | 18 | call assert_fails('unlet does_not_exist', 'E108:') |
Bram Moolenaar | af8af8b | 2016-01-04 22:05:24 +0100 | [diff] [blame] | 19 | endfunc |
Bram Moolenaar | 49439c4 | 2017-02-20 23:07:05 +0100 | [diff] [blame] | 20 | |
| 21 | func Test_unlet_fails() |
| 22 | call assert_fails('unlet v:["count"]', 'E46:') |
Bram Moolenaar | 8dfcce3 | 2020-03-18 19:32:26 +0100 | [diff] [blame] | 23 | call assert_fails('unlet $', 'E475:') |
Bram Moolenaar | 8b63313 | 2020-03-20 18:20:51 +0100 | [diff] [blame] | 24 | let v = {} |
| 25 | call assert_fails('unlet v[:]', 'E719:') |
| 26 | let l = [] |
| 27 | call assert_fails("unlet l['k'", 'E111:') |
| 28 | let d = {'k' : 1} |
| 29 | call assert_fails("unlet d.k2", 'E716:') |
Bram Moolenaar | ea04a6e | 2020-04-23 13:38:02 +0200 | [diff] [blame] | 30 | call assert_fails("unlet {a};", 'E488:') |
Bram Moolenaar | 49439c4 | 2017-02-20 23:07:05 +0100 | [diff] [blame] | 31 | endfunc |
Bram Moolenaar | 137374f | 2018-05-13 15:59:50 +0200 | [diff] [blame] | 32 | |
| 33 | func Test_unlet_env() |
| 34 | let envcmd = has('win32') ? 'set' : 'env' |
| 35 | |
| 36 | let $FOOBAR = 'test' |
| 37 | let found = 0 |
| 38 | for kv in split(system(envcmd), "\r*\n") |
| 39 | if kv == 'FOOBAR=test' |
| 40 | let found = 1 |
| 41 | endif |
| 42 | endfor |
| 43 | call assert_equal(1, found) |
| 44 | |
| 45 | unlet $FOOBAR |
| 46 | let found = 0 |
| 47 | for kv in split(system(envcmd), "\r*\n") |
| 48 | if kv == 'FOOBAR=test' |
| 49 | let found = 1 |
| 50 | endif |
| 51 | endfor |
| 52 | call assert_equal(0, found) |
| 53 | |
| 54 | unlet $MUST_NOT_BE_AN_ERROR |
| 55 | endfunc |
Bram Moolenaar | 1983401 | 2018-06-12 17:03:39 +0200 | [diff] [blame] | 56 | |
| 57 | func Test_unlet_complete() |
| 58 | let g:FOOBAR = 1 |
| 59 | call feedkeys(":unlet g:FOO\t\n", 'tx') |
| 60 | call assert_true(!exists('g:FOOBAR')) |
| 61 | |
| 62 | let $FOOBAR = 1 |
| 63 | call feedkeys(":unlet $FOO\t\n", 'tx') |
| 64 | call assert_true(!exists('$FOOBAR') || empty($FOOBAR)) |
| 65 | endfunc |
Bram Moolenaar | 8dfcce3 | 2020-03-18 19:32:26 +0100 | [diff] [blame] | 66 | |
| 67 | " vim: shiftwidth=2 sts=2 expandtab |