summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorDavid Schulz <david.schulz@qt.io>2023-05-16 11:17:27 +0200
committerDavid Schulz <david.schulz@qt.io>2023-05-17 12:53:22 +0000
commitb2e30e7ef86595c537062cb8261a0735b389949c (patch)
tree916da472aefb94ecec9a040929a07772e477222e /tests
parent2cd2324963b7f0ea23e0e6aad5cd04ad42cda049 (diff)
downloadqt-creator-b2e30e7ef86595c537062cb8261a0735b389949c.tar.gz
Utils: add Position::fromCursor with tests
Change-Id: I1cd989eaf7e75bc04f171989f9f9fe932402abef Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/utils/text/tst_text.cpp34
1 files changed, 34 insertions, 0 deletions
diff --git a/tests/auto/utils/text/tst_text.cpp b/tests/auto/utils/text/tst_text.cpp
index 3428b0b757..3672eb2ce2 100644
--- a/tests/auto/utils/text/tst_text.cpp
+++ b/tests/auto/utils/text/tst_text.cpp
@@ -3,6 +3,7 @@
#include <utils/textutils.h>
+#include <QTextCursor>
#include <QTextDocument>
#include <QtTest>
@@ -19,6 +20,9 @@ private slots:
void testPositionFromPositionInDocument_data();
void testPositionFromPositionInDocument();
+ void testPositionFromCursor_data();
+ void testPositionFromCursor();
+
void testRangeLength_data();
void testRangeLength();
};
@@ -135,6 +139,36 @@ void tst_Text::testPositionFromPositionInDocument()
QCOMPARE(Position::fromPositionInDocument(&doc, documentPosition), position);
}
+void tst_Text::testPositionFromCursor_data()
+{
+ QTest::addColumn<QString>("text");
+ QTest::addColumn<int>("documentPosition");
+ QTest::addColumn<Position>("position");
+
+ QTest::newRow("0") << QString() << 0 << Position{1, 0};
+ QTest::newRow("-1") << QString() << -1 << Position{};
+ QTest::newRow("mid line") << QString("foo\n") << 1 << Position{1, 1};
+ QTest::newRow("second line") << QString("foo\n") << 4 << Position{2, 0};
+ QTest::newRow("second mid line") << QString("foo\nbar") << 5 << Position{2, 1};
+ QTest::newRow("behind content") << QString("foo\nbar") << 8 << Position{1, 0};
+}
+
+void tst_Text::testPositionFromCursor()
+{
+ QFETCH(QString, text);
+ QFETCH(int, documentPosition);
+ QFETCH(Position, position);
+
+ if (documentPosition < 0) {// test invalid Cursor {
+ QCOMPARE(Position::fromCursor(QTextCursor()), position);
+ } else {
+ QTextDocument doc(text);
+ QTextCursor cursor(&doc);
+ cursor.setPosition(documentPosition);
+ QCOMPARE(Position::fromCursor(cursor), position);
+ }
+}
+
void tst_Text::testRangeLength_data()
{
QTest::addColumn<QString>("text");