summaryrefslogtreecommitdiffstats
path: root/tests/auto/corelib/itemmodels
diff options
context:
space:
mode:
authorFrederik Gladhorn <frederik.gladhorn@digia.com>2013-03-05 13:42:11 +0100
committerFrederik Gladhorn <frederik.gladhorn@digia.com>2013-03-05 13:42:11 +0100
commit5e8ae03578ecd0538a774505f2f7e2fc626b0ab7 (patch)
tree3b6f704df4d55d0ed2a5a706acf785541a74a45e /tests/auto/corelib/itemmodels
parent7a5fea113ec6088135b0b6a0fc4297e0ef362bc5 (diff)
parentbe3fb9afe50361e4b35d02d28ef30851335b17b6 (diff)
Merge remote-tracking branch 'origin/stable' into dev
Conflicts: configure qmake/generators/mac/pbuilder_pbx.cpp src/corelib/kernel/qtimerinfo_unix.cpp src/plugins/platforms/cocoa/qcocoabackingstore.mm src/plugins/platforms/cocoa/qcocoawindow.mm src/plugins/platforms/windows/qwindowswindow.cpp src/plugins/platforms/xcb/qglxintegration.cpp Change-Id: I8d125fe498f5304874e6976b53f588d3e98a66ac
Diffstat (limited to 'tests/auto/corelib/itemmodels')
-rw-r--r--tests/auto/corelib/itemmodels/qidentityproxymodel/tst_qidentityproxymodel.cpp38
1 files changed, 38 insertions, 0 deletions
diff --git a/tests/auto/corelib/itemmodels/qidentityproxymodel/tst_qidentityproxymodel.cpp b/tests/auto/corelib/itemmodels/qidentityproxymodel/tst_qidentityproxymodel.cpp
index c7e4664007..f750b7a9d4 100644
--- a/tests/auto/corelib/itemmodels/qidentityproxymodel/tst_qidentityproxymodel.cpp
+++ b/tests/auto/corelib/itemmodels/qidentityproxymodel/tst_qidentityproxymodel.cpp
@@ -46,6 +46,20 @@
#include "dynamictreemodel.h"
#include "qidentityproxymodel.h"
+class DataChangedModel : public QAbstractListModel
+{
+public:
+ int rowCount(const QModelIndex &parent) const { return parent.isValid() ? 0 : 1; }
+ QVariant data(const QModelIndex&, int) const { return QVariant(); }
+ QModelIndex index(int row, int column, const QModelIndex &) const { return createIndex(row, column); }
+
+ void changeData()
+ {
+ const QModelIndex idx = index(0, 0, QModelIndex());
+ Q_EMIT dataChanged(idx, idx, QVector<int>() << 1);
+ }
+};
+
class tst_QIdentityProxyModel : public QObject
{
Q_OBJECT
@@ -63,6 +77,7 @@ private slots:
void removeRows();
void moveRows();
void reset();
+ void dataChanged();
protected:
void verifyIdentity(QAbstractItemModel *model, const QModelIndex &parent = QModelIndex());
@@ -79,6 +94,7 @@ tst_QIdentityProxyModel::tst_QIdentityProxyModel()
void tst_QIdentityProxyModel::initTestCase()
{
+ qRegisterMetaType<QVector<int> >();
m_model = new QStandardItemModel(0, 1);
m_proxy = new QIdentityProxyModel();
}
@@ -326,5 +342,27 @@ void tst_QIdentityProxyModel::reset()
m_proxy->setSourceModel(0);
}
+void tst_QIdentityProxyModel::dataChanged()
+{
+ DataChangedModel model;
+ m_proxy->setSourceModel(&model);
+
+ verifyIdentity(&model);
+
+ QSignalSpy modelSpy(&model, SIGNAL(dataChanged(QModelIndex,QModelIndex,QVector<int>)));
+ QSignalSpy proxySpy(m_proxy, SIGNAL(dataChanged(QModelIndex,QModelIndex,QVector<int>)));
+
+ QVERIFY(modelSpy.isValid());
+ QVERIFY(proxySpy.isValid());
+
+ model.changeData();
+
+ QCOMPARE(modelSpy.first().at(2).value<QVector<int> >(), QVector<int>() << 1);
+ QVERIFY(modelSpy.first().at(2) == proxySpy.first().at(2));
+
+ verifyIdentity(&model);
+ m_proxy->setSourceModel(0);
+}
+
QTEST_MAIN(tst_QIdentityProxyModel)
#include "tst_qidentityproxymodel.moc"