1" Tests for startup using utf-8.
2
3source check.vim
4source shared.vim
5source screendump.vim
6
7func Test_read_stdin_utf8()
8  let linesin = ['テスト', '€ÀÈÌÒÙ']
9  call writefile(linesin, 'Xtestin')
10  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
29  call delete('Xtestout')
30  call delete('Xtestin')
31endfunc
32
33func Test_read_fifo_utf8()
34  CheckUnix
35  " Using bash/zsh's process substitution.
36  if executable('bash')
37    set shell=bash
38  elseif executable('zsh')
39    set shell=zsh
40  else
41    throw 'Skipped: bash or zsh is required'
42  endif
43  let linesin = ['テスト', '€ÀÈÌÒÙ']
44  call writefile(linesin, 'Xtestin')
45  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
59  call delete('Xtestout')
60  call delete('Xtestin')
61endfunc
62
63func Test_detect_ambiwidth()
64  CheckRunVimInTerminal
65
66  " Use the title termcap entries to output the escape sequence.
67  call writefile([
68	\ 'set enc=utf-8',
69	\ 'set ambiwidth=double',
70	\ 'call test_option_not_set("ambiwidth")',
71	\ 'redraw',
72	\ ], 'Xscript')
73  let buf = RunVimInTerminal('-S Xscript', #{keep_t_u7: 1})
74  call TermWait(buf)
75  call term_sendkeys(buf, "S\<C-R>=&ambiwidth\<CR>\<Esc>")
76  call WaitForAssert({-> assert_match('single', term_getline(buf, 1))})
77
78  call StopVimInTerminal(buf)
79  call delete('Xscript')
80endfunc
81
82" vim: shiftwidth=2 sts=2 expandtab
83