diff options
Diffstat (limited to 'tests/auto/qquickmenu/tst_qquickmenu.cpp')
-rw-r--r-- | tests/auto/qquickmenu/tst_qquickmenu.cpp | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/tests/auto/qquickmenu/tst_qquickmenu.cpp b/tests/auto/qquickmenu/tst_qquickmenu.cpp index 2ba9363b..2f6d5049 100644 --- a/tests/auto/qquickmenu/tst_qquickmenu.cpp +++ b/tests/auto/qquickmenu/tst_qquickmenu.cpp @@ -75,6 +75,7 @@ private slots: void addItem(); void menuSeparator(); void repeater(); + void repeaterWithItemsBeforeAndAfter(); void order(); void popup(); void actions(); @@ -591,7 +592,7 @@ void tst_QQuickMenu::repeater() for (int i = 0; i < count; ++i) { QQuickItem *item = menu->itemAt(i); - QVERIFY(item); + QVERIFY2(item, qPrintable(QString::fromLatin1("Expected item to be at index %1").arg(i))); QCOMPARE(item->property("idx").toInt(), i); QQuickItem *repeaterItem = nullptr; @@ -615,6 +616,35 @@ void tst_QQuickMenu::repeater() } } +void tst_QQuickMenu::repeaterWithItemsBeforeAndAfter() +{ + QQuickApplicationHelper helper(this, QLatin1String("repeaterWithItemsBeforeAndAfter.qml")); + + QQuickApplicationWindow *window = helper.appWindow; + window->show(); + window->requestActivate(); + QVERIFY(QTest::qWaitForWindowActive(window)); + QVERIFY(QGuiApplication::focusWindow() == window); + centerOnScreen(window); + moveMouseAway(window); + + QQuickMenu *menu = window->property("menu").value<QQuickMenu*>(); + menu->open(); + QVERIFY(menu->isVisible()); + waitForMenuListViewPolish(menu); + + QStringList expectedItemTexts; + expectedItemTexts << QLatin1String("Before") << QLatin1String("Repeater Item #1") + << QLatin1String("Repeater Item #2") << QLatin1String("After"); + + for (int i = 0; i < expectedItemTexts.size(); ++i) { + const QString expectedText = expectedItemTexts.at(i); + QQuickMenuItem *menuItem = qobject_cast<QQuickMenuItem*>(menu->itemAt(i)); + QVERIFY(menuItem); + QCOMPARE(menuItem->text(), expectedText); + } +} + void tst_QQuickMenu::order() { QQuickApplicationHelper helper(this, QLatin1String("order.qml")); |