diff options
author | Caroline Chao <caroline.chao@digia.com> | 2013-03-05 14:56:10 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-03-07 11:58:50 +0100 |
commit | c4cbb1249fa7cb754de4603f5ff606aa94fafbd5 (patch) | |
tree | 8011bbe11d396ea71211e59133413280d1d3cf66 /tests/auto/quick/qquicktextedit/tst_qquicktextedit.cpp | |
parent | 962609bef1aaa61125700ceb5e5e25c243113a0a (diff) |
Tests: add autotests for TextEdit and TextInput
Check the selection is not cleared when the control receives
a focus out event with one of the following reason:
- Qt::ActiveWindowFocusReason
- Qt::PopupFocusReason
Change-Id: I38f4a4cba5e769f19de4e327d03be57a8d1d36a7
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
Diffstat (limited to 'tests/auto/quick/qquicktextedit/tst_qquicktextedit.cpp')
-rw-r--r-- | tests/auto/quick/qquicktextedit/tst_qquicktextedit.cpp | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/tests/auto/quick/qquicktextedit/tst_qquicktextedit.cpp b/tests/auto/quick/qquicktextedit/tst_qquicktextedit.cpp index c29c6c05d6..e4821e80a6 100644 --- a/tests/auto/quick/qquicktextedit/tst_qquicktextedit.cpp +++ b/tests/auto/quick/qquicktextedit/tst_qquicktextedit.cpp @@ -117,6 +117,7 @@ private slots: void color(); void textMargin(); void persistentSelection(); + void selectionOnFocusOut(); void focusOnPress(); void selection(); void isRightToLeft_data(); @@ -1163,6 +1164,48 @@ void tst_qquicktextedit::persistentSelection() } +void tst_qquicktextedit::selectionOnFocusOut() +{ + QQuickView window(testFileUrl("focusOutSelection.qml")); + window.show(); + window.requestActivate(); + QTest::qWaitForWindowActive(&window); + + QPoint p1(25, 35); + QPoint p2(25, 85); + + QQuickTextEdit *edit1 = window.rootObject()->findChild<QQuickTextEdit*>("text1"); + QQuickTextEdit *edit2 = window.rootObject()->findChild<QQuickTextEdit*>("text2"); + + QTest::mouseClick(&window, Qt::LeftButton, 0, p1); + QVERIFY(edit1->hasActiveFocus()); + QVERIFY(!edit2->hasActiveFocus()); + + edit1->selectAll(); + QCOMPARE(edit1->selectedText(), QLatin1String("text 1")); + + QTest::mouseClick(&window, Qt::LeftButton, 0, p2); + + QCOMPARE(edit1->selectedText(), QLatin1String("")); + QVERIFY(!edit1->hasActiveFocus()); + QVERIFY(edit2->hasActiveFocus()); + + edit2->selectAll(); + QCOMPARE(edit2->selectedText(), QLatin1String("text 2")); + + + edit2->setFocus(false, Qt::ActiveWindowFocusReason); + QVERIFY(!edit2->hasActiveFocus()); + QCOMPARE(edit2->selectedText(), QLatin1String("text 2")); + + edit2->setFocus(true); + QVERIFY(edit2->hasActiveFocus()); + + edit2->setFocus(false, Qt::PopupFocusReason); + QVERIFY(!edit2->hasActiveFocus()); + QCOMPARE(edit2->selectedText(), QLatin1String("text 2")); +} + void tst_qquicktextedit::focusOnPress() { QString componentStr = |