Make PLS parser more permissive.
The PLS format is not clearly specified, some rules are just assumed and files don't always respect them. We now only look for 'File' entries, since that's the only thing we actually use. We ignore the Version, NumberOfEntries, Title, Length and any other unrecognized tags. Task-number: QTBUG-40515 Change-Id: I9c176b7b68fd1441abbd50364f88994ad5d6236f Reviewed-by: Christian Stromme <christian.stromme@digia.com>
This commit is contained in:
@@ -471,14 +471,15 @@ void tst_QMediaPlaylist::loadPLSFile()
|
||||
QVERIFY(!loadFailedSpy.isEmpty());
|
||||
QVERIFY(playlist.error() != QMediaPlaylist::NoError);
|
||||
|
||||
// Try to load bogus playlist
|
||||
// Try to load empty playlist
|
||||
loadSpy.clear();
|
||||
loadFailedSpy.clear();
|
||||
testFileName = QFINDTESTDATA("testdata/trash.pls");
|
||||
testFileName = QFINDTESTDATA("testdata/empty.pls");
|
||||
playlist.load(QUrl::fromLocalFile(testFileName));
|
||||
QTRY_VERIFY(loadSpy.isEmpty());
|
||||
QVERIFY(!loadFailedSpy.isEmpty());
|
||||
QVERIFY(playlist.error() == QMediaPlaylist::FormatError);
|
||||
QTRY_VERIFY(!loadSpy.isEmpty());
|
||||
QVERIFY(loadFailedSpy.isEmpty());
|
||||
QCOMPARE(playlist.error(), QMediaPlaylist::NoError);
|
||||
QCOMPARE(playlist.mediaCount(), 0);
|
||||
|
||||
// Try to load regular playlist
|
||||
loadSpy.clear();
|
||||
@@ -505,13 +506,18 @@ void tst_QMediaPlaylist::loadPLSFile()
|
||||
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());
|
||||
QVERIFY(playlist.error() == QMediaPlaylist::FormatError);
|
||||
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();
|
||||
|
||||
Reference in New Issue
Block a user