aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@qt.io>2017-07-10 11:59:47 +0200
committerJ-P Nurmi <jpnurmi@qt.io>2017-07-10 11:24:14 +0000
commit014466f46abad9868e4e8d09c5d9ac6164ccf2f5 (patch)
tree5f1d87568d271c3b9865ee71a2b6c07e1e7a948c /tests
parent83541427f555b73bcc0f8687adb6e81acf32c9ef (diff)
QQuickMenu: add actionAt() and menuAt() accessors
This complements the add/insert/remove/take API that was added for actions and menus. Unlike for menu items, there was no convenient way to access a specific action or menu directly without accessing the respective item first. [ChangeLog][Controls][Menu] Added actionAt() and menuAt() accessors. Change-Id: I5515441626b3a04b05265d5b42afdaea8e256709 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/menu/tst_menu.cpp23
1 files changed, 19 insertions, 4 deletions
diff --git a/tests/auto/menu/tst_menu.cpp b/tests/auto/menu/tst_menu.cpp
index 2397a6ef..1c1030e0 100644
--- a/tests/auto/menu/tst_menu.cpp
+++ b/tests/auto/menu/tst_menu.cpp
@@ -682,9 +682,18 @@ void tst_menu::actions()
QQuickMenu *menu = window->property("menu").value<QQuickMenu *>();
QVERIFY(menu);
+ QPointer<QQuickAction> action1 = menu->actionAt(0);
+ QVERIFY(!action1.isNull());
+
+ QPointer<QQuickAction> action3 = menu->actionAt(2);
+ QVERIFY(!action3.isNull());
+
+ QVERIFY(!menu->actionAt(1));
+ QVERIFY(!menu->actionAt(3));
+
QPointer<QQuickMenuItem> menuItem1 = qobject_cast<QQuickMenuItem *>(menu->itemAt(0));
QVERIFY(!menuItem1.isNull());
- QVERIFY(menuItem1->action());
+ QCOMPARE(menuItem1->action(), action1.data());
QCOMPARE(menuItem1->text(), "action1");
QPointer<QQuickMenuItem> menuItem2 = qobject_cast<QQuickMenuItem *>(menu->itemAt(1));
@@ -694,7 +703,7 @@ void tst_menu::actions()
QPointer<QQuickMenuItem> menuItem3 = qobject_cast<QQuickMenuItem *>(menu->itemAt(2));
QVERIFY(!menuItem3.isNull());
- QVERIFY(menuItem3->action());
+ QCOMPARE(menuItem3->action(), action3.data());
QCOMPARE(menuItem3->text(), "action3");
QPointer<QQuickMenuItem> menuItem4 = qobject_cast<QQuickMenuItem *>(menu->itemAt(3));
@@ -703,8 +712,6 @@ void tst_menu::actions()
QCOMPARE(menuItem4->text(), "menuitem4");
// takeAction(int) does not destroy the action, but does destroy the respective item
- QPointer<QQuickAction> action1 = menuItem1->action();
- QVERIFY(!action1.isNull());
QCOMPARE(menu->takeAction(0), action1.data());
QVERIFY(!menu->itemAt(3));
QCoreApplication::sendPostedEvents(action1, QEvent::DeferredDelete);
@@ -1144,11 +1151,19 @@ void tst_menu::addRemoveSubMenus()
QQuickMenu *mainMenu = window->property("mainMenu").value<QQuickMenu *>();
QVERIFY(mainMenu);
+ QVERIFY(!mainMenu->menuAt(0));
+
QPointer<QQuickMenu> subMenu1 = window->property("subMenu1").value<QQuickMenu *>();
QVERIFY(!subMenu1.isNull());
+ QCOMPARE(mainMenu->menuAt(1), subMenu1.data());
+
+ QVERIFY(!mainMenu->menuAt(2));
QPointer<QQuickMenu> subMenu2 = window->property("subMenu2").value<QQuickMenu *>();
QVERIFY(!subMenu2.isNull());
+ QCOMPARE(mainMenu->menuAt(3), subMenu2.data());
+
+ QVERIFY(!mainMenu->menuAt(4));
QPointer<QQuickMenu> subSubMenu1 = window->property("subSubMenu1").value<QQuickMenu *>();
QVERIFY(!subSubMenu1.isNull());