--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/activityfw/orbitintegration/hb/tsrc/unit/unittest_hbactivitymanager/unittest_hbactivitymanager/unittest_hbactivitymanager.cpp Thu Sep 16 12:11:40 2010 +0100
@@ -0,0 +1,182 @@
+/*
+* ============================================================================
+* Name : unittest_hbactivitymanager.cpp
+* Part of : LibHb / HbActivityManager
+* Description : HbActivityManager unit tests
+* Version : %version: 5 %
+*
+* Copyright (c) 2008-2009 Nokia. All rights reserved.
+* This material, including documentation and any related computer
+* programs, is protected by copyright controlled by Nokia. All
+* rights are reserved. Copying, including reproducing, storing,
+* adapting or translating, any or all of this material requires the
+* prior written consent of Nokia. This material also contains
+* confidential information which may not be disclosed to others
+* without the prior written consent of Nokia.
+* ============================================================================
+*/
+
+#include <QtTest/QtTest>
+
+#include <hbapplication.h>
+#include <hbactivitymanager.h>
+#include <hbtest.h>
+
+class TestHbActivityManager : public QObject
+{
+ Q_OBJECT
+
+public slots:
+ void cleanup();
+
+private slots:
+ void testConstruction();
+ void testAddActivity();
+ void testRemoveActivity();
+ void testActivityData();
+ void testUpdateActivity();
+ void testWaitActivity();
+ void testActivities();
+ void testCommandLineParsing();
+ void testFalseAndEmptyValuesReturnedWhenPluginCannotBeLoaded();
+
+};
+
+
+void TestHbActivityManager::cleanup()
+{
+ HbActivityManager manager;
+ manager.removeActivity("TestActivity1");
+ manager.removeActivity("TestActivity2");
+}
+
+void TestHbActivityManager::testConstruction()
+{
+ HbActivityManager *manager = new HbActivityManager;
+ QVERIFY(manager);
+ delete manager;
+}
+
+void TestHbActivityManager::testAddActivity()
+{
+ HbActivityManager manager;
+ QVERIFY(manager.addActivity("TestActivity1", "TestData", QVariantHash()));
+ // cannot add same activity twice
+ QVERIFY(!manager.addActivity("TestActivity1", "TestData2", QVariantHash()));
+}
+
+void TestHbActivityManager::testRemoveActivity()
+{
+ HbActivityManager manager;
+ // activity have to be added before it's deleted
+ QVERIFY(!manager.removeActivity("TestActivity1"));
+ QVERIFY(manager.addActivity("TestActivity1", "TestData", QVariantHash()));
+ QVERIFY(manager.removeActivity("TestActivity1"));
+}
+
+void TestHbActivityManager::testActivityData()
+{
+ HbActivityManager manager;
+ // empty data is returned for non existing activity
+ QCOMPARE(manager.activityData("TestActivity1"), QVariant());
+
+ // correct data is returned for existing activity
+ QVERIFY(manager.addActivity("TestActivity1", "TestData", QVariantHash()));
+ QCOMPARE(manager.activityData("TestActivity1"), QVariant("TestData"));
+}
+
+void TestHbActivityManager::testUpdateActivity()
+{
+ HbActivityManager manager;
+ // activity have to be added before it's updated
+ QVERIFY(!manager.updateActivity("TestActivity1", "TestData", QVariantHash()));
+
+ // activity can be succesfully updated
+ QVERIFY(manager.addActivity("TestActivity1", "TestData", QVariantHash()));
+ QCOMPARE(manager.activityData("TestActivity1"), QVariant("TestData"));
+ QVERIFY(manager.updateActivity("TestActivity1", "TestData2", QVariantHash()));
+ QCOMPARE(manager.activityData("TestActivity1"), QVariant("TestData2"));
+}
+
+void TestHbActivityManager::testWaitActivity()
+{
+ HbActivityManager manager;
+ // mocked plugin returns false when there are no activities, so we have to add something
+ QVERIFY(manager.addActivity("TestActivity1", "TestData", QVariantHash()));
+ QVERIFY(manager.waitActivity());
+}
+
+void TestHbActivityManager::testActivities()
+{
+ HbActivityManager manager;
+ // empty list returned when there is no activities
+ QCOMPARE(manager.activities().count(), 0);
+
+ QVERIFY(manager.addActivity("TestActivity1", "TestData", QVariantHash()));
+ QCOMPARE(manager.activities().count(), 1);
+
+ QVERIFY(manager.addActivity("TestActivity2", "TestData", QVariantHash()));
+ QCOMPARE(manager.activities().count(), 2);
+}
+
+void TestHbActivityManager::testCommandLineParsing()
+{
+ HbActivityManager manager;
+ // fake activity plugin returns valid fake activity when QStringList with
+ // single "UnitTest" QString is used as argument
+
+ Hb::ActivationReason reason(Hb::ActivationReasonNormal);
+ QString id;
+ QVariantHash params;
+
+ manager.parseCommandLine(QStringList(), reason, id, params);
+ QCOMPARE(reason, Hb::ActivationReasonNormal);
+ QCOMPARE(id, QString());
+ QVERIFY(params.isEmpty());
+
+ manager.parseCommandLine(QStringList("UnitTest"), reason, id, params);
+ QCOMPARE(reason, Hb::ActivationReasonActivity);
+ QCOMPARE(id, QString("TestActivity"));
+ QCOMPARE(params.count(), 2);
+ QVERIFY(params.contains("activityname"));
+ QCOMPARE(params.value("activityname"), QVariant("TestActivity"));
+ QVERIFY(params.contains("fakeParam"));
+ QCOMPARE(params.value("fakeParam"), QVariant("fakeValue"));
+}
+
+void TestHbActivityManager::testFalseAndEmptyValuesReturnedWhenPluginCannotBeLoaded()
+{
+ QSKIP("This test can't be performed, because the plugin path is hardcoded into HbActivityManager", SkipAll);
+ QVERIFY(QFile::rename("/resource/qt/plugins/hbactivityplugin.qtplugin", "/resource/qt/plugins/hbactivityplugin.tmp"));
+
+ HbActivityManager manager;
+
+ // every method will return false or empty value
+ QVERIFY(!manager.addActivity("TestActivity1", "TestData2", QVariantHash()));
+ QVERIFY(!manager.removeActivity("TestActivity1"));
+ QCOMPARE(manager.activityData("TestActivity1"), QVariant());
+ QVERIFY(!manager.updateActivity("TestActivity1", "TestData", QVariantHash()));
+ QVERIFY(!manager.waitActivity());
+ QCOMPARE(manager.activities().count(), 0);
+
+ QVERIFY(QFile::rename("/resource/qt/plugins/hbactivityplugin.tmp", "/resource/qt/plugins/hbactivityplugin.qtplugin"));
+}
+
+int main(int argc, char *argv[])
+{
+#if defined(Q_OS_WIN32) || defined(Q_OS_LINUX)
+ QCoreApplication::addLibraryPath("testplugins/");
+#elif defined(Q_OS_SYMBIAN)
+ QCoreApplication::addLibraryPath("/resource/qt/plugins/testplugins/");
+#endif
+
+ HbApplication app(argc, argv);
+ TestHbActivityManager tc;
+ int ret = QTest::qExec(&tc, argc, argv);
+ QMetaObject::invokeMethod(&app, "aboutToQuit", Qt::DirectConnection);
+ return ret;
+}
+
+
+
+#include "unittest_hbactivitymanager.moc"