diff options
Diffstat (limited to 'tests/auto/qquickmenu/tst_qquickmenu.cpp')
-rw-r--r-- | tests/auto/qquickmenu/tst_qquickmenu.cpp | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/tests/auto/qquickmenu/tst_qquickmenu.cpp b/tests/auto/qquickmenu/tst_qquickmenu.cpp index 092f1b75..ee3b2245 100644 --- a/tests/auto/qquickmenu/tst_qquickmenu.cpp +++ b/tests/auto/qquickmenu/tst_qquickmenu.cpp @@ -101,6 +101,7 @@ private slots: void menuItemWidthAfterImplicitWidthChanged_data(); void menuItemWidthAfterImplicitWidthChanged(); void menuItemWidthAfterRetranslate(); + void giveMenuItemFocusOnButtonPress(); }; void tst_QQuickMenu::defaults() @@ -1846,6 +1847,32 @@ void tst_QQuickMenu::menuItemWidthAfterRetranslate() } } +void tst_QQuickMenu::giveMenuItemFocusOnButtonPress() +{ + QQuickApplicationHelper helper(this, QLatin1String("giveMenuItemFocusOnButtonPress.qml")); + QVERIFY2(helper.ready, helper.failureMessage()); + QQuickApplicationWindow *window = helper.appWindow; + window->show(); + QVERIFY(QTest::qWaitForWindowActive(window)); + + // Press enter on the button to open the menu. + QQuickButton *menuButton = window->property("menuButton").value<QQuickButton*>(); + QVERIFY(menuButton); + menuButton->forceActiveFocus(); + QVERIFY(menuButton->hasActiveFocus()); + + QSignalSpy clickedSpy(window, SIGNAL(menuButtonClicked())); + QVERIFY(clickedSpy.isValid()); + + QTest::keyClick(window, Qt::Key_Return); + QCOMPARE(clickedSpy.count(), 1); + + // The menu should still be open. + QQuickMenu *menu = window->property("menu").value<QQuickMenu*>(); + QVERIFY(menu); + QTRY_VERIFY(menu->isOpened()); +} + QTEST_QUICKCONTROLS_MAIN(tst_QQuickMenu) #include "tst_qquickmenu.moc" |