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/quick/qquickshadereffect/tst_qquickshadereffect.cpp | |
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/quick/qquickshadereffect/tst_qquickshadereffect.cpp')
-rw-r--r-- | tests/auto/quick/qquickshadereffect/tst_qquickshadereffect.cpp | 40 |
1 files changed, 39 insertions, 1 deletions
diff --git a/tests/auto/quick/qquickshadereffect/tst_qquickshadereffect.cpp b/tests/auto/quick/qquickshadereffect/tst_qquickshadereffect.cpp index 1edf511ebf..2816fe62ea 100644 --- a/tests/auto/quick/qquickshadereffect/tst_qquickshadereffect.cpp +++ b/tests/auto/quick/qquickshadereffect/tst_qquickshadereffect.cpp @@ -45,6 +45,10 @@ #include <QByteArray> #include <private/qquickshadereffect_p.h> +#include <QtQuick/QQuickView> +#include "../../shared/util.h" + + class TestShaderEffect : public QQuickShaderEffect { Q_OBJECT @@ -68,7 +72,7 @@ private: QList<QByteArray> m_signals; }; -class tst_qquickshadereffect : public QObject +class tst_qquickshadereffect : public QQmlDataTest { Q_OBJECT public: @@ -81,6 +85,9 @@ private slots: void lookThroughShaderCode_data(); void lookThroughShaderCode(); + void deleteSourceItem(); + void deleteShaderEffectSource(); + private: enum PresenceFlags { VertexPresent = 0x01, @@ -97,6 +104,7 @@ tst_qquickshadereffect::tst_qquickshadereffect() void tst_qquickshadereffect::initTestCase() { + QQmlDataTest::initTestCase(); } void tst_qquickshadereffect::cleanupTestCase() @@ -269,6 +277,36 @@ void tst_qquickshadereffect::lookThroughShaderCode() QCOMPARE(item.isConnected(SIGNAL(dummyChanged())), (presenceFlags & PropertyPresent) != 0); } +void tst_qquickshadereffect::deleteSourceItem() +{ + // purely to ensure that deleting the sourceItem of a shader doesn't cause a crash + QQuickView *view = new QQuickView(0); + view->setSource(QUrl::fromLocalFile(testFile("deleteSourceItem.qml"))); + view->show(); + QTest::qWaitForWindowShown(view); + QVERIFY(view); + QObject *obj = view->rootObject(); + QVERIFY(obj); + QMetaObject::invokeMethod(obj, "setDeletedSourceItem"); + QTest::qWait(50); + delete view; +} + +void tst_qquickshadereffect::deleteShaderEffectSource() +{ + // purely to ensure that deleting the sourceItem of a shader doesn't cause a crash + QQuickView *view = new QQuickView(0); + view->setSource(QUrl::fromLocalFile(testFile("deleteShaderEffectSource.qml"))); + view->show(); + QTest::qWaitForWindowShown(view); + QVERIFY(view); + QObject *obj = view->rootObject(); + QVERIFY(obj); + QMetaObject::invokeMethod(obj, "setDeletedShaderEffectSource"); + QTest::qWait(50); + delete view; +} + QTEST_MAIN(tst_qquickshadereffect) #include "tst_qquickshadereffect.moc" |