aboutsummaryrefslogtreecommitdiffhomepage
path: root/test/simpleTests.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/simpleTests.py')
-rw-r--r--test/simpleTests.py75
1 files changed, 75 insertions, 0 deletions
diff --git a/test/simpleTests.py b/test/simpleTests.py
index 5383911ee..289359475 100644
--- a/test/simpleTests.py
+++ b/test/simpleTests.py
@@ -191,6 +191,12 @@ class TestSimple(unittest.TestCase):
self.assertEquals(self.ed.Length, 1)
self.assertEquals(data, self.ed.ByteRange(0,1))
+ def testNewLine(self):
+ self.ed.SetContents(b"12")
+ self.ed.SetSel(1, 1)
+ self.ed.NewLine()
+ self.assertEquals(self.ed.Contents(), b"1\r\n2")
+
def testUndoRedo(self):
data = b"xy"
self.assertEquals(self.ed.Modify, 0)
@@ -580,12 +586,81 @@ class TestSimple(unittest.TestCase):
self.ed.SelectionDuplicate()
self.assertEquals(self.ed.Contents(), b"1bb2")
+ def testLineDuplicate(self):
+ self.ed.SetContents(b"1\r\nb\r\n2")
+ self.ed.SetSel(3, 3)
+ # Duplicates the second line containing 'b'
+ self.ed.LineDuplicate()
+ self.assertEquals(self.ed.Contents(), b"1\r\nb\r\nb\r\n2")
+
+ def testLineDuplicateDifferentLineEnd(self):
+ self.ed.SetContents(b"1\nb\n2")
+ self.ed.SetSel(3, 3)
+ # Duplicates the second line containing 'b'
+ self.ed.LineDuplicate()
+ # Same as above but end of duplicated line is \r\n
+ self.assertEquals(self.ed.Contents(), b"1\nb\r\nb\n2")
+
def testTransposeLines(self):
self.ed.AddText(8, b"a1\nb2\nc3")
self.ed.SetSel(3,3)
self.ed.LineTranspose()
self.assertEquals(self.ed.Contents(), b"b2\na1\nc3")
+ def testMoveSelectedLines(self):
+ lineEndType = self.ed.EOLMode
+ self.ed.EOLMode = self.ed.SC_EOL_LF
+
+ self.ed.SetContents(b"a1\nb2\nc3")
+ self.ed.SetSel(3, 6)
+ self.ed.MoveSelectedLinesDown()
+ self.assertEquals(self.ed.Contents(), b"a1\nc3\nb2")
+
+ self.ed.SetContents(b"a1\nb2\nc3")
+ self.ed.SetSel(3, 6)
+ self.ed.MoveSelectedLinesUp()
+ self.assertEquals(self.ed.Contents(), b"b2\na1\nc3")
+
+ # Exercise the 'appendEol' case as the last line has no EOL characters to copy
+ self.ed.SetContents(b"a1\nb2\nc3")
+ self.ed.SetSel(4, 7)
+ self.ed.MoveSelectedLinesUp()
+ self.assertEquals(self.ed.Contents(), b"b2\nc3\na1")
+
+ # Testing extreme lines
+ self.ed.SetContents(b"a1\nb2\nc3")
+ self.ed.SetSel(6, 7)
+ self.ed.MoveSelectedLinesDown()
+ # No change as moving last line down
+ self.assertEquals(self.ed.Contents(), b"a1\nb2\nc3")
+
+ self.ed.SetContents(b"a1\nb2\nc3")
+ self.ed.SetSel(1, 2)
+ self.ed.MoveSelectedLinesUp()
+ # No change as moving first line up
+ self.assertEquals(self.ed.Contents(), b"a1\nb2\nc3")
+
+ # Moving line to end with different line end uses that line end
+ self.ed.EOLMode = self.ed.SC_EOL_CRLF
+ self.ed.SetContents(b"a1\nb2\nc3")
+ self.ed.SetSel(3, 6)
+ self.ed.MoveSelectedLinesDown()
+ self.assertEquals(self.ed.Contents(), b"a1\nc3\r\nb2")
+
+ # Exercise 'appendEol'
+ self.ed.SetContents(b"a1\nb2\nc3")
+ self.ed.SetSel(4, 7)
+ self.ed.MoveSelectedLinesUp()
+ self.assertEquals(self.ed.Contents(), b"b2\nc3\r\na1")
+
+ self.ed.SetContents(b"a1\nb2\nc3")
+ self.ed.SetSel(1, 2)
+ self.ed.MoveSelectedLinesDown()
+ self.assertEquals(self.ed.Contents(), b"b2\na1\nc3")
+
+ # Restore line end
+ self.ed.EOLMode = lineEndType
+
def testGetSet(self):
self.ed.SetContents(b"abc")
self.assertEquals(self.ed.TextLength, 3)