aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/testdir
diff options
context:
space:
mode:
authorMichael Ennen <mike.ennen@gmail.com>2016-10-23 13:41:51 -0700
committerMichael Ennen <mike.ennen@gmail.com>2016-10-23 18:04:28 -0700
commitd6e27f90b9ce19852d14e74c9e8a883f6c2207d7 (patch)
tree2d9bf2bae371127634f86b65201dca40faca924b /src/nvim/testdir
parent500c485e36759f23654de3ce792f3d3b68936c01 (diff)
downloadrneovim-d6e27f90b9ce19852d14e74c9e8a883f6c2207d7.tar.gz
rneovim-d6e27f90b9ce19852d14e74c9e8a883f6c2207d7.tar.bz2
rneovim-d6e27f90b9ce19852d14e74c9e8a883f6c2207d7.zip
vim-patch:7.4.1730
Problem: It is not easy to get a character out of a string. Solution: Add strgetchar() and strcharpart(). https://github.com/vim/vim/commit/58de0e2dcc1f2d251b74892a06d71a14973f3187
Diffstat (limited to 'src/nvim/testdir')
-rw-r--r--src/nvim/testdir/test_alot.vim1
-rw-r--r--src/nvim/testdir/test_expr.vim48
2 files changed, 49 insertions, 0 deletions
diff --git a/src/nvim/testdir/test_alot.vim b/src/nvim/testdir/test_alot.vim
index 036a4c0470..90194fefce 100644
--- a/src/nvim/testdir/test_alot.vim
+++ b/src/nvim/testdir/test_alot.vim
@@ -4,6 +4,7 @@
source test_assign.vim
source test_cursor_func.vim
source test_ex_undo.vim
+source test_expr.vim
source test_feedkeys.vim
source test_cmdline.vim
source test_menu.vim
diff --git a/src/nvim/testdir/test_expr.vim b/src/nvim/testdir/test_expr.vim
new file mode 100644
index 0000000000..5c70dcb25e
--- /dev/null
+++ b/src/nvim/testdir/test_expr.vim
@@ -0,0 +1,48 @@
+" Tests for expressions.
+
+func Test_strgetchar()
+ call assert_equal(char2nr('a'), strgetchar('axb', 0))
+ call assert_equal(char2nr('x'), strgetchar('axb', 1))
+ call assert_equal(char2nr('b'), strgetchar('axb', 2))
+
+ call assert_equal(-1, strgetchar('axb', -1))
+ call assert_equal(-1, strgetchar('axb', 3))
+ call assert_equal(-1, strgetchar('', 0))
+
+ if !has('multi_byte')
+ return
+ endif
+
+ call assert_equal(char2nr('á'), strgetchar('áxb', 0))
+ call assert_equal(char2nr('x'), strgetchar('áxb', 1))
+
+ call assert_equal(char2nr('a'), strgetchar('àxb', 0))
+ call assert_equal(char2nr(''), strgetchar('àxb', 1))
+ call assert_equal(char2nr('x'), strgetchar('àxb', 2))
+endfunc
+
+func Test_strcharpart()
+ call assert_equal('a', strcharpart('axb', 0, 1))
+ call assert_equal('x', strcharpart('axb', 1, 1))
+ call assert_equal('b', strcharpart('axb', 2, 1))
+ call assert_equal('xb', strcharpart('axb', 1))
+
+ call assert_equal('', strcharpart('axb', 1, 0))
+ call assert_equal('', strcharpart('axb', 1, -1))
+ call assert_equal('', strcharpart('axb', -1, 1))
+ call assert_equal('', strcharpart('axb', -2, 2))
+
+ call assert_equal('a', strcharpart('axb', -1, 2))
+
+ if !has('multi_byte')
+ return
+ endif
+
+ call assert_equal('áxb', strcharpart('áxb', 0))
+ call assert_equal('á', strcharpart('áxb', 0, 1))
+ call assert_equal('x', strcharpart('áxb', 1, 1))
+
+ call assert_equal('a', strcharpart('àxb', 0, 1))
+ call assert_equal('', strcharpart('àxb', 1, 1))
+ call assert_equal('x', strcharpart('àxb', 2, 1))
+endfunc