]> granicus.if.org Git - vim/commitdiff
patch 8.1.1929: no tests for text property popup window v8.1.1929
authorBram Moolenaar <Bram@vim.org>
Sun, 25 Aug 2019 21:08:17 +0000 (23:08 +0200)
committerBram Moolenaar <Bram@vim.org>
Sun, 25 Aug 2019 21:08:17 +0000 (23:08 +0200)
Problem:    No tests for text property popup window.
Solution:   Add a few tests.

src/testdir/Make_all.mak
src/testdir/dumps/Test_popup_textprop_01.dump [new file with mode: 0644]
src/testdir/dumps/Test_popup_textprop_02.dump [new file with mode: 0644]
src/testdir/dumps/Test_popup_textprop_03.dump [new file with mode: 0644]
src/testdir/dumps/Test_popup_textprop_04.dump [new file with mode: 0644]
src/testdir/dumps/Test_popup_textprop_05.dump [new file with mode: 0644]
src/testdir/dumps/Test_popup_textprop_06.dump [new file with mode: 0644]
src/testdir/test_popupwin_textprop.vim [new file with mode: 0644]
src/textprop.c
src/version.c

index 80cf7068e39bc0eaab4861b92f9eb452e921b8f8..ee2a8f3f7e94681adef3951df8b2062b472595e5 100644 (file)
@@ -199,6 +199,7 @@ NEW_TESTS = \
        test_plus_arg_edit \
        test_popup \
        test_popupwin \
+       test_popupwin_textprop \
        test_preview \
        test_profile \
        test_prompt_buffer \
@@ -388,6 +389,7 @@ NEW_TESTS_RES = \
        test_perl.res \
        test_plus_arg_edit.res \
        test_popupwin.res \
+       test_popupwin_textprop.res \
        test_preview.res \
        test_profile.res \
        test_prompt_buffer.res \
diff --git a/src/testdir/dumps/Test_popup_textprop_01.dump b/src/testdir/dumps/Test_popup_textprop_01.dump
new file mode 100644 (file)
index 0000000..e85ea7e
--- /dev/null
@@ -0,0 +1,10 @@
+|4+0&#ffffff0|6| @72
+|4|7| @14|╔+0#0000001#ffd7ff255|═@9|╗| +0#0000000#ffffff0@45
+|4|8| @14|║+0#0000001#ffd7ff255| |t|h|e| |t|e|x|t| |║| +0#0000000#ffffff0@45
+|4|9| @14|╚+0#0000001#ffd7ff255|═@9|╝| +0#0000000#ffffff0@45
+>s|o|m|e| |t|e|x|t| |t+0&#5fd7ff255|o| |w|o|r|k| +0&#ffffff0|w|i|t|h| @52
+|5|1| @72
+|5|2| @72
+|5|3| @72
+|5|4| @72
+@57|5|0|,|1| @9|4|9|%| 
diff --git a/src/testdir/dumps/Test_popup_textprop_02.dump b/src/testdir/dumps/Test_popup_textprop_02.dump
new file mode 100644 (file)
index 0000000..58fdc28
--- /dev/null
@@ -0,0 +1,10 @@
+>s+0&#ffffff0|o|m|e| |t|e|x|t| |t+0&#5fd7ff255|o| |w|o|r|k| +0&#ffffff0|w|i|t|h| @52
+|5|1| @14|╔+0#0000001#ffd7ff255|═@9|╗| +0#0000000#ffffff0@45
+|5|2| @14|║+0#0000001#ffd7ff255| |t|h|e| |t|e|x|t| |║| +0#0000000#ffffff0@45
+|5|3| @14|╚+0#0000001#ffd7ff255|═@9|╝| +0#0000000#ffffff0@45
+|5|4| @72
+|5@1| @72
+|5|6| @72
+|5|7| @72
+|5|8| @72
+@57|5|0|,|1| @9|5|3|%| 
diff --git a/src/testdir/dumps/Test_popup_textprop_03.dump b/src/testdir/dumps/Test_popup_textprop_03.dump
new file mode 100644 (file)
index 0000000..efc6853
--- /dev/null
@@ -0,0 +1,10 @@
+|4+0&#ffffff0|6| @72
+|4|7| @17|╔+0#0000001#ffd7ff255|═@9|╗| +0#0000000#ffffff0@42
+|4|8| @17|║+0#0000001#ffd7ff255| |t|h|e| |t|e|x|t| |║| +0#0000000#ffffff0@42
+|4|9| @17|╚+0#0000001#ffd7ff255|═@9|╝| +0#0000000#ffffff0@42
+|a|w>e|s|o|m|e| |t|e|x|t| |t+0&#5fd7ff255|o| |w|o|r|k| +0&#ffffff0|w|i|t|h| @49
+|5|1| @72
+|5|2| @72
+|5|3| @72
+|5|4| @72
+@57|5|0|,|3| @9|4|9|%| 
diff --git a/src/testdir/dumps/Test_popup_textprop_04.dump b/src/testdir/dumps/Test_popup_textprop_04.dump
new file mode 100644 (file)
index 0000000..b8179c6
--- /dev/null
@@ -0,0 +1,10 @@
+|4+0&#ffffff0|6| @72
+|4|7| @9|╔+0#0000001#ffd7ff255|═@9|╗| +0#0000000#ffffff0@50
+|4|8| @9|║+0#0000001#ffd7ff255| |t|h|e| |t|e|x|t| |║| +0#0000000#ffffff0@50
+|4|9| @9|╚+0#0000001#ffd7ff255|═@9|╝| +0#0000000#ffffff0@50
+>t|e|x|t| |t+0&#5fd7ff255|o| |w|o|r|k| +0&#ffffff0|w|i|t|h| @57
+|5|1| @72
+|5|2| @72
+|5|3| @72
+|5|4| @72
+@57|5|0|,|1| @9|4|9|%| 
diff --git a/src/testdir/dumps/Test_popup_textprop_05.dump b/src/testdir/dumps/Test_popup_textprop_05.dump
new file mode 100644 (file)
index 0000000..78ae142
--- /dev/null
@@ -0,0 +1,10 @@
+|4+0&#ffffff0|6| @72
+|4|7| @72
+|4|8| @9|╔+0#0000001#ffd7ff255|═@9|╗| +0#0000000#ffffff0@50
+|4|9| @9|║+0#0000001#ffd7ff255| |t|h|e| |t|e|x|t| |║| +0#0000000#ffffff0@50
+|i|n|s|e|r|t|e>d| @3|╚+0#0000001#ffd7ff255|═@9|╝| +0#0000000#ffffff0@50
+|t|e|x|t| |t+0&#5fd7ff255|o| |w|o|r|k| +0&#ffffff0|w|i|t|h| @57
+|5|1| @72
+|5|2| @72
+|5|3| @72
+@57|5|0|,|8| @9|4|8|%| 
diff --git a/src/testdir/dumps/Test_popup_textprop_06.dump b/src/testdir/dumps/Test_popup_textprop_06.dump
new file mode 100644 (file)
index 0000000..2327998
--- /dev/null
@@ -0,0 +1,10 @@
+|4+0&#ffffff0|6| @9|╔+0#0000001#ffd7ff255|═@9|╗| +0#0000000#ffffff0@50
+|4|7| @9|║+0#0000001#ffd7ff255| |t|h|e| |t|e|x|t| |║| +0#0000000#ffffff0@50
+|4|8| @9|╚+0#0000001#ffd7ff255|═@9|╝| +0#0000000#ffffff0@50
+>t|e|x|t| |t+0&#5fd7ff255|o| |w|o|r|k| +0&#ffffff0|w|i|t|h| @57
+|5|1| @72
+|5|2| @72
+|5|3| @72
+|5|4| @72
+|5@1| @72
+@57|4|9|,|1| @9|5|0|%| 
diff --git a/src/testdir/test_popupwin_textprop.vim b/src/testdir/test_popupwin_textprop.vim
new file mode 100644 (file)
index 0000000..26950de
--- /dev/null
@@ -0,0 +1,54 @@
+" Tests for popup windows for text properties
+
+source check.vim
+CheckFeature textprop
+
+source screendump.vim
+CheckScreendump
+
+func Test_textprop_popup()
+  let lines =<< trim END
+       call setline(1, range(1, 100))
+       call setline(50, 'some text to work with')
+       50
+       normal zz
+       set scrolloff=0
+       call prop_type_add('popupMarker', #{highlight: 'DiffAdd'})
+       call prop_add(50, 11, #{
+               \ length: 7,
+               \ type: 'popupMarker',
+               \ })
+       let winid = popup_create('the text', #{
+             \ pos: 'botleft', 
+             \ textprop: 'popupMarker',
+             \ border: [],
+             \ padding: [0,1,0,1],
+             \ close: 'click',
+             \ })
+  END
+  call writefile(lines, 'XtestTextpropPopup')
+  let buf = RunVimInTerminal('-S XtestTextpropPopup', #{rows: 10})
+  call VerifyScreenDump(buf, 'Test_popup_textprop_01', {})
+
+  call term_sendkeys(buf, "zt")
+  call VerifyScreenDump(buf, 'Test_popup_textprop_02', {})
+
+  call term_sendkeys(buf, "zzIawe\<Esc>")
+  call VerifyScreenDump(buf, 'Test_popup_textprop_03', {})
+
+  call term_sendkeys(buf, "0dw")
+  call VerifyScreenDump(buf, 'Test_popup_textprop_04', {})
+
+  call term_sendkeys(buf, "Oinserted\<Esc>")
+  call VerifyScreenDump(buf, 'Test_popup_textprop_05', {})
+
+  call term_sendkeys(buf, "k2dd")
+  call VerifyScreenDump(buf, 'Test_popup_textprop_06', {})
+
+  " clean up
+  call StopVimInTerminal(buf)
+  call delete('XtestTextpropPopup')
+endfunc
+
+
+" vim: shiftwidth=2 sts=2
index 7947d348f772e5cb78bbd3a07f93fa7c6bbe7812..cc95546e2587485c76d584c862a41264dd7a8951 100644 (file)
@@ -396,8 +396,7 @@ find_visible_prop(win_T *wp, int type_id, int id, textprop_T *prop,
     int                        i;
 
     // w_botline may not have been updated yet.
-    if (wp->w_botline > wp->w_buffer->b_ml.ml_line_count)
-       wp->w_botline = wp->w_buffer->b_ml.ml_line_count + 1;
+    validate_botline();
     for (lnum = wp->w_topline; lnum < wp->w_botline; ++lnum)
     {
        count = get_text_props(wp->w_buffer, lnum, &props, FALSE);
index e317c8fd102573eeb591538cc673e7f13b4fdb3c..1e628fd74ef4a7b07f71ac2d04aaf97be18be4c8 100644 (file)
@@ -761,6 +761,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    1929,
 /**/
     1928,
 /**/