From 4c5aec9bb6fd95a65544aa433f1357320132ae9f Mon Sep 17 00:00:00 2001 From: Yoann Lopes Date: Thu, 28 Aug 2014 16:00:15 +0200 Subject: 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 --- tests/auto/unit/qmediaplaylist/testdata/empty.pls | 2 ++ tests/auto/unit/qmediaplaylist/testdata/trash.pls | 2 -- .../unit/qmediaplaylist/tst_qmediaplaylist.cpp | 22 ++++++++++++++-------- 3 files changed, 16 insertions(+), 10 deletions(-) create mode 100644 tests/auto/unit/qmediaplaylist/testdata/empty.pls delete mode 100644 tests/auto/unit/qmediaplaylist/testdata/trash.pls (limited to 'tests/auto/unit') 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/trash.pls b/tests/auto/unit/qmediaplaylist/testdata/trash.pls deleted file mode 100644 index 639c22b0c..000000000 --- a/tests/auto/unit/qmediaplaylist/testdata/trash.pls +++ /dev/null @@ -1,2 +0,0 @@ -[playlist] -NumberOfEntries=100 diff --git a/tests/auto/unit/qmediaplaylist/tst_qmediaplaylist.cpp b/tests/auto/unit/qmediaplaylist/tst_qmediaplaylist.cpp index 748bcd306..82b7bdaf0 100644 --- a/tests/auto/unit/qmediaplaylist/tst_qmediaplaylist.cpp +++ b/tests/auto/unit/qmediaplaylist/tst_qmediaplaylist.cpp @@ -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(); -- cgit v1.2.3