summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@qt.io>2016-11-11 08:53:58 +0100
committerLiang Qi <liang.qi@qt.io>2016-11-11 08:53:58 +0100
commitd5ab3ab8703ef04cc06d78983bf1a39ecfe99bb4 (patch)
tree33e55f0cba22d73a7207b6237156daca1dcd624e /tests
parent0cb4dc5c1fded81b4f47945b51b8de0b0151bf67 (diff)
parentd3a2d9c96994c56d67467c131b8f080510d1a8fd (diff)
Merge remote-tracking branch 'origin/5.7' into 5.8
Conflicts: qtmultimedia.pro src/multimedia/playback/qmediaplayer.cpp src/plugins/directshow/directshow.pro tests/auto/integration/qmediaplayerbackend/BLACKLIST Change-Id: I6dacdcbb223c1d12dd72eb308a67170983c709b3
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/integration/qaudiodecoderbackend/BLACKLIST2
-rw-r--r--tests/auto/integration/qmediaplayerbackend/BLACKLIST14
-rw-r--r--tests/auto/integration/qmediaplayerbackend/tst_qmediaplayerbackend.cpp156
-rw-r--r--tests/auto/integration/qsoundeffect/BLACKLIST3
-rw-r--r--tests/auto/unit/qmediaobject/tst_qmediaobject.cpp2
5 files changed, 161 insertions, 16 deletions
diff --git a/tests/auto/integration/qaudiodecoderbackend/BLACKLIST b/tests/auto/integration/qaudiodecoderbackend/BLACKLIST
new file mode 100644
index 000000000..316c5a083
--- /dev/null
+++ b/tests/auto/integration/qaudiodecoderbackend/BLACKLIST
@@ -0,0 +1,2 @@
+# QTBUG-56796
+windows
diff --git a/tests/auto/integration/qmediaplayerbackend/BLACKLIST b/tests/auto/integration/qmediaplayerbackend/BLACKLIST
index 5560abf75..e826fc079 100644
--- a/tests/auto/integration/qmediaplayerbackend/BLACKLIST
+++ b/tests/auto/integration/qmediaplayerbackend/BLACKLIST
@@ -7,15 +7,13 @@ osx-10.11
windows 32bit developer-build
windows 64bit developer-build
-[construction]
+# Media player plugin not built at the moment on this platform
opensuse-13.1 64bit
[loadMedia]
-opensuse-13.1 64bit
windows 64bit developer-build
[unloadMedia]
-opensuse-13.1 64bit
windows 64bit developer-build
[playPauseStop]
@@ -23,25 +21,15 @@ linux
windows 64bit developer-build
[processEOS]
-opensuse-13.1 64bit
windows 64bit developer-build
[deleteLaterAtEOS]
-opensuse-13.1 64bit
windows 64bit developer-build
-[volumeAndMuted]
-opensuse-13.1 64bit
-
-[volumeAcrossFiles]
-opensuse-13.1 64bit
-
[initialVolume]
-opensuse-13.1 64bit
windows 64bit developer-build
[playlist]
-opensuse-13.1 64bit
redhatenterpriselinuxworkstation-6.6
[seekPauseSeek]
diff --git a/tests/auto/integration/qmediaplayerbackend/tst_qmediaplayerbackend.cpp b/tests/auto/integration/qmediaplayerbackend/tst_qmediaplayerbackend.cpp
index 1f1df9aac..e60ea2cd7 100644
--- a/tests/auto/integration/qmediaplayerbackend/tst_qmediaplayerbackend.cpp
+++ b/tests/auto/integration/qmediaplayerbackend/tst_qmediaplayerbackend.cpp
@@ -71,6 +71,7 @@ private slots:
void subsequentPlayback();
void probes();
void playlist();
+ void playlistObject();
void surfaceTest_data();
void surfaceTest();
void metadata();
@@ -993,6 +994,7 @@ void tst_QMediaPlayerBackend::playlist()
QSignalSpy mediaSpy(&player, SIGNAL(mediaChanged(QMediaContent)));
QSignalSpy currentMediaSpy(&player, SIGNAL(currentMediaChanged(QMediaContent)));
QSignalSpy stateSpy(&player, SIGNAL(stateChanged(QMediaPlayer::State)));
+ QSignalSpy mediaStatusSpy(&player, SIGNAL(mediaStatusChanged(QMediaPlayer::MediaStatus)));
QSignalSpy errorSpy(&player, SIGNAL(error(QMediaPlayer::Error)));
QFileInfo fileInfo(QFINDTESTDATA("testdata/sample.m3u"));
@@ -1001,8 +1003,8 @@ void tst_QMediaPlayerBackend::playlist()
player.play();
QTRY_COMPARE_WITH_TIMEOUT(player.state(), QMediaPlayer::StoppedState, 10000);
- if (player.mediaStatus() == QMediaPlayer::InvalidMedia)
- QSKIP("Media player does not support M3U playlists");
+ if (player.mediaStatus() == QMediaPlayer::InvalidMedia || mediaSpy.count() == 1)
+ QSKIP("QMediaPlayer does not support loading M3U playlists as QMediaPlaylist");
QCOMPARE(mediaSpy.count(), 2);
// sample.m3u -> sample.m3u resolved -> test.wav ->
@@ -1015,10 +1017,12 @@ void tst_QMediaPlayerBackend::playlist()
QCOMPARE(currentMediaSpy.count(), 11);
QCOMPARE(stateSpy.count(), 2);
QCOMPARE(errorSpy.count(), 0);
+ QCOMPARE(mediaStatusSpy.count(), 19); // 6 x (LoadingMedia -> BufferedMedia -> EndOfMedia) + NoMedia
mediaSpy.clear();
currentMediaSpy.clear();
stateSpy.clear();
+ mediaStatusSpy.clear();
errorSpy.clear();
player.play();
@@ -1027,10 +1031,12 @@ void tst_QMediaPlayerBackend::playlist()
QCOMPARE(currentMediaSpy.count(), 8);
QCOMPARE(stateSpy.count(), 2);
QCOMPARE(errorSpy.count(), 0);
+ QCOMPARE(mediaStatusSpy.count(), 19); // 6 x (LoadingMedia -> BufferedMedia -> EndOfMedia) + NoMedia
mediaSpy.clear();
currentMediaSpy.clear();
stateSpy.clear();
+ mediaStatusSpy.clear();
errorSpy.clear();
// <<< Invalid - 1st pass >>>
@@ -1045,10 +1051,12 @@ void tst_QMediaPlayerBackend::playlist()
QCOMPARE(currentMediaSpy.count(), 4);
QCOMPARE(stateSpy.count(), 2);
QCOMPARE(errorSpy.count(), 1);
+ QCOMPARE(mediaStatusSpy.count(), 3); // LoadingMedia -> InvalidMedia -> NoMedia
mediaSpy.clear();
currentMediaSpy.clear();
stateSpy.clear();
+ mediaStatusSpy.clear();
errorSpy.clear();
// <<< Invalid - 2nd pass >>>
@@ -1060,10 +1068,12 @@ void tst_QMediaPlayerBackend::playlist()
QCOMPARE(currentMediaSpy.count(), 3);
QCOMPARE(stateSpy.count(), 2);
QCOMPARE(errorSpy.count(), 1);
+ QCOMPARE(mediaStatusSpy.count(), 3); // LoadingMedia -> InvalidMedia -> NoMedia
mediaSpy.clear();
currentMediaSpy.clear();
stateSpy.clear();
+ mediaStatusSpy.clear();
errorSpy.clear();
// <<< Invalid2 - 1st pass >>>
@@ -1078,10 +1088,12 @@ void tst_QMediaPlayerBackend::playlist()
QCOMPARE(currentMediaSpy.count(), 6);
QCOMPARE(stateSpy.count(), 2);
QCOMPARE(errorSpy.count(), 1);
+ QCOMPARE(mediaStatusSpy.count(), 9); // 3 x LoadingMedia + 2 x (BufferedMedia -> EndOfMedia) + InvalidMedia + NoMedia (not in this order)
mediaSpy.clear();
currentMediaSpy.clear();
stateSpy.clear();
+ mediaStatusSpy.clear();
errorSpy.clear();
// <<< Invalid2 - 2nd pass >>>
@@ -1093,10 +1105,12 @@ void tst_QMediaPlayerBackend::playlist()
QCOMPARE(currentMediaSpy.count(), 5);
QCOMPARE(stateSpy.count(), 2);
QCOMPARE(errorSpy.count(), 1);
+ QCOMPARE(mediaStatusSpy.count(), 9); // 3 x LoadingMedia + 2 x (BufferedMedia -> EndOfMedia) + InvalidMedia + NoMedia (not in this order)
mediaSpy.clear();
currentMediaSpy.clear();
stateSpy.clear();
+ mediaStatusSpy.clear();
errorSpy.clear();
// <<< Recursive - 1st pass >>>
@@ -1115,10 +1129,13 @@ void tst_QMediaPlayerBackend::playlist()
QCOMPARE(stateSpy.count(), 2);
// there is one invalid media in the master playlist
QCOMPARE(errorSpy.count(), 1);
+ QCOMPARE(mediaStatusSpy.count(), 6); // LoadingMedia -> InvalidMedia -> LoadingMedia -> BufferedMedia
+ // -> EndOfMedia -> NoMedia
mediaSpy.clear();
currentMediaSpy.clear();
stateSpy.clear();
+ mediaStatusSpy.clear();
errorSpy.clear();
// <<< Recursive - 2nd pass >>>
@@ -1133,6 +1150,141 @@ void tst_QMediaPlayerBackend::playlist()
QCOMPARE(stateSpy.count(), 2);
// there is one invalid media in the master playlist
QCOMPARE(errorSpy.count(), 1);
+ QCOMPARE(mediaStatusSpy.count(), 6); // LoadingMedia -> InvalidMedia -> LoadingMedia -> BufferedMedia
+ // -> EndOfMedia -> NoMedia
+}
+
+void tst_QMediaPlayerBackend::playlistObject()
+{
+ QMediaPlayer player;
+
+ QSignalSpy mediaSpy(&player, SIGNAL(mediaChanged(QMediaContent)));
+ QSignalSpy currentMediaSpy(&player, SIGNAL(currentMediaChanged(QMediaContent)));
+ QSignalSpy stateSpy(&player, SIGNAL(stateChanged(QMediaPlayer::State)));
+ QSignalSpy mediaStatusSpy(&player, SIGNAL(mediaStatusChanged(QMediaPlayer::MediaStatus)));
+ QSignalSpy errorSpy(&player, SIGNAL(error(QMediaPlayer::Error)));
+
+ // --- empty playlist
+ QMediaPlaylist emptyPlaylist;
+ player.setPlaylist(&emptyPlaylist);
+
+ player.play();
+ QTRY_COMPARE_WITH_TIMEOUT(player.state(), QMediaPlayer::StoppedState, 10000);
+
+ QCOMPARE(mediaSpy.count(), 1);
+ QCOMPARE(currentMediaSpy.count(), 1); // Empty media
+ QCOMPARE(stateSpy.count(), 0);
+ QCOMPARE(errorSpy.count(), 0);
+ QCOMPARE(mediaStatusSpy.count(), 0);
+
+ mediaSpy.clear();
+ currentMediaSpy.clear();
+ stateSpy.clear();
+ mediaStatusSpy.clear();
+ errorSpy.clear();
+
+ // --- Valid playlist
+ QMediaPlaylist playlist;
+ playlist.addMedia(QUrl::fromLocalFile(QFileInfo(QFINDTESTDATA("testdata/test.wav")).absoluteFilePath()));
+ playlist.addMedia(QUrl::fromLocalFile(QFileInfo(QFINDTESTDATA("testdata/_test.wav")).absoluteFilePath()));
+ player.setPlaylist(&playlist);
+
+ player.play();
+ QTRY_COMPARE_WITH_TIMEOUT(player.state(), QMediaPlayer::StoppedState, 10000);
+
+ QCOMPARE(mediaSpy.count(), 1);
+ QCOMPARE(currentMediaSpy.count(), 3); // test.wav -> _test.wav -> NoMedia
+ QCOMPARE(stateSpy.count(), 2);
+ QCOMPARE(errorSpy.count(), 0);
+ QCOMPARE(mediaStatusSpy.count(), 7); // 2 x (LoadingMedia -> BufferedMedia -> EndOfMedia) + NoMedia
+
+ mediaSpy.clear();
+ currentMediaSpy.clear();
+ stateSpy.clear();
+ mediaStatusSpy.clear();
+ errorSpy.clear();
+
+ player.play();
+ QTRY_COMPARE_WITH_TIMEOUT(player.state(), QMediaPlayer::StoppedState, 10000);
+
+ QCOMPARE(mediaSpy.count(), 0);
+ QCOMPARE(currentMediaSpy.count(), 4); // playlist -> test.wav -> _test.wav -> NoMedia
+ QCOMPARE(stateSpy.count(), 2);
+ QCOMPARE(errorSpy.count(), 0);
+ QCOMPARE(mediaStatusSpy.count(), 7); // 2 x (LoadingMedia -> BufferedMedia -> EndOfMedia) + NoMedia
+
+ player.setPlaylist(Q_NULLPTR);
+
+ mediaSpy.clear();
+ currentMediaSpy.clear();
+ stateSpy.clear();
+ mediaStatusSpy.clear();
+ errorSpy.clear();
+
+ // --- Nested playlist
+ QMediaPlaylist nestedPlaylist;
+ nestedPlaylist.addMedia(QUrl::fromLocalFile(QFileInfo(QFINDTESTDATA("testdata/_test.wav")).absoluteFilePath()));
+ nestedPlaylist.addMedia(QUrl::fromLocalFile(QFileInfo(QFINDTESTDATA("testdata/test.wav")).absoluteFilePath()));
+ nestedPlaylist.addMedia(&playlist);
+ player.setPlaylist(&nestedPlaylist);
+
+ player.play();
+ QTRY_COMPARE_WITH_TIMEOUT(player.state(), QMediaPlayer::StoppedState, 10000);
+
+ QCOMPARE(mediaSpy.count(), 1);
+ QCOMPARE(currentMediaSpy.count(), 6); // _test.wav -> test.wav -> nested playlist
+ // -> test.wav -> _test.wav -> NoMedia
+ QCOMPARE(stateSpy.count(), 2);
+ QCOMPARE(errorSpy.count(), 0);
+ QCOMPARE(mediaStatusSpy.count(), 13); // 4 x (LoadingMedia -> BufferedMedia -> EndOfMedia) + NoMedia
+
+ player.setPlaylist(Q_NULLPTR);
+
+ mediaSpy.clear();
+ currentMediaSpy.clear();
+ stateSpy.clear();
+ mediaStatusSpy.clear();
+ errorSpy.clear();
+
+ // --- playlist with invalid media
+ QMediaPlaylist invalidPlaylist;
+ invalidPlaylist.addMedia(QUrl("invalid"));
+ invalidPlaylist.addMedia(QUrl::fromLocalFile(QFileInfo(QFINDTESTDATA("testdata/test.wav")).absoluteFilePath()));
+
+ player.setPlaylist(&invalidPlaylist);
+
+ player.play();
+ QTRY_COMPARE_WITH_TIMEOUT(player.state(), QMediaPlayer::StoppedState, 10000);
+
+ QCOMPARE(mediaSpy.count(), 1);
+ QCOMPARE(currentMediaSpy.count(), 3); // invalid -> test.wav -> NoMedia
+ QCOMPARE(stateSpy.count(), 2);
+ QCOMPARE(errorSpy.count(), 1);
+ QCOMPARE(mediaStatusSpy.count(), 6); // Loading -> Invalid -> Loading -> Buffered -> EndOfMedia -> NoMedia
+
+ player.setPlaylist(Q_NULLPTR);
+
+ mediaSpy.clear();
+ currentMediaSpy.clear();
+ stateSpy.clear();
+ mediaStatusSpy.clear();
+ errorSpy.clear();
+
+ // --- playlist with only invalid media
+ QMediaPlaylist invalidPlaylist2;
+ invalidPlaylist2.addMedia(QUrl("invalid"));
+ invalidPlaylist2.addMedia(QUrl("invalid2"));
+
+ player.setPlaylist(&invalidPlaylist2);
+
+ player.play();
+ QTRY_COMPARE_WITH_TIMEOUT(player.state(), QMediaPlayer::StoppedState, 10000);
+
+ QCOMPARE(mediaSpy.count(), 1);
+ QCOMPARE(currentMediaSpy.count(), 3); // invalid -> invalid2 -> NoMedia
+ QCOMPARE(stateSpy.count(), 2);
+ QCOMPARE(errorSpy.count(), 2);
+ QCOMPARE(mediaStatusSpy.count(), 5); // Loading -> Invalid -> Loading -> Invalid -> NoMedia
}
void tst_QMediaPlayerBackend::surfaceTest_data()
diff --git a/tests/auto/integration/qsoundeffect/BLACKLIST b/tests/auto/integration/qsoundeffect/BLACKLIST
index 0f872a576..467169fcf 100644
--- a/tests/auto/integration/qsoundeffect/BLACKLIST
+++ b/tests/auto/integration/qsoundeffect/BLACKLIST
@@ -4,3 +4,6 @@ linux
#QTBUG-55735
[testSetSourceWhilePlaying]
linux
+
+[testSetSourceWhileLoading]
+linux
diff --git a/tests/auto/unit/qmediaobject/tst_qmediaobject.cpp b/tests/auto/unit/qmediaobject/tst_qmediaobject.cpp
index 0548d1e1a..d2b43c56d 100644
--- a/tests/auto/unit/qmediaobject/tst_qmediaobject.cpp
+++ b/tests/auto/unit/qmediaobject/tst_qmediaobject.cpp
@@ -299,7 +299,7 @@ void tst_QMediaObject::notifySignals()
QTRY_COMPARE(spy.count(), count);
qint64 elapsed = timer.elapsed();
- int expectedElapsed = count * interval * 1.3; // give it some margin of error
+ int expectedElapsed = count * interval * 1.5; // give it some margin of error
QVERIFY2(elapsed < expectedElapsed, QString("elapsed: %1, expected: %2").arg(elapsed).arg(expectedElapsed).toLocal8Bit().constData());
}