--- a/tests/auto/declarative/qdeclarativepathview/tst_qdeclarativepathview.cpp Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/declarative/qdeclarativepathview/tst_qdeclarativepathview.cpp Mon Oct 04 01:19:32 2010 +0300
@@ -84,7 +84,7 @@
void modelChanges();
void pathUpdateOnStartChanged();
void package();
-
+ void emptyModel();
private:
QDeclarativeView *createView();
@@ -367,9 +367,11 @@
QCOMPARE(item->y(), 10.0);
model.insertItem(4, "orange", "10");
+ QTest::qWait(100);
- int itemCount = findItems<QDeclarativeItem>(pathview, "wrapper").count();
- QCOMPARE(itemCount, 10);
+ QTRY_COMPARE(findItems<QDeclarativeItem>(pathview, "wrapper").count(), 10);
+
+ QVERIFY(pathview->currentIndex() == 0);
QDeclarativeText *text = findItem<QDeclarativeText>(pathview, "myText", 4);
QVERIFY(text);
@@ -384,26 +386,27 @@
QMetaObject::invokeMethod(canvas->rootObject(), "checkProperties");
QVERIFY(testObject->error() == false);
- itemCount = findItems<QDeclarativeItem>(pathview, "wrapper").count();
- QCOMPARE(itemCount, 5);
+ QTRY_COMPARE(findItems<QDeclarativeItem>(pathview, "wrapper").count(), 5);
QDeclarativeRectangle *testItem = findItem<QDeclarativeRectangle>(pathview, "wrapper", 4);
QVERIFY(testItem != 0);
testItem = findItem<QDeclarativeRectangle>(pathview, "wrapper", 5);
QVERIFY(testItem == 0);
- model.insertItem(2, "pink", "2");
+ pathview->setCurrentIndex(1);
- itemCount = findItems<QDeclarativeItem>(pathview, "wrapper").count();
- QCOMPARE(itemCount, 5);
+ model.insertItem(2, "pink", "2");
+ QTest::qWait(100);
+
+ QTRY_COMPARE(findItems<QDeclarativeItem>(pathview, "wrapper").count(), 5);
+ QVERIFY(pathview->currentIndex() == 1);
text = findItem<QDeclarativeText>(pathview, "myText", 2);
QVERIFY(text);
QCOMPARE(text->text(), model.name(2));
model.removeItem(3);
- itemCount = findItems<QDeclarativeItem>(pathview, "wrapper").count();
- QCOMPARE(itemCount, 5);
+ QTRY_COMPARE(findItems<QDeclarativeItem>(pathview, "wrapper").count(), 5);
text = findItem<QDeclarativeText>(pathview, "myText", 3);
QVERIFY(text);
QCOMPARE(text->text(), model.name(3));
@@ -755,6 +758,28 @@
delete canvas;
}
+//QTBUG-13017
+void tst_QDeclarativePathView::emptyModel()
+{
+ QDeclarativeView *canvas = createView();
+
+ QStringListModel model;
+
+ QDeclarativeContext *ctxt = canvas->rootContext();
+ ctxt->setContextProperty("emptyModel", &model);
+
+ canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/emptymodel.qml"));
+ qApp->processEvents();
+
+ QDeclarativePathView *pathview = qobject_cast<QDeclarativePathView*>(canvas->rootObject());
+ QVERIFY(pathview != 0);
+
+ QCOMPARE(pathview->offset(), qreal(0.0));
+
+ delete canvas;
+}
+
+
QDeclarativeView *tst_QDeclarativePathView::createView()
{
QDeclarativeView *canvas = new QDeclarativeView(0);