aboutsummaryrefslogtreecommitdiffhomepage
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/simpleTests.py43
1 files changed, 40 insertions, 3 deletions
diff --git a/test/simpleTests.py b/test/simpleTests.py
index a68668f74..f16d4268c 100644
--- a/test/simpleTests.py
+++ b/test/simpleTests.py
@@ -1008,6 +1008,10 @@ class TestIndicators(unittest.TestCase):
self.ed.ClearAll()
self.ed.EmptyUndoBuffer()
+ def indicatorValueString(self, indicator):
+ # create a string with -/X where indicator off/on to make checks simple
+ return "".join("-X"[self.ed.IndicatorValueAt(indicator, index)] for index in range(self.ed.TextLength))
+
def testSetIndicator(self):
self.assertEquals(self.ed.IndicGetStyle(0), 1)
self.assertEquals(self.ed.IndicGetFore(0), 0x007f00)
@@ -1020,9 +1024,7 @@ class TestIndicators(unittest.TestCase):
self.ed.InsertText(0, b"abc")
self.ed.IndicatorCurrent = 3
self.ed.IndicatorFillRange(1,1)
- self.assertEquals(self.ed.IndicatorValueAt(3, 0), 0)
- self.assertEquals(self.ed.IndicatorValueAt(3, 1), 1)
- self.assertEquals(self.ed.IndicatorValueAt(3, 2), 0)
+ self.assertEquals(self.indicatorValueString(3), "-X-")
self.assertEquals(self.ed.IndicatorStart(3, 0), 0)
self.assertEquals(self.ed.IndicatorEnd(3, 0), 1)
self.assertEquals(self.ed.IndicatorStart(3, 1), 1)
@@ -1049,6 +1051,41 @@ class TestIndicators(unittest.TestCase):
self.assertEquals(self.ed.IndicatorStart(3, 1), 0)
self.assertEquals(self.ed.IndicatorEnd(3, 1), 0)
+ def testIndicatorMovement(self):
+ # Create a two character indicator over "BC" in "aBCd" and ensure that it doesn't
+ # leak onto surrounding characters when insertions made at either end but
+ # insertion inside indicator does extend length
+ self.ed.InsertText(0, b"aBCd")
+ self.ed.IndicatorCurrent = 3
+ self.ed.IndicatorFillRange(1,2)
+ self.assertEquals(self.indicatorValueString(3), "-XX-")
+
+ # Insertion 1 before
+ self.ed.InsertText(0, b"1")
+ self.assertEquals(b"1aBCd", self.ed.Contents())
+ self.assertEquals(self.indicatorValueString(3), "--XX-")
+
+ # Insertion at start of indicator
+ self.ed.InsertText(2, b"2")
+ self.assertEquals(b"1a2BCd", self.ed.Contents())
+ self.assertEquals(self.indicatorValueString(3), "---XX-")
+
+ # Insertion inside indicator
+ self.ed.InsertText(4, b"3")
+ self.assertEquals(b"1a2B3Cd", self.ed.Contents())
+ self.assertEquals(self.indicatorValueString(3), "---XXX-")
+
+ # Insertion at end of indicator
+ self.ed.InsertText(6, b"4")
+ self.assertEquals(b"1a2B3C4d", self.ed.Contents())
+ self.assertEquals(self.indicatorValueString(3), "---XXX--")
+
+ # Insertion 1 after
+ self.ed.InsertText(8, b"5")
+ self.assertEquals(self.indicatorValueString(3), "---XXX---")
+ self.assertEquals(b"1a2B3C4d5", self.ed.Contents())
+
+
class TestScrolling(unittest.TestCase):
def setUp(self):