diff options
author | Kari Oikarinen <kari.oikarinen@qt.io> | 2019-11-26 14:49:20 +0200 |
---|---|---|
committer | Kari Oikarinen <kari.oikarinen@qt.io> | 2019-11-26 14:49:20 +0200 |
commit | 0d2fc12b65028b4f04bdace3991448813130ab48 (patch) | |
tree | 3666621eced42e3a2f663085a6fd969585edada9 /tests/auto/qquickpopup/tst_qquickpopup.cpp | |
parent | 546539562f2aff985e78f3c2426cb711a865ad65 (diff) | |
parent | f9877da406ad96d82becb15b6eef9b723b8807e3 (diff) |
Merge 5.14 into 5.14.0v5.14.0-rc2v5.14.0-rc1v5.14.0
Change-Id: Ieaab5ab5723972fe3cdcb2245f53caad1ee63a5e
Diffstat (limited to 'tests/auto/qquickpopup/tst_qquickpopup.cpp')
-rw-r--r-- | tests/auto/qquickpopup/tst_qquickpopup.cpp | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/tests/auto/qquickpopup/tst_qquickpopup.cpp b/tests/auto/qquickpopup/tst_qquickpopup.cpp index b5c59e02..e852a61e 100644 --- a/tests/auto/qquickpopup/tst_qquickpopup.cpp +++ b/tests/auto/qquickpopup/tst_qquickpopup.cpp @@ -72,6 +72,7 @@ private slots: void activeFocusOnClose1(); void activeFocusOnClose2(); void activeFocusOnClose3(); + void activeFocusOnClosingSeveralPopups(); void hover_data(); void hover(); void wheel_data(); @@ -666,6 +667,54 @@ void tst_QQuickPopup::activeFocusOnClose3() QTRY_VERIFY(popup2->hasActiveFocus()); } +void tst_QQuickPopup::activeFocusOnClosingSeveralPopups() +{ + // Test that active focus isn't lost when multiple popup closing simultaneously + QQuickApplicationHelper helper(this, QStringLiteral("activeFocusOnClosingSeveralPopups.qml")); + QQuickApplicationWindow *window = helper.appWindow; + window->show(); + window->requestActivate(); + QVERIFY(QTest::qWaitForWindowActive(window)); + + QQuickItem *button = window->property("button").value<QQuickItem *>(); + QVERIFY(button); + + QQuickPopup *popup1 = window->property("popup1").value<QQuickPopup *>(); + QVERIFY(popup1); + + QQuickPopup *popup2 = window->property("popup2").value<QQuickPopup *>(); + QVERIFY(popup2); + + QCOMPARE(button->hasActiveFocus(), true); + popup1->open(); + QTRY_VERIFY(popup1->isOpened()); + QVERIFY(popup1->hasActiveFocus()); + popup2->open(); + QTRY_VERIFY(popup2->isOpened()); + QVERIFY(popup2->hasActiveFocus()); + QTRY_COMPARE(button->hasActiveFocus(), false); + // close the unfocused popup first + popup1->close(); + popup2->close(); + QTRY_VERIFY(!popup1->isVisible()); + QTRY_VERIFY(!popup2->isVisible()); + QTRY_COMPARE(button->hasActiveFocus(), true); + + popup1->open(); + QTRY_VERIFY(popup1->isOpened()); + QVERIFY(popup1->hasActiveFocus()); + popup2->open(); + QTRY_VERIFY(popup2->isOpened()); + QVERIFY(popup2->hasActiveFocus()); + QTRY_COMPARE(button->hasActiveFocus(), false); + // close the focused popup first + popup2->close(); + popup1->close(); + QTRY_VERIFY(!popup1->isVisible()); + QTRY_VERIFY(!popup2->isVisible()); + QTRY_COMPARE(button->hasActiveFocus(), true); +} + void tst_QQuickPopup::hover_data() { QTest::addColumn<QString>("source"); |