Autocommit of file /home/julien/.dotfiles/vim/.vim/bundle/vimtodo/test/test005.vim...
[dotfiles/vim.git] / .vim / bundle / vimtodo / test / test005.vim
1 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
2 " Test todo entry filtering
3 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
4 source setup_tests.inc
5 call vimtap#Plan(9)
6
7 " Get Today's date for matching with the auto-generated dates
8 let lastmonth=strftime("%Y-%m-%d", localtime() - 86400 * 30)
9 let lastweek=strftime("%Y-%m-%d", localtime() - 86400 * 7)
10 let yesterday=strftime("%Y-%m-%d", localtime() - 86400)
11 let today=strftime("%Y-%m-%d")
12 let tomorrow=strftime("%Y-%m-%d", localtime() + 86400)
13 let day2=strftime("%Y-%m-%d", localtime() + 86400 * 2)
14 let day3=strftime("%Y-%m-%d", localtime() + 86400 * 3)
15 let day4=strftime("%Y-%m-%d", localtime() + 86400 * 4)
16 let day7=strftime("%Y-%m-%d", localtime() + 86400 * 7)
17 let day8=strftime("%Y-%m-%d", localtime() + 86400 * 8)
18
19 if exists("g:todo_files")
20     unlet g:todo_files " We want to test current file only
21 endif
22
23 call append('$', 'TODO '.today.' Last Month {'.lastmonth.'}')
24 call append('$', 'TODO '.today.' Last Week {'.lastweek.'}')
25 call append('$', 'TODO '.today.' Yesterday {'.yesterday.'}')
26 call append('$', 'TODO '.today.' Today {'.today.'}')
27 call append('$', 'TODO '.today.' Tomorrow {'.tomorrow.'}')
28 call append('$', 'TODO '.today.' 2 Days {'.day2.'}')
29 call append('$', 'TODO '.today.' 3 Days {'.day3.'}')
30 call append('$', 'TODO '.today.' 4 Days {'.day4.'}')
31 call append('$', 'TODO '.today.' 7 Days {'.day7.'}')
32 call append('$', 'TODO '.today.' 8 Days {'.day8.'}')
33 call append('$', 'DONE '.today.' Last Month {'.lastmonth.'}')
34 call append('$', 'DONE '.today.' Last Week {'.lastweek.'}')
35 call append('$', 'DONE '.today.' Yesterday {'.yesterday.'}')
36 call append('$', 'DONE '.today.' Today {'.today.'}')
37 call append('$', 'DONE '.today.' Tomorrow {'.tomorrow.'}')
38 call append('$', 'DONE '.today.' 2 Days {'.day2.'}')
39 call append('$', 'DONE '.today.' 3 Days {'.day3.'}')
40 call append('$', 'DONE '.today.' 4 Days {'.day4.'}')
41 call append('$', 'DONE '.today.' 7 Days {'.day7.'}')
42 call append('$', 'DONE '.today.' 8 Days {'.day8.'}')
43 call vimtest#SaveOut()
44
45 function s:processResults()
46     let results = []
47     for l in getloclist(0)
48         call add(results, l.text)
49     endfor
50     return results
51 endfunction
52
53 " Today
54 normal \cd
55 close
56 let results = s:processResults()
57 call vimtap#Is(results, [
58             \'TODO '.today.' Today {'.today.'}'
59             \], "Due Today")
60 Today
61 close
62 let resultscmd = s:processResults()
63 call vimtap#Is(results, resultscmd, "Due Today (command version)")
64
65 " Tomorrow
66 normal \cf
67 close
68 let results = s:processResults()
69 call vimtap#Is(results, [
70             \'TODO '.today.' Tomorrow {'.tomorrow.'}'
71             \], "Due Tomorrow")
72 Tomorrow
73 close
74 let resultscmd = s:processResults()
75 call vimtap#Is(results, resultscmd, "Due Tomorrow (command version)")
76
77 " In 7 days
78 normal \cw
79 close
80 let results = s:processResults()
81 call vimtap#Is(results, [
82             \'TODO '.today.' Today {'.today.'}',
83             \'TODO '.today.' Tomorrow {'.tomorrow.'}',
84             \'TODO '.today.' 2 Days {'.day2.'}',
85             \'TODO '.today.' 3 Days {'.day3.'}',
86             \'TODO '.today.' 4 Days {'.day4.'}',
87             \'TODO '.today.' 7 Days {'.day7.'}'
88             \], "Due in the next week")
89 Week
90 close
91 let resultscmd = s:processResults()
92 call vimtap#Is(results, resultscmd, "Due in the next week (command version)")
93
94 " Overdue
95 normal \cx
96 close
97 let results = s:processResults()
98 call vimtap#Is(results, [
99             \'TODO '.today.' Last Month {'.lastmonth.'}',
100             \'TODO '.today.' Last Week {'.lastweek.'}',
101             \'TODO '.today.' Yesterday {'.yesterday.'}'
102             \], "Overdue")
103 Overdue
104 close
105 let resultscmd = s:processResults()
106 call vimtap#Is(results, resultscmd, "Overdue (command version)")
107
108 " Standard filter command - Note that filter includes DONE tasks
109 Filter Month
110 close
111 let results = s:processResults()
112 call vimtap#Is(results, [
113             \'TODO '.today.' Last Month {'.lastmonth.'}',
114             \'DONE '.today.' Last Month {'.lastmonth.'}'
115             \], "Filter")
116
117 call vimtest#Quit()