From e26483c106cd1408b768f18f5d0edfd83c78f5bf Mon Sep 17 00:00:00 2001 From: Yoann Lopes Date: Wed, 27 Aug 2014 16:25:40 +0200 Subject: Fix URL handling in PLS parser. Make sure relative paths are resolved to a full path. Task-number: QTBUG-40515 Change-Id: Ideb83fc3a3c4a74c84917a22e3c30162d7b6158a Reviewed-by: Christian Stromme --- tests/auto/unit/qmediaplaylist/testdata/test.pls | 19 ++++++++++++++++++- tests/auto/unit/qmediaplaylist/tst_qmediaplaylist.cpp | 14 +++++++++++++- 2 files changed, 31 insertions(+), 2 deletions(-) (limited to 'tests/auto/unit') diff --git a/tests/auto/unit/qmediaplaylist/testdata/test.pls b/tests/auto/unit/qmediaplaylist/testdata/test.pls index 1b66c3abe..18832b101 100644 --- a/tests/auto/unit/qmediaplaylist/testdata/test.pls +++ b/tests/auto/unit/qmediaplaylist/testdata/test.pls @@ -6,5 +6,22 @@ Length1=-1 File2= http://test.host/path Title2=Second Length2=-1 +File3=testfile +Title3=Third +Length3=-1 -NumberOfEntries=2 + + +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/tst_qmediaplaylist.cpp b/tests/auto/unit/qmediaplaylist/tst_qmediaplaylist.cpp index 63b84b5e4..748bcd306 100644 --- a/tests/auto/unit/qmediaplaylist/tst_qmediaplaylist.cpp +++ b/tests/auto/unit/qmediaplaylist/tst_qmediaplaylist.cpp @@ -488,9 +488,21 @@ void tst_QMediaPlaylist::loadPLSFile() QTRY_VERIFY(!loadSpy.isEmpty()); QVERIFY(loadFailedSpy.isEmpty()); QCOMPARE(playlist.error(), QMediaPlaylist::NoError); - QCOMPARE(playlist.mediaCount(), 2); + 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 loadSpy.clear(); -- cgit v1.2.3