homescreenapp/hsmenuclientplugin/tsrc/t_hsmenuclientplugin/src/t_hsmenuclientplugin.cpp
changeset 97 66b5fe3c07fd
parent 95 32e56106abf2
child 98 e6f74eb7f69f
equal deleted inserted replaced
95:32e56106abf2 97:66b5fe3c07fd
     1 /*
       
     2 * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:  Main test class for test library.
       
    15 *
       
    16 */
       
    17 
       
    18 #include <hbinstance.h>
       
    19 #include <hbview.h>
       
    20 #include <QVariant>
       
    21 #include <QList> 
       
    22 
       
    23 #include <caentry.h>
       
    24 #include <caquery.h>
       
    25 #include <caicondescription.h>
       
    26 #include <caservice.h>
       
    27 
       
    28 #include <hsapp_defs.h>
       
    29 #include "t_hsmenuclientplugin.h"
       
    30 #include "hsmenuclient.h"
       
    31 
       
    32 const QString hsItemId("id");
       
    33 
       
    34 // ---------------------------------------------------------------------------
       
    35 // ---------------------------------------------------------------------------
       
    36 //
       
    37 void HsMenuClientPluginTest::initTestCase()
       
    38 {
       
    39     mCaServicePrivateMock = &CaServicePrivate::instance();
       
    40 //    mainWindow();
       
    41 }    
       
    42 
       
    43 // ---------------------------------------------------------------------------
       
    44 // ---------------------------------------------------------------------------
       
    45 //
       
    46 void HsMenuClientPluginTest::init()
       
    47 {
       
    48     mCaServicePrivateMock->clearAll();    
       
    49 }    
       
    50 
       
    51 
       
    52 // ---------------------------------------------------------------------------
       
    53 // ---------------------------------------------------------------------------
       
    54 //
       
    55 void HsMenuClientPluginTest::cleanupTestCase()
       
    56 {
       
    57     
       
    58 //    delete mainWindow();
       
    59 
       
    60 }
       
    61 
       
    62 void HsMenuClientPluginTest::cleanup()
       
    63 {
       
    64     mCaServicePrivateMock->clearAll();
       
    65     qApp->processEvents();
       
    66 }
       
    67 
       
    68 void HsMenuClientPluginTest::testCreateEntry()
       
    69 {
       
    70     #ifdef Q_OS_SYMBIAN
       
    71     #ifdef UT_MEMORY_CHECK
       
    72         __UHEAP_MARK;
       
    73     #endif//UT_MEMORY_CHECK
       
    74     #endif//Q_OS_SYMBIAN
       
    75         {    
       
    76             QList<QVariantMap> list;
       
    77             QMap<QString, QVariant> map;
       
    78             map[hsItemName] = "ModuleTestTApp";
       
    79             map[hsItemDescription] = "Unit test app for HsClientPlugin";
       
    80 
       
    81             map[hsitemLaunchUri] = "appto://2002DCEC?";
       
    82             map[hsitemPublisherId] = "tappModuleTest";
       
    83             map[hsItemWidgetUri] = "hsclockwidgetplugin";
       
    84             
       
    85             map[hsIconFileName] = "Z:\\private\\20022F35\\import\\widgetregistry\\20022F6C\\tclock.png";
       
    86             map[hsIconName] = "qtg_large_applications_user";
       
    87             map[hsIconApplicationId] = "268458321";
       
    88            
       
    89             
       
    90             
       
    91             HsMenuClient *publisher = new HsMenuClient();
       
    92             QVERIFY(publisher->add(map));
       
    93                         
       
    94             QSharedPointer<CaEntry> res_entry = mCaServicePrivateMock->mCreatedEntries[0];
       
    95             
       
    96             
       
    97             QCOMPARE(res_entry->entryTypeName(),
       
    98                 QString(Hs::templatedApplicationTypeName));
       
    99             QCOMPARE(res_entry->role(), ItemEntryRole);
       
   100             QCOMPARE(res_entry->text(), map[hsItemName].toString());
       
   101             QCOMPARE(res_entry->description(), map[hsItemDescription].toString());
       
   102             
       
   103             QCOMPARE(res_entry->attributes().count(), 3);
       
   104             QCOMPARE(res_entry->attribute(hsitemLaunchUri), map[hsitemLaunchUri].toString());
       
   105             QCOMPARE(res_entry->attribute(hsitemPublisherId), map[hsitemPublisherId].toString());
       
   106             QCOMPARE(res_entry->attribute(hsItemWidgetUri), map[hsItemWidgetUri].toString());
       
   107             
       
   108             // icon
       
   109             QCOMPARE(res_entry->iconDescription().filename(), map[hsIconFileName].toString());
       
   110             QCOMPARE(res_entry->iconDescription().skinId(),map[hsIconName].toString());
       
   111             QCOMPARE(res_entry->iconDescription().applicationId(), map[hsIconApplicationId].toString());
       
   112             
       
   113             QCOMPARE(res_entry->flags(), VisibleEntryFlag); // Visible by default, entry not removable
       
   114             
       
   115             delete publisher; 
       
   116 
       
   117         }
       
   118     #ifdef Q_OS_SYMBIAN
       
   119     #ifdef UT_MEMORY_CHECK
       
   120         __UHEAP_MARKEND;
       
   121     #endif//UT_MEMORY_CHECK
       
   122     #endif//Q_OS_SYMBIAN
       
   123 }
       
   124 
       
   125 void HsMenuClientPluginTest::testCreateLocalizedEntry()
       
   126 {
       
   127     #ifdef Q_OS_SYMBIAN
       
   128     #ifdef UT_MEMORY_CHECK
       
   129         __UHEAP_MARK;
       
   130     #endif//UT_MEMORY_CHECK
       
   131     #endif//Q_OS_SYMBIAN
       
   132         {    
       
   133             QList<QVariantMap> list;
       
   134             QMap<QString, QVariant> map;
       
   135             QString testName("Games");
       
   136             QString testDesc("");
       
   137             map[hsItemName] = "ModuleTestTApp";
       
   138             map[hsItemLocName] = "loc://emailTest/txt_applib_dblist_games";
       
   139             map[hsItemDescription] = "Unit test app for HsClientPlugin";
       
   140             map[hsItemLocDescription] = "loc://emailTest/txt_applib_subtitle_office";
       
   141 
       
   142             map[hsitemLaunchUri] = "appto://2002DCEC?";
       
   143             map[hsitemPublisherId] = "tappModuleTest";
       
   144             map[hsItemWidgetUri] = "hsclockwidgetplugin";
       
   145             
       
   146             map[hsIconFileName] = "Z:\\private\\20022F35\\import\\widgetregistry\\20022F6C\\tclock.png";
       
   147             map[hsIconName] = "qtg_large_applications_user";
       
   148             map[hsIconApplicationId] = "268458321";
       
   149            
       
   150             
       
   151             
       
   152             HsMenuClient *publisher = new HsMenuClient();
       
   153             QVERIFY(publisher->add(map));
       
   154                         
       
   155             QSharedPointer<CaEntry> res_entry = mCaServicePrivateMock->mCreatedEntries[0];
       
   156             
       
   157             
       
   158             QCOMPARE(res_entry->entryTypeName(),
       
   159                 QString(Hs::templatedApplicationTypeName));
       
   160             QCOMPARE(res_entry->role(), ItemEntryRole);
       
   161             QCOMPARE(res_entry->text(), map[hsItemLocName].toString());
       
   162             QCOMPARE(res_entry->description(), map[hsItemLocDescription].toString());
       
   163             
       
   164             QCOMPARE(res_entry->attribute(hsitemLaunchUri), map[hsitemLaunchUri].toString());
       
   165             QCOMPARE(res_entry->attribute(hsitemPublisherId), map[hsitemPublisherId].toString());
       
   166             QCOMPARE(res_entry->attribute(hsItemWidgetUri), map[hsItemWidgetUri].toString());
       
   167             
       
   168             // icon
       
   169             QCOMPARE(res_entry->iconDescription().filename(), map[hsIconFileName].toString());
       
   170             QCOMPARE(res_entry->iconDescription().skinId(),map[hsIconName].toString());
       
   171             QCOMPARE(res_entry->iconDescription().applicationId(), map[hsIconApplicationId].toString());
       
   172             
       
   173             QCOMPARE(res_entry->flags(), VisibleEntryFlag); // Visible by default, entry not removable
       
   174             
       
   175             delete publisher; 
       
   176 
       
   177         }
       
   178     #ifdef Q_OS_SYMBIAN
       
   179     #ifdef UT_MEMORY_CHECK
       
   180         __UHEAP_MARKEND;
       
   181     #endif//UT_MEMORY_CHECK
       
   182     #endif//Q_OS_SYMBIAN
       
   183 }
       
   184 
       
   185 void HsMenuClientPluginTest::testUpdateEntry()
       
   186 {
       
   187     #ifdef Q_OS_SYMBIAN
       
   188     #ifdef UT_MEMORY_CHECK
       
   189         __UHEAP_MARK;
       
   190     #endif//UT_MEMORY_CHECK
       
   191     #endif//Q_OS_SYMBIAN
       
   192         {  
       
   193             QMap<QString, QVariant> map;
       
   194             map[hsItemId] = 1; // entry id == 1, entry to update
       
   195             
       
   196             map[hsItemName] = "UpdatedName";
       
   197             map[hsItemDescription] = "UpdatedDescription";
       
   198 
       
   199             map[hsitemLaunchUri] = "appto://102828D6?";
       
   200             map[hsitemPublisherId] = "tappModuleTestUpdated";
       
   201             map[hsItemWidgetUri] = "hsclockwidgetpluginUpdated";
       
   202             
       
   203             map[hsIconFileName] = "Z:\\private\\20022F35\\import\\widgetregistry\\20022F6C\\UpdatedClockIcon.png";
       
   204             map[hsIconName] = "qtg_large_applications_user_updated";
       
   205             map[hsIconApplicationId] = "123458321";
       
   206             
       
   207             // create original entry to be updated
       
   208             mCaServicePrivateMock->AddEntriesForUpdate();
       
   209             
       
   210             QScopedPointer<HsMenuClient> publisher (new HsMenuClient());
       
   211             QVERIFY(publisher->add(map));
       
   212                         
       
   213             // from mock
       
   214             QSharedPointer<CaEntry> res_entry = mCaServicePrivateMock->mCreatedEntries[1];
       
   215             
       
   216             QCOMPARE(res_entry->entryTypeName(),
       
   217                 QString(Hs::templatedApplicationTypeName));
       
   218             QCOMPARE(res_entry->role(), ItemEntryRole);
       
   219             QCOMPARE(res_entry->flags(), VisibleEntryFlag); // Visible by default, entry not removable
       
   220 
       
   221             QCOMPARE(res_entry->text(), map[hsItemName].toString());
       
   222             QCOMPARE(res_entry->description(), map[hsItemDescription].toString());
       
   223             QCOMPARE(res_entry->attributes().count(), 3);
       
   224             QCOMPARE(res_entry->attribute(hsitemLaunchUri), map[hsitemLaunchUri].toString());
       
   225             QCOMPARE(res_entry->attribute(hsitemPublisherId), map[hsitemPublisherId].toString());
       
   226             QCOMPARE(res_entry->attribute(hsItemWidgetUri), map[hsItemWidgetUri].toString());
       
   227             
       
   228             // icon
       
   229             QCOMPARE(res_entry->iconDescription().filename(), map[hsIconFileName].toString());
       
   230             QCOMPARE(res_entry->iconDescription().skinId(),map[hsIconName].toString());
       
   231             QCOMPARE(res_entry->iconDescription().applicationId(), map[hsIconApplicationId].toString());
       
   232              }
       
   233     #ifdef Q_OS_SYMBIAN
       
   234     #ifdef UT_MEMORY_CHECK
       
   235         __UHEAP_MARKEND;
       
   236     #endif//UT_MEMORY_CHECK
       
   237     #endif//Q_OS_SYMBIAN    
       
   238 }
       
   239 
       
   240 void HsMenuClientPluginTest::testRemoveEntry()
       
   241 {
       
   242     #ifdef Q_OS_SYMBIAN
       
   243     #ifdef UT_MEMORY_CHECK
       
   244         __UHEAP_MARK;
       
   245     #endif//UT_MEMORY_CHECK
       
   246     #endif//Q_OS_SYMBIAN
       
   247         { 
       
   248             QMap<QString, QVariant> map;
       
   249             map[hsItemName] = "ModuleTestTApp";
       
   250             map[hsitemLaunchUri] = "appto://2002DCEC?";
       
   251             map[hsitemPublisherId] = "tappModuleTest";
       
   252             map[hsItemDescription] = "Unit test app for HsClientPlugin";
       
   253             map[hsIconApplicationId] = "268458321";
       
   254 
       
   255             HsMenuClient *publisher = new HsMenuClient();            
       
   256             bool result = publisher->remove(map);
       
   257             QVERIFY(!result);
       
   258 
       
   259             mCaServicePrivateMock->mEntryToRemove = -1;
       
   260             map[hsItemId] = 1; // entry id == 1
       
   261             result = publisher->remove(map);
       
   262             QCOMPARE(mCaServicePrivateMock->mEntryToRemove, map[hsItemId].toInt());
       
   263             delete publisher;
       
   264         }
       
   265     #ifdef Q_OS_SYMBIAN
       
   266     #ifdef UT_MEMORY_CHECK
       
   267         __UHEAP_MARKEND;
       
   268     #endif//UT_MEMORY_CHECK
       
   269     #endif//Q_OS_SYMBIAN       
       
   270 }
       
   271 
       
   272 void HsMenuClientPluginTest::testListEntry()
       
   273 {
       
   274     #ifdef Q_OS_SYMBIAN
       
   275     #ifdef UT_MEMORY_CHECK
       
   276         __UHEAP_MARK;
       
   277     #endif//UT_MEMORY_CHECK
       
   278     #endif//Q_OS_SYMBIAN
       
   279         { 
       
   280             QMap<QString, QVariant> map;            
       
   281             map[hsItemName] = "Name";
       
   282             map[hsItemDescription] = "Description";
       
   283 
       
   284             map[hsitemLaunchUri] = "appto://102828D6?";
       
   285             map[hsitemPublisherId] = "tappModuleTest";
       
   286             map[hsItemWidgetUri] = "hsclockwidgetplugin";
       
   287             map[hsIconFileName] = "Z:\\private\\20022F35\\import\\widgetregistry\\20022F6C\\clockIcon.png";
       
   288             map[hsIconName] = "qtg_large_applications_user";
       
   289             map[hsIconApplicationId] = "223458321";
       
   290             
       
   291             HsMenuClient *publisher = new HsMenuClient();
       
   292             QList<QVariantMap> list;
       
   293             list = publisher->getList(map);
       
   294             
       
   295             // verify query passed to GetEntries
       
   296             QCOMPARE(mCaServicePrivateMock->mQueryPassedToGetList->flagsOn(), VisibleEntryFlag);
       
   297             QCOMPARE(mCaServicePrivateMock->mQueryPassedToGetList->entryRoles(), ItemEntryRole);
       
   298             QCOMPARE(mCaServicePrivateMock->mQueryPassedToGetList->entryTypeNames(), 
       
   299                 QStringList(Hs::templatedApplicationTypeName));
       
   300             
       
   301             QCOMPARE(mCaServicePrivateMock->mQueryPassedToGetList->attribute(hsItemName), QString()); // not used
       
   302             QCOMPARE(mCaServicePrivateMock->mQueryPassedToGetList->attribute(hsItemDescription), QString()); // not used
       
   303             
       
   304             QCOMPARE(mCaServicePrivateMock->mQueryPassedToGetList->attribute(hsitemLaunchUri), 
       
   305                 map.value(hsitemLaunchUri).toString());
       
   306             QCOMPARE(mCaServicePrivateMock->mQueryPassedToGetList->attribute(hsitemPublisherId), 
       
   307                 map.value(hsitemPublisherId).toString());
       
   308             QCOMPARE(mCaServicePrivateMock->mQueryPassedToGetList->attribute(hsItemWidgetUri), 
       
   309                 map.value(hsItemWidgetUri).toString());
       
   310             QCOMPARE(mCaServicePrivateMock->mQueryPassedToGetList->attribute(hsIconFileName), 
       
   311                 map.value(hsIconFileName).toString());
       
   312             QCOMPARE(mCaServicePrivateMock->mQueryPassedToGetList->attribute(hsIconName), 
       
   313                 map.value(hsIconName).toString());
       
   314             QCOMPARE(mCaServicePrivateMock->mQueryPassedToGetList->attribute(hsIconApplicationId), 
       
   315                 map.value(hsIconApplicationId).toString());
       
   316 
       
   317             // Verify if all values are added to the map
       
   318             QVERIFY(list.count() == 2);            
       
   319             QSharedPointer<CaEntry> res_entry = mCaServicePrivateMock->mReturnedEntries[0];
       
   320             QCOMPARE(res_entry->id(), list.at(0).value(hsItemId).toInt());
       
   321             QCOMPARE(res_entry->text(), list.at(0).value(hsItemName).toString());
       
   322             QCOMPARE(res_entry->description(), list.at(0).value(hsItemDescription).toString());
       
   323             QCOMPARE(res_entry->attribute(hsitemLaunchUri), list.at(0).value(hsitemLaunchUri).toString());
       
   324             QCOMPARE(res_entry->attribute(hsitemPublisherId), list.at(0).value(hsitemPublisherId).toString());
       
   325             QCOMPARE(res_entry->attribute(hsItemWidgetUri), list.at(0).value(hsItemWidgetUri).toString());
       
   326             QCOMPARE(res_entry->iconDescription().filename(), list.at(0).value(hsIconFileName).toString());
       
   327             QCOMPARE(res_entry->iconDescription().skinId(),list.at(0).value(hsIconName).toString());
       
   328             QCOMPARE(res_entry->iconDescription().applicationId(), list.at(0).value(hsIconApplicationId).toString());
       
   329             
       
   330             res_entry = mCaServicePrivateMock->mReturnedEntries[1];            
       
   331             QCOMPARE(res_entry->id(), list.at(1).value(hsItemId).toInt());
       
   332             QCOMPARE(res_entry->text(), list.at(1).value(hsItemName).toString());
       
   333             QCOMPARE(res_entry->description(), list.at(1).value(hsItemDescription).toString());
       
   334             QCOMPARE(res_entry->attribute(hsitemLaunchUri), list.at(1).value(hsitemLaunchUri).toString());
       
   335             QCOMPARE(res_entry->attribute(hsitemPublisherId), list.at(1).value(hsitemPublisherId).toString());
       
   336             QCOMPARE(res_entry->attribute(hsItemWidgetUri), list.at(1).value(hsItemWidgetUri).toString());
       
   337             QCOMPARE(res_entry->iconDescription().filename(), list.at(1).value(hsIconFileName).toString());
       
   338             QCOMPARE(res_entry->iconDescription().skinId(),list.at(1).value(hsIconName).toString());
       
   339             QCOMPARE(res_entry->iconDescription().applicationId(), list.at(1).value(hsIconApplicationId).toString());
       
   340             delete publisher;
       
   341         }
       
   342     #ifdef Q_OS_SYMBIAN
       
   343     #ifdef UT_MEMORY_CHECK
       
   344         __UHEAP_MARKEND;
       
   345     #endif//UT_MEMORY_CHECK
       
   346     #endif//Q_OS_SYMBIAN      
       
   347 }
       
   348 
       
   349 QTEST_MAIN(HsMenuClientPluginTest)