activityfw/orbitintegration/hb/tsrc/unit/unittest_hbactivitymanager/unittest_hbactivitymanager/unittest_hbactivitymanager.cpp
changeset 117 c63ee96dbe5f
equal deleted inserted replaced
115:3ab5c078b490 117:c63ee96dbe5f
       
     1 /*
       
     2 * ============================================================================
       
     3 *  Name        : unittest_hbactivitymanager.cpp
       
     4 *  Part of     : LibHb / HbActivityManager
       
     5 *  Description : HbActivityManager unit tests
       
     6 *  Version     : %version: 5 %
       
     7 *
       
     8 *  Copyright (c) 2008-2009 Nokia.  All rights reserved.
       
     9 *  This material, including documentation and any related computer
       
    10 *  programs, is protected by copyright controlled by Nokia.  All
       
    11 *  rights are reserved.  Copying, including reproducing, storing,
       
    12 *  adapting or translating, any or all of this material requires the
       
    13 *  prior written consent of Nokia.  This material also contains
       
    14 *  confidential information which may not be disclosed to others
       
    15 *  without the prior written consent of Nokia.
       
    16 * ============================================================================
       
    17 */
       
    18 
       
    19 #include <QtTest/QtTest>
       
    20 
       
    21 #include <hbapplication.h>
       
    22 #include <hbactivitymanager.h>
       
    23 #include <hbtest.h>
       
    24 
       
    25 class TestHbActivityManager : public QObject
       
    26 {
       
    27     Q_OBJECT
       
    28 
       
    29 public slots:
       
    30     void cleanup();
       
    31 
       
    32 private slots:
       
    33     void testConstruction();
       
    34     void testAddActivity();
       
    35     void testRemoveActivity();
       
    36     void testActivityData();
       
    37     void testUpdateActivity();
       
    38     void testWaitActivity();
       
    39     void testActivities();
       
    40     void testCommandLineParsing();
       
    41     void testFalseAndEmptyValuesReturnedWhenPluginCannotBeLoaded();
       
    42 
       
    43 };
       
    44 
       
    45 
       
    46 void TestHbActivityManager::cleanup()
       
    47 {
       
    48     HbActivityManager manager;
       
    49     manager.removeActivity("TestActivity1");
       
    50     manager.removeActivity("TestActivity2");
       
    51 }
       
    52 
       
    53 void TestHbActivityManager::testConstruction() 
       
    54 {
       
    55     HbActivityManager *manager = new HbActivityManager;
       
    56     QVERIFY(manager);
       
    57     delete manager;
       
    58 }
       
    59 
       
    60 void TestHbActivityManager::testAddActivity() 
       
    61 {
       
    62     HbActivityManager manager;
       
    63     QVERIFY(manager.addActivity("TestActivity1", "TestData", QVariantHash()));
       
    64     // cannot add same activity twice
       
    65     QVERIFY(!manager.addActivity("TestActivity1", "TestData2", QVariantHash()));    
       
    66 }
       
    67 
       
    68 void TestHbActivityManager::testRemoveActivity() 
       
    69 {
       
    70     HbActivityManager manager;
       
    71     // activity have to be added before it's deleted
       
    72     QVERIFY(!manager.removeActivity("TestActivity1"));
       
    73     QVERIFY(manager.addActivity("TestActivity1", "TestData", QVariantHash()));
       
    74     QVERIFY(manager.removeActivity("TestActivity1")); 
       
    75 }
       
    76 
       
    77 void TestHbActivityManager::testActivityData() 
       
    78 {
       
    79     HbActivityManager manager;
       
    80     // empty data is returned for non existing activity
       
    81     QCOMPARE(manager.activityData("TestActivity1"), QVariant());
       
    82 
       
    83     // correct data is returned for existing activity
       
    84     QVERIFY(manager.addActivity("TestActivity1", "TestData", QVariantHash()));
       
    85     QCOMPARE(manager.activityData("TestActivity1"), QVariant("TestData"));
       
    86 }
       
    87 
       
    88 void TestHbActivityManager::testUpdateActivity() 
       
    89 {
       
    90     HbActivityManager manager;
       
    91     // activity have to be added before it's updated
       
    92     QVERIFY(!manager.updateActivity("TestActivity1", "TestData", QVariantHash()));
       
    93         
       
    94     // activity can be succesfully updated
       
    95     QVERIFY(manager.addActivity("TestActivity1", "TestData", QVariantHash()));
       
    96     QCOMPARE(manager.activityData("TestActivity1"), QVariant("TestData"));
       
    97     QVERIFY(manager.updateActivity("TestActivity1", "TestData2", QVariantHash()));
       
    98     QCOMPARE(manager.activityData("TestActivity1"), QVariant("TestData2"));
       
    99 }
       
   100 
       
   101 void TestHbActivityManager::testWaitActivity() 
       
   102 {
       
   103     HbActivityManager manager;
       
   104     // mocked plugin returns false when there are no activities, so we have to add something
       
   105     QVERIFY(manager.addActivity("TestActivity1", "TestData", QVariantHash()));
       
   106     QVERIFY(manager.waitActivity());
       
   107 }
       
   108 
       
   109 void TestHbActivityManager::testActivities() 
       
   110 {
       
   111     HbActivityManager manager;
       
   112     // empty list returned when there is no activities
       
   113     QCOMPARE(manager.activities().count(), 0);
       
   114     
       
   115     QVERIFY(manager.addActivity("TestActivity1", "TestData", QVariantHash()));
       
   116     QCOMPARE(manager.activities().count(), 1);
       
   117     
       
   118     QVERIFY(manager.addActivity("TestActivity2", "TestData", QVariantHash()));
       
   119     QCOMPARE(manager.activities().count(), 2);
       
   120 }
       
   121 
       
   122 void TestHbActivityManager::testCommandLineParsing()
       
   123 {
       
   124     HbActivityManager manager;
       
   125     // fake activity plugin returns valid fake activity when QStringList with
       
   126     // single "UnitTest" QString is used as argument
       
   127 
       
   128     Hb::ActivationReason reason(Hb::ActivationReasonNormal);
       
   129     QString id;
       
   130     QVariantHash params;
       
   131 
       
   132     manager.parseCommandLine(QStringList(), reason, id, params);
       
   133     QCOMPARE(reason, Hb::ActivationReasonNormal);
       
   134     QCOMPARE(id, QString());
       
   135     QVERIFY(params.isEmpty());
       
   136 
       
   137     manager.parseCommandLine(QStringList("UnitTest"), reason, id, params);
       
   138     QCOMPARE(reason, Hb::ActivationReasonActivity);
       
   139     QCOMPARE(id, QString("TestActivity"));
       
   140     QCOMPARE(params.count(), 2);
       
   141     QVERIFY(params.contains("activityname"));
       
   142     QCOMPARE(params.value("activityname"), QVariant("TestActivity"));
       
   143     QVERIFY(params.contains("fakeParam"));
       
   144     QCOMPARE(params.value("fakeParam"), QVariant("fakeValue"));
       
   145 }
       
   146 
       
   147 void TestHbActivityManager::testFalseAndEmptyValuesReturnedWhenPluginCannotBeLoaded()
       
   148 {
       
   149     QSKIP("This test can't be performed, because the plugin path is hardcoded into HbActivityManager", SkipAll);
       
   150     QVERIFY(QFile::rename("/resource/qt/plugins/hbactivityplugin.qtplugin", "/resource/qt/plugins/hbactivityplugin.tmp"));
       
   151         
       
   152     HbActivityManager manager;
       
   153 
       
   154     // every method will return false or empty value
       
   155     QVERIFY(!manager.addActivity("TestActivity1", "TestData2", QVariantHash()));    
       
   156     QVERIFY(!manager.removeActivity("TestActivity1"));
       
   157     QCOMPARE(manager.activityData("TestActivity1"), QVariant());
       
   158     QVERIFY(!manager.updateActivity("TestActivity1", "TestData", QVariantHash()));
       
   159     QVERIFY(!manager.waitActivity());
       
   160     QCOMPARE(manager.activities().count(), 0);
       
   161     
       
   162     QVERIFY(QFile::rename("/resource/qt/plugins/hbactivityplugin.tmp", "/resource/qt/plugins/hbactivityplugin.qtplugin"));    
       
   163 }
       
   164 
       
   165 int main(int argc, char *argv[])
       
   166 {
       
   167 #if defined(Q_OS_WIN32) || defined(Q_OS_LINUX)
       
   168     QCoreApplication::addLibraryPath("testplugins/");
       
   169 #elif defined(Q_OS_SYMBIAN)
       
   170     QCoreApplication::addLibraryPath("/resource/qt/plugins/testplugins/");
       
   171 #endif
       
   172     
       
   173     HbApplication app(argc, argv);
       
   174     TestHbActivityManager tc;
       
   175     int ret = QTest::qExec(&tc, argc, argv);
       
   176     QMetaObject::invokeMethod(&app, "aboutToQuit", Qt::DirectConnection);
       
   177     return ret;
       
   178 }
       
   179 
       
   180 
       
   181 
       
   182 #include "unittest_hbactivitymanager.moc"