diff options
author | Alan Alpert <alan.alpert@nokia.com> | 2012-04-03 13:13:49 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-04-13 11:09:14 +0200 |
commit | f19e6d72ac4fd2a606c9208dc61d6ce1520e1f18 (patch) | |
tree | e0df7b0bcd67cd5420ddc3c98916e56f6158395f /tests/auto/particles | |
parent | a2b388203922ca18e3e7a3171cf8d7f51b195483 (diff) |
Extra tests for ShaderEffect and CustomParticle
Change-Id: Ieafa97f1f11337c8beac89a05fc5b5706ba6c215
Reviewed-by: Kim M. Kalland <kim.kalland@nokia.com>
Diffstat (limited to 'tests/auto/particles')
-rw-r--r-- | tests/auto/particles/qquickcustomparticle/data/deleteSourceItem.qml | 81 | ||||
-rw-r--r-- | tests/auto/particles/qquickcustomparticle/tst_qquickcustomparticle.cpp | 15 |
2 files changed, 96 insertions, 0 deletions
diff --git a/tests/auto/particles/qquickcustomparticle/data/deleteSourceItem.qml b/tests/auto/particles/qquickcustomparticle/data/deleteSourceItem.qml new file mode 100644 index 0000000000..a68373e7e4 --- /dev/null +++ b/tests/auto/particles/qquickcustomparticle/data/deleteSourceItem.qml @@ -0,0 +1,81 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/ +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** Other Usage +** Alternatively, this file may be used in accordance with the terms and +** conditions contained in a signed written agreement between you and Nokia. +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.0 +import QtQuick.Particles 2.0 + +Rectangle { + color: "black" + width: 320 + height: 320 + + ParticleSystem { + id: sys + objectName: "system" + anchors.fill: parent + + CustomParticle { + id: cp + property variant source + } + + Emitter{ + //0,0 position + size: 32 + emitRate: 1000 + lifeSpan: 500 + } + } + + ShaderEffectSource { + id: doomedses + hideSource: true + sourceItem: Image { + id: doomed + source: "../../shared/star.png" + } + } + + function setDeletedSourceItem() { + doomed.destroy(); + cp.source = doomedses; + } +} 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" |