diff options
author | Lars Sutterud <lars.sutterud@qt.io> | 2024-02-21 10:52:32 +0100 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2024-02-28 16:40:14 +0000 |
commit | deba3505fd3393aeb7557f424993b782b0a32af8 (patch) | |
tree | de80f42213ce2efe463f2837934f53fa370f9719 | |
parent | 6027a24f23c5059f23b4791e8b16d430e5ddafa3 (diff) |
tst_qmediaplayerbackend: Apply fixture pattern in two loop tests
Using the ready made Fixture object instead of creating a separate
QMediaPlayer and TestVideoSink and connecting the positionChanged signal
to a QSignalSpy mamually, for the tests seekOnLoops() and
changeLoopsOnTheFly().
Pick-to: 6.6 6.5
Change-Id: I8524365c38d77230c74ccd407cf69e7b14ee3641
Reviewed-by: Jøger Hansegård <joger.hansegard@qt.io>
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
(cherry picked from commit 6dfa59d3523bf9b12e708be715f6d68c4e251c33)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r-- | tests/auto/integration/qmediaplayerbackend/tst_qmediaplayerbackend.cpp | 76 |
1 files changed, 34 insertions, 42 deletions
diff --git a/tests/auto/integration/qmediaplayerbackend/tst_qmediaplayerbackend.cpp b/tests/auto/integration/qmediaplayerbackend/tst_qmediaplayerbackend.cpp index 2a11c34c2..c9d039a52 100644 --- a/tests/auto/integration/qmediaplayerbackend/tst_qmediaplayerbackend.cpp +++ b/tests/auto/integration/qmediaplayerbackend/tst_qmediaplayerbackend.cpp @@ -2508,49 +2508,45 @@ void tst_QMediaPlayerBackend::seekOnLoops() "investigated: QTBUG-111744"); #endif - TestVideoSink surface(false); - QMediaPlayer player; - - QSignalSpy positionSpy(&player, &QMediaPlayer::positionChanged); + m_fixture->surface.setStoreFrames(false); - player.setVideoOutput(&surface); - player.setLoops(3); - player.setPlaybackRate(2); + m_fixture->player.setLoops(3); + m_fixture->player.setPlaybackRate(2); - player.setSource(*m_localVideoFile3ColorsWithSound); + m_fixture->player.setSource(*m_localVideoFile3ColorsWithSound); - player.play(); - surface.waitForFrame(); + m_fixture->player.play(); + m_fixture->surface.waitForFrame(); // seek in the 1st loop - player.setPosition(player.duration() * 4 / 5); + m_fixture->player.setPosition(m_fixture->player.duration() * 4 / 5); // wait for the 2nd loop and seek - surface.waitForFrame(); - QTRY_VERIFY(player.position() < player.duration() / 2); - player.setPosition(player.duration() * 8 / 9); + m_fixture->surface.waitForFrame(); + QTRY_VERIFY(m_fixture->player.position() < m_fixture->player.duration() / 2); + m_fixture->player.setPosition(m_fixture->player.duration() * 8 / 9); // wait for the 3rd loop and seek - surface.waitForFrame(); - QTRY_VERIFY(player.position() < player.duration() / 2); - player.setPosition(player.duration() * 4 / 5); + m_fixture->surface.waitForFrame(); + QTRY_VERIFY(m_fixture->player.position() < m_fixture->player.duration() / 2); + m_fixture->player.setPosition(m_fixture->player.duration() * 4 / 5); - QTRY_COMPARE(player.playbackState(), QMediaPlayer::StoppedState); + QTRY_COMPARE(m_fixture->player.playbackState(), QMediaPlayer::StoppedState); - auto iterations = loopIterations(positionSpy); + auto iterations = loopIterations(m_fixture->positionChanged); QCOMPARE(iterations.size(), 3u); QCOMPARE_GT(iterations[0].startPos, 0); - QCOMPARE(iterations[0].endPos, player.duration()); + QCOMPARE(iterations[0].endPos, m_fixture->player.duration()); QCOMPARE_GT(iterations[0].posCount, 2); QCOMPARE(iterations[1].startPos, 0); - QCOMPARE(iterations[1].endPos, player.duration()); + QCOMPARE(iterations[1].endPos, m_fixture->player.duration()); QCOMPARE_GT(iterations[1].posCount, 2); QCOMPARE(iterations[2].startPos, 0); - QCOMPARE(iterations[2].endPos, player.duration()); + QCOMPARE(iterations[2].endPos, m_fixture->player.duration()); QCOMPARE_GT(iterations[2].posCount, 2); - QCOMPARE(player.mediaStatus(), QMediaPlayer::EndOfMedia); + QCOMPARE(m_fixture->player.mediaStatus(), QMediaPlayer::EndOfMedia); } void tst_QMediaPlayerBackend::changeLoopsOnTheFly() @@ -2563,37 +2559,33 @@ void tst_QMediaPlayerBackend::changeLoopsOnTheFly() "investigated: QTBUG-111744"); #endif - TestVideoSink surface(false); - QMediaPlayer player; - - QSignalSpy positionSpy(&player, &QMediaPlayer::positionChanged); + m_fixture->surface.setStoreFrames(false); - player.setVideoOutput(&surface); - player.setLoops(4); - player.setPlaybackRate(5); + m_fixture->player.setLoops(4); + m_fixture->player.setPlaybackRate(5); - player.setSource(*m_localVideoFile3ColorsWithSound); + m_fixture->player.setSource(*m_localVideoFile3ColorsWithSound); - player.play(); - surface.waitForFrame(); + m_fixture->player.play(); + m_fixture->surface.waitForFrame(); - player.setPosition(player.duration() * 4 / 5); + m_fixture->player.setPosition(m_fixture->player.duration() * 4 / 5); // wait for the 2nd loop - surface.waitForFrame(); - QTRY_VERIFY(player.position() < player.duration() / 2); - player.setPosition(player.duration() * 8 / 9); + m_fixture->surface.waitForFrame(); + QTRY_VERIFY(m_fixture->player.position() < m_fixture->player.duration() / 2); + m_fixture->player.setPosition(m_fixture->player.duration() * 8 / 9); - player.setLoops(1); + m_fixture->player.setLoops(1); - QTRY_COMPARE(player.playbackState(), QMediaPlayer::StoppedState); - QCOMPARE(player.mediaStatus(), QMediaPlayer::EndOfMedia); + QTRY_COMPARE(m_fixture->player.playbackState(), QMediaPlayer::StoppedState); + QCOMPARE(m_fixture->player.mediaStatus(), QMediaPlayer::EndOfMedia); - auto iterations = loopIterations(positionSpy); + auto iterations = loopIterations(m_fixture->positionChanged); QCOMPARE(iterations.size(), 2u); QCOMPARE(iterations[1].startPos, 0); - QCOMPARE(iterations[1].endPos, player.duration()); + QCOMPARE(iterations[1].endPos, m_fixture->player.duration()); QCOMPARE_GT(iterations[1].posCount, 2); } |