aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/particles/qquickcustomparticle/tst_qquickcustomparticle.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/particles/qquickcustomparticle/tst_qquickcustomparticle.cpp')
-rw-r--r--tests/auto/particles/qquickcustomparticle/tst_qquickcustomparticle.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/tests/auto/particles/qquickcustomparticle/tst_qquickcustomparticle.cpp b/tests/auto/particles/qquickcustomparticle/tst_qquickcustomparticle.cpp
index a54e10afc6..a81edca35e 100644
--- a/tests/auto/particles/qquickcustomparticle/tst_qquickcustomparticle.cpp
+++ b/tests/auto/particles/qquickcustomparticle/tst_qquickcustomparticle.cpp
@@ -55,6 +55,7 @@ public:
private slots:
void initTestCase();
void test_basic();
+ void test_deleteSourceItem();
};
void tst_qquickcustomparticle::initTestCase()
@@ -94,6 +95,20 @@ void tst_qquickcustomparticle::test_basic()
QVERIFY(oneNonZero);//Zero is a valid value, but it also needs to be set to a random number
}
+void tst_qquickcustomparticle::test_deleteSourceItem()
+{
+ // purely to ensure that deleting the sourceItem of a shader doesn't cause a crash
+ QQuickView* view = createView(testFileUrl("deleteSourceItem.qml"), 600);
+ QVERIFY(view);
+ QObject *obj = view->rootObject();
+ QVERIFY(obj);
+ QQuickParticleSystem* system = view->rootObject()->findChild<QQuickParticleSystem*>("system");
+ ensureAnimTime(200, system->m_animation);
+ QMetaObject::invokeMethod(obj, "setDeletedSourceItem");
+ ensureAnimTime(200, system->m_animation);
+ delete view;
+}
+
QTEST_MAIN(tst_qquickcustomparticle);
#include "tst_qquickcustomparticle.moc"