Mercurial > vim
view src/testdir/test_xdg.vim @ 34963:a734bb7dc56f v9.1.0337
patch 9.1.0337: Missing entry for XDG vimrc file in :version
Commit: https://github.com/vim/vim/commit/d1068a2bb09fd3b9d117d832105bf10dd5e48e2f
Author: Diego Viola <diego.viola@gmail.com>
Date: Tue Apr 16 20:58:45 2024 +0200
patch 9.1.0337: Missing entry for XDG vimrc file in :version
Problem: Missing entry for XDG vimrc file in :version
Solution: Add 4th user vimrc entry to :version output
(Diego Viola)
related: #14182
closes: #14569
Signed-off-by: Diego Viola <diego.viola@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Tue, 16 Apr 2024 22:00:10 +0200 |
parents | 7ae80861729e |
children | edace1eff19b |
line wrap: on
line source
" Tests for the XDG feature source check.vim CheckFeature terminal source shared.vim source screendump.vim source mouse.vim source term_util.vim func s:get_rcs() let rcs = { \ 'file1': { 'path': '~/.vimrc' }, \ 'file2': { 'path': '~/.vim/vimrc' }, \ 'xdg': { 'path': exists('$XDG_CONFIG_HOME') ? '$XDG_CONFIG_HOME' : "~/.config" }, \} for v in values(rcs) let v.exists = filereadable(expand(v.path)) endfor return rcs endfunc func Test_xdg_rc_detection() CheckUnix let rc = s:get_rcs() let before =<< trim CODE call writefile([expand('$MYVIMRC')], "XMY_VIMRC") quit! CODE call RunVim(before, [], "") let my_rc = readfile("XMY_VIMRC") if rc.file1.exists call assert_equal(rc.file1.path, my_rc) elseif !rc.file1.exists && rc.file2.exists call assert_equal(rc.file2.path, my_rc) elseif !rc.file1.exists && !rc.file2.exists && rc.xdg.exists call assert_equal(rc.xdg.path, my_rc) endif call delete("XMY_VIMRC") endfunc func Test_xdg_runtime_files() " This tests, that the initialization file from " ~/.vimrc, ~/.vim/vimrc and ~/.config/vim/vimrc (or " $XDG_HOMECONFIG/vim/vimrc) are sourced in that order CheckUnix call mkdir(expand('~/.vim/'), 'pD') call mkdir(expand('~/.config/vim/'), 'pD') call mkdir(expand('~/xdg/vim/'), 'pD') let rc1=expand('~/.vimrc') let rc2=expand('~/.vim/vimrc') let rc3=expand('~/.config/vim/vimrc') let rc4=expand('~/xdg/vim/vimrc') " g:rc_one|two|three|four is to verify, that the other " init files are not sourced " g:rc is to verify which rc file has been loaded. let file1 =<< trim CODE let g:rc_one = 'one' let g:rc = '.vimrc' CODE let file2 =<< trim CODE let g:rc_two = 'two' let g:rc = '.vim/vimrc' CODE let file3 =<< trim CODE let g:rc_three = 'three' let g:rc = '.config/vim/vimrc' CODE let file4 =<< trim CODE let g:rc_four = 'four' let g:rc = 'xdg/vim/vimrc' CODE call writefile(file1, rc1) call writefile(file2, rc2) call writefile(file3, rc3) call writefile(file4, rc4) let rows = 20 let buf = RunVimInTerminal('', #{rows: rows, no_clean: 1}) call TermWait(buf) call term_sendkeys(buf, ":echo \$MYVIMRC[-30:]\<cr>") call WaitForAssert({-> assert_match('XfakeHOME/\.vimrc', term_getline(buf, rows))}) call term_sendkeys(buf, ":call filter(g:, {idx, _ -> idx =~ '^rc'})\<cr>") call TermWait(buf) call term_sendkeys(buf, ":redraw!\<cr>") call TermWait(buf) call term_sendkeys(buf, ":let g:\<cr>") call VerifyScreenDump(buf, 'Test_xdg_1', {}) call StopVimInTerminal(buf) call delete(rc1) bw let buf = RunVimInTerminal('', #{rows: rows, no_clean: 1}) call TermWait(buf) call term_sendkeys(buf, ":echo \$MYVIMRC[-30:]\<cr>") call WaitForAssert({-> assert_match('XfakeHOME/\.vim/vimrc', term_getline(buf, rows))}) call term_sendkeys(buf, ":call filter(g:, {idx, _ -> idx =~ '^rc'})\<cr>") call TermWait(buf) call term_sendkeys(buf, ":redraw!\<cr>") call TermWait(buf) call term_sendkeys(buf, ":let g:\<cr>") call VerifyScreenDump(buf, 'Test_xdg_2', {}) call StopVimInTerminal(buf) call delete(rc2) bw let buf = RunVimInTerminal('', #{rows: rows, no_clean: 1}) call TermWait(buf) call term_sendkeys(buf, ":echo \$MYVIMRC[-30:]\<cr>") call WaitForAssert({-> assert_match('XfakeHOME/\.config/vim/vimrc', term_getline(buf, rows))}) call term_sendkeys(buf, ":call filter(g:, {idx, _ -> idx =~ '^rc'})\<cr>") call TermWait(buf) call term_sendkeys(buf, ":redraw!\<cr>") call TermWait(buf) call term_sendkeys(buf, ":let g:\<cr>") call VerifyScreenDump(buf, 'Test_xdg_3', {}) call StopVimInTerminal(buf) call delete(rc3) bw let $XDG_CONFIG_HOME=expand('~/xdg/') let buf = RunVimInTerminal('', #{rows: rows, no_clean: 1}) call TermWait(buf) call term_sendkeys(buf, ":redraw!\<cr>") call TermWait(buf) call term_sendkeys(buf, ":echo \$MYVIMRC[-30:]\<cr>") call WaitForAssert({-> assert_match('XfakeHOME/xdg/vim/vimrc', term_getline(buf, rows))}) call term_sendkeys(buf, ":call filter(g:, {idx, _ -> idx =~ '^rc'})\<cr>") call TermWait(buf) call term_sendkeys(buf, ":let g:\<cr>") call VerifyScreenDump(buf, 'Test_xdg_4', {}) call StopVimInTerminal(buf) call delete(rc4) bw unlet $XDG_CONFIG_HOME endfunc func Test_xdg_version() CheckUnix let $HOME = getcwd() .. '/XfakeHOME' unlet $XDG_CONFIG_HOME let a = execute(':version')->split('\n') let a = filter(a, { _, val -> val =~ '\.config\|XDG_CONFIG_HOME' }) call assert_equal(1, len(a)) call assert_match('\~/.config/vim/vimrc', a[0]) let $XDG_CONFIG_HOME = expand('~/.xdg') let a = execute(':version')->split('\n') let a = filter(a, { _, val -> val =~ '\.config\|XDG_CONFIG_HOME' }) call assert_equal(1, len(a)) call assert_match('XDG_CONFIG_HOME/vim/vimrc', a[0]) unlet $XDG_CONFIG_HOME endfunc " vim: shiftwidth=2 sts=2 expandtab