summaryrefslogtreecommitdiffstats
path: root/tests/auto/gui/image
diff options
context:
space:
mode:
authorVal Doroshchuk <valentyn.doroshchuk@qt.io>2018-01-19 10:30:24 +0100
committerVaL Doroshchuk <valentyn.doroshchuk@qt.io>2018-01-24 10:13:00 +0000
commita966991b3af18d57182e5dc5a3ed4985d114b56d (patch)
tree9b4cf9ca6aeac98d730b9c7ba522ebd1e70cd345 /tests/auto/gui/image
parentf7524d73e33d00c76e55d996cdd4ea841ac6b7fa (diff)
Fix a crash when QMovie::speed is set to 0
Setting speed to 0 means the current frame will continue to be shown, the finished signal is not emitted, and state remains QMovie::Running. Task-number: QTBUG-65758 Change-Id: I681d902e3211c5899b21043e5177b7c73d5d3fb5 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Diffstat (limited to 'tests/auto/gui/image')
-rw-r--r--tests/auto/gui/image/qmovie/tst_qmovie.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/tests/auto/gui/image/qmovie/tst_qmovie.cpp b/tests/auto/gui/image/qmovie/tst_qmovie.cpp
index bcaa759faa..4e9e9b8115 100644
--- a/tests/auto/gui/image/qmovie/tst_qmovie.cpp
+++ b/tests/auto/gui/image/qmovie/tst_qmovie.cpp
@@ -170,6 +170,16 @@ void tst_QMovie::playMovie()
QCOMPARE(movie.state(), QMovie::NotRunning);
QCOMPARE(movie.frameCount(), frameCount);
#endif
+
+ movie.stop();
+ QSignalSpy finishedSpy(&movie, &QMovie::finished);
+ movie.setSpeed(0);
+ movie.start();
+ QCOMPARE(movie.state(), QMovie::Running);
+ QTestEventLoop::instance().enterLoop(2);
+ QCOMPARE(finishedSpy.count(), 0);
+ QCOMPARE(movie.state(), QMovie::Running);
+ QCOMPARE(movie.currentFrameNumber(), 0);
}
void tst_QMovie::jumpToFrame_data()