810362206db5

tests: add preview tests
[view raw] [browse files]
author Steve Losh <steve@stevelosh.com>
date Thu, 09 Dec 2010 22:42:34 -0500
parents d1f332450ea3
children c839b22aa015
branches/tags (none)
files tests/test-preview.vim

Changes

--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-preview.vim	Thu Dec 09 22:42:34 2010 -0500
@@ -0,0 +1,131 @@
+UTSuite [Gundo] Testing Preview Pane
+
+function! s:Setup()"{{{
+    exec 'edit test'
+    call g:Goto('test')
+endfunction"}}}
+function! s:Teardown()"{{{
+    if bufwinnr(bufnr('__Gundo__')) != -1
+        exec bufwinnr(bufnr('__Gundo__')) . 'wincmd w'
+        quit
+    endif
+    if bufwinnr(bufnr('__Gundo_Preview__')) != -1
+        exec bufwinnr(bufnr('__Gundo_Preview__')) . 'wincmd w'
+        quit
+    endif
+    if bufnr('__Gundo__') != -1
+        exec 'bwipeout! ' . bufnr('__Gundo__')
+    endif
+    if bufnr('__Gundo_Preview__') != -1
+        exec 'bwipeout! ' . bufnr('__Gundo_Preview__')
+    endif
+    if bufnr('test') != -1
+        exec 'bwipeout! ' . bufnr('test')
+    endif
+    if bufnr('test2') != -1
+        exec 'bwipeout! ' . bufnr('test2')
+    endif
+endfunction"}}}
+
+function! s:TestPreviewBasic()"{{{
+    " Make three linear changes, then a change that deletes the last line
+    call g:TypeLineDone("ONE")
+    call g:TypeLineDone("TWO")
+    call g:TypeLineDone("THREE")
+    normal k
+    normal dd
+
+    " Open Gundo
+    GundoToggle
+
+    call g:Goto("__Gundo_Preview__")
+    call g:GotoLineContaining("THREE")
+    Assert g:CurrentLineContains("-THREE")
+
+    call g:Goto("__Gundo__")
+    normal j
+    call g:Goto("__Gundo_Preview__")
+    call g:GotoLineContaining("THREE")
+    Assert g:CurrentLineContains("+THREE")
+
+    call g:Goto("__Gundo__")
+    normal j
+    call g:Goto("__Gundo_Preview__")
+    call g:GotoLineContaining("TWO")
+    Assert g:CurrentLineContains("+TWO")
+
+    call g:Goto("__Gundo__")
+    normal j
+    call g:Goto("__Gundo_Preview__")
+    call g:GotoLineContaining("ONE")
+    Assert g:CurrentLineContains("+ONE")
+
+    call g:Goto("__Gundo__")
+    normal k
+    call g:Goto("__Gundo_Preview__")
+    call g:GotoLineContaining("TWO")
+    Assert g:CurrentLineContains("+TWO")
+
+    call g:Goto("__Gundo__")
+    normal k
+    call g:Goto("__Gundo_Preview__")
+    call g:GotoLineContaining("THREE")
+    Assert g:CurrentLineContains("+THREE")
+
+    call g:Goto("__Gundo__")
+    normal k
+    call g:Goto("__Gundo_Preview__")
+    call g:GotoLineContaining("THREE")
+    Assert g:CurrentLineContains("-THREE")
+endfunction"}}}
+
+function! s:TestPreviewLinear()"{{{
+    " Make four non-linear changes
+    "
+    " o   [4]
+    " |
+    " | o [3]
+    " | |
+    " o | [2]
+    " |/
+    " o   [1]
+
+    call g:TypeLineDone("ONE")
+    call g:TypeLineDone("TWO")
+    silent! undo
+    call g:TypeLineDone("THREE")
+    silent! undo 2
+    call g:TypeLineDone("FOUR")
+
+    " Open Gundo
+    GundoToggle
+
+    " Check state 4
+    call g:Goto("__Gundo_Preview__")
+    call g:GotoLineContaining("FOUR")
+    Assert g:CurrentLineContains("+FOUR")
+    call g:GotoLineContaining("THREE")
+    Assert !g:CurrentLineContains("THREE")
+
+    " Check state 3
+    call g:Goto("__Gundo__")
+    normal j
+    call g:Goto("__Gundo_Preview__")
+    call g:GotoLineContaining("THREE")
+    Assert g:CurrentLineContains("+THREE")
+    call g:GotoLineContaining("FOUR")
+    Assert !g:CurrentLineContains("FOUR")
+    call g:GotoLineContaining("TWO")
+    Assert !g:CurrentLineContains("TWO")
+    call g:GotoLineContaining("ONE")
+    Assert g:CurrentLineContains("ONE")
+
+    " Check state 2
+    call g:Goto("__Gundo__")
+    normal j
+    call g:Goto("__Gundo_Preview__")
+    call g:GotoLineContaining("TWO")
+    Assert g:CurrentLineContains("+TWO")
+    call g:GotoLineContaining("ONE")
+    Assert g:CurrentLineContains("ONE")
+endfunction"}}}