diff options
author | Lev Zelenskiy <lev.zelenskiy@nokia.com> | 2012-03-09 09:53:21 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-03-21 05:43:27 +0100 |
commit | 2c034beab5a8d72a148c47e85e020dc64c58068f (patch) | |
tree | 069cc8427d307f4c5ee359182a55be6ba7026ee6 /tests/auto/unit/qmediaplayer | |
parent | 2ebea05283a2ddad831d5039a49817cefb7c7625 (diff) |
QMediaPlayer frontend: changes to playlist support.
Allow to load playlists using setMedia().
Use QNetworkMediaPlaylistProvider for playlist parsing.
Updated unit tests.
Change-Id: If4dba07be8b2e8a9e9549d5bed58e552dfb958b7
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
Diffstat (limited to 'tests/auto/unit/qmediaplayer')
-rw-r--r-- | tests/auto/unit/qmediaplayer/tst_qmediaplayer.cpp | 85 |
1 files changed, 46 insertions, 39 deletions
diff --git a/tests/auto/unit/qmediaplayer/tst_qmediaplayer.cpp b/tests/auto/unit/qmediaplayer/tst_qmediaplayer.cpp index f2bcdc10e..a3aedc197 100644 --- a/tests/auto/unit/qmediaplayer/tst_qmediaplayer.cpp +++ b/tests/auto/unit/qmediaplayer/tst_qmediaplayer.cpp @@ -227,11 +227,12 @@ void tst_QMediaPlayer::testNullService() { QFETCH_GLOBAL(QMediaContent, mediaContent); - QSignalSpy spy(&player, SIGNAL(mediaChanged(QMediaContent))); + QSignalSpy spy(&player, SIGNAL(currentMediaChanged(QMediaContent))); QFile file; player.setMedia(mediaContent, &file); - QCOMPARE(player.media(), QMediaContent()); + QCOMPARE(player.currentMedia(), QMediaContent()); + QCOMPARE(player.media(), mediaContent); QCOMPARE(player.mediaStream(), nullDevice); QCOMPARE(spy.count(), 0); } { @@ -297,13 +298,15 @@ void tst_QMediaPlayer::testNullService() playlist.setCurrentIndex(0); QCOMPARE(playlist.currentIndex(), 0); - QCOMPARE(player.media(), QMediaContent()); + QCOMPARE(player.currentMedia(), QMediaContent()); + QCOMPARE(player.media().playlist(), &playlist); QCOMPARE(mediaSpy.count(), 0); QCOMPARE(statusSpy.count(), 0); playlist.next(); QCOMPARE(playlist.currentIndex(), 1); - QCOMPARE(player.media(), QMediaContent()); + QCOMPARE(player.currentMedia(), QMediaContent()); + QCOMPARE(player.media().playlist(), &playlist); QCOMPARE(mediaSpy.count(), 0); QCOMPARE(statusSpy.count(), 0); } @@ -324,11 +327,11 @@ void tst_QMediaPlayer::testMedia() QFETCH_GLOBAL(QMediaContent, mediaContent); mockService->setMedia(mediaContent); - QCOMPARE(player->media(), mediaContent); + QCOMPARE(player->currentMedia(), mediaContent); QBuffer stream; player->setMedia(mediaContent, &stream); - QCOMPARE(player->media(), mediaContent); + QCOMPARE(player->currentMedia(), mediaContent); QCOMPARE((QBuffer*)player->mediaStream(), &stream); } @@ -525,7 +528,7 @@ void tst_QMediaPlayer::testPlay() mockService->setState(state); mockService->setMedia(mediaContent); QVERIFY(player->state() == state); - QVERIFY(player->media() == mediaContent); + QVERIFY(player->currentMedia() == mediaContent); QSignalSpy spy(player, SIGNAL(stateChanged(QMediaPlayer::State))); @@ -551,7 +554,7 @@ void tst_QMediaPlayer::testPause() mockService->setState(state); mockService->setMedia(mediaContent); QVERIFY(player->state() == state); - QVERIFY(player->media() == mediaContent); + QVERIFY(player->currentMedia() == mediaContent); QSignalSpy spy(player, SIGNAL(stateChanged(QMediaPlayer::State))); @@ -575,7 +578,7 @@ void tst_QMediaPlayer::testStop() mockService->setState(state); mockService->setMedia(mediaContent); QVERIFY(player->state() == state); - QVERIFY(player->media() == mediaContent); + QVERIFY(player->currentMedia() == mediaContent); QSignalSpy spy(player, SIGNAL(stateChanged(QMediaPlayer::State))); @@ -686,14 +689,15 @@ void tst_QMediaPlayer::testPlaylist() QMediaPlaylist *playlist = new QMediaPlaylist; player->setPlaylist(playlist); + QCOMPARE(player->media().playlist(), playlist); QSignalSpy stateSpy(player, SIGNAL(stateChanged(QMediaPlayer::State))); - QSignalSpy mediaSpy(player, SIGNAL(mediaChanged(QMediaContent))); + QSignalSpy mediaSpy(player, SIGNAL(currentMediaChanged(QMediaContent))); // Test the player does nothing with an empty playlist attached. player->play(); QCOMPARE(player->state(), QMediaPlayer::StoppedState); - QCOMPARE(player->media(), QMediaContent()); + QCOMPARE(player->currentMedia(), QMediaContent()); QCOMPARE(stateSpy.count(), 0); QCOMPARE(mediaSpy.count(), 0); @@ -704,28 +708,28 @@ void tst_QMediaPlayer::testPlaylist() // Test changing the playlist position, changes the current media, but not the playing state. playlist->setCurrentIndex(1); - QCOMPARE(player->media(), content1); + QCOMPARE(player->currentMedia(), content1); QCOMPARE(player->state(), QMediaPlayer::StoppedState); QCOMPARE(stateSpy.count(), 0); QCOMPARE(mediaSpy.count(), 1); // Test playing starts with the current media. player->play(); - QCOMPARE(player->media(), content1); + QCOMPARE(player->currentMedia(), content1); QCOMPARE(player->state(), QMediaPlayer::PlayingState); QCOMPARE(stateSpy.count(), 1); QCOMPARE(mediaSpy.count(), 1); // Test pausing doesn't change the current media. player->pause(); - QCOMPARE(player->media(), content1); + QCOMPARE(player->currentMedia(), content1); QCOMPARE(player->state(), QMediaPlayer::PausedState); QCOMPARE(stateSpy.count(), 2); QCOMPARE(mediaSpy.count(), 1); // Test stopping doesn't change the current media. player->stop(); - QCOMPARE(player->media(), content1); + QCOMPARE(player->currentMedia(), content1); QCOMPARE(player->state(), QMediaPlayer::StoppedState); QCOMPARE(stateSpy.count(), 3); QCOMPARE(mediaSpy.count(), 1); @@ -733,20 +737,20 @@ void tst_QMediaPlayer::testPlaylist() // Test when the player service reaches the end of the current media, the player moves onto // the next item without stopping. player->play(); - QCOMPARE(player->media(), content1); + QCOMPARE(player->currentMedia(), content1); QCOMPARE(player->state(), QMediaPlayer::PlayingState); QCOMPARE(stateSpy.count(), 4); QCOMPARE(mediaSpy.count(), 1); mockService->setState(QMediaPlayer::StoppedState, QMediaPlayer::EndOfMedia); - QCOMPARE(player->media(), content2); + QCOMPARE(player->currentMedia(), content2); QCOMPARE(player->state(), QMediaPlayer::PlayingState); QCOMPARE(stateSpy.count(), 4); QCOMPARE(mediaSpy.count(), 2); // Test skipping the current media doesn't change the state. playlist->next(); - QCOMPARE(player->media(), content3); + QCOMPARE(player->currentMedia(), content3); QCOMPARE(player->state(), QMediaPlayer::PlayingState); QCOMPARE(stateSpy.count(), 4); QCOMPARE(mediaSpy.count(), 3); @@ -754,13 +758,13 @@ void tst_QMediaPlayer::testPlaylist() // Test changing the current media while paused doesn't change the state. player->pause(); mockService->setMediaStatus(QMediaPlayer::BufferedMedia); - QCOMPARE(player->media(), content3); + QCOMPARE(player->currentMedia(), content3); QCOMPARE(player->state(), QMediaPlayer::PausedState); QCOMPARE(stateSpy.count(), 5); QCOMPARE(mediaSpy.count(), 3); playlist->previous(); - QCOMPARE(player->media(), content2); + QCOMPARE(player->currentMedia(), content2); QCOMPARE(player->state(), QMediaPlayer::PausedState); QCOMPARE(stateSpy.count(), 5); QCOMPARE(mediaSpy.count(), 4); @@ -768,13 +772,13 @@ void tst_QMediaPlayer::testPlaylist() // Test changing the current media while stopped doesn't change the state. player->stop(); mockService->setMediaStatus(QMediaPlayer::LoadedMedia); - QCOMPARE(player->media(), content2); + QCOMPARE(player->currentMedia(), content2); QCOMPARE(player->state(), QMediaPlayer::StoppedState); QCOMPARE(stateSpy.count(), 6); QCOMPARE(mediaSpy.count(), 4); playlist->next(); - QCOMPARE(player->media(), content3); + QCOMPARE(player->currentMedia(), content3); QCOMPARE(player->state(), QMediaPlayer::StoppedState); QCOMPARE(stateSpy.count(), 6); QCOMPARE(mediaSpy.count(), 5); @@ -782,7 +786,7 @@ void tst_QMediaPlayer::testPlaylist() // Test the player is stopped and the current media cleared when it reaches the end of the last // item in the playlist. player->play(); - QCOMPARE(player->media(), content3); + QCOMPARE(player->currentMedia(), content3); QCOMPARE(player->state(), QMediaPlayer::PlayingState); QCOMPARE(stateSpy.count(), 7); QCOMPARE(mediaSpy.count(), 5); @@ -790,45 +794,46 @@ void tst_QMediaPlayer::testPlaylist() // Double up the signals to ensure some noise doesn't destabalize things. mockService->setState(QMediaPlayer::StoppedState, QMediaPlayer::EndOfMedia); mockService->setState(QMediaPlayer::StoppedState, QMediaPlayer::EndOfMedia); - QCOMPARE(player->media(), QMediaContent()); + QCOMPARE(player->currentMedia(), QMediaContent()); QCOMPARE(player->state(), QMediaPlayer::StoppedState); QCOMPARE(stateSpy.count(), 8); QCOMPARE(mediaSpy.count(), 6); // Test starts playing from the start of the playlist if there is no current media selected. player->play(); - QCOMPARE(player->media(), content0); + QCOMPARE(player->currentMedia(), content0); QCOMPARE(player->state(), QMediaPlayer::PlayingState); QCOMPARE(stateSpy.count(), 9); - QCOMPARE(mediaSpy.count(), 7); + // one notification is for playlist and another is for the first media in the playlist + QCOMPARE(mediaSpy.count(), 8); // Test deleting the playlist stops the player and clears the media it set. delete playlist; - QCOMPARE(player->media(), QMediaContent()); + QCOMPARE(player->currentMedia(), QMediaContent()); QCOMPARE(player->state(), QMediaPlayer::StoppedState); QCOMPARE(stateSpy.count(), 10); - QCOMPARE(mediaSpy.count(), 8); + QCOMPARE(mediaSpy.count(), 9); // Test the player works as normal with the playlist removed. player->play(); - QCOMPARE(player->media(), QMediaContent()); + QCOMPARE(player->currentMedia(), QMediaContent()); QCOMPARE(player->state(), QMediaPlayer::StoppedState); QCOMPARE(stateSpy.count(), 10); - QCOMPARE(mediaSpy.count(), 8); + QCOMPARE(mediaSpy.count(), 9); player->setMedia(content1); player->play(); - QCOMPARE(player->media(), content1); + QCOMPARE(player->currentMedia(), content1); QCOMPARE(player->state(), QMediaPlayer::PlayingState); QCOMPARE(stateSpy.count(), 11); - QCOMPARE(mediaSpy.count(), 9); + QCOMPARE(mediaSpy.count(), 10); // Test the player can bind to playlist again playlist = new QMediaPlaylist; player->setPlaylist(playlist); - QCOMPARE(player->media(), QMediaContent()); + QCOMPARE(player->currentMedia(), QMediaContent()); QCOMPARE(player->state(), QMediaPlayer::StoppedState); playlist->addMedia(content0); @@ -837,7 +842,7 @@ void tst_QMediaPlayer::testPlaylist() playlist->addMedia(content3); playlist->setCurrentIndex(1); - QCOMPARE(player->media(), content1); + QCOMPARE(player->currentMedia(), content1); QCOMPARE(player->state(), QMediaPlayer::StoppedState); // Test attaching the new playlist, @@ -850,11 +855,11 @@ void tst_QMediaPlayer::testPlaylist() player->play(); player->setPlaylist(playlist2); - QCOMPARE(player->media(), playlist2->currentMedia()); + QCOMPARE(player->currentMedia(), playlist2->currentMedia()); QCOMPARE(player->state(), QMediaPlayer::StoppedState); playlist2->setCurrentIndex(1); - QCOMPARE(player->media(), playlist2->currentMedia()); + QCOMPARE(player->currentMedia(), playlist2->currentMedia()); { QMediaPlaylist playlist; @@ -863,13 +868,14 @@ void tst_QMediaPlayer::testPlaylist() playlist.addMedia(content3); playlist.setCurrentIndex(1); + // playlist resets to the first item player->setPlaylist(&playlist); QCOMPARE(player->playlist(), &playlist); - QCOMPARE(player->media(), content2); + QCOMPARE(player->currentMedia(), content1); } //playlist should be detached now QVERIFY(player->playlist() == 0); - QCOMPARE(player->media(), QMediaContent()); + QCOMPARE(player->currentMedia(), QMediaContent()); // Test when the player service encounters an invalid media, the player moves onto // the next item without stopping @@ -877,6 +883,7 @@ void tst_QMediaPlayer::testPlaylist() QSignalSpy ss(player, SIGNAL(stateChanged(QMediaPlayer::State))); QSignalSpy ms(player, SIGNAL(mediaStatusChanged(QMediaPlayer::MediaStatus))); + // playlist index is set to 0 when it is loaded into media player player->setPlaylist(playlist); player->play(); QCOMPARE(ss.count(), 1); @@ -888,7 +895,7 @@ void tst_QMediaPlayer::testPlaylist() QCOMPARE(ms.count(), 1); // NOTE: status should begin transitioning through to BufferedMedia. - QCOMPARE(player->media(), content2); + QCOMPARE(player->currentMedia(), content1); } delete playlist; |