~fmos/zim/features

« back to all changes in this revision

Viewing changes to tests/history.py

  • Committer: Fabian Moser
  • Date: 2011-01-08 18:26:21 UTC
  • mfrom: (297.1.32 pyzim-trunk)
  • Revision ID: e-mail@fabianmoser.at-20110108182621-5k8ymh4s9b7lnfkf
Merged main branch and updated sidepane registration for the tag tree plugin

Show diffs side-by-side

added added

removed removed

Lines of Context:
7
7
from tests import TestCase, get_test_notebook
8
8
 
9
9
import zim.history
10
 
from zim.history import History, HistoryRecord
 
10
from zim.history import History, HistoryPath
11
11
from zim.notebook import Path
12
12
from zim.config import ConfigDict
13
13
 
22
22
 
23
23
        def _assertCurrent(self, history, page):
24
24
                current = history.get_current()
25
 
                self.assertTrue(isinstance(current, HistoryRecord))
 
25
                self.assertTrue(isinstance(current, HistoryPath))
26
26
                self.assertEqual(current.name, page.name)
27
27
 
28
28
        def testLinear(self):
32
32
                for page in self.pages:
33
33
                        history.append(page)
34
34
                self.assertEqual(len(history.history), len(self.pages))
 
35
                self.assertEqual(history.current, len(self.pages) - 1)
35
36
 
36
37
                self._assertCurrent(history, self.pages[-1])
37
38
 
63
64
                self.assertTrue(history.get_next() is None)
64
65
                self.assertTrue(history.get_current().is_last)
65
66
 
 
67
                # Add page multiple times
 
68
                i = len(history.history)
 
69
                path = Path(history.history[-1].name)
 
70
                for j in range(5):
 
71
                        history.append(path)
 
72
                self.assertEqual(len(history.history), i)
 
73
                self.assertEqual(history.current, i - 1)
 
74
 
 
75
                # Test dropping forward stack
 
76
                path1 = history.history[10]
 
77
                path2 = history.history[-1]
 
78
                history.set_current(path1)
 
79
                self.assertEqual(history.current, 10)
 
80
                self.assertEqual(len(history.history), len(self.pages))
 
81
 
 
82
                history.append(path2)
 
83
                self.assertEqual(history.current, 11)
 
84
                self.assertEqual(len(history.history), 12)
 
85
 
 
86
                # Test max entries
 
87
                old = zim.history.MAX_HISTORY
 
88
                zim.history.MAX_HISTORY = 3
 
89
                for page in self.pages:
 
90
                        history.append(page)
 
91
                zim.history.MAX_HISTORY = old
 
92
 
 
93
                self.assertEqual(len(history.history), 3)
 
94
 
66
95
        def testUnique(self):
67
96
                '''Get recent pages from history'''
68
97
                history = History(self.notebook)
101
130
                self.assertEqual(history.get_child(Path('Test')), Path('Test:wiki'))
102
131
                self.assertEqual(history.get_grandchild(Path('Test')), Path('Test:wiki'))
103
132
 
 
133
        def testMovePage(self):
 
134
                '''Test history is updated for moved pages'''
 
135
                history = History(self.notebook)
 
136
                for page in self.pages:
 
137
                        history.append(page)
 
138
 
 
139
                self.assertTrue(Path('Test:wiki') in history.history)
 
140
 
 
141
                history._on_page_moved(Path('Test'), Path('New'), False)
 
142
                self.assertFalse(Path('Test:wiki') in history.history)
 
143
                self.assertTrue(Path('New:wiki') in history.history)
 
144
 
 
145
                history._on_page_moved(Path('New'), Path('Test'), False)
 
146
                self.assertFalse(Path('New:wiki') in history.history)
 
147
                self.assertTrue(Path('Test:wiki') in history.history)
 
148
 
 
149
                self.assertEqual(history.history, self.pages)
 
150
 
104
151
        def testDeletedNotInUnique(self):
105
152
                '''Test if deleted pages and their children show up in unique history list'''
106
153
                history = History(self.notebook)
107
154
                for page in self.pages:
108
155
                        history.append(page)
109
156
                for page in self.pages:
110
 
                        history.append(page)    
111
 
                        
 
157
                        history.append(page)
 
158
 
 
159
                self.assertEqual(len(history.history), 2 * len(self.pages))
 
160
 
112
161
                uniques = list(history.get_unique())
113
162
                self.assertEqual(len(uniques), len(self.pages))
114
 
                
 
163
 
115
164
                history._on_page_deleted(self.pages[0])
116
165
                uniques = list(history.get_unique())
117
166
                self.assertTrue(len(uniques) < len(self.pages))
118
 
                
 
167
                i = len(uniques)
 
168
 
119
169
                history._on_page_stored(self.pages[0])
120
170
                uniques = list(history.get_unique())
121
 
                self.assertEqual(len(uniques), len(self.pages))
122
 
                
 
171
                self.assertEqual(len(uniques), i + 1)
 
172
                        # Not same as len(self.pages) because of deleted children
 
173
 
123
174
                for page in self.pages:
124
175
                        history._on_page_deleted(page)
125
176
                uniques = list(history.get_unique())
126
177
                self.assertEqual(len(uniques), 0)
127
 
                self.assertTrue(len(list(history.get_history())) > 0)           
128
 
 
129
 
                
 
178
 
 
179
                self.assertEqual(
 
180
                        len(list(history.get_history())),
 
181
                        2 * len(self.pages)  )
 
182
 
 
183
                for page in self.pages:
 
184
                        history._on_page_stored(page)
 
185
                uniques = list(history.get_unique())
 
186
                self.assertEqual(len(uniques), len(self.pages))
 
187
 
 
188
 
130
189
        def testSerialize(self):
131
190
                '''Test parsing the history from the state file'''
132
191
                uistate = ConfigDict()