1f71d7b9eSBram Moolenaar" Tests for startup using utf-8.
2f71d7b9eSBram Moolenaar
3a45551a5SBram Moolenaarsource check.vim
4f71d7b9eSBram Moolenaarsource shared.vim
524839edcSBram Moolenaarsource screendump.vim
6f71d7b9eSBram Moolenaar
7f71d7b9eSBram Moolenaarfunc Test_read_stdin_utf8()
8f71d7b9eSBram Moolenaar  let linesin = ['テスト', '€ÀÈÌÒÙ']
9f71d7b9eSBram Moolenaar  call writefile(linesin, 'Xtestin')
10f71d7b9eSBram Moolenaar  let before = [
11f71d7b9eSBram Moolenaar	\ 'set enc=utf-8',
12f71d7b9eSBram Moolenaar	\ 'set fencs=cp932,utf-8',
13f71d7b9eSBram Moolenaar	\ ]
14f71d7b9eSBram Moolenaar  let after = [
15f71d7b9eSBram Moolenaar	\ 'write ++enc=utf-8 Xtestout',
16f71d7b9eSBram Moolenaar	\ 'quit!',
17f71d7b9eSBram Moolenaar	\ ]
18f71d7b9eSBram Moolenaar  if has('win32')
19f71d7b9eSBram Moolenaar    let pipecmd = 'type Xtestin | '
20f71d7b9eSBram Moolenaar  else
21f71d7b9eSBram Moolenaar    let pipecmd = 'cat Xtestin | '
22f71d7b9eSBram Moolenaar  endif
23f71d7b9eSBram Moolenaar  if RunVimPiped(before, after, '-', pipecmd)
24f71d7b9eSBram Moolenaar    let lines = readfile('Xtestout')
25f71d7b9eSBram Moolenaar    call assert_equal(linesin, lines)
26f71d7b9eSBram Moolenaar  else
27f71d7b9eSBram Moolenaar    call assert_equal('', 'RunVimPiped failed.')
28f71d7b9eSBram Moolenaar  endif
29f71d7b9eSBram Moolenaar  call delete('Xtestout')
30f71d7b9eSBram Moolenaar  call delete('Xtestin')
31f71d7b9eSBram Moolenaarendfunc
32f71d7b9eSBram Moolenaar
33f71d7b9eSBram Moolenaarfunc Test_read_fifo_utf8()
34*6d91bcb4SBram Moolenaar  CheckUnix
35f71d7b9eSBram Moolenaar  " Using bash/zsh's process substitution.
36f71d7b9eSBram Moolenaar  if executable('bash')
37f71d7b9eSBram Moolenaar    set shell=bash
38f71d7b9eSBram Moolenaar  elseif executable('zsh')
39f71d7b9eSBram Moolenaar    set shell=zsh
40f71d7b9eSBram Moolenaar  else
41*6d91bcb4SBram Moolenaar    throw 'Skipped: bash or zsh is required'
42f71d7b9eSBram Moolenaar  endif
43f71d7b9eSBram Moolenaar  let linesin = ['テスト', '€ÀÈÌÒÙ']
44f71d7b9eSBram Moolenaar  call writefile(linesin, 'Xtestin')
45f71d7b9eSBram Moolenaar  let before = [
46f71d7b9eSBram Moolenaar	\ 'set enc=utf-8',
47f71d7b9eSBram Moolenaar	\ 'set fencs=cp932,utf-8',
48f71d7b9eSBram Moolenaar	\ ]
49f71d7b9eSBram Moolenaar  let after = [
50f71d7b9eSBram Moolenaar	\ 'write ++enc=utf-8 Xtestout',
51f71d7b9eSBram Moolenaar	\ 'quit!',
52f71d7b9eSBram Moolenaar	\ ]
53f71d7b9eSBram Moolenaar  if RunVim(before, after, '<(cat Xtestin)')
54f71d7b9eSBram Moolenaar    let lines = readfile('Xtestout')
55f71d7b9eSBram Moolenaar    call assert_equal(linesin, lines)
56f71d7b9eSBram Moolenaar  else
57f71d7b9eSBram Moolenaar    call assert_equal('', 'RunVim failed.')
58f71d7b9eSBram Moolenaar  endif
59f71d7b9eSBram Moolenaar  call delete('Xtestout')
60f71d7b9eSBram Moolenaar  call delete('Xtestin')
61f71d7b9eSBram Moolenaarendfunc
6224839edcSBram Moolenaar
6324839edcSBram Moolenaarfunc Test_detect_ambiwidth()
64494e9069SBram Moolenaar  CheckRunVimInTerminal
6524839edcSBram Moolenaar
6624839edcSBram Moolenaar  " Use the title termcap entries to output the escape sequence.
6724839edcSBram Moolenaar  call writefile([
6824839edcSBram Moolenaar	\ 'set enc=utf-8',
6924839edcSBram Moolenaar	\ 'set ambiwidth=double',
7024839edcSBram Moolenaar	\ 'call test_option_not_set("ambiwidth")',
7124839edcSBram Moolenaar	\ 'redraw',
7224839edcSBram Moolenaar	\ ], 'Xscript')
73a45551a5SBram Moolenaar  let buf = RunVimInTerminal('-S Xscript', #{keep_t_u7: 1})
746a2c5a7dSBram Moolenaar  call TermWait(buf)
7524839edcSBram Moolenaar  call term_sendkeys(buf, "S\<C-R>=&ambiwidth\<CR>\<Esc>")
7624839edcSBram Moolenaar  call WaitForAssert({-> assert_match('single', term_getline(buf, 1))})
7724839edcSBram Moolenaar
7824839edcSBram Moolenaar  call StopVimInTerminal(buf)
7924839edcSBram Moolenaar  call delete('Xscript')
8024839edcSBram Moolenaarendfunc
81*6d91bcb4SBram Moolenaar
82*6d91bcb4SBram Moolenaar" vim: shiftwidth=2 sts=2 expandtab
83