aboutsummaryrefslogtreecommitdiffhomepage
path: root/test
diff options
context:
space:
mode:
authorNeil <nyamatongwe@gmail.com>2025-12-08 14:38:07 +1100
committerNeil <nyamatongwe@gmail.com>2025-12-08 14:38:07 +1100
commit724429a7c661eeafe3094a049f747267d0496a69 (patch)
tree5e61c00fe32ca0860f0f24446a1421622c13e6a7 /test
parent3b9c68ac4239f07d7a9117010778987e5b98502c (diff)
downloadscintilla-mirror-724429a7c661eeafe3094a049f747267d0496a69.tar.gz
Bug [#2488]. Fix SCI_SETSELECTIONNSTART and SCI_SETSELECTIONNEND.
Diffstat (limited to 'test')
-rw-r--r--test/simpleTests.py22
-rw-r--r--test/unit/testSelection.cxx90
2 files changed, 112 insertions, 0 deletions
diff --git a/test/simpleTests.py b/test/simpleTests.py
index 020b72e99..4e6a51d59 100644
--- a/test/simpleTests.py
+++ b/test/simpleTests.py
@@ -1967,6 +1967,28 @@ class TestMultiSelection(unittest.TestCase):
self.assertEqual(self.ed.GetSelectionNStart(0), 2)
self.assertEqual(self.ed.GetSelectionNEnd(0), 3)
+ self.ed.SetSelectionNStart(0, 1)
+ self.assertEqual(self.ed.GetSelectionNAnchor(0), 1)
+ self.assertEqual(self.ed.GetSelectionNCaret(0), 3)
+ self.assertEqual(self.ed.GetSelectionNStart(0), 1)
+ self.assertEqual(self.ed.GetSelectionNEnd(0), 3)
+
+ self.ed.SetSelectionNAnchor(0, 2)
+ self.ed.SetSelectionNCaret(0, 2)
+ self.ed.SetSelectionNStart(0, 9)
+ self.assertEqual(self.ed.GetSelectionNAnchor(0), 9)
+ self.assertEqual(self.ed.GetSelectionNCaret(0), 9)
+ self.assertEqual(self.ed.GetSelectionNStart(0), 9)
+ self.assertEqual(self.ed.GetSelectionNEnd(0), 9)
+
+ self.ed.SetSelectionNAnchor(0, 2)
+ self.ed.SetSelectionNCaret(0, 3)
+ self.ed.SetSelectionNStart(0, 9)
+ self.assertEqual(self.ed.GetSelectionNAnchor(0), 9)
+ self.assertEqual(self.ed.GetSelectionNCaret(0), 9)
+ self.assertEqual(self.ed.GetSelectionNStart(0), 9)
+ self.assertEqual(self.ed.GetSelectionNEnd(0), 9)
+
def test2Selections(self):
self.ed.SetSelection(1, 2)
self.ed.AddSelection(4, 5)
diff --git a/test/unit/testSelection.cxx b/test/unit/testSelection.cxx
index ab0065624..76eebca21 100644
--- a/test/unit/testSelection.cxx
+++ b/test/unit/testSelection.cxx
@@ -198,6 +198,96 @@ TEST_CASE("SelectionRange") {
REQUIRE(thin == single);
}
+ SECTION("StartEndSet") {
+ {
+ SelectionRange range;
+
+ range.StartSet(SelectionPosition(2));
+ range.EndSet(SelectionPosition(3));
+ REQUIRE(range.Start() == SelectionPosition(2));
+ REQUIRE(range.End() == SelectionPosition(3));
+ REQUIRE(range == SelectionRange(3, 2));
+
+ range.StartSet(SelectionPosition(1));
+ REQUIRE(range.Start() == SelectionPosition(1));
+ REQUIRE(range.End() == SelectionPosition(3));
+ REQUIRE(range == SelectionRange(3, 1));
+ }
+
+ {
+ // Outside after
+ SelectionRange range(2, 1);
+ range.StartSet(SelectionPosition(3));
+ REQUIRE(range.Start() == SelectionPosition(3));
+ REQUIRE(range.End() == SelectionPosition(3));
+ REQUIRE(range == SelectionRange(3, 3));
+ }
+
+ {
+ // Outside after
+ SelectionRange range(2, 1);
+ range.EndSet(SelectionPosition(3));
+ REQUIRE(range.Start() == SelectionPosition(1));
+ REQUIRE(range.End() == SelectionPosition(3));
+ REQUIRE(range == SelectionRange(3, 1));
+ }
+
+ {
+ // Outside before
+ SelectionRange range(2, 1);
+ range.StartSet(SelectionPosition(0));
+ REQUIRE(range.Start() == SelectionPosition(0));
+ REQUIRE(range.End() == SelectionPosition(2));
+ REQUIRE(range == SelectionRange(2, 0));
+ }
+
+ {
+ // Outside before
+ SelectionRange range(2, 1);
+ range.EndSet(SelectionPosition(0));
+ REQUIRE(range.Start() == SelectionPosition(0));
+ REQUIRE(range.End() == SelectionPosition(0));
+ REQUIRE(range == SelectionRange(0, 0));
+ }
+
+ {
+ // Inside
+ SelectionRange range(3, 1);
+ range.EndSet(SelectionPosition(2));
+ REQUIRE(range.Start() == SelectionPosition(1));
+ REQUIRE(range.End() == SelectionPosition(2));
+ REQUIRE(range == SelectionRange(2, 1));
+ }
+
+ {
+ // Inside
+ SelectionRange range(3, 1);
+ range.StartSet(SelectionPosition(2));
+ REQUIRE(range.Start() == SelectionPosition(2));
+ REQUIRE(range.End() == SelectionPosition(3));
+ REQUIRE(range == SelectionRange(3, 2));
+ }
+
+ {
+ // Empty then outside
+ SelectionRange range(2);
+ range.StartSet(SelectionPosition(9));
+ REQUIRE(range.Start() == SelectionPosition(9));
+ REQUIRE(range.End() == SelectionPosition(9));
+ REQUIRE(range == SelectionRange(9, 9));
+ }
+
+ {
+ // Empty then outside
+ SelectionRange range(2);
+ range.StartSet(SelectionPosition(0));
+ REQUIRE(range.Start() == SelectionPosition(0));
+ REQUIRE(range.End() == SelectionPosition(2));
+ REQUIRE(range == SelectionRange(2, 0));
+ }
+
+ }
+
}
TEST_CASE("Selection") {