diff options
author | Lukas Holecek <hluk@email.cz> | 2014-11-20 19:57:16 +0100 |
---|---|---|
committer | hjk <hjk121@nokiamail.com> | 2014-11-25 10:32:12 +0100 |
commit | 577fcd97d4f0ae6dd944d1587b2c4ed0ac2c66c9 (patch) | |
tree | 894c662299aa21fadfa345743cd67f5403b6a680 /src/plugins/fakevim/fakevim_test.cpp | |
parent | e8aecca215fdc5c01507e06e0a26e09eab6b4655 (diff) |
FakeVim: Select and modify paragraph object
Change-Id: Ib528fa2914bfcb17caed114d7da2d201079b0725
Reviewed-by: hjk <hjk121@nokiamail.com>
Diffstat (limited to 'src/plugins/fakevim/fakevim_test.cpp')
-rw-r--r-- | src/plugins/fakevim/fakevim_test.cpp | 426 |
1 files changed, 426 insertions, 0 deletions
diff --git a/src/plugins/fakevim/fakevim_test.cpp b/src/plugins/fakevim/fakevim_test.cpp index e012b04969..cd1ed10b1f 100644 --- a/src/plugins/fakevim/fakevim_test.cpp +++ b/src/plugins/fakevim/fakevim_test.cpp @@ -1573,6 +1573,432 @@ void FakeVimPlugin::test_vim_block_selection_insert() "a" X "bXYZc" N " XYZ" N "deXYZf" N + ); +} + +void FakeVimPlugin::test_vim_delete_inner_paragraph() +{ + TestData data; + setup(&data); + + data.setText( + "abc" N + "def" N + "" N + "" N + "ghi" N + "" N + "jkl" N + ); + + KEYS("dip", + X "" N + "" N + "ghi" N + "" N + "jkl" N + ); + KEYS("dip", + X "ghi" N + "" N + "jkl" N + ); + KEYS("2dip", + X "jkl" N + ); +} + +void FakeVimPlugin::test_vim_delete_a_paragraph() +{ + TestData data; + setup(&data); + + data.setText( + "abc" N + "def" N + "" N + "" N + "ghi" N + "" N + "jkl" N + ); + + KEYS("dap", + X "ghi" N + "" N + "jkl" N + ); + KEYS("dap", + X "jkl" N + ); + KEYS("u", + X "ghi" N + "" N + "jkl" N + ); + + data.setText( + "abc" N + "" N + "" N + "def" + ); + KEYS("Gdap", + X "abc" + ); +} + +void FakeVimPlugin::test_vim_change_inner_paragraph() +{ + TestData data; + setup(&data); + + data.setText( + "abc" N + "def" N + "" N + "" N + "ghi" N + "" N + "jkl" N + ); + + KEYS("cipXXX<ESC>", + "XX" X "X" N + "" N + "" N + "ghi" N + "" N + "jkl" N + ); + KEYS("3j" "cipYYY<ESC>", + "XXX" N + "" N + "" N + "YY" X "Y" N + "" N + "jkl" N + ); +} + +void FakeVimPlugin::test_vim_change_a_paragraph() +{ + TestData data; + setup(&data); + + data.setText( + "abc" N + "def" N + "" N + "" N + "ghi" N + "" N + "jkl" N + ); + + KEYS("4j" "capXXX<ESC>", + "abc" N + "def" N + "" N + "" N + "XX" X "X" N + "jkl" N + ); + KEYS("gg" "capYYY<ESC>", + "YY" X "Y" N + "XXX" N + "jkl" N + ); + + data.setText( + "abc" N + "" N + "" N + "def" + ); + KEYS("GcapXXX<ESC>", + "abc" N + "XX" X "X" + ); +} + +void FakeVimPlugin::test_vim_select_inner_paragraph() +{ + TestData data; + setup(&data); + + data.setText( + "" N + X "abc" N + "def" N + "" N + "ghi" + ); + KEYS("vip" "r-", + "" N + X "---" N + "---" N + "" N + "ghi" + ); + + data.setText( + "" N + X "abc" N + "def" N + "" N + "ghi" + ); + KEYS("vip" ":s/^/-<CR>", + "" N + "-abc" N + X "-def" N + "" N + "ghi" + ); + + data.setText( + "" N + X "abc" N + "def" N + "" N + "ghi" + ); + KEYS("v2ip" ":s/^/-<CR>", + "" N + "-abc" N + "-def" N + X "-" N + "ghi" + ); + + data.setText( + "" N + X "abc" N + "def" N + "" N + "ghi" + ); + KEYS("Vj" "ip" ":s/^/-<CR>", + "" N + "-abc" N + "-def" N + X "-" N + "ghi" + ); + + data.setText( + "" N + X "abc" N + "def" N + "" N + "ghi" + ); + KEYS("vj" "ip" ":s/^/-<CR>", + "" N + "-abc" N + "-def" N + "-" N + "ghi" + ); + + data.setText( + "" N + X "abc" N + "def" N + "ghi" N + "" N + "jkl" + ); + KEYS("vj" "ip" ":s/^/-<CR>", + "" N + "-abc" N + "-def" N + "-ghi" N + "" N + "jkl" + ); + + data.setText( + "" N + X "abc" N + "def" N + "" N + "ghi" + ); + KEYS("vip" "r-", + "" N + X "---" N + "---" N + "" N + "ghi" + ); + + data.setText( + "abc" N + "" N + "def" + ); + KEYS("G" "vip" "r-", + "abc" N + "" N + "---" + ); + + data.setText( + "" N + "" N + "ghi" + ); + KEYS("vip" ":s/^/-<CR>", + "-" N + "-" N + "ghi" + ); + + data.setText( + "" N + "ghi" + ); + KEYS("vip" "ip" ":s/^/-<CR>", + "-" N + X "-ghi" + ); + + data.setText( + "abc" N + "" N + "" + ); + KEYS("j" "vip" ":s/^/-<CR>", + "abc" N + "-" N + "-" + ); + + // Don't move anchor if it's on different line. + data.setText( + "" N + "abc" N + X "def" N + "ghi" N + "" N + "jkl" + ); + KEYS("vj" "ip" ":s/^/-<CR>", + "" N + "abc" N + "-def" N + "-ghi" N + X "-" N + "jkl" + ); + + // Don't change selection mode if anchor is on different line. + data.setText( + "" N + "abc" N + X "def" N + "ghi" N + "" N + "jkl" + ); + KEYS("vj" "2ip" "r-", + "" N + "abc" N + X "---" N + "---" N + "" N + "-kl" + ); + KEYS("gv" ":s/^/X<CR>", + "" N + "abc" N + "X---" N + "X---" N + "X" N + X "X-kl" + ); + + data.setText( + "" N + "abc" N + X "def" N + "ghi" N + "" N + "jkl" + ); + KEYS("<C-V>j" "2ip" "r-", + "" N + "abc" N + X "-ef" N + "-hi" N + "" N + "-kl" + ); + KEYS("gv" "IX<ESC>", + "" N + "abc" N + "X-ef" N + "X-hi" N + "X" N + "X-kl" + ); +} + +void FakeVimPlugin::test_vim_select_a_paragraph() +{ + TestData data; + setup(&data); + + data.setText( + "abc" N + "def" N + "" N + "ghi" + ); + KEYS("vap" ":s/^/-<CR>", + "-abc" N + "-def" N + "-" N + "ghi" + ); + + data.setText( + "" N + "abc" N + "def" N + "" N + "ghi" + ); + KEYS("vap" ":s/^/-<CR>", + "-" N + "-abc" N + "-def" N + "" N + "ghi" + ); + + data.setText( + "abc" N + "def" N + "" + ); + KEYS("j" "vap" ":s/^/-<CR>", + "-abc" N + "-def" N + "-" + ); + + data.setText( + "" N + "abc" N + "def" + ); + KEYS("j" "vap" ":s/^/-<CR>", + "-" N + "-abc" N + "-def" ); } |