aboutsummaryrefslogtreecommitdiffhomepage
path: root/test/simpleTests.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/simpleTests.py')
-rw-r--r--test/simpleTests.py74
1 files changed, 74 insertions, 0 deletions
diff --git a/test/simpleTests.py b/test/simpleTests.py
index 67299e661..590d288b8 100644
--- a/test/simpleTests.py
+++ b/test/simpleTests.py
@@ -2042,6 +2042,80 @@ class TestWordChars(unittest.TestCase):
data = self.ed.GetPunctuationChars(None)
self.assertCharSetsEqual(data, expected)
+class TestExplicitTabStops(unittest.TestCase):
+
+ def setUp(self):
+ self.xite = Xite.xiteFrame
+ self.ed = self.xite.ed
+ self.ed.ClearAll()
+ self.ed.EmptyUndoBuffer()
+ # 2 lines of 4 characters
+ self.t = b"fun(\nint)"
+ self.ed.AddText(len(self.t), self.t)
+
+ def testAddingAndClearing(self):
+ self.assertEquals(self.ed.GetNextTabStop(0,0), 0)
+
+ # Add a tab stop at 7
+ self.ed.AddTabStop(0, 7)
+ # Check added
+ self.assertEquals(self.ed.GetNextTabStop(0,0), 7)
+ # Check does not affect line 1
+ self.assertEquals(self.ed.GetNextTabStop(1,0), 0)
+
+ # Add a tab stop at 18
+ self.ed.AddTabStop(0, 18)
+ # Check added
+ self.assertEquals(self.ed.GetNextTabStop(0,0), 7)
+ self.assertEquals(self.ed.GetNextTabStop(0,7), 18)
+ # Check does not affect line 1
+ self.assertEquals(self.ed.GetNextTabStop(1,0), 0)
+ self.assertEquals(self.ed.GetNextTabStop(1,7), 0)
+
+ # Add a tab stop between others at 13
+ self.ed.AddTabStop(0, 13)
+ # Check added
+ self.assertEquals(self.ed.GetNextTabStop(0,0), 7)
+ self.assertEquals(self.ed.GetNextTabStop(0,7), 13)
+ self.assertEquals(self.ed.GetNextTabStop(0,13), 18)
+ # Check does not affect line 1
+ self.assertEquals(self.ed.GetNextTabStop(1,0), 0)
+ self.assertEquals(self.ed.GetNextTabStop(1,7), 0)
+
+ self.ed.ClearTabStops(0)
+ # Check back to original state
+ self.assertEquals(self.ed.GetNextTabStop(0,0), 0)
+
+ def testLineInsertionDeletion(self):
+ # Add a tab stop at 7 on line 1
+ self.ed.AddTabStop(1, 7)
+ # Check added
+ self.assertEquals(self.ed.GetNextTabStop(1,0), 7)
+
+ # More text at end
+ self.ed.AddText(len(self.t), self.t)
+ self.assertEquals(self.ed.GetNextTabStop(0,0), 0)
+ self.assertEquals(self.ed.GetNextTabStop(1,0), 7)
+ self.assertEquals(self.ed.GetNextTabStop(2,0), 0)
+ self.assertEquals(self.ed.GetNextTabStop(3,0), 0)
+
+ # Another 2 lines before explicit line moves the explicit tab stop
+ data = b"x\ny\n"
+ self.ed.InsertText(4, data)
+ self.assertEquals(self.ed.GetNextTabStop(0,0), 0)
+ self.assertEquals(self.ed.GetNextTabStop(1,0), 0)
+ self.assertEquals(self.ed.GetNextTabStop(2,0), 0)
+ self.assertEquals(self.ed.GetNextTabStop(3,0), 7)
+ self.assertEquals(self.ed.GetNextTabStop(4,0), 0)
+ self.assertEquals(self.ed.GetNextTabStop(5,0), 0)
+
+ # Undo moves the explicit tab stop back
+ self.ed.Undo()
+ self.assertEquals(self.ed.GetNextTabStop(0,0), 0)
+ self.assertEquals(self.ed.GetNextTabStop(1,0), 7)
+ self.assertEquals(self.ed.GetNextTabStop(2,0), 0)
+ self.assertEquals(self.ed.GetNextTabStop(3,0), 0)
+
if __name__ == '__main__':
uu = Xite.main("simpleTests")
#~ for x in sorted(uu.keys()):