--- /dev/null
+/*
+ * This file is part of QMAFW
+ *
+ * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). All rights
+ * reserved.
+ *
+ * Contact: Visa Smolander <visa.smolander@nokia.com>
+ *
+ * This software, including documentation, is protected by copyright controlled
+ * by Nokia Corporation. All rights are reserved. Copying, including
+ * reproducing, storing, adapting or translating, any or all of this material
+ * requires the prior written consent of Nokia Corporation. This material also
+ * contains confidential information which may not be disclosed to others
+ * without the prior written consent of Nokia.
+ *
+ */
+
+#include <QtTest/QtTest>
+#include <QDebug>
+#include <QSignalSpy>
+
+#include "Ut_PlaylistFileUtility.h"
+#include "../common/MafwStubHelper.h"
+#include "MafwGstRendererPlaylistFileUtility.h"
+
+void Ut_PlaylistFileUtility::initTestCase()
+{
+ m_stubHelper = new MafwStubHelper;
+ m_utility = new MafwGstRendererPlaylistFileUtility(this);
+}
+
+void Ut_PlaylistFileUtility::testParsing()
+{
+ QString file("/test-station.pls");
+ file.prepend(QDir::currentPath());
+ file.prepend("file://");
+
+ QSignalSpy readySpy(m_utility, SIGNAL(parsingReady(bool)));
+ QSignalSpy parsingSpy(m_utility, SIGNAL(firstItemParsed()));
+ m_utility->parsePlaylistFile(QUrl(file));
+ QTest::qWait(1000);
+
+ QCOMPARE(readySpy.count(), 1);
+ QList<QVariant> arguments = readySpy.takeFirst();
+ QVERIFY(arguments.at(0).toBool() == true);
+ QCOMPARE(parsingSpy.count(), 1);
+
+ //There is 19 entries in test-station.pls file
+ for (int i=0; i<19; i++)
+ {
+ QVERIFY(m_utility->takeFirstUri().length() > 0);
+ }
+
+ QVERIFY(m_utility->takeFirstUri().length() == 0);
+}
+
+void Ut_PlaylistFileUtility::testParsingForNotExistingFile()
+{
+ QString file("/not-existing.pls");
+ file.prepend(QDir::currentPath());
+ file.prepend("file://");
+ QSignalSpy readySpy(m_utility, SIGNAL(parsingReady(bool)));
+ QSignalSpy parsingSpy(m_utility, SIGNAL(firstItemParsed()));
+
+ m_utility->parsePlaylistFile(QUrl(file));
+ QTest::qWait(1000);
+ QCOMPARE(readySpy.count(), 1);
+ QCOMPARE(parsingSpy.count(), 0);
+ QList<QVariant> arguments = readySpy.takeFirst();
+ QVERIFY(arguments.at(0).toBool() == false);
+}
+
+void Ut_PlaylistFileUtility::testParsingInvalidFileUri()
+{
+//No scheme
+ QString file("/test-station.pls");
+ file.prepend(QDir::currentPath());
+ QSignalSpy parsingSpy(m_utility, SIGNAL(firstItemParsed()));
+ QSignalSpy readySpy(m_utility, SIGNAL(parsingReady(bool)));
+ m_utility->parsePlaylistFile(QUrl(file));
+ QTest::qWait(1000);
+ QCOMPARE(parsingSpy.count(), 0);
+ QCOMPARE(readySpy.count(), 1);
+ QList<QVariant> arguments = readySpy.takeFirst();
+ QVERIFY(arguments.at(0).toBool() == false);
+
+//Contains only path
+ QString file2(QDir::currentPath());
+ file2.prepend("file://");
+ m_utility->parsePlaylistFile(file2);
+ QTest::qWait(1000);
+ QCOMPARE(parsingSpy.count(), 0);
+ QCOMPARE(readySpy.count(), 1);
+ arguments = readySpy.takeFirst();
+ QVERIFY(arguments.at(0).toBool() == false);
+}
+
+void Ut_PlaylistFileUtility::testParsingInvalidFile()
+{
+ QString file("/test-station_invalid.pls");
+ file.prepend(QDir::currentPath());
+ file.prepend("file://");
+
+ QSignalSpy readySpy(m_utility, SIGNAL(parsingReady(bool)));
+ QSignalSpy parsingSpy(m_utility, SIGNAL(firstItemParsed()));
+ m_utility->parsePlaylistFile(QUrl(file));
+ QTest::qWait(1000);
+
+ QCOMPARE(readySpy.count(), 1);
+ QList<QVariant> arguments = readySpy.takeFirst();
+ QVERIFY(arguments.at(0).toBool() == true);
+ QCOMPARE(parsingSpy.count(), 0);
+
+ QVERIFY(m_utility->takeFirstUri().length() == 0);
+}
+
+void Ut_PlaylistFileUtility::testParsingASFFile()
+{
+ QString file("/test.asf");
+ file.prepend(QDir::currentPath());
+ file.prepend("file://");
+
+ QSignalSpy readySpy(m_utility, SIGNAL(parsingReady(bool)));
+ QSignalSpy parsingSpy(m_utility, SIGNAL(firstItemParsed()));
+ m_utility->parsePlaylistFile(QUrl(file));
+ QTest::qWait(1000);
+
+ QCOMPARE(readySpy.count(), 1);
+ QList<QVariant> arguments = readySpy.takeFirst();
+ QVERIFY(arguments.at(0).toBool() == true);
+ QCOMPARE(parsingSpy.count(), 1);
+
+ for (int i=0; i < 1; i++)
+ {
+ QString test = m_utility->takeFirstUri();
+ QVERIFY(test.length() > 0);
+ QVERIFY(test.startsWith("mmsh://195"));
+ QVERIFY(test.endsWith(".asf"));
+ }
+
+ QVERIFY(m_utility->takeFirstUri().length() == 0);
+}
+
+void Ut_PlaylistFileUtility::cleanupTestCase()
+{
+ delete m_stubHelper;
+}
+
+QTEST_MAIN(Ut_PlaylistFileUtility)