summaryrefslogtreecommitdiffstats
path: root/tests/auto/qmediaplaylistnavigator/tst_qmediaplaylistnavigator.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/qmediaplaylistnavigator/tst_qmediaplaylistnavigator.cpp')
-rw-r--r--tests/auto/qmediaplaylistnavigator/tst_qmediaplaylistnavigator.cpp207
1 files changed, 207 insertions, 0 deletions
diff --git a/tests/auto/qmediaplaylistnavigator/tst_qmediaplaylistnavigator.cpp b/tests/auto/qmediaplaylistnavigator/tst_qmediaplaylistnavigator.cpp
index ce7e8cc40..a88884735 100644
--- a/tests/auto/qmediaplaylistnavigator/tst_qmediaplaylistnavigator.cpp
+++ b/tests/auto/qmediaplaylistnavigator/tst_qmediaplaylistnavigator.cpp
@@ -62,10 +62,20 @@ private slots:
void currentItemOnce();
void currentItemInLoop();
void randomPlayback();
+
+ void testItemAt();
+ void testNextIndex();
+ void testPreviousIndex();
+ void testCurrentIndexChangedSignal();
+ void testPlaybackModeChangedSignal();
+ void testSurroundingItemsChangedSignal();
+ void testActivatedSignal();
};
void tst_QMediaPlaylistNavigator::init()
{
+ qRegisterMetaType<QMediaPlaylist::PlaybackMode>("QMediaPlaylist::PlaybackMode");
+ qRegisterMetaType<QMediaContent>("QMediaContent");
}
void tst_QMediaPlaylistNavigator::cleanup()
@@ -314,5 +324,202 @@ void tst_QMediaPlaylistNavigator::randomPlayback()
}
+void tst_QMediaPlaylistNavigator::testItemAt()
+{
+ QLocalMediaPlaylistProvider playlist;
+ QMediaPlaylistNavigator navigator(&playlist);
+ navigator.setPlaybackMode(QMediaPlaylist::Random);
+ QCOMPARE(navigator.playbackMode(), QMediaPlaylist::Random);
+ QCOMPARE(navigator.currentIndex(), -1);
+
+ //Adding the media to the playlist
+ QMediaContent content = QMediaContent(QUrl(QLatin1String("file:///1")));
+ playlist.addMedia(content);
+
+ //Currently it is not pointing to any index , Returns Null mediacontent
+ QCOMPARE(navigator.currentIndex(), -1);
+ QCOMPARE(navigator.itemAt(navigator.currentIndex()),QMediaContent());
+ navigator.next();
+
+ //Points to the added media
+ int pos1 = navigator.currentIndex();
+ QCOMPARE(content,navigator.itemAt(pos1));
+}
+
+void tst_QMediaPlaylistNavigator::testNextIndex()
+{
+ QLocalMediaPlaylistProvider playlist;
+ QMediaPlaylistNavigator navigator(&playlist);
+ navigator.setPlaybackMode(QMediaPlaylist::Random);
+ QCOMPARE(navigator.playbackMode(), QMediaPlaylist::Random);
+ QCOMPARE(navigator.currentIndex(), -1);
+
+ //Adding the media to the playlist
+ playlist.addMedia(QMediaContent(QUrl(QLatin1String("file:///1"))));
+ playlist.addMedia(QMediaContent(QUrl(QLatin1String("file:///2"))));
+ playlist.addMedia(QMediaContent(QUrl(QLatin1String("file:///3"))));
+
+ playlist.shuffle();
+
+ //Currently it is not pointing to any index
+ QCOMPARE(navigator.currentIndex(), -1);
+ navigator.next();
+ int pos1 = navigator.currentIndex();
+ //Pointing to the next index
+ navigator.next();
+ int pos2 = navigator.currentIndex();
+ navigator.next();
+ int pos3 = navigator.currentIndex();
+
+ //Pointing to the previous index
+ navigator.previous();
+ QCOMPARE(navigator.nextIndex(1), pos3);
+ navigator.previous();
+ QCOMPARE(navigator.nextIndex(1), pos2);
+ QCOMPARE(navigator.nextIndex(2), pos3);
+ navigator.previous();
+ QCOMPARE(navigator.nextIndex(1), pos1);
+}
+
+void tst_QMediaPlaylistNavigator::testPreviousIndex()
+{
+ QLocalMediaPlaylistProvider playlist;
+ QMediaPlaylistNavigator navigator(&playlist);
+ navigator.setPlaybackMode(QMediaPlaylist::Random);
+ QCOMPARE(navigator.playbackMode(), QMediaPlaylist::Random);
+ QCOMPARE(navigator.currentIndex(), -1);
+
+ //Adding the media to the playlist
+ playlist.addMedia(QMediaContent(QUrl(QLatin1String("file:///1"))));
+ playlist.addMedia(QMediaContent(QUrl(QLatin1String("file:///2"))));
+ playlist.addMedia(QMediaContent(QUrl(QLatin1String("file:///3"))));
+ playlist.shuffle();
+
+ //Currently it is not pointing to any index
+ QCOMPARE(navigator.currentIndex(), -1);
+
+ //pointing to next index
+ navigator.next();
+ int pos1 = navigator.currentIndex();
+ navigator.next();
+ int pos2 = navigator.currentIndex();
+ navigator.next();
+ int pos3 = navigator.currentIndex();
+ QCOMPARE(navigator.previousIndex(1), pos2);
+ QCOMPARE(navigator.previousIndex(2), pos1);
+ navigator.next();
+ QCOMPARE(navigator.previousIndex(1), pos3);
+}
+
+void tst_QMediaPlaylistNavigator::testCurrentIndexChangedSignal()
+{
+ QLocalMediaPlaylistProvider playlist;
+ QMediaPlaylistNavigator navigator(&playlist);
+ navigator.setPlaybackMode(QMediaPlaylist::Random);
+ QCOMPARE(navigator.playbackMode(), QMediaPlaylist::Random);
+ QCOMPARE(navigator.currentIndex(), -1);
+
+ //Creating a QSignalSpy object for currentIndexChanged() signal
+ QSignalSpy spy(&navigator,SIGNAL(currentIndexChanged(int)));
+ QVERIFY(spy.count() == 0);
+
+ //Adding the media to the playlist
+ playlist.addMedia(QMediaContent(QUrl(QLatin1String("file:///1"))));
+ playlist.addMedia(QMediaContent(QUrl(QLatin1String("file:///2"))));
+ playlist.addMedia(QMediaContent(QUrl(QLatin1String("file:///3"))));
+
+ //Currently it is not pointing to any index
+ QCOMPARE(navigator.currentIndex(), -1);
+ navigator.next();
+ QVERIFY(spy.count() == 1);
+ int pos1 = navigator.currentIndex();
+ //Pointing to the next index
+ navigator.next();
+ QVERIFY(navigator.previousIndex(1) == pos1);
+ QVERIFY(spy.count() == 2);
+}
+
+void tst_QMediaPlaylistNavigator::testPlaybackModeChangedSignal()
+{
+ QLocalMediaPlaylistProvider playlist;
+ QMediaPlaylistNavigator navigator(&playlist);
+ navigator.setPlaybackMode(QMediaPlaylist::Random);
+ QCOMPARE(navigator.playbackMode(), QMediaPlaylist::Random);
+ QCOMPARE(navigator.currentIndex(), -1);
+
+ //Creating a QSignalSpy object for currentIndexChanged() signal
+ QSignalSpy spy(&navigator,SIGNAL(playbackModeChanged(QMediaPlaylist::PlaybackMode)));
+ QVERIFY(spy.count() == 0);
+
+ //Adding the media to the playlist
+ playlist.addMedia(QMediaContent(QUrl(QLatin1String("file:///1"))));
+
+ //set the play back mode to sequential
+ navigator.setPlaybackMode(QMediaPlaylist::Sequential);
+ QCOMPARE(navigator.playbackMode(), QMediaPlaylist::Sequential);
+ QVERIFY(spy.count() == 1);
+
+ //set the play back mode to loop
+ navigator.setPlaybackMode(QMediaPlaylist::Loop);
+ QCOMPARE(navigator.playbackMode(), QMediaPlaylist::Loop);
+ QVERIFY(spy.count() == 2);
+}
+
+void tst_QMediaPlaylistNavigator::testSurroundingItemsChangedSignal()
+{
+ QLocalMediaPlaylistProvider playlist;
+ QMediaPlaylistNavigator navigator(&playlist);
+ navigator.setPlaybackMode(QMediaPlaylist::Random);
+ QCOMPARE(navigator.playbackMode(), QMediaPlaylist::Random);
+ QCOMPARE(navigator.currentIndex(), -1);
+
+ //Creating a QSignalSpy object for surroundingItemsChanged()signal
+ QSignalSpy spy(&navigator,SIGNAL(surroundingItemsChanged()));
+ QVERIFY(spy.count() == 0);
+
+ //Adding the media to the playlist
+ playlist.addMedia(QMediaContent(QUrl(QLatin1String("file:///1"))));
+ QVERIFY(spy.count() == 1);
+
+ //set the play back mode to sequential
+ navigator.setPlaybackMode(QMediaPlaylist::Sequential);
+ QCOMPARE(navigator.playbackMode(), QMediaPlaylist::Sequential);
+ QVERIFY(spy.count() == 2);
+
+ //Point to the next index
+ navigator.next();
+ QVERIFY(spy.count() == 3);
+}
+
+void tst_QMediaPlaylistNavigator::testActivatedSignal()
+{
+ QLocalMediaPlaylistProvider playlist;
+ QMediaPlaylistNavigator navigator(&playlist);
+ navigator.setPlaybackMode(QMediaPlaylist::Random);
+ QCOMPARE(navigator.playbackMode(), QMediaPlaylist::Random);
+ QCOMPARE(navigator.currentIndex(), -1);
+
+ //Creating a QSignalSpy object for surroundingItemsChanged()signal
+ QSignalSpy spy(&navigator,SIGNAL(activated(QMediaContent)));
+ QVERIFY(spy.count() == 0);
+
+ //Adding the media to the playlist
+ playlist.addMedia(QMediaContent(QUrl(QLatin1String("file:///1"))));
+ playlist.addMedia(QMediaContent(QUrl(QLatin1String("file:///2"))));
+ playlist.shuffle();
+
+ //Point to the next index
+ navigator.next();
+ QVERIFY(spy.count() == 1);
+
+ //Jump to 0th item
+ navigator.jump(0);
+ QVERIFY(spy.count() == 2);
+
+ //move to previous item
+ navigator.previous();
+ QVERIFY(spy.count() == 3);
+}
+
QTEST_MAIN(tst_QMediaPlaylistNavigator)
#include "tst_qmediaplaylistnavigator.moc"