summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2019-08-12 14:38:02 +0200
committerBram Moolenaar <Bram@vim.org>2019-08-12 14:38:02 +0200
commitd5e3cc11d391f3aa80bf66f91001f11a3a145b43 (patch)
tree8c53eec2cb1f2a8c669932db7057bf2fe72e0874 /src
parent52992feafe8a996fbce29b97ae135abc169aa716 (diff)
patch 8.1.1841: no test for Ex shift commandsv8.1.1841
Problem: No test for Ex shift commands. Solution: Add a test. (Dominique Pelle, closes #4801)
Diffstat (limited to 'src')
-rw-r--r--src/testdir/Make_all.mak1
-rw-r--r--src/testdir/test_alot.vim1
-rw-r--r--src/testdir/test_shift.vim113
-rw-r--r--src/version.c2
4 files changed, 117 insertions, 0 deletions
diff --git a/src/testdir/Make_all.mak b/src/testdir/Make_all.mak
index 131ba01f0b..80cf7068e3 100644
--- a/src/testdir/Make_all.mak
+++ b/src/testdir/Make_all.mak
@@ -227,6 +227,7 @@ NEW_TESTS = \
test_searchpos \
test_set \
test_sha256 \
+ test_shift \
test_shortpathname \
test_signals \
test_signs \
diff --git a/src/testdir/test_alot.vim b/src/testdir/test_alot.vim
index a7db66af53..ab1dac49ae 100644
--- a/src/testdir/test_alot.vim
+++ b/src/testdir/test_alot.vim
@@ -52,6 +52,7 @@ source test_rename.vim
source test_scroll_opt.vim
source test_searchpos.vim
source test_set.vim
+source test_shift.vim
source test_sort.vim
source test_sha256.vim
source test_statusline.vim
diff --git a/src/testdir/test_shift.vim b/src/testdir/test_shift.vim
new file mode 100644
index 0000000000..4ff054fda1
--- /dev/null
+++ b/src/testdir/test_shift.vim
@@ -0,0 +1,113 @@
+" Test shifting lines with :> and :<
+
+source check.vim
+
+func Test_ex_shift_right()
+ set shiftwidth=2
+
+ " shift right current line.
+ call setline(1, range(1, 5))
+ 2
+ >
+ 3
+ >>
+ call assert_equal(['1',
+ \ ' 2',
+ \ ' 3',
+ \ '4',
+ \ '5'], getline(1, '$'))
+
+ " shift right with range.
+ call setline(1, range(1, 4))
+ 2,3>>
+ call assert_equal(['1',
+ \ ' 2',
+ \ ' 3',
+ \ '4',
+ \ '5'], getline(1, '$'))
+
+ " shift right with range and count.
+ call setline(1, range(1, 4))
+ 2>3
+ call assert_equal(['1',
+ \ ' 2',
+ \ ' 3',
+ \ ' 4',
+ \ '5'], getline(1, '$'))
+
+ bw!
+ set shiftwidth&
+endfunc
+
+func Test_ex_shift_left()
+ set shiftwidth=2
+
+ call setline(1, range(1, 5))
+ %>>>
+
+ " left shift current line.
+ 2<
+ 3<<
+ 4<<<<<
+ call assert_equal([' 1',
+ \ ' 2',
+ \ ' 3',
+ \ '4',
+ \ ' 5'], getline(1, '$'))
+
+ " shift right with range.
+ call setline(1, range(1, 5))
+ %>>>
+ 2,3<<
+ call assert_equal([' 1',
+ \ ' 2',
+ \ ' 3',
+ \ ' 4',
+ \ ' 5'], getline(1, '$'))
+
+ " shift right with range and count.
+ call setline(1, range(1, 5))
+ %>>>
+ 2<<3
+ call assert_equal([' 1',
+ \ ' 2',
+ \ ' 3',
+ \ ' 4',
+ \ ' 5'], getline(1, '$'))
+
+ bw!
+ set shiftwidth&
+endfunc
+
+func Test_ex_shift_rightleft()
+ CheckFeature rightleft
+
+ set shiftwidth=2 rightleft
+
+ call setline(1, range(1, 4))
+ 2,3<<
+ call assert_equal(['1',
+ \ ' 2',
+ \ ' 3',
+ \ '4'], getline(1, '$'))
+
+ 3,4>
+ call assert_equal(['1',
+ \ ' 2',
+ \ ' 3',
+ \ '4'], getline(1, '$'))
+
+ bw!
+ set rightleft& shiftwidth&
+endfunc
+
+func Test_ex_shift_errors()
+ call assert_fails('><', 'E488:')
+ call assert_fails('<>', 'E488:')
+
+ call assert_fails('>!', 'E477:')
+ call assert_fails('<!', 'E477:')
+
+ call assert_fails('2,1>', 'E493:')
+ call assert_fails('2,1<', 'E493:')
+endfunc
diff --git a/src/version.c b/src/version.c
index 8e799264b0..5e40a1fa4f 100644
--- a/src/version.c
+++ b/src/version.c
@@ -770,6 +770,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1841,
+/**/
1840,
/**/
1839,