def testLinear(self): '''Walk back and forth through the history''' history = History(self.notebook) self.assertTrue(history.get_current() is None) for page in self.pages: history.append(page) self.assertEqual(len(history.history), len(self.pages)) self._assertCurrent(history, self.pages[-1]) pages = list(history.get_history()) self.assertEqual(pages[0], history.get_current()) self.assertEqual(len(pages), len(self.pages)) # walk backwards for i in range(2, len(self.pages)+1): prev = history.get_previous() self.assertFalse(prev is None) self.assertEqual(prev.name, self.pages[-i].name) self.assertFalse(prev.is_last) history.set_current(prev) self._assertCurrent(history, self.pages[0]) self.assertTrue(history.get_previous() is None) self.assertTrue(prev.is_first) # walk forward for i in range(1, len(self.pages)): next = history.get_next() self.assertFalse(next is None) self.assertEqual(next.name, self.pages[i].name) self.assertFalse(next.is_first) history.set_current(next) self._assertCurrent(history, self.pages[-1]) self.assertTrue(history.get_next() is None) self.assertTrue(history.get_current().is_last)
def testLinear(self): '''Walk back and forth through the history''' history = History(self.notebook) self.assertTrue(history.get_current() is None) for page in self.pages: history.append(page) self.assertHistoryEquals(history, self.pages) self.assertCurrentEquals(history, self.pages[-1]) pages = list(history.get_history()) self.assertEqual(pages[0], history.get_current()) self.assertEqual(len(pages), len(self.pages)) self.assertEqual(pages[0].cursor, None) # Newly appended pages should not have the cursor # set - pageview has logic to do the right thing when # no cursor is set. Setting default e.g. 0 will # overrule this logic. # walk backwards for i in range(2, len(self.pages)+1): prev = history.get_previous() self.assertFalse(prev is None) self.assertEqual(prev.name, self.pages[-i].name) self.assertFalse(prev.is_last) history.set_current(prev) self.assertCurrentEquals(history, self.pages[0]) self.assertTrue(history.get_previous() is None) self.assertTrue(prev.is_first) self.assertHistoryEquals(history, self.pages) # walk forward for i in range(1, len(self.pages)): next = history.get_next() self.assertFalse(next is None) self.assertEqual(next.name, self.pages[i].name) self.assertFalse(next.is_first) history.set_current(next) self.assertCurrentEquals(history, self.pages[-1]) self.assertTrue(history.get_next() is None) self.assertTrue(history.get_current().is_last) self.assertHistoryEquals(history, self.pages) # Add page multiple times current = history.get_current() path = Path(current.name) for j in range(5): history.append(path) self.assertHistoryEquals(history, self.pages) # history does not store duplicates self.assertEquals(history.get_current(), current) # Test dropping forward stack historylist = list(history.get_history()) path1 = historylist[10] path2 = historylist[0] history.set_current(path1) self.assertEquals(history.get_current(), path1) # rewind self.assertHistoryEquals(history, self.pages) # no change history.append(path2) # new path - drop forward stack i = len(pages) - 10 wanted = self.pages[:i] + [path2] self.assertHistoryEquals(history, wanted) # Test max entries default_max_history = zim.history.MAX_HISTORY zim.history.MAX_HISTORY = 3 for page in self.pages: history.append(page) zim.history.MAX_HISTORY = default_max_history self.assertHistoryEquals(history, self.pages[-3:])
def testLinear(self): '''Walk back and forth through the history''' history = History(self.notebook) self.assertTrue(history.get_current() is None) for page in self.pages: history.append(page) self.assertHistoryEquals(history, self.pages) self.assertCurrentEquals(history, self.pages[-1]) pages = list(history.get_history()) self.assertEqual(pages[0], history.get_current()) self.assertEqual(len(pages), len(self.pages)) self.assertEqual(pages[0].cursor, None) # Newly appended pages should not have the cursor # set - pageview has logic to do the right thing when # no cursor is set. Setting default e.g. 0 will # overrule this logic. # walk backwards for i in range(2, len(self.pages) + 1): prev = history.get_previous() self.assertFalse(prev is None) self.assertEqual(prev.name, self.pages[-i].name) self.assertFalse(prev.is_last) history.set_current(prev) self.assertCurrentEquals(history, self.pages[0]) self.assertTrue(history.get_previous() is None) self.assertTrue(prev.is_first) self.assertHistoryEquals(history, self.pages) # walk forward for i in range(1, len(self.pages)): next = history.get_next() self.assertFalse(next is None) self.assertEqual(next.name, self.pages[i].name) self.assertFalse(next.is_first) history.set_current(next) self.assertCurrentEquals(history, self.pages[-1]) self.assertTrue(history.get_next() is None) self.assertTrue(history.get_current().is_last) self.assertHistoryEquals(history, self.pages) # Add page multiple times current = history.get_current() path = Path(current.name) for j in range(5): history.append(path) self.assertHistoryEquals( history, self.pages) # history does not store duplicates self.assertEqual(history.get_current(), current) # Test dropping forward stack historylist = list(history.get_history()) path1 = historylist[10] path2 = historylist[0] history.set_current(path1) self.assertEqual(history.get_current(), path1) # rewind self.assertHistoryEquals(history, self.pages) # no change history.append(path2) # new path - drop forward stack i = len(pages) - 10 wanted = self.pages[:i] + [path2] self.assertHistoryEquals(history, wanted) # Test max entries default_max_history = zim.history.MAX_HISTORY zim.history.MAX_HISTORY = 3 for page in self.pages: history.append(page) zim.history.MAX_HISTORY = default_max_history self.assertHistoryEquals(history, self.pages[-3:])