Added integration test for new playlist functionality.
Change-Id: I9cc4a3d140003de737b81b4dcfa1e4a94d4a2ba4 Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
This commit is contained in:
committed by
Qt by Nokia
parent
b1eba5e9b2
commit
c00033dfe2
BIN
tests/auto/integration/qmediaplayerbackend/testdata/_test.wav
vendored
Normal file
BIN
tests/auto/integration/qmediaplayerbackend/testdata/_test.wav
vendored
Normal file
Binary file not shown.
1
tests/auto/integration/qmediaplayerbackend/testdata/invalid_media.m3u
vendored
Normal file
1
tests/auto/integration/qmediaplayerbackend/testdata/invalid_media.m3u
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
invalid
|
||||||
3
tests/auto/integration/qmediaplayerbackend/testdata/invalid_media2.m3u
vendored
Normal file
3
tests/auto/integration/qmediaplayerbackend/testdata/invalid_media2.m3u
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
test.wav
|
||||||
|
invalid
|
||||||
|
test.wav
|
||||||
4
tests/auto/integration/qmediaplayerbackend/testdata/nested1.m3u
vendored
Normal file
4
tests/auto/integration/qmediaplayerbackend/testdata/nested1.m3u
vendored
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
#EXTM3U
|
||||||
|
test.wav
|
||||||
|
nested2.m3u
|
||||||
|
_test.wav
|
||||||
3
tests/auto/integration/qmediaplayerbackend/testdata/nested2.m3u
vendored
Normal file
3
tests/auto/integration/qmediaplayerbackend/testdata/nested2.m3u
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
#EXTM3U
|
||||||
|
test.wav
|
||||||
|
_test.wav
|
||||||
2
tests/auto/integration/qmediaplayerbackend/testdata/recursive.m3u
vendored
Normal file
2
tests/auto/integration/qmediaplayerbackend/testdata/recursive.m3u
vendored
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
#EXTM3U
|
||||||
|
recursive.m3u
|
||||||
3
tests/auto/integration/qmediaplayerbackend/testdata/recursive_master.m3u
vendored
Normal file
3
tests/auto/integration/qmediaplayerbackend/testdata/recursive_master.m3u
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
recursive.m3u
|
||||||
|
invalid
|
||||||
|
test.wav
|
||||||
4
tests/auto/integration/qmediaplayerbackend/testdata/sample.m3u
vendored
Normal file
4
tests/auto/integration/qmediaplayerbackend/testdata/sample.m3u
vendored
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
#EXTM3U
|
||||||
|
test.wav
|
||||||
|
nested1.m3u
|
||||||
|
_test.wav
|
||||||
@@ -46,6 +46,7 @@
|
|||||||
#include "qmediaplayer.h"
|
#include "qmediaplayer.h"
|
||||||
#include "qaudioprobe.h"
|
#include "qaudioprobe.h"
|
||||||
#include "qvideoprobe.h"
|
#include "qvideoprobe.h"
|
||||||
|
#include <qmediaplaylist.h>
|
||||||
|
|
||||||
//TESTED_COMPONENT=src/multimedia
|
//TESTED_COMPONENT=src/multimedia
|
||||||
|
|
||||||
@@ -77,6 +78,7 @@ private slots:
|
|||||||
void volumeAcrossFiles();
|
void volumeAcrossFiles();
|
||||||
void seekPauseSeek();
|
void seekPauseSeek();
|
||||||
void probes();
|
void probes();
|
||||||
|
void playlist();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
//one second local wav file
|
//one second local wav file
|
||||||
@@ -553,6 +555,151 @@ void tst_QMediaPlayerBackend::probes()
|
|||||||
delete audioProbe;
|
delete audioProbe;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void tst_QMediaPlayerBackend::playlist()
|
||||||
|
{
|
||||||
|
QMediaPlayer player;
|
||||||
|
|
||||||
|
QSignalSpy mediaSpy(&player, SIGNAL(mediaChanged(const QMediaContent&)));
|
||||||
|
QSignalSpy currentMediaSpy(&player, SIGNAL(currentMediaChanged(const QMediaContent&)));
|
||||||
|
QSignalSpy stateSpy(&player, SIGNAL(stateChanged(QMediaPlayer::State)));
|
||||||
|
QSignalSpy errorSpy(&player, SIGNAL(error(QMediaPlayer::Error)));
|
||||||
|
|
||||||
|
QFileInfo fileInfo(QFINDTESTDATA("testdata/sample.m3u"));
|
||||||
|
player.setMedia(QUrl::fromLocalFile(fileInfo.absoluteFilePath()));
|
||||||
|
|
||||||
|
player.play();
|
||||||
|
QTRY_COMPARE_WITH_TIMEOUT(player.state(), QMediaPlayer::StoppedState, 10000);
|
||||||
|
QCOMPARE(mediaSpy.count(), 2);
|
||||||
|
// sample.m3u -> sample.m3u resolved -> test.wav ->
|
||||||
|
// nested1.m3u -> nested1.m3u resolved -> test.wav ->
|
||||||
|
// nested2.m3u -> nested2.m3u resolved ->
|
||||||
|
// test.wav -> _test.wav
|
||||||
|
// currentMediaChanged signals not emmitted for
|
||||||
|
// nested1.m3u\_test.wav and nested2.m3u\_test.wav
|
||||||
|
// because current media stays the same
|
||||||
|
QCOMPARE(currentMediaSpy.count(), 11);
|
||||||
|
QCOMPARE(stateSpy.count(), 2);
|
||||||
|
QCOMPARE(errorSpy.count(), 0);
|
||||||
|
|
||||||
|
mediaSpy.clear();
|
||||||
|
currentMediaSpy.clear();
|
||||||
|
stateSpy.clear();
|
||||||
|
errorSpy.clear();
|
||||||
|
|
||||||
|
player.play();
|
||||||
|
QTRY_COMPARE_WITH_TIMEOUT(player.state(), QMediaPlayer::StoppedState, 10000);
|
||||||
|
QCOMPARE(mediaSpy.count(), 0);
|
||||||
|
QCOMPARE(currentMediaSpy.count(), 8);
|
||||||
|
QCOMPARE(stateSpy.count(), 2);
|
||||||
|
QCOMPARE(errorSpy.count(), 0);
|
||||||
|
|
||||||
|
mediaSpy.clear();
|
||||||
|
currentMediaSpy.clear();
|
||||||
|
stateSpy.clear();
|
||||||
|
errorSpy.clear();
|
||||||
|
|
||||||
|
// <<< Invalid - 1st pass >>>
|
||||||
|
fileInfo.setFile(QFINDTESTDATA("testdata/invalid_media.m3u"));
|
||||||
|
player.setMedia(QUrl::fromLocalFile(fileInfo.absoluteFilePath()));
|
||||||
|
|
||||||
|
player.play();
|
||||||
|
QTRY_COMPARE(player.state(), QMediaPlayer::StoppedState);
|
||||||
|
// playlist -> resolved playlist
|
||||||
|
QCOMPARE(mediaSpy.count(), 2);
|
||||||
|
// playlist -> resolved playlist -> invalid -> ""
|
||||||
|
QCOMPARE(currentMediaSpy.count(), 4);
|
||||||
|
QCOMPARE(stateSpy.count(), 2);
|
||||||
|
QCOMPARE(errorSpy.count(), 1);
|
||||||
|
|
||||||
|
mediaSpy.clear();
|
||||||
|
currentMediaSpy.clear();
|
||||||
|
stateSpy.clear();
|
||||||
|
errorSpy.clear();
|
||||||
|
|
||||||
|
// <<< Invalid - 2nd pass >>>
|
||||||
|
player.play();
|
||||||
|
QTRY_COMPARE(player.state(), QMediaPlayer::StoppedState);
|
||||||
|
// media is not changed
|
||||||
|
QCOMPARE(mediaSpy.count(), 0);
|
||||||
|
// resolved playlist -> invalid -> ""
|
||||||
|
QCOMPARE(currentMediaSpy.count(), 3);
|
||||||
|
QCOMPARE(stateSpy.count(), 2);
|
||||||
|
QCOMPARE(errorSpy.count(), 1);
|
||||||
|
|
||||||
|
mediaSpy.clear();
|
||||||
|
currentMediaSpy.clear();
|
||||||
|
stateSpy.clear();
|
||||||
|
errorSpy.clear();
|
||||||
|
|
||||||
|
// <<< Invalid2 - 1st pass >>>
|
||||||
|
fileInfo.setFile((QFINDTESTDATA("testdata/invalid_media2.m3u")));
|
||||||
|
player.setMedia(QUrl::fromLocalFile(fileInfo.absoluteFilePath()));
|
||||||
|
|
||||||
|
player.play();
|
||||||
|
QTRY_COMPARE_WITH_TIMEOUT(player.state(), QMediaPlayer::StoppedState, 20000);
|
||||||
|
// playlist -> resolved playlist
|
||||||
|
QCOMPARE(mediaSpy.count(), 2);
|
||||||
|
// playlist -> resolved playlist -> test.wav -> invalid -> test.wav -> ""
|
||||||
|
QCOMPARE(currentMediaSpy.count(), 6);
|
||||||
|
QCOMPARE(stateSpy.count(), 2);
|
||||||
|
QCOMPARE(errorSpy.count(), 1);
|
||||||
|
|
||||||
|
mediaSpy.clear();
|
||||||
|
currentMediaSpy.clear();
|
||||||
|
stateSpy.clear();
|
||||||
|
errorSpy.clear();
|
||||||
|
|
||||||
|
// <<< Invalid2 - 2nd pass >>>
|
||||||
|
player.play();
|
||||||
|
QTRY_COMPARE_WITH_TIMEOUT(player.state(), QMediaPlayer::StoppedState, 20000);
|
||||||
|
// playlist -> resolved playlist
|
||||||
|
QCOMPARE(mediaSpy.count(), 0);
|
||||||
|
// playlist -> test.wav -> invalid -> test.wav -> ""
|
||||||
|
QCOMPARE(currentMediaSpy.count(), 5);
|
||||||
|
QCOMPARE(stateSpy.count(), 2);
|
||||||
|
QCOMPARE(errorSpy.count(), 1);
|
||||||
|
|
||||||
|
mediaSpy.clear();
|
||||||
|
currentMediaSpy.clear();
|
||||||
|
stateSpy.clear();
|
||||||
|
errorSpy.clear();
|
||||||
|
|
||||||
|
// <<< Recursive - 1st pass >>>
|
||||||
|
fileInfo.setFile((QFINDTESTDATA("testdata/recursive_master.m3u")));
|
||||||
|
player.setMedia(QUrl::fromLocalFile(fileInfo.absoluteFilePath()));
|
||||||
|
|
||||||
|
player.play();
|
||||||
|
QTRY_COMPARE_WITH_TIMEOUT(player.state(), QMediaPlayer::StoppedState, 20000);
|
||||||
|
// master playlist -> resolved master playlist
|
||||||
|
QCOMPARE(mediaSpy.count(), 2);
|
||||||
|
// master playlist -> resolved master playlist ->
|
||||||
|
// recursive playlist -> resolved recursive playlist ->
|
||||||
|
// recursive playlist (this URL is already in the chain of playlists, so the playlist is not resolved) ->
|
||||||
|
// invalid -> test.wav -> ""
|
||||||
|
QCOMPARE(currentMediaSpy.count(), 8);
|
||||||
|
QCOMPARE(stateSpy.count(), 2);
|
||||||
|
// there is one invalid media in the master playlist
|
||||||
|
QCOMPARE(errorSpy.count(), 1);
|
||||||
|
|
||||||
|
mediaSpy.clear();
|
||||||
|
currentMediaSpy.clear();
|
||||||
|
stateSpy.clear();
|
||||||
|
errorSpy.clear();
|
||||||
|
|
||||||
|
// <<< Recursive - 2nd pass >>>
|
||||||
|
player.play();
|
||||||
|
QTRY_COMPARE_WITH_TIMEOUT(player.state(), QMediaPlayer::StoppedState, 20000);
|
||||||
|
QCOMPARE(mediaSpy.count(), 0);
|
||||||
|
// resolved master playlist ->
|
||||||
|
// resolved recursive playlist ->
|
||||||
|
// recursive playlist (this URL is already in the chain of playlists, so the playlist is not resolved) ->
|
||||||
|
// invalid -> test.wav -> ""
|
||||||
|
QCOMPARE(currentMediaSpy.count(), 6);
|
||||||
|
QCOMPARE(stateSpy.count(), 2);
|
||||||
|
// there is one invalid media in the master playlist
|
||||||
|
QCOMPARE(errorSpy.count(), 1);
|
||||||
|
}
|
||||||
|
|
||||||
QList<QVideoFrame::PixelFormat> TestVideoSurface::supportedPixelFormats(
|
QList<QVideoFrame::PixelFormat> TestVideoSurface::supportedPixelFormats(
|
||||||
QAbstractVideoBuffer::HandleType handleType) const
|
QAbstractVideoBuffer::HandleType handleType) const
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user