aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/focus/tst_focus.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/focus/tst_focus.cpp')
-rw-r--r--tests/auto/focus/tst_focus.cpp31
1 files changed, 31 insertions, 0 deletions
diff --git a/tests/auto/focus/tst_focus.cpp b/tests/auto/focus/tst_focus.cpp
index 36bc2d32..3f3b1ae5 100644
--- a/tests/auto/focus/tst_focus.cpp
+++ b/tests/auto/focus/tst_focus.cpp
@@ -63,6 +63,8 @@ private slots:
void reason_data();
void reason();
+
+ void visualFocus();
};
void tst_focus::initTestCase()
@@ -245,6 +247,35 @@ void tst_focus::reason()
QCOMPARE(control->property("visualFocus"), QVariant(true));
}
+void tst_focus::visualFocus()
+{
+ QQuickView view;
+ view.setSource(testFileUrl("visualFocus.qml"));
+ view.show();
+ view.requestActivate();
+ QVERIFY(QTest::qWaitForWindowActive(&view));
+
+ QQuickItem *column = view.rootObject();
+ QVERIFY(column);
+ QCOMPARE(column->childItems().count(), 2);
+
+ QQuickControl *button = qobject_cast<QQuickControl *>(column->childItems().first());
+ QVERIFY(button);
+
+ QQuickItem *textfield = column->childItems().last();
+ QVERIFY(textfield);
+
+ button->forceActiveFocus(Qt::TabFocusReason);
+ QVERIFY(button->hasActiveFocus());
+ QVERIFY(button->hasVisualFocus());
+ QVERIFY(button->property("showFocus").toBool());
+
+ QTest::mouseClick(&view, Qt::LeftButton, Qt::NoModifier, QPoint(textfield->x() + textfield->width() / 2, textfield->y() + textfield->height() / 2));
+ QVERIFY(!button->hasActiveFocus());
+ QVERIFY(!button->hasVisualFocus());
+ QVERIFY(!button->property("showFocus").toBool());
+}
+
QTEST_MAIN(tst_focus)
#include "tst_focus.moc"