aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/declarative/qquickvisualdatamodel/data/itemsDestroyed_listView.qml13
-rw-r--r--tests/auto/declarative/qquickvisualdatamodel/data/itemsDestroyed_package.qml42
-rw-r--r--tests/auto/declarative/qquickvisualdatamodel/data/itemsDestroyed_pathView.qml18
-rw-r--r--tests/auto/declarative/qquickvisualdatamodel/data/itemsDestroyed_repeater.qml15
-rw-r--r--tests/auto/declarative/qquickvisualdatamodel/tst_qquickvisualdatamodel.cpp33
5 files changed, 121 insertions, 0 deletions
diff --git a/tests/auto/declarative/qquickvisualdatamodel/data/itemsDestroyed_listView.qml b/tests/auto/declarative/qquickvisualdatamodel/data/itemsDestroyed_listView.qml
new file mode 100644
index 0000000000..103c4d2eb6
--- /dev/null
+++ b/tests/auto/declarative/qquickvisualdatamodel/data/itemsDestroyed_listView.qml
@@ -0,0 +1,13 @@
+import QtQuick 2.0
+
+ListView {
+ width: 100
+ height: 100
+
+ model: myModel
+ delegate: Item {
+ objectName: "delegate"
+ width: 100
+ height: 20
+ }
+}
diff --git a/tests/auto/declarative/qquickvisualdatamodel/data/itemsDestroyed_package.qml b/tests/auto/declarative/qquickvisualdatamodel/data/itemsDestroyed_package.qml
new file mode 100644
index 0000000000..b47f22dc34
--- /dev/null
+++ b/tests/auto/declarative/qquickvisualdatamodel/data/itemsDestroyed_package.qml
@@ -0,0 +1,42 @@
+import QtQuick 2.0
+
+Item {
+ width: 100
+ height: 100
+
+ ListView {
+ anchors.fill: parent
+
+ model: visualModel.parts.list
+ }
+ VisualDataModel {
+ id: visualModel
+
+ model: myModel
+ delegate: Package {
+ Item {
+ Package.name: "list"
+ width: 100
+ height: 20
+ }
+
+ Item {
+ id: gridItem
+ Package.name: "grid"
+ width: 50
+ height: 50
+ }
+ Rectangle {
+ objectName: "delegate"
+ parent: gridItem
+ width: 20
+ height: 20
+ }
+ }
+ }
+ GridView {
+ anchors.fill: parent
+
+ model: visualModel.parts.grid
+ }
+}
diff --git a/tests/auto/declarative/qquickvisualdatamodel/data/itemsDestroyed_pathView.qml b/tests/auto/declarative/qquickvisualdatamodel/data/itemsDestroyed_pathView.qml
new file mode 100644
index 0000000000..bc619124fd
--- /dev/null
+++ b/tests/auto/declarative/qquickvisualdatamodel/data/itemsDestroyed_pathView.qml
@@ -0,0 +1,18 @@
+import QtQuick 2.0
+
+PathView {
+ width: 100
+ height: 100
+
+ model: myModel
+ delegate: Item {
+ objectName: "delegate"
+ width: 100
+ height: 20
+ }
+
+ path: Path {
+ startX: 50; startY: 0
+ PathLine { x: 50; y: 100 }
+ }
+}
diff --git a/tests/auto/declarative/qquickvisualdatamodel/data/itemsDestroyed_repeater.qml b/tests/auto/declarative/qquickvisualdatamodel/data/itemsDestroyed_repeater.qml
new file mode 100644
index 0000000000..e97e0dad2e
--- /dev/null
+++ b/tests/auto/declarative/qquickvisualdatamodel/data/itemsDestroyed_repeater.qml
@@ -0,0 +1,15 @@
+import QtQuick 2.0
+
+Grid {
+ Repeater {
+ width: 100
+ height: 100
+
+ model: myModel
+ delegate: Item {
+ objectName: "delegate"
+ width: 50
+ height: 50
+ }
+ }
+}
diff --git a/tests/auto/declarative/qquickvisualdatamodel/tst_qquickvisualdatamodel.cpp b/tests/auto/declarative/qquickvisualdatamodel/tst_qquickvisualdatamodel.cpp
index 706c20fa15..44759d4fec 100644
--- a/tests/auto/declarative/qquickvisualdatamodel/tst_qquickvisualdatamodel.cpp
+++ b/tests/auto/declarative/qquickvisualdatamodel/tst_qquickvisualdatamodel.cpp
@@ -131,6 +131,8 @@ private slots:
void modelProperties();
void noDelegate_data();
void noDelegate();
+ void itemsDestroyed_data();
+ void itemsDestroyed();
void qaimRowsMoved();
void qaimRowsMoved_data();
void remove_data();
@@ -628,6 +630,37 @@ void tst_qquickvisualdatamodel::noDelegate()
QCOMPARE(vdm->count(), 0);
}
+void tst_qquickvisualdatamodel::itemsDestroyed_data()
+{
+ QTest::addColumn<QUrl>("source");
+
+ QTest::newRow("listView") << QUrl::fromLocalFile(TESTDATA("itemsDestroyed_listView.qml"));
+ QTest::newRow("package") << QUrl::fromLocalFile(TESTDATA("itemsDestroyed_package.qml"));
+ QTest::newRow("pathView") << QUrl::fromLocalFile(TESTDATA("itemsDestroyed_pathView.qml"));
+ QTest::newRow("repeater") << QUrl::fromLocalFile(TESTDATA("itemsDestroyed_repeater.qml"));
+}
+
+void tst_qquickvisualdatamodel::itemsDestroyed()
+{
+ QFETCH(QUrl, source);
+
+ QDeclarativeGuard<QQuickItem> delegate;
+
+ {
+ QQuickView view;
+ QStandardItemModel model;
+ initStandardTreeModel(&model);
+ view.rootContext()->setContextProperty("myModel", &model);
+ view.setSource(source);
+
+ view.show();
+ QTest::qWaitForWindowShown(&view);
+
+ QVERIFY(delegate = findItem<QQuickItem>(view.rootItem(), "delegate", 1));
+ }
+ QCoreApplication::sendPostedEvents(0, QEvent::DeferredDelete);
+ QVERIFY(!delegate);
+}
void tst_qquickvisualdatamodel::qaimRowsMoved()
{