@@ -130,7 +130,7 @@ function Test_tabpage()
130130 1 tabmove
131131 call assert_equal (2 , tabpagenr ())
132132
133- call assert_fails (' let t = tabpagenr("# ")' , ' E15:' )
133+ call assert_fails (' let t = tabpagenr("@ ")' , ' E15:' )
134134 call assert_equal (0 , tabpagewinnr (-1 ))
135135 call assert_fails (" 99tabmove" , ' E16:' )
136136 call assert_fails (" +99tabmove" , ' E16:' )
@@ -777,4 +777,48 @@ func Test_tabpage_close_on_switch()
777777 % bw !
778778endfunc
779779
780+ " Test for jumping to last accessed tabpage
781+ func Test_lastused_tabpage ()
782+ tabonly !
783+ call assert_equal (0 , tabpagenr (' #' ))
784+ call assert_beeps (' call feedkeys("g\<Tab>", "xt")' )
785+ call assert_beeps (' call feedkeys("\<C-Tab>", "xt")' )
786+ call assert_beeps (' call feedkeys("\<C-W>g\<Tab>", "xt")' )
787+
788+ " open four tab pages
789+ tabnew
790+ tabnew
791+ tabnew
792+
793+ 2 tabnext
794+
795+ " Test for g<Tab>
796+ call assert_equal (4 , tabpagenr (' #' ))
797+ call feedkeys (" g\<Tab> " , " xt" )
798+ call assert_equal (4 , tabpagenr ())
799+ call assert_equal (2 , tabpagenr (' #' ))
800+
801+ " Test for <C-Tab>
802+ call feedkeys (" \<C-Tab> " , " xt" )
803+ call assert_equal (2 , tabpagenr ())
804+ call assert_equal (4 , tabpagenr (' #' ))
805+
806+ " Test for <C-W>g<Tab>
807+ call feedkeys (" \<C-W> g\<Tab> " , " xt" )
808+ call assert_equal (4 , tabpagenr ())
809+ call assert_equal (2 , tabpagenr (' #' ))
810+
811+ " Try to jump to a closed tab page
812+ tabclose 2
813+ call assert_equal (0 , tabpagenr (' #' ))
814+ call feedkeys (" g\<Tab> " , " xt" )
815+ call assert_equal (3 , tabpagenr ())
816+ call feedkeys (" \<C-Tab> " , " xt" )
817+ call assert_equal (3 , tabpagenr ())
818+ call feedkeys (" \<C-W> g\<Tab> " , " xt" )
819+ call assert_equal (3 , tabpagenr ())
820+
821+ tabclose !
822+ endfunc
823+
780824" vim: shiftwidth = 2 sts = 2 expandtab
0 commit comments