From 23adda4a1f3137a62a5b18147fc266113860d75e Mon Sep 17 00:00:00 2001 From: Martin Jones Date: Fri, 13 Nov 2009 16:26:04 +1000 Subject: ListView tests --- .../qmlgraphicslistview/data/listview.qml | 1 + .../tst_qmlgraphicslistview.cpp | 59 ++++++++++++++++++++++ 2 files changed, 60 insertions(+) diff --git a/tests/auto/declarative/qmlgraphicslistview/data/listview.qml b/tests/auto/declarative/qmlgraphicslistview/data/listview.qml index 280173b..ccefeba 100644 --- a/tests/auto/declarative/qmlgraphicslistview/data/listview.qml +++ b/tests/auto/declarative/qmlgraphicslistview/data/listview.qml @@ -81,5 +81,6 @@ Rectangle { model: testModel delegate: testAnimate ? myDelegate : animatedDelegate highlightMoveSpeed: 1000 + highlightResizeSpeed: 1000 } } diff --git a/tests/auto/declarative/qmlgraphicslistview/tst_qmlgraphicslistview.cpp b/tests/auto/declarative/qmlgraphicslistview/tst_qmlgraphicslistview.cpp index 83b8d79..25e6996 100644 --- a/tests/auto/declarative/qmlgraphicslistview/tst_qmlgraphicslistview.cpp +++ b/tests/auto/declarative/qmlgraphicslistview/tst_qmlgraphicslistview.cpp @@ -75,6 +75,7 @@ private slots: void enforceRange(); void spacing(); void sections(); + void cacheBuffer(); private: template void items(); @@ -275,6 +276,9 @@ void tst_QmlGraphicsListView::items() int itemCount = findItems(viewport, "wrapper").count(); QVERIFY(itemCount == 0); + QCOMPARE(listview->highlightResizeSpeed(), 1000.0); + QCOMPARE(listview->highlightMoveSpeed(), 1000.0); + delete canvas; } @@ -727,6 +731,8 @@ void tst_QmlGraphicsListView::sections() QmlGraphicsItem *viewport = listview->viewport(); QVERIFY(viewport != 0); + QCOMPARE(listview->sectionExpression(), QLatin1String("Math.floor(number/5)")); + // Confirm items positioned correctly int itemCount = findItems(viewport, "wrapper").count(); for (int i = 0; i < model.count() && i < itemCount; ++i) { @@ -770,6 +776,13 @@ void tst_QmlGraphicsListView::sections() listview->setViewportY(140); QVERIFY(listview->currentSection() == "1"); + listview->setViewportY(20); + QVERIFY(listview->currentSection() == "0"); + + item = findItem(viewport, "wrapper", 1); + QVERIFY(item); + QCOMPARE(item->height(), 20.0); + delete canvas; } @@ -903,6 +916,52 @@ void tst_QmlGraphicsListView::itemList() delete canvas; } +void tst_QmlGraphicsListView::cacheBuffer() +{ + QmlView *canvas = createView(SRCDIR "/data/listview.qml"); + + TestModel model; + for (int i = 0; i < 30; i++) + model.addItem("Item" + QString::number(i), ""); + + QmlContext *ctxt = canvas->rootContext(); + ctxt->setContextProperty("testModel", &model); + ctxt->setContextProperty("testAnimate", QVariant(false)); + + canvas->execute(); + qApp->processEvents(); + + QmlGraphicsListView *listview = findItem(canvas->root(), "list"); + QVERIFY(listview != 0); + + QmlGraphicsItem *viewport = listview->viewport(); + QVERIFY(viewport != 0); + + // Confirm items positioned correctly + int itemCount = findItems(viewport, "wrapper").count(); + for (int i = 0; i < model.count() && i < itemCount; ++i) { + QmlGraphicsItem *item = findItem(viewport, "wrapper", i); + if (!item) qWarning() << "Item" << i << "not found"; + QVERIFY(item); + QVERIFY(item->y() == i*20); + } + + listview->setCacheBuffer(400); + + int newItemCount = findItems(viewport, "wrapper").count(); + QVERIFY(newItemCount > itemCount); + + // Confirm items positioned correctly + for (int i = 0; i < model.count() && i < newItemCount; ++i) { + QmlGraphicsItem *item = findItem(viewport, "wrapper", i); + if (!item) qWarning() << "Item" << i << "not found"; + QVERIFY(item); + QVERIFY(item->y() == i*20); + } + + delete canvas; +} + void tst_QmlGraphicsListView::qListModelInterface_items() { items(); -- cgit v0.12