diff options
author | Qt Forward Merge Bot <qt_forward_merge_bot@qt-project.org> | 2019-11-30 03:04:24 +0100 |
---|---|---|
committer | Qt Forward Merge Bot <qt_forward_merge_bot@qt-project.org> | 2019-11-30 03:04:24 +0100 |
commit | 9a9ae6be7d278cdcaf6ac99ea22b3d6cf1093313 (patch) | |
tree | 616c31b355cd94fd53749fec87cd87df3cfeb1a5 /tests/auto/qquickpopup/tst_qquickpopup.cpp | |
parent | 80f1186338bcf8c7d692b4fadfc46531c002c6b0 (diff) | |
parent | 8ee511bcd9f1376e9995ab3f30f6415ad60b7c05 (diff) |
Merge remote-tracking branch 'origin/5.14' into 5.15
Change-Id: Icb923b10d2b6c524ebaa8b38c7979b780e3582d4
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 cef555c0..a3683d6c 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(); @@ -667,6 +668,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"); |