diff options
Diffstat (limited to 'tests/auto/quick/qquicklistview/tst_qquicklistview.cpp')
-rw-r--r-- | tests/auto/quick/qquicklistview/tst_qquicklistview.cpp | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/tests/auto/quick/qquicklistview/tst_qquicklistview.cpp b/tests/auto/quick/qquicklistview/tst_qquicklistview.cpp index c6a72306f9..848ffb10ff 100644 --- a/tests/auto/quick/qquicklistview/tst_qquicklistview.cpp +++ b/tests/auto/quick/qquicklistview/tst_qquicklistview.cpp @@ -146,6 +146,7 @@ private slots: void sectionsDragOutsideBounds(); void sectionsDelegate_headerVisibility(); void sectionPropertyChange(); + void sectionDelegateChange(); void cacheBuffer(); void positionViewAtIndex(); void resetModel(); @@ -2431,6 +2432,46 @@ void tst_QQuickListView::sectionPropertyChange() delete canvas; } +void tst_QQuickListView::sectionDelegateChange() +{ + QQuickView *canvas = createView(); + + canvas->setSource(testFileUrl("sectiondelegatechange.qml")); + canvas->show(); + qApp->processEvents(); + + QQuickListView *listview = qobject_cast<QQuickListView *>(canvas->rootObject()); + QVERIFY(listview != 0); + + QQuickItem *contentItem = listview->contentItem(); + QVERIFY(contentItem != 0); + + QQUICK_VERIFY_POLISH(listview); + + QVERIFY(findItems<QQuickItem>(contentItem, "section1").count() > 0); + QCOMPARE(findItems<QQuickItem>(contentItem, "section2").count(), 0); + + for (int i = 0; i < 3; ++i) { + QQuickItem *item = findItem<QQuickItem>(contentItem, "item", i); + QTRY_VERIFY(item); + QTRY_COMPARE(item->y(), qreal(25. + i*50.)); + } + + QMetaObject::invokeMethod(canvas->rootObject(), "switchDelegates"); + QQUICK_VERIFY_POLISH(listview); + + QCOMPARE(findItems<QQuickItem>(contentItem, "section1").count(), 0); + QVERIFY(findItems<QQuickItem>(contentItem, "section2").count() > 0); + + for (int i = 0; i < 3; ++i) { + QQuickItem *item = findItem<QQuickItem>(contentItem, "item", i); + QVERIFY(item); + QTRY_COMPARE(item->y(), qreal(50. + i*75.)); + } + + delete canvas; +} + void tst_QQuickListView::currentIndex_delayedItemCreation() { QFETCH(bool, setCurrentToZero); |