diff options
Diffstat (limited to 'tests/auto/quick/qquicktextedit/tst_qquicktextedit.cpp')
-rw-r--r-- | tests/auto/quick/qquicktextedit/tst_qquicktextedit.cpp | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/tests/auto/quick/qquicktextedit/tst_qquicktextedit.cpp b/tests/auto/quick/qquicktextedit/tst_qquicktextedit.cpp index 88b9c2d792..f8fc4c10da 100644 --- a/tests/auto/quick/qquicktextedit/tst_qquicktextedit.cpp +++ b/tests/auto/quick/qquicktextedit/tst_qquicktextedit.cpp @@ -207,6 +207,7 @@ private slots: void embeddedImages_data(); void emptytags_QTBUG_22058(); + void cursorRectangle_QTBUG_38947(); private: void simulateKeys(QWindow *window, const QList<Key> &keys); @@ -5262,6 +5263,33 @@ void tst_qquicktextedit::emptytags_QTBUG_22058() QCOMPARE(input->text(), QString("<b>Bold<>")); } +void tst_qquicktextedit::cursorRectangle_QTBUG_38947() +{ + QQuickView window(testFileUrl("qtbug-38947.qml")); + + window.show(); + window.requestActivate(); + QTest::qWaitForWindowExposed(&window); + QQuickTextEdit *edit = window.rootObject()->findChild<QQuickTextEdit *>("textedit"); + QVERIFY(edit); + + QPoint from = edit->positionToRectangle(0).center().toPoint(); + QTest::mousePress(&window, Qt::LeftButton, Qt::NoModifier, from); + + QSignalSpy spy(edit, SIGNAL(cursorRectangleChanged())); + QVERIFY(spy.isValid()); + + for (int i = 1; i < edit->length() - 1; ++i) { + QRectF rect = edit->positionToRectangle(i); + QTest::mouseMove(&window, rect.center().toPoint()); + QCOMPARE(edit->cursorRectangle(), rect); + QCOMPARE(spy.count(), i); + } + + QPoint to = edit->positionToRectangle(edit->length() - 1).center().toPoint(); + QTest::mouseRelease(&window, Qt::LeftButton, Qt::NoModifier, to); +} + QTEST_MAIN(tst_qquicktextedit) #include "tst_qquicktextedit.moc" |