aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/qtquick2/qdeclarativesmoothedanimation/data/deleteOnUpdate.qml27
-rw-r--r--tests/auto/qtquick2/qdeclarativesmoothedanimation/tst_qdeclarativesmoothedanimation.cpp19
2 files changed, 46 insertions, 0 deletions
diff --git a/tests/auto/qtquick2/qdeclarativesmoothedanimation/data/deleteOnUpdate.qml b/tests/auto/qtquick2/qdeclarativesmoothedanimation/data/deleteOnUpdate.qml
new file mode 100644
index 0000000000..ff8dfaa846
--- /dev/null
+++ b/tests/auto/qtquick2/qdeclarativesmoothedanimation/data/deleteOnUpdate.qml
@@ -0,0 +1,27 @@
+import QtQuick 2.0
+
+Rectangle {
+ width: 300; height: 300;
+
+ Rectangle {
+ color: "red"
+ width: 60; height: 60;
+ x: 100; y: 100;
+
+ property real prevX: 100
+ onXChanged: {
+ if (x - prevX > 10) {
+ anim.to += 5
+ anim.restart(); //this can cause deletion of backend animation classes
+ prevX = x;
+ }
+ }
+
+ SmoothedAnimation on x {
+ id: anim
+ objectName: "anim"
+ velocity: 100
+ to: 150
+ }
+ }
+}
diff --git a/tests/auto/qtquick2/qdeclarativesmoothedanimation/tst_qdeclarativesmoothedanimation.cpp b/tests/auto/qtquick2/qdeclarativesmoothedanimation/tst_qdeclarativesmoothedanimation.cpp
index 3d37517d10..09bde4ad76 100644
--- a/tests/auto/qtquick2/qdeclarativesmoothedanimation/tst_qdeclarativesmoothedanimation.cpp
+++ b/tests/auto/qtquick2/qdeclarativesmoothedanimation/tst_qdeclarativesmoothedanimation.cpp
@@ -59,6 +59,7 @@ private slots:
void simpleAnimation();
void valueSource();
void behavior();
+ void deleteOnUpdate();
private:
QDeclarativeEngine engine;
@@ -218,6 +219,24 @@ void tst_qdeclarativesmoothedanimation::behavior()
delete rect;
}
+void tst_qdeclarativesmoothedanimation::deleteOnUpdate()
+{
+ QDeclarativeEngine engine;
+
+ QDeclarativeComponent c(&engine, testFileUrl("deleteOnUpdate.qml"));
+
+ QQuickRectangle *rect = qobject_cast<QQuickRectangle*>(c.create());
+ QVERIFY(rect);
+
+ QDeclarativeSmoothedAnimation *anim = rect->findChild<QDeclarativeSmoothedAnimation*>("anim");
+ QVERIFY(anim);
+
+ //don't crash
+ QTest::qWait(500);
+
+ delete rect;
+}
+
QTEST_MAIN(tst_qdeclarativesmoothedanimation)
#include "tst_qdeclarativesmoothedanimation.moc"