aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/quick/qquickvisualdatamodel/tst_qquickvisualdatamodel.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/quick/qquickvisualdatamodel/tst_qquickvisualdatamodel.cpp')
-rw-r--r--tests/auto/quick/qquickvisualdatamodel/tst_qquickvisualdatamodel.cpp30
1 files changed, 30 insertions, 0 deletions
diff --git a/tests/auto/quick/qquickvisualdatamodel/tst_qquickvisualdatamodel.cpp b/tests/auto/quick/qquickvisualdatamodel/tst_qquickvisualdatamodel.cpp
index e55c537529..fce746b361 100644
--- a/tests/auto/quick/qquickvisualdatamodel/tst_qquickvisualdatamodel.cpp
+++ b/tests/auto/quick/qquickvisualdatamodel/tst_qquickvisualdatamodel.cpp
@@ -437,6 +437,7 @@ private slots:
void asynchronousMove();
void asynchronousMove_data();
void asynchronousCancel();
+ void invalidContext();
private:
template <int N> void groups_verify(
@@ -4206,6 +4207,35 @@ void tst_qquickvisualdatamodel::asynchronousCancel()
QCOMPARE(controller.incubatingObjectCount(), 0);
}
+void tst_qquickvisualdatamodel::invalidContext()
+{
+ QQmlEngine engine;
+ QaimModel model;
+ for (int i = 0; i < 8; i++)
+ model.addItem("Original item" + QString::number(i), "");
+
+ engine.rootContext()->setContextProperty("myModel", &model);
+
+ QScopedPointer<QQmlContext> context(new QQmlContext(engine.rootContext()));
+
+ QQmlComponent c(&engine, testFileUrl("visualdatamodel.qml"));
+
+
+ QQuickVisualDataModel *visualModel = qobject_cast<QQuickVisualDataModel*>(c.create(context.data()));
+ QVERIFY(visualModel);
+
+ QQuickItem *item = visualModel->item(4, false);
+ QVERIFY(item);
+ visualModel->release(item);
+
+ delete context.take();
+
+ model.insertItem(4, "new item", "");
+
+ item = visualModel->item(4, false);
+ QVERIFY(!item);
+}
+
QTEST_MAIN(tst_qquickvisualdatamodel)
#include "tst_qquickvisualdatamodel.moc"