tests/test-toggle.vim @ c839b22aa015

defer "can't load gundo" warning
Only inform that gundo didn't load when an attempt is made to invoke it.
Too many hosts still don't have vim 7.3, but I'd like to do a straight
update of my vimfiles from my dvcs without needing any fiddly
conditionals in order to load vim without a warning message.
author Seth Milliken <seth@janrain.com>
date Wed, 29 Dec 2010 15:16:33 -0800
parents a3ab3da8805a
children (none)
UTSuite [Gundo] Testing Toggling

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:TestToggleBasic()"{{{
    " Make sure we're starting from scratch.
    Assert bufnr('__Gundo__') == -1
    Assert bufnr('__Gundo_Preview__') == -1
    Assert bufwinnr(bufnr('__Gundo__')) == -1
    Assert bufwinnr(bufnr('__Gundo_Preview__')) == -1

    " Open Gundo
    GundoToggle

    " Buffers and windows should exist.
    Assert bufnr('__Gundo__') != -1
    Assert bufnr('__Gundo_Preview__') != -1
    Assert bufwinnr(bufnr('__Gundo__')) != -1
    Assert bufwinnr(bufnr('__Gundo_Preview__')) != -1

    " We should be in the Gundo pane.
    Assert expand('%') == '__Gundo__'

    " Close Gundo
    GundoToggle

    " Windows should have been closed, but buffers should remain.
    Assert bufnr('__Gundo__') != -1
    Assert bufnr('__Gundo_Preview__') != -1
    Assert bufwinnr(bufnr('__Gundo__')) == -1
    Assert bufwinnr(bufnr('__Gundo_Preview__')) == -1
endfunction"}}}

function! s:TestToggleWhenMoved()"{{{
    " Make sure we're starting from scratch.
    Assert bufnr('__Gundo__') == -1
    Assert bufnr('__Gundo_Preview__') == -1
    Assert bufwinnr(bufnr('__Gundo__')) == -1
    Assert bufwinnr(bufnr('__Gundo_Preview__')) == -1

    " Open Gundo
    GundoToggle

    call g:Goto('test')
    Assert expand('%') == 'test'

    " Close Gundo
    GundoToggle

    " Windows should have been closed, but buffers should remain.
    Assert bufnr('__Gundo__') != -1
    Assert bufnr('__Gundo_Preview__') != -1
    Assert bufwinnr(bufnr('__Gundo__')) == -1
    Assert bufwinnr(bufnr('__Gundo_Preview__')) == -1

    " Open Gundo
    GundoToggle

    call g:Goto('__Gundo_Preview__')
    Assert expand('%') == '__Gundo_Preview__'

    " Close Gundo
    GundoToggle

    " Windows should have been closed, but buffers should remain.
    Assert bufnr('__Gundo__') != -1
    Assert bufnr('__Gundo_Preview__') != -1
    Assert bufwinnr(bufnr('__Gundo__')) == -1
    Assert bufwinnr(bufnr('__Gundo_Preview__')) == -1
endfunction"}}}

function! s:TestToggleReturnToTarget()"{{{
    " Make sure we're starting from scratch.
    Assert bufnr('__Gundo__') == -1
    Assert bufnr('__Gundo_Preview__') == -1
    Assert bufwinnr(bufnr('__Gundo__')) == -1
    Assert bufwinnr(bufnr('__Gundo_Preview__')) == -1

    exec 'new test2'
    call g:Goto('test')

    " Toggle Gundo
    GundoToggle
    GundoToggle

    " We should be returned to test
    Assert expand('%') == 'test'

    " Move to test2
    call g:Goto('test2')

    " Toggle Gundo
    GundoToggle
    GundoToggle

    " We should be returned to test2
    Assert expand('%') == 'test2'
endfunction"}}}