diff options
author | Martin Jones <martin.jones@nokia.com> | 2012-07-18 10:36:17 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-07-23 03:30:23 +0200 |
commit | 0fc361f96b06ba318e70610e46beb421753cae9d (patch) | |
tree | 8b5ea97dc869f3896f7fc565fc15def3ad131254 /tests/auto/quick/qquickpathview/tst_qquickpathview.cpp | |
parent | 33fcc79a88fbc66a3a714913392a331f2bb601b3 (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.cpp | 42 |
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() |