From 23adda4a1f3137a62a5b18147fc266113860d75e Mon Sep 17 00:00:00 2001
From: Martin Jones <martin.jones@nokia.com>
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 <class T> void items();
@@ -275,6 +276,9 @@ void tst_QmlGraphicsListView::items()
     int itemCount = findItems<QmlGraphicsItem>(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<QmlGraphicsItem>(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<QmlGraphicsItem>(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<QmlGraphicsListView>(canvas->root(), "list");
+    QVERIFY(listview != 0);
+
+    QmlGraphicsItem *viewport = listview->viewport();
+    QVERIFY(viewport != 0);
+
+    // Confirm items positioned correctly
+    int itemCount = findItems<QmlGraphicsItem>(viewport, "wrapper").count();
+    for (int i = 0; i < model.count() && i < itemCount; ++i) {
+        QmlGraphicsItem *item = findItem<QmlGraphicsItem>(viewport, "wrapper", i);
+        if (!item) qWarning() << "Item" << i << "not found";
+        QVERIFY(item);
+        QVERIFY(item->y() == i*20);
+    }
+
+    listview->setCacheBuffer(400);
+
+    int newItemCount = findItems<QmlGraphicsItem>(viewport, "wrapper").count();
+    QVERIFY(newItemCount > itemCount);
+
+    // Confirm items positioned correctly
+    for (int i = 0; i < model.count() && i < newItemCount; ++i) {
+        QmlGraphicsItem *item = findItem<QmlGraphicsItem>(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<TestModel>();
-- 
cgit v0.12