diff options
author | Qt Forward Merge Bot <qt_forward_merge_bot@qt-project.org> | 2019-11-15 01:02:20 +0100 |
---|---|---|
committer | Qt Forward Merge Bot <qt_forward_merge_bot@qt-project.org> | 2019-11-15 01:02:20 +0100 |
commit | 0ee087f5a5edd7d1aa39fd15e0dc85985320c09a (patch) | |
tree | a998054898e2013407f38b4b6ea267d7f912bd21 /tests/auto/quick | |
parent | cd78e8cd862a819ae2683ed98a131f2582e18609 (diff) | |
parent | b6b1d5899415fef3231120c08c56a1dc2e246940 (diff) |
Merge remote-tracking branch 'origin/5.15' into dev
Change-Id: Ibb3be39cbdaf363f017fdfd62e4647acbc3443cb
Diffstat (limited to 'tests/auto/quick')
-rw-r--r-- | tests/auto/quick/qquickanimatedsprite/data/finishBehavior.qml | 18 | ||||
-rw-r--r-- | tests/auto/quick/qquickanimatedsprite/tst_qquickanimatedsprite.cpp | 26 |
2 files changed, 44 insertions, 0 deletions
diff --git a/tests/auto/quick/qquickanimatedsprite/data/finishBehavior.qml b/tests/auto/quick/qquickanimatedsprite/data/finishBehavior.qml new file mode 100644 index 0000000000..13a0ef4622 --- /dev/null +++ b/tests/auto/quick/qquickanimatedsprite/data/finishBehavior.qml @@ -0,0 +1,18 @@ +import QtQuick 2.15 + +Rectangle { + color: "black" + width: 320 + height: 320 + + AnimatedSprite { + objectName: "sprite" + loops: 1 + source: "squarefacesprite.png" + frameCount: 6 + frameDuration: 64 + width: 160 + height: 160 + finishBehavior: AnimatedSprite.FinishAtFinalFrame + } +} diff --git a/tests/auto/quick/qquickanimatedsprite/tst_qquickanimatedsprite.cpp b/tests/auto/quick/qquickanimatedsprite/tst_qquickanimatedsprite.cpp index b5366e2bb9..9f616c56e2 100644 --- a/tests/auto/quick/qquickanimatedsprite/tst_qquickanimatedsprite.cpp +++ b/tests/auto/quick/qquickanimatedsprite/tst_qquickanimatedsprite.cpp @@ -57,6 +57,7 @@ private slots: void test_changeSourceToSmallerImgKeepingBigFrameSize(); void test_infiniteLoops(); void test_implicitSize(); + void test_finishBehavior(); }; void tst_qquickanimatedsprite::initTestCase() @@ -428,6 +429,31 @@ void tst_qquickanimatedsprite::test_infiniteLoops() QCOMPARE(finishedSpy.count(), 0); } +void tst_qquickanimatedsprite::test_finishBehavior() +{ + QQuickView window; + window.setSource(testFileUrl("finishBehavior.qml")); + window.show(); + QVERIFY(QTest::qWaitForWindowExposed(&window)); + QVERIFY(window.rootObject()); + + QQuickAnimatedSprite* sprite = window.rootObject()->findChild<QQuickAnimatedSprite*>("sprite"); + QVERIFY(sprite); + + QTRY_VERIFY(sprite->running()); + + // correctly stops at last frame + QSignalSpy finishedSpy(sprite, SIGNAL(finished())); + QVERIFY(finishedSpy.wait(2000)); + QCOMPARE(sprite->running(), false); + QCOMPARE(sprite->currentFrame(), 5); + + // correctly starts a second time + sprite->start(); + QTRY_VERIFY(sprite->running()); + QTRY_COMPARE(sprite->currentFrame(), 5); +} + QTEST_MAIN(tst_qquickanimatedsprite) #include "tst_qquickanimatedsprite.moc" |