]> granicus.if.org Git - vim/commitdiff
patch 8.1.1841: no test for Ex shift commands v8.1.1841
authorBram Moolenaar <Bram@vim.org>
Mon, 12 Aug 2019 12:38:02 +0000 (14:38 +0200)
committerBram Moolenaar <Bram@vim.org>
Mon, 12 Aug 2019 12:38:02 +0000 (14:38 +0200)
Problem:    No test for Ex shift commands.
Solution:   Add a test. (Dominique Pelle, closes #4801)

src/testdir/Make_all.mak
src/testdir/test_alot.vim
src/testdir/test_shift.vim [new file with mode: 0644]
src/version.c

index 131ba01f0bcc9dba0edf488e98ef14bbd0022ef7..80cf7068e39bc0eaab4861b92f9eb452e921b8f8 100644 (file)
@@ -227,6 +227,7 @@ NEW_TESTS = \
        test_searchpos \
        test_set \
        test_sha256 \
+       test_shift \
        test_shortpathname \
        test_signals \
        test_signs \
index a7db66af5390a936c3408b6365d2b1d4e3492524..ab1dac49aef7e9bce5d37fed141e3093f4e8b496 100644 (file)
@@ -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 (file)
index 0000000..4ff054f
--- /dev/null
@@ -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
index 8e799264b0d3eadc3231b0c8c690b54e95c62c02..5e40a1fa4f570e711e850cbe03a03154b0b1ecda 100644 (file)
@@ -769,6 +769,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    1841,
 /**/
     1840,
 /**/