Added qmafw-gst-subtitles-renderer-0.0.55 for Meego Harmattan 1.2
[mafwsubrenderer] / qmafw-gst-subtitles-renderer / unittests / ut_PlaylistFileUtility / Ut_PlaylistFileUtility.cpp
diff --git a/qmafw-gst-subtitles-renderer/unittests/ut_PlaylistFileUtility/Ut_PlaylistFileUtility.cpp b/qmafw-gst-subtitles-renderer/unittests/ut_PlaylistFileUtility/Ut_PlaylistFileUtility.cpp
new file mode 100644 (file)
index 0000000..46029c2
--- /dev/null
@@ -0,0 +1,149 @@
+/* 
+ * 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)