activityfw/orbitintegration/hb/tsrc/unit/unittest_hbapplication/unittest_hbapplication/unittest_hbapplication.cpp
/*
* ============================================================================
* 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"