aboutsummaryrefslogtreecommitdiffhomepage
path: root/test/simpleTests.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/simpleTests.py')
-rw-r--r--test/simpleTests.py43
1 files changed, 43 insertions, 0 deletions
diff --git a/test/simpleTests.py b/test/simpleTests.py
index a16b940fd..5383911ee 100644
--- a/test/simpleTests.py
+++ b/test/simpleTests.py
@@ -2960,6 +2960,49 @@ class TestDirectAccess(unittest.TestCase):
cpBuffer = ctypes.c_char_p(rangePointer)
self.assertEquals(cpBuffer.value, text[1:])
+class TestJoin(unittest.TestCase):
+ def setUp(self):
+ self.xite = Xite.xiteFrame
+ self.ed = self.xite.ed
+ self.ed.ClearAll()
+ self.ed.EmptyUndoBuffer()
+
+ def tearDown(self):
+ self.ed.ClearAll()
+ self.ed.EmptyUndoBuffer()
+
+ def testJoin(self):
+ text = b"a\r\nb\r\nc"
+ self.ed.SetContents(text)
+ self.ed.TargetWholeDocument()
+ self.ed.LinesJoin()
+ self.assertEquals(self.ed.Contents(), b"a b c")
+
+ def testJoinEndLine(self):
+ text = b"a\r\nb\r\nc"
+ self.ed.SetContents(text)
+ # Select a..b
+ self.ed.SetTargetRange(0, 4)
+ self.ed.LinesJoin()
+ self.assertEquals(self.ed.Contents(), b"a b\r\nc")
+
+ def testJoinSpace(self):
+ # Demonstration of bug #2372 which produced b"a \r"
+ text = b"a \r\n\r\n"
+ self.ed.SetContents(text)
+ self.ed.TargetWholeDocument()
+ self.ed.LinesJoin()
+ self.assertEquals(self.ed.Contents(), b"a ")
+
+ def testJoinOutOfBounds(self):
+ text = b"a\r\nb\r\nc"
+ self.ed.SetContents(text)
+ # Setting end of target after document end encourages non-termination.
+ self.ed.SetTargetRange(-10, 16)
+ self.ed.LinesJoin()
+ # Out-of-bounds leaves extra space as 'c' is processed
+ self.assertEquals(self.ed.Contents(), b"a b c ")
+
class TestWordChars(unittest.TestCase):
def setUp(self):
self.xite = Xite.xiteFrame