1af8af8bfSBram Moolenaar" Tests for :unlet 2af8af8bfSBram Moolenaar 3af8af8bfSBram Moolenaarfunc Test_read_only() 4065ee9aeSBram Moolenaar " these caused a crash 5065ee9aeSBram Moolenaar call assert_fails('unlet count', 'E795:') 6065ee9aeSBram Moolenaar call assert_fails('unlet errmsg', 'E795:') 7af8af8bfSBram Moolenaarendfunc 8af8af8bfSBram Moolenaar 9af8af8bfSBram Moolenaarfunc Test_existing() 10af8af8bfSBram Moolenaar let does_exist = 1 11af8af8bfSBram Moolenaar call assert_true(exists('does_exist')) 12af8af8bfSBram Moolenaar unlet does_exist 13af8af8bfSBram Moolenaar call assert_false(exists('does_exist')) 14af8af8bfSBram Moolenaarendfunc 15af8af8bfSBram Moolenaar 16af8af8bfSBram Moolenaarfunc Test_not_existing() 17af8af8bfSBram Moolenaar unlet! does_not_exist 18065ee9aeSBram Moolenaar call assert_fails('unlet does_not_exist', 'E108:') 19af8af8bfSBram Moolenaarendfunc 2049439c4cSBram Moolenaar 2149439c4cSBram Moolenaarfunc Test_unlet_fails() 2249439c4cSBram Moolenaar call assert_fails('unlet v:["count"]', 'E46:') 238dfcce3aSBram Moolenaar call assert_fails('unlet $', 'E475:') 248b633135SBram Moolenaar let v = {} 258b633135SBram Moolenaar call assert_fails('unlet v[:]', 'E719:') 268b633135SBram Moolenaar let l = [] 278b633135SBram Moolenaar call assert_fails("unlet l['k'", 'E111:') 288b633135SBram Moolenaar let d = {'k' : 1} 298b633135SBram Moolenaar call assert_fails("unlet d.k2", 'E716:') 30*ea04a6e8SBram Moolenaar call assert_fails("unlet {a};", 'E488:') 3149439c4cSBram Moolenaarendfunc 32137374fdSBram Moolenaar 33137374fdSBram Moolenaarfunc Test_unlet_env() 34137374fdSBram Moolenaar let envcmd = has('win32') ? 'set' : 'env' 35137374fdSBram Moolenaar 36137374fdSBram Moolenaar let $FOOBAR = 'test' 37137374fdSBram Moolenaar let found = 0 38137374fdSBram Moolenaar for kv in split(system(envcmd), "\r*\n") 39137374fdSBram Moolenaar if kv == 'FOOBAR=test' 40137374fdSBram Moolenaar let found = 1 41137374fdSBram Moolenaar endif 42137374fdSBram Moolenaar endfor 43137374fdSBram Moolenaar call assert_equal(1, found) 44137374fdSBram Moolenaar 45137374fdSBram Moolenaar unlet $FOOBAR 46137374fdSBram Moolenaar let found = 0 47137374fdSBram Moolenaar for kv in split(system(envcmd), "\r*\n") 48137374fdSBram Moolenaar if kv == 'FOOBAR=test' 49137374fdSBram Moolenaar let found = 1 50137374fdSBram Moolenaar endif 51137374fdSBram Moolenaar endfor 52137374fdSBram Moolenaar call assert_equal(0, found) 53137374fdSBram Moolenaar 54137374fdSBram Moolenaar unlet $MUST_NOT_BE_AN_ERROR 55137374fdSBram Moolenaarendfunc 5619834010SBram Moolenaar 5719834010SBram Moolenaarfunc Test_unlet_complete() 5819834010SBram Moolenaar let g:FOOBAR = 1 5919834010SBram Moolenaar call feedkeys(":unlet g:FOO\t\n", 'tx') 6019834010SBram Moolenaar call assert_true(!exists('g:FOOBAR')) 6119834010SBram Moolenaar 6219834010SBram Moolenaar let $FOOBAR = 1 6319834010SBram Moolenaar call feedkeys(":unlet $FOO\t\n", 'tx') 6419834010SBram Moolenaar call assert_true(!exists('$FOOBAR') || empty($FOOBAR)) 6519834010SBram Moolenaarendfunc 668dfcce3aSBram Moolenaar 678dfcce3aSBram Moolenaar" vim: shiftwidth=2 sts=2 expandtab 68