diff options
Diffstat (limited to 'test/simpleTests.py')
-rw-r--r-- | test/simpleTests.py | 43 |
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 |