aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/quick/qquickpathview/tst_qquickpathview.cpp
diff options
context:
space:
mode:
authorMartin Jones <martin.jones@nokia.com>2012-07-18 10:36:17 +1000
committerQt by Nokia <qt-info@nokia.com>2012-07-23 03:30:23 +0200
commit0fc361f96b06ba318e70610e46beb421753cae9d (patch)
tree8b5ea97dc869f3896f7fc565fc15def3ad131254 /tests/auto/quick/qquickpathview/tst_qquickpathview.cpp
parent33fcc79a88fbc66a3a714913392a331f2bb601b3 (diff)
Changing PathView model after componentComplete should reset position
If the model is changed after the component is completed, the offset and currentIndex should be reset to 0. Change-Id: Ie36eb0c17ce6602c6ae15b5ee7aeb8b1a6e7854b Reviewed-by: Bea Lam <bea.lam@nokia.com>
Diffstat (limited to 'tests/auto/quick/qquickpathview/tst_qquickpathview.cpp')
-rw-r--r--tests/auto/quick/qquickpathview/tst_qquickpathview.cpp42
1 files changed, 34 insertions, 8 deletions
diff --git a/tests/auto/quick/qquickpathview/tst_qquickpathview.cpp b/tests/auto/quick/qquickpathview/tst_qquickpathview.cpp
index 65175a6930..b6b6d24b0f 100644
--- a/tests/auto/quick/qquickpathview/tst_qquickpathview.cpp
+++ b/tests/auto/quick/qquickpathview/tst_qquickpathview.cpp
@@ -52,6 +52,7 @@
#include <QtQuick/private/qquickrectangle_p.h>
#include <QtQml/private/qquicklistmodel_p.h>
#include <QtQml/private/qqmlvaluetype_p.h>
+#include <QtGui/qstandarditemmodel.h>
#include <QStringListModel>
#include <QFile>
@@ -64,8 +65,6 @@ using namespace QQuickVisualTestUtil;
Q_DECLARE_METATYPE(QQuickPathView::HighlightRangeMode)
-#ifndef QT_NO_WIDGETS
-#include <QStandardItemModel>
static void initStandardTreeModel(QStandardItemModel *model)
{
QStandardItem *item;
@@ -83,8 +82,6 @@ static void initStandardTreeModel(QStandardItemModel *model)
item->setIcon(QIcon());
model->insertRow(2, item);
}
-#endif
-
class tst_QQuickPathView : public QQmlDataTest
{
@@ -98,6 +95,7 @@ private slots:
void dataModel();
void pathview2();
void pathview3();
+ void initialCurrentIndex();
void insertModel_data();
void insertModel();
void removeModel_data();
@@ -124,9 +122,7 @@ private slots:
void visualDataModel();
void undefinedPath();
void mouseDrag();
-#ifndef QT_NO_WIDGETS
void treeModel();
-#endif
void changePreferredHighlight();
void missingPercent();
void creationContext();
@@ -279,6 +275,26 @@ void tst_QQuickPathView::pathview3()
delete obj;
}
+void tst_QQuickPathView::initialCurrentIndex()
+{
+ QQmlEngine engine;
+ QQmlComponent c(&engine, testFileUrl("initialCurrentIndex.qml"));
+ QQuickPathView *obj = qobject_cast<QQuickPathView*>(c.create());
+
+ QVERIFY(obj != 0);
+ QVERIFY(obj->path() != 0);
+ QVERIFY(obj->delegate() != 0);
+ QVERIFY(obj->model() != QVariant());
+ QCOMPARE(obj->currentIndex(), 3);
+ QCOMPARE(obj->offset(), 5.0);
+ QCOMPARE(obj->preferredHighlightBegin(), 0.5);
+ QCOMPARE(obj->dragMargin(), 24.);
+ QCOMPARE(obj->count(), 8);
+ QCOMPARE(obj->pathItemCount(), 4);
+
+ delete obj;
+}
+
void tst_QQuickPathView::insertModel_data()
{
QTest::addColumn<int>("mode");
@@ -1258,21 +1274,29 @@ void tst_QQuickPathView::modelChanges()
QQuickPathView *pathView = window->rootObject()->findChild<QQuickPathView*>("pathView");
QVERIFY(pathView);
+ pathView->setCurrentIndex(3);
+ QTRY_COMPARE(pathView->offset(), 6.0);
QQuickListModel *alternateModel = window->rootObject()->findChild<QQuickListModel*>("alternateModel");
QVERIFY(alternateModel);
QVariant modelVariant = QVariant::fromValue<QObject *>(alternateModel);
QSignalSpy modelSpy(pathView, SIGNAL(modelChanged()));
+ QSignalSpy currentIndexSpy(pathView, SIGNAL(currentIndexChanged()));
+ QCOMPARE(pathView->currentIndex(), 3);
pathView->setModel(modelVariant);
QCOMPARE(pathView->model(), modelVariant);
QCOMPARE(modelSpy.count(),1);
+ QCOMPARE(pathView->currentIndex(), 0);
+ QCOMPARE(currentIndexSpy.count(), 1);
pathView->setModel(modelVariant);
QCOMPARE(modelSpy.count(),1);
pathView->setModel(QVariant());
QCOMPARE(modelSpy.count(),2);
+ QCOMPARE(pathView->currentIndex(), 0);
+ QCOMPARE(currentIndexSpy.count(), 1);
delete window;
}
@@ -1483,7 +1507,6 @@ void tst_QQuickPathView::mouseDrag()
delete window;
}
-#ifndef QT_NO_WIDGETS
void tst_QQuickPathView::treeModel()
{
QQuickView *window = createView();
@@ -1511,7 +1534,6 @@ void tst_QQuickPathView::treeModel()
delete window;
}
-#endif
void tst_QQuickPathView::changePreferredHighlight()
{
@@ -1826,6 +1848,8 @@ void tst_QQuickPathView::snapToItem()
QVERIFY(pathview->currentIndex() != currentIndex);
else
QVERIFY(pathview->currentIndex() == currentIndex);
+
+ delete window;
}
void tst_QQuickPathView::snapToItem_data()
@@ -1873,6 +1897,8 @@ void tst_QQuickPathView::snapOneItem()
QVERIFY(pathview->currentIndex() == currentIndex+1);
else
QVERIFY(pathview->currentIndex() == currentIndex);
+
+ delete window;
}
void tst_QQuickPathView::snapOneItem_data()