summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorSergio Ahumada <sahumada@blackberry.com>2014-09-26 15:44:56 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-09-26 16:11:59 +0200
commit34cf911167e1461e9a08d235342c5e7d19dd953f (patch)
tree3758d92632322fae85840d047c496589d6c2bb29 /tests
parentecc3c3507ffb42ee96d7977db081797ae8398806 (diff)
parent41a1c1634086b90d57b5736a0274452af5855a7e (diff)
Merge "Merge remote-tracking branch 'origin/5.3' into 5.4" into refs/staging/5.4
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/unit/qmediaplaylist/testdata/empty.pls2
-rw-r--r--tests/auto/unit/qmediaplaylist/testdata/test.pls27
-rw-r--r--tests/auto/unit/qmediaplaylist/testdata/totem-pl-example.pls5
-rw-r--r--tests/auto/unit/qmediaplaylist/tst_qmediaplaylist.cpp93
4 files changed, 126 insertions, 1 deletions
diff --git a/tests/auto/unit/qmediaplaylist/testdata/empty.pls b/tests/auto/unit/qmediaplaylist/testdata/empty.pls
new file mode 100644
index 000000000..639c22b0c
--- /dev/null
+++ b/tests/auto/unit/qmediaplaylist/testdata/empty.pls
@@ -0,0 +1,2 @@
+[playlist]
+NumberOfEntries=100
diff --git a/tests/auto/unit/qmediaplaylist/testdata/test.pls b/tests/auto/unit/qmediaplaylist/testdata/test.pls
new file mode 100644
index 000000000..18832b101
--- /dev/null
+++ b/tests/auto/unit/qmediaplaylist/testdata/test.pls
@@ -0,0 +1,27 @@
+[playlist]
+
+File1=http://test.host/path
+Title1=First
+Length1=-1
+File2= http://test.host/path
+Title2=Second
+Length2=-1
+File3=testfile
+Title3=Third
+Length3=-1
+
+
+
+File4=testdir/testfile
+Title4=Fourth
+Length4=-1
+File5=/testdir/testfile
+Title5=Fifth
+Length5=-1
+File6=file://path/name#suffix
+Title6=Sixth
+Length6=-1
+File7=testfile2#suffix
+Title7=Seventh
+Length7=-1
+NumberOfEntries=7
diff --git a/tests/auto/unit/qmediaplaylist/testdata/totem-pl-example.pls b/tests/auto/unit/qmediaplaylist/testdata/totem-pl-example.pls
new file mode 100644
index 000000000..385fe2a30
--- /dev/null
+++ b/tests/auto/unit/qmediaplaylist/testdata/totem-pl-example.pls
@@ -0,0 +1,5 @@
+[playlist]
+X-GNOME-Title=totem-pl-file-example
+NumberOfEntries=1
+File1=http://test.host/path
+Title1=Silence
diff --git a/tests/auto/unit/qmediaplaylist/tst_qmediaplaylist.cpp b/tests/auto/unit/qmediaplaylist/tst_qmediaplaylist.cpp
index 08d63c858..b867604e8 100644
--- a/tests/auto/unit/qmediaplaylist/tst_qmediaplaylist.cpp
+++ b/tests/auto/unit/qmediaplaylist/tst_qmediaplaylist.cpp
@@ -78,6 +78,7 @@ private slots:
void currentItem();
void saveAndLoad();
void loadM3uFile();
+ void loadPLSFile();
void playbackMode();
void playbackMode_data();
void shuffle();
@@ -348,8 +349,10 @@ void tst_QMediaPlaylist::saveAndLoad()
QVERIFY(playlist.error() == QMediaPlaylist::FormatNotSupportedError);
QVERIFY(!playlist.errorString().isEmpty());
+ QSignalSpy loadedSignal(&playlist, SIGNAL(loaded()));
QSignalSpy errorSignal(&playlist, SIGNAL(loadFailed()));
playlist.load(&buffer, "unsupported_format");
+ QTRY_VERIFY(loadedSignal.isEmpty());
QCOMPARE(errorSignal.size(), 1);
QVERIFY(playlist.error() != QMediaPlaylist::NoError);
QVERIFY(!playlist.errorString().isEmpty());
@@ -359,8 +362,10 @@ void tst_QMediaPlaylist::saveAndLoad()
QVERIFY(playlist.error() != QMediaPlaylist::NoError);
QVERIFY(!playlist.errorString().isEmpty());
+ loadedSignal.clear();
errorSignal.clear();
playlist.load(QUrl::fromLocalFile(QLatin1String("tmp.unsupported_format")), "unsupported_format");
+ QTRY_VERIFY(loadedSignal.isEmpty());
QCOMPARE(errorSignal.size(), 1);
QVERIFY(playlist.error() == QMediaPlaylist::FormatNotSupportedError);
QVERIFY(!playlist.errorString().isEmpty());
@@ -372,7 +377,11 @@ void tst_QMediaPlaylist::saveAndLoad()
buffer.seek(0);
QMediaPlaylist playlist2;
+ QSignalSpy loadedSignal2(&playlist2, SIGNAL(loaded()));
+ QSignalSpy errorSignal2(&playlist2, SIGNAL(loadFailed()));
playlist2.load(&buffer, "m3u");
+ QCOMPARE(loadedSignal2.size(), 1);
+ QTRY_VERIFY(errorSignal2.isEmpty());
QCOMPARE(playlist.error(), QMediaPlaylist::NoError);
QCOMPARE(playlist.mediaCount(), playlist2.mediaCount());
@@ -382,9 +391,13 @@ void tst_QMediaPlaylist::saveAndLoad()
res = playlist.save(QUrl::fromLocalFile(QLatin1String("tmp.m3u")), "m3u");
QVERIFY(res);
+ loadedSignal2.clear();
+ errorSignal2.clear();
playlist2.clear();
QVERIFY(playlist2.isEmpty());
playlist2.load(QUrl::fromLocalFile(QLatin1String("tmp.m3u")), "m3u");
+ QCOMPARE(loadedSignal2.size(), 1);
+ QTRY_VERIFY(errorSignal2.isEmpty());
QCOMPARE(playlist.error(), QMediaPlaylist::NoError);
QCOMPARE(playlist.mediaCount(), playlist2.mediaCount());
@@ -398,12 +411,20 @@ void tst_QMediaPlaylist::loadM3uFile()
QMediaPlaylist playlist;
// Try to load playlist that does not exist in the testdata folder
+ QSignalSpy loadSpy(&playlist, SIGNAL(loaded()));
+ QSignalSpy loadFailedSpy(&playlist, SIGNAL(loadFailed()));
QString testFileName = QFINDTESTDATA("testdata");
playlist.load(QUrl::fromLocalFile(testFileName + "/missing_file.m3u"));
+ QTRY_VERIFY(loadSpy.isEmpty());
+ QVERIFY(!loadFailedSpy.isEmpty());
QVERIFY(playlist.error() != QMediaPlaylist::NoError);
+ loadSpy.clear();
+ loadFailedSpy.clear();
testFileName = QFINDTESTDATA("testdata/test.m3u");
playlist.load(QUrl::fromLocalFile(testFileName));
+ QTRY_VERIFY(!loadSpy.isEmpty());
+ QVERIFY(loadFailedSpy.isEmpty());
QCOMPARE(playlist.error(), QMediaPlaylist::NoError);
QCOMPARE(playlist.mediaCount(), 7);
@@ -420,10 +441,80 @@ void tst_QMediaPlaylist::loadM3uFile()
//ensure #2 suffix is not stripped from path
testFileName = QFINDTESTDATA("testdata/testfile2#suffix");
QCOMPARE(playlist.media(6).canonicalUrl(), QUrl::fromLocalFile(testFileName));
+
// check ability to load from QNetworkRequest
+ loadSpy.clear();
+ loadFailedSpy.clear();
+ playlist.load(QNetworkRequest(QUrl::fromLocalFile(QFINDTESTDATA("testdata/test.m3u"))));
+ QTRY_VERIFY(!loadSpy.isEmpty());
+ QVERIFY(loadFailedSpy.isEmpty());
+}
+
+void tst_QMediaPlaylist::loadPLSFile()
+{
+ QMediaPlaylist playlist;
+
+ // Try to load playlist that does not exist in the testdata folder
QSignalSpy loadSpy(&playlist, SIGNAL(loaded()));
QSignalSpy loadFailedSpy(&playlist, SIGNAL(loadFailed()));
- playlist.load(QNetworkRequest(QUrl::fromLocalFile(QFINDTESTDATA("testdata/test.m3u"))));
+ QString testFileName = QFINDTESTDATA("testdata");
+ playlist.load(QUrl::fromLocalFile(testFileName + "/missing_file.pls"));
+ QTRY_VERIFY(loadSpy.isEmpty());
+ QVERIFY(!loadFailedSpy.isEmpty());
+ QVERIFY(playlist.error() != QMediaPlaylist::NoError);
+
+ // Try to load empty playlist
+ loadSpy.clear();
+ loadFailedSpy.clear();
+ testFileName = QFINDTESTDATA("testdata/empty.pls");
+ playlist.load(QUrl::fromLocalFile(testFileName));
+ QTRY_VERIFY(!loadSpy.isEmpty());
+ QVERIFY(loadFailedSpy.isEmpty());
+ QCOMPARE(playlist.error(), QMediaPlaylist::NoError);
+ QCOMPARE(playlist.mediaCount(), 0);
+
+ // Try to load regular playlist
+ loadSpy.clear();
+ loadFailedSpy.clear();
+ testFileName = QFINDTESTDATA("testdata/test.pls");
+ playlist.load(QUrl::fromLocalFile(testFileName));
+ QTRY_VERIFY(!loadSpy.isEmpty());
+ QVERIFY(loadFailedSpy.isEmpty());
+ QCOMPARE(playlist.error(), QMediaPlaylist::NoError);
+ QCOMPARE(playlist.mediaCount(), 7);
+
+ QCOMPARE(playlist.media(0).canonicalUrl(), QUrl(QLatin1String("http://test.host/path")));
+ QCOMPARE(playlist.media(1).canonicalUrl(), QUrl(QLatin1String("http://test.host/path")));
+ testFileName = QFINDTESTDATA("testdata/testfile");
+ QCOMPARE(playlist.media(2).canonicalUrl(),
+ QUrl::fromLocalFile(testFileName));
+ testFileName = QFINDTESTDATA("testdata");
+ QCOMPARE(playlist.media(3).canonicalUrl(),
+ QUrl::fromLocalFile(testFileName + "/testdir/testfile"));
+ QCOMPARE(playlist.media(4).canonicalUrl(), QUrl(QLatin1String("file:///testdir/testfile")));
+ QCOMPARE(playlist.media(5).canonicalUrl(), QUrl(QLatin1String("file://path/name#suffix")));
+ //ensure #2 suffix is not stripped from path
+ testFileName = QFINDTESTDATA("testdata/testfile2#suffix");
+ QCOMPARE(playlist.media(6).canonicalUrl(), QUrl::fromLocalFile(testFileName));
+
+ // Try to load a totem-pl generated playlist
+ // (Format doesn't respect the spec)
+ loadSpy.clear();
+ loadFailedSpy.clear();
+ playlist.clear();
+ testFileName = QFINDTESTDATA("testdata/totem-pl-example.pls");
+ playlist.load(QUrl::fromLocalFile(testFileName));
+ QTRY_VERIFY(!loadSpy.isEmpty());
+ QVERIFY(loadFailedSpy.isEmpty());
+ QCOMPARE(playlist.error(), QMediaPlaylist::NoError);
+ QCOMPARE(playlist.mediaCount(), 1);
+ QCOMPARE(playlist.media(0).canonicalUrl(), QUrl(QLatin1String("http://test.host/path")));
+
+
+ // check ability to load from QNetworkRequest
+ loadSpy.clear();
+ loadFailedSpy.clear();
+ playlist.load(QNetworkRequest(QUrl::fromLocalFile(QFINDTESTDATA("testdata/test.pls"))));
QTRY_VERIFY(!loadSpy.isEmpty());
QVERIFY(loadFailedSpy.isEmpty());
}