activityfw/orbitintegration/hb/tsrc/unit/unittest_hbapplication/unittest_hbapplication/unittest_hbapplication.cpp
changeset 117 c63ee96dbe5f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/activityfw/orbitintegration/hb/tsrc/unit/unittest_hbapplication/unittest_hbapplication/unittest_hbapplication.cpp	Thu Sep 16 12:11:40 2010 +0100
@@ -0,0 +1,106 @@
+/*
+* ============================================================================
+*  Name        : unittest_hbapplication.cpp
+*  Part of     : LibHb / HbApplication
+*  Description : HbApplication unit tests
+*  Version     : %version: 4 %
+*
+*  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 TestHbApplication : public QObject
+{
+    Q_OBJECT
+
+public slots:
+    void cleanup();
+    
+private slots:
+	void testHideSplash();
+    void testActivityManager();
+    void testActivityGettersForNoActivity();
+    void testActivityGettersAfterActivitySignal();
+
+private:
+    HbApplication *hbApp() {return qobject_cast<HbApplication*>(qApp);}
+    
+};
+
+
+void TestHbApplication::cleanup()
+{
+    HbActivityManager *manager = hbApp()->activityManager();
+    manager->removeActivity("TestActivity1");
+}
+
+void TestHbApplication::testHideSplash()
+{
+    HbApplication *app = static_cast<HbApplication *>(qApp);
+    app->hideSplash();
+    app->hideSplash();
+}
+
+void TestHbApplication::testActivityManager() 
+{
+    QVERIFY(hbApp()->activityManager());
+}
+
+void TestHbApplication::testActivityGettersForNoActivity() 
+{
+    HbApplication *app = hbApp();
+    QCOMPARE(app->activateReason(), Hb::ActivationReasonNormal);
+    QCOMPARE(app->activateId(), QString());
+    QCOMPARE(app->activateData(), QVariant());
+    QCOMPARE(app->activateParams(), QVariantHash());
+}
+
+void TestHbApplication::testActivityGettersAfterActivitySignal() 
+{
+    HbApplication *app = hbApp();
+    HbActivityManager *manager = app->activityManager();
+    
+    // our fake activity manager emits the activity singal immediately 
+    // after wait, given that there is any activity added    
+    QVERIFY(manager->addActivity("TestActivity1", "TestData", QVariantHash()));
+    
+    QSignalSpy spy(app, SIGNAL(activate()));
+    QVERIFY(spy.isValid());
+    
+    QVERIFY(manager->waitActivity());
+    QCOMPARE(spy.count(), 1);
+    
+    QCOMPARE(app->activateReason(), Hb::ActivationReasonActivity);
+    QCOMPARE(app->activateId(), QString("TestActivity1"));
+    QCOMPARE(app->activateData(), QVariant("TestData"));
+}
+
+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);
+    TestHbApplication tc;
+    int ret = QTest::qExec(&tc, argc, argv);
+    QMetaObject::invokeMethod(&app, "aboutToQuit", Qt::DirectConnection);
+    return ret;
+}
+
+#include "unittest_hbapplication.moc"