diff options
Diffstat (limited to 'tests/auto/particles/qquickcustomparticle/tst_qquickcustomparticle.cpp')
-rw-r--r-- | tests/auto/particles/qquickcustomparticle/tst_qquickcustomparticle.cpp | 15 |
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" |