blob: 937766767c6c9420127cf9cb4bd1a5fc19f9d195 [file] [log] [blame]
Bram Moolenaarf71d7b92016-08-09 22:14:05 +02001" Tests for startup using utf-8.
Bram Moolenaarf71d7b92016-08-09 22:14:05 +02002
Bram Moolenaara45551a2020-06-09 15:57:37 +02003source check.vim
Bram Moolenaarf71d7b92016-08-09 22:14:05 +02004source shared.vim
Bram Moolenaar24839ed2018-09-13 20:46:52 +02005source screendump.vim
Bram Moolenaarf71d7b92016-08-09 22:14:05 +02006
7func Test_read_stdin_utf8()
8 let linesin = ['テスト', '€ÀÈÌÒÙ']
Bram Moolenaar56564962022-10-10 22:39:42 +01009 call writefile(linesin, 'Xtestin', 'D')
Bram Moolenaarf71d7b92016-08-09 22:14:05 +020010 let before = [
11 \ 'set enc=utf-8',
12 \ 'set fencs=cp932,utf-8',
13 \ ]
14 let after = [
15 \ 'write ++enc=utf-8 Xtestout',
16 \ 'quit!',
17 \ ]
18 if has('win32')
19 let pipecmd = 'type Xtestin | '
20 else
21 let pipecmd = 'cat Xtestin | '
22 endif
23 if RunVimPiped(before, after, '-', pipecmd)
24 let lines = readfile('Xtestout')
25 call assert_equal(linesin, lines)
26 else
27 call assert_equal('', 'RunVimPiped failed.')
28 endif
Bram Moolenaar56564962022-10-10 22:39:42 +010029
Bram Moolenaarf71d7b92016-08-09 22:14:05 +020030 call delete('Xtestout')
Bram Moolenaarf71d7b92016-08-09 22:14:05 +020031endfunc
32
33func Test_read_fifo_utf8()
Bram Moolenaar6d91bcb2020-08-12 18:50:36 +020034 CheckUnix
Bram Moolenaarf71d7b92016-08-09 22:14:05 +020035 " Using bash/zsh's process substitution.
36 if executable('bash')
37 set shell=bash
38 elseif executable('zsh')
39 set shell=zsh
40 else
Bram Moolenaar6d91bcb2020-08-12 18:50:36 +020041 throw 'Skipped: bash or zsh is required'
Bram Moolenaarf71d7b92016-08-09 22:14:05 +020042 endif
43 let linesin = ['テスト', '€ÀÈÌÒÙ']
Bram Moolenaar56564962022-10-10 22:39:42 +010044 call writefile(linesin, 'Xtestin', 'D')
Bram Moolenaarf71d7b92016-08-09 22:14:05 +020045 let before = [
46 \ 'set enc=utf-8',
47 \ 'set fencs=cp932,utf-8',
48 \ ]
49 let after = [
50 \ 'write ++enc=utf-8 Xtestout',
51 \ 'quit!',
52 \ ]
53 if RunVim(before, after, '<(cat Xtestin)')
54 let lines = readfile('Xtestout')
55 call assert_equal(linesin, lines)
56 else
57 call assert_equal('', 'RunVim failed.')
58 endif
Bram Moolenaar56564962022-10-10 22:39:42 +010059
Bram Moolenaarf71d7b92016-08-09 22:14:05 +020060 call delete('Xtestout')
Bram Moolenaarf71d7b92016-08-09 22:14:05 +020061endfunc
Bram Moolenaar24839ed2018-09-13 20:46:52 +020062
Christian Brabandtf1c31342025-02-23 09:36:56 +010063func Test_detect_fifo()
64 CheckUnix
65 " Using bash/zsh's process substitution.
66 if executable('bash')
67 set shell=bash
68 elseif executable('zsh')
69 set shell=zsh
70 else
71 throw 'Skipped: bash or zsh is required'
72 endif
73 let linesin = ['one', 'two']
74 call writefile(linesin, 'Xtestin_fifo', 'D')
75 let after = [
76 \ 'call writefile(split(execute(":mess"), "\\n"), "Xtestout")',
77 \ 'quit!',
78 \ ]
79 if RunVim([], after, '<(cat Xtestin_fifo)')
80 let lines = readfile('Xtestout')
81 call assert_match('\[fifo\]', lines[0])
82 call assert_match('\[fifo\]', lines[1])
83 else
84 call assert_equal('', 'RunVim failed.')
85 endif
86
87 call delete('Xtestout')
88endfunc
89
Bram Moolenaar24839ed2018-09-13 20:46:52 +020090func Test_detect_ambiwidth()
Bram Moolenaar494e9062020-05-31 21:28:02 +020091 CheckRunVimInTerminal
Bram Moolenaar24839ed2018-09-13 20:46:52 +020092
93 " Use the title termcap entries to output the escape sequence.
94 call writefile([
95 \ 'set enc=utf-8',
96 \ 'set ambiwidth=double',
97 \ 'call test_option_not_set("ambiwidth")',
98 \ 'redraw',
Bram Moolenaar56564962022-10-10 22:39:42 +010099 \ ], 'Xscript', 'D')
Bram Moolenaara45551a2020-06-09 15:57:37 +0200100 let buf = RunVimInTerminal('-S Xscript', #{keep_t_u7: 1})
Bram Moolenaar6a2c5a72020-04-08 21:50:25 +0200101 call TermWait(buf)
Bram Moolenaar24839ed2018-09-13 20:46:52 +0200102 call term_sendkeys(buf, "S\<C-R>=&ambiwidth\<CR>\<Esc>")
103 call WaitForAssert({-> assert_match('single', term_getline(buf, 1))})
104
105 call StopVimInTerminal(buf)
Bram Moolenaar24839ed2018-09-13 20:46:52 +0200106endfunc
Bram Moolenaar6d91bcb2020-08-12 18:50:36 +0200107
108" vim: shiftwidth=2 sts=2 expandtab