# HG changeset patch # User Steve Losh # Date 1291952554 18000 # Node ID 810362206db582441cb91d788838014219dc8c3e # Parent d1f332450ea3f5fc4f3a70236596357cba071f0e tests: add preview tests diff -r d1f332450ea3 -r 810362206db5 tests/test-preview.vim --- /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"}}}