diff src/testdir/test_writefile.vim @ 21510:31cb78014fe4 v8.2.1305

patch 8.2.1305: some tests are still old style Commit: https://github.com/vim/vim/commit/622b3568fa1baf07671d31390815fb0a55a99891 Author: Bram Moolenaar <Bram@vim.org> Date: Mon Jul 27 20:02:41 2020 +0200 patch 8.2.1305: some tests are still old style Problem: Some tests are still old style. Solution: Convert tests 52 and 70 to new style. (Yegappan Lakshmanan, closes #6544) Fix error in FinishTesting().
author Bram Moolenaar <Bram@vim.org>
date Mon, 27 Jul 2020 20:15:07 +0200
parents 6a4806e326dd
children dc1c26547a42
line wrap: on
line diff
--- a/src/testdir/test_writefile.vim
+++ b/src/testdir/test_writefile.vim
@@ -442,4 +442,118 @@ func Test_write_invalid_encoding()
   close!
 endfunc
 
+" Tests for reading and writing files with conversion for Win32.
+func Test_write_file_encoding()
+  CheckMSWindows
+  let save_encoding = &encoding
+  let save_fileencodings = &fileencodings
+  set encoding& fileencodings&
+  let text =<< trim END
+    1 utf-8 text: Для Vim version 6.2.  Последнее изменение: 1970 Jan 01
+    2 cp1251 text:  Vim version 6.2.   : 1970 Jan 01
+    3 cp866 text:  Vim version 6.2.  ᫥ : 1970 Jan 01
+  END
+  call writefile(text, 'Xfile')
+  edit Xfile
+
+  " write tests:
+  " combine three values for 'encoding' with three values for 'fileencoding'
+  " also write files for read tests
+  call cursor(1, 1)
+  set encoding=utf-8
+  .w! ++enc=utf-8 Xtest
+  .w ++enc=cp1251 >> Xtest
+  .w ++enc=cp866 >> Xtest
+  .w! ++enc=utf-8 Xutf8
+  let expected =<< trim END
+    1 utf-8 text: Для Vim version 6.2.  Последнее изменение: 1970 Jan 01
+    1 utf-8 text:  Vim version 6.2.   : 1970 Jan 01
+    1 utf-8 text:  Vim version 6.2.  ᫥ : 1970 Jan 01
+  END
+  call assert_equal(expected, readfile('Xtest'))
+
+  call cursor(2, 1)
+  set encoding=cp1251
+  .w! ++enc=utf-8 Xtest
+  .w ++enc=cp1251 >> Xtest
+  .w ++enc=cp866 >> Xtest
+  .w! ++enc=cp1251 Xcp1251
+  let expected =<< trim END
+    2 cp1251 text: Для Vim version 6.2.  Последнее изменение: 1970 Jan 01
+    2 cp1251 text:  Vim version 6.2.   : 1970 Jan 01
+    2 cp1251 text:  Vim version 6.2.  ᫥ : 1970 Jan 01
+  END
+  call assert_equal(expected, readfile('Xtest'))
+
+  call cursor(3, 1)
+  set encoding=cp866
+  .w! ++enc=utf-8 Xtest
+  .w ++enc=cp1251 >> Xtest
+  .w ++enc=cp866 >> Xtest
+  .w! ++enc=cp866 Xcp866
+  let expected =<< trim END
+    3 cp866 text: Для Vim version 6.2.  Последнее изменение: 1970 Jan 01
+    3 cp866 text:  Vim version 6.2.   : 1970 Jan 01
+    3 cp866 text:  Vim version 6.2.  ᫥ : 1970 Jan 01
+  END
+  call assert_equal(expected, readfile('Xtest'))
+
+  " read three 'fileencoding's with utf-8 'encoding'
+  set encoding=utf-8 fencs=utf-8,cp1251
+  e Xutf8
+  .w! ++enc=utf-8 Xtest
+  e Xcp1251
+  .w ++enc=utf-8 >> Xtest
+  set fencs=utf-8,cp866
+  e Xcp866
+  .w ++enc=utf-8 >> Xtest
+  let expected =<< trim END
+    1 utf-8 text: Для Vim version 6.2.  Последнее изменение: 1970 Jan 01
+    2 cp1251 text: Для Vim version 6.2.  Последнее изменение: 1970 Jan 01
+    3 cp866 text: Для Vim version 6.2.  Последнее изменение: 1970 Jan 01
+  END
+  call assert_equal(expected, readfile('Xtest'))
+
+  " read three 'fileencoding's with cp1251 'encoding'
+  set encoding=utf-8 fencs=utf-8,cp1251
+  e Xutf8
+  .w! ++enc=cp1251 Xtest
+  e Xcp1251
+  .w ++enc=cp1251 >> Xtest
+  set fencs=utf-8,cp866
+  e Xcp866
+  .w ++enc=cp1251 >> Xtest
+  let expected =<< trim END
+    1 utf-8 text:  Vim version 6.2.   : 1970 Jan 01
+    2 cp1251 text:  Vim version 6.2.   : 1970 Jan 01
+    3 cp866 text:  Vim version 6.2.   : 1970 Jan 01
+  END
+  call assert_equal(expected, readfile('Xtest'))
+
+  " read three 'fileencoding's with cp866 'encoding'
+  set encoding=cp866 fencs=utf-8,cp1251
+  e Xutf8
+  .w! ++enc=cp866 Xtest
+  e Xcp1251
+  .w ++enc=cp866 >> Xtest
+  set fencs=utf-8,cp866
+  e Xcp866
+  .w ++enc=cp866 >> Xtest
+  let expected =<< trim END
+    1 utf-8 text:  Vim version 6.2.  ᫥ : 1970 Jan 01
+    2 cp1251 text:  Vim version 6.2.  ᫥ : 1970 Jan 01
+    3 cp866 text:  Vim version 6.2.  ᫥ : 1970 Jan 01
+  END
+  call assert_equal(expected, readfile('Xtest'))
+
+  call delete('Xfile')
+  call delete('Xtest')
+  call delete('Xutf8')
+  call delete('Xcp1251')
+  call delete('Xcp866')
+  let &encoding = save_encoding
+  let &fileencodings = save_fileencodings
+  %bw!
+endfunc
+
 " vim: shiftwidth=2 sts=2 expandtab