logsui/logsengine/tsrc/ut_logsengine/src/ut_logsmodel.cpp
changeset 15 76d2cf7a585e
parent 13 52d644758b05
child 17 90fe74753f71
equal deleted inserted replaced
13:52d644758b05 15:76d2cf7a585e
    24 #include "logseventdata.h"
    24 #include "logseventdata.h"
    25 #include "logsdbconnector.h"
    25 #include "logsdbconnector.h"
    26 #include "logsdbconnector_stub_helper.h"
    26 #include "logsdbconnector_stub_helper.h"
    27 #include "logscommondata.h"
    27 #include "logscommondata.h"
    28 #include "logsconfigurationparams.h"
    28 #include "logsconfigurationparams.h"
       
    29 #include "hbstubs_helper.h"
    29 
    30 
    30 #include <hbicon.h>
    31 #include <hbicon.h>
    31 #include <QtTest/QtTest>
    32 #include <QtTest/QtTest>
    32 #include <hbfontspec.h>
    33 #include <hbfontspec.h>
    33 
    34 
    37 Q_DECLARE_METATYPE(LogsMessage *)
    38 Q_DECLARE_METATYPE(LogsMessage *)
    38 Q_DECLARE_METATYPE(LogsContact *)
    39 Q_DECLARE_METATYPE(LogsContact *)
    39 
    40 
    40 #define LOGS_TEST_CMP_ICONS( var, icon ){ \
    41 #define LOGS_TEST_CMP_ICONS( var, icon ){ \
    41      const HbIcon& tempIcon = qVariantValue<HbIcon>( var );\
    42      const HbIcon& tempIcon = qVariantValue<HbIcon>( var );\
    42      QVERIFY( &tempIcon == icon ); }
    43      QVERIFY( tempIcon == *icon ); }
    43 
    44 
    44 #define LOGS_TEST_CREATE_EVENT(eventName, index, eventState ) \
    45 #define LOGS_TEST_CREATE_EVENT(eventName, index, eventState ) \
    45 LogsEvent* eventName = new LogsEvent; \
    46 LogsEvent* eventName = new LogsEvent; \
    46 eventName->setIndex(index); \
    47 eventName->setIndex(index); \
    47 eventName->setLogId(index);\
    48 eventName->setLogId(index);\
    58 }
    59 }
    59 
    60 
    60 
    61 
    61 void UT_LogsModel::init()
    62 void UT_LogsModel::init()
    62 {
    63 {
       
    64     HbStubHelper::reset();
    63     mModel = new LogsModel();
    65     mModel = new LogsModel();
    64     LogsCommonData::getInstance().currentConfiguration().setListItemTextWidth(360); 
    66     LogsCommonData::getInstance().currentConfiguration().setListItemTextWidth(360); 
    65 }
    67 }
    66 
    68 
    67 void UT_LogsModel::cleanup()
    69 void UT_LogsModel::cleanup()
   117     
   119     
   118     // Call not supported for this event
   120     // Call not supported for this event
   119     mModel->mEvents.at(0)->setEventType(LogsEvent::TypeUndefined);
   121     mModel->mEvents.at(0)->setEventType(LogsEvent::TypeUndefined);
   120     QVariant callData = mModel->data(mModel->index(0), LogsModel::RoleCall);
   122     QVariant callData = mModel->data(mModel->index(0), LogsModel::RoleCall);
   121     LogsCall *call = qVariantValue<LogsCall *>( callData );
   123     LogsCall *call = qVariantValue<LogsCall *>( callData );
   122     QVERIFY ( !call );
   124     QVERIFY ( call );
       
   125     QVERIFY( call->defaultCallType() == LogsCall::TypeLogsCallNotAvailable );
       
   126     delete call;
   123     
   127     
   124     // Call supported
   128     // Call supported
   125     mModel->mEvents.at(0)->setEventType(LogsEvent::TypeVoiceCall);
   129     mModel->mEvents.at(0)->setEventType(LogsEvent::TypeVoiceCall);
   126     QVariant callData2 = mModel->data(mModel->index(0), LogsModel::RoleCall);
   130     QVariant callData2 = mModel->data(mModel->index(0), LogsModel::RoleCall);
   127     LogsCall *call2 = qVariantValue<LogsCall *>( callData2 );
   131     LogsCall *call2 = qVariantValue<LogsCall *>( callData2 );
   128     QVERIFY ( call2 );
   132     QVERIFY ( call2 );
       
   133     QVERIFY( call2->defaultCallType() != LogsCall::TypeLogsCallNotAvailable );
   129     delete call2;
   134     delete call2;
   130     
   135     
   131     // Details model
   136     // Details model
   132     QVariant details = mModel->data(mModel->index(0), LogsModel::RoleDetailsModel);
   137     QVariant details = mModel->data(mModel->index(0), LogsModel::RoleDetailsModel);
   133     LogsDetailsModel *detailsModel = qVariantValue<LogsDetailsModel *>( details );
   138     LogsDetailsModel *detailsModel = qVariantValue<LogsDetailsModel *>( details );
   303     LOGS_TEST_CMP_ICONS(icons.at(0), mModel->mIcons.value( logsDialledVoiceCallIconId ));
   308     LOGS_TEST_CMP_ICONS(icons.at(0), mModel->mIcons.value( logsDialledVoiceCallIconId ));
   304 
   309 
   305     icons.clear();
   310     icons.clear();
   306     event->setDirection(LogsEvent::DirMissed);
   311     event->setDirection(LogsEvent::DirMissed);
   307     event->setEventType(LogsEvent::TypeVideoCall);
   312     event->setEventType(LogsEvent::TypeVideoCall);
       
   313     event->setIsRead(true);
   308     mModel->getDecorationData(*event, icons);
   314     mModel->getDecorationData(*event, icons);
   309     QVERIFY(icons.count() == 1);
   315     QVERIFY(icons.count() == 1);
   310     LOGS_TEST_CMP_ICONS(icons.at(0), mModel->mIcons.value( logsMissedVideoCallIconId ));
   316     LOGS_TEST_CMP_ICONS(icons.at(0), mModel->mIcons.value( logsMissedVideoCallIconId ));
   311     
   317     
   312     icons.clear();
   318     icons.clear();
   401     
   407     
   402 }
   408 }
   403 
   409 
   404 void UT_LogsModel::testGetCallerId()
   410 void UT_LogsModel::testGetCallerId()
   405 {
   411 {
       
   412     HbStubHelper::stringUtilDigitConversion(true);
       
   413     
   406     //add private and unknown
   414     //add private and unknown
   407     // No name or number
   415     // No name or number
   408     LogsEvent event;
   416     LogsEvent event;
   409     QVERIFY( mModel->getCallerId(event) == QString("") );
   417     QVERIFY( mModel->getCallerId(event) == QString("") );
   410 
   418 
   411     // No name
   419     // No name
   412     QString num("+12345555");
   420     QString num("+12345555");
   413     event.setNumber(num);
   421     event.setNumber(num);
   414     QVERIFY( mModel->getCallerId(event) == num );
   422     QCOMPARE( mModel->getCallerId(event), "conv" + num );
   415     
   423     
   416     // No number
   424     // No number
   417     QString remote("Souuu");
   425     QString remote("Souuu");
   418     event.setRemoteParty(remote);
   426     event.setRemoteParty(remote);
   419     event.setNumber("");
   427     event.setNumber("");
   422     // Both, still use remote
   430     // Both, still use remote
   423     event.setNumber(num);
   431     event.setNumber(num);
   424     QVERIFY( mModel->getCallerId(event) == remote );
   432     QVERIFY( mModel->getCallerId(event) == remote );
   425     
   433     
   426     // Only remote url
   434     // Only remote url
       
   435     
   427     event.setNumber("");
   436     event.setNumber("");
   428     event.setRemoteParty("");
   437     event.setRemoteParty("");
   429     LogsEventData* eventData = new LogsEventData;
   438     LogsEventData* eventData = new LogsEventData;
   430     eventData->mRemoteUrl = "test@1.2.3.4";
   439     eventData->mRemoteUrl = "test@1.2.3.4";
   431     event.setLogsEventData( eventData );
   440     event.setLogsEventData( eventData );
   432     QVERIFY( mModel->getCallerId(event) == eventData->mRemoteUrl );
   441     QVERIFY( mModel->getCallerId(event) == eventData->mRemoteUrl );
   433     
   442     
   434     // Duplicates
   443     // Duplicates
   435     event.setDuplicates(3);
   444     event.setDuplicates(3);
   436     QVERIFY( mModel->getCallerId(event) == "test@1.2.3.4(4)" );
   445     QVERIFY( mModel->getCallerId(event) == "test@1.2.3.4(conv4)" );
   437     
   446     
   438     // Duplicates for already read event
   447     // Duplicates for already read event
   439     event.setIsRead(true);
   448     event.setIsRead(true);
   440     QVERIFY( mModel->getCallerId(event) == "test@1.2.3.4" );
   449     QVERIFY( mModel->getCallerId(event) == "test@1.2.3.4" );
       
   450     HbStubHelper::reset();
   441 }
   451 }
   442 
   452 
   443 void UT_LogsModel::testSqueezedString()
   453 void UT_LogsModel::testSqueezedString()
   444 {
   454 {
   445     QFontMetricsF fontMetrics(HbFontSpec(HbFontSpec::Primary).font());
   455     QFontMetricsF fontMetrics(HbFontSpec(HbFontSpec::Primary).font());
   542 }
   552 }
   543 
   553 
   544 void UT_LogsModel::testUpdateConfiguration()
   554 void UT_LogsModel::testUpdateConfiguration()
   545 {   
   555 {   
   546     QSignalSpy spy(mModel, SIGNAL(modelReset()));
   556     QSignalSpy spy(mModel, SIGNAL(modelReset()));
       
   557     QSignalSpy spy2(mModel, SIGNAL(dataChanged(QModelIndex,QModelIndex)));
   547     
   558     
   548     // No previous config, reset not signaled
   559     // No previous config, reset not signaled
   549     LogsConfigurationParams params;
   560     LogsConfigurationParams params;
   550     params.setListItemTextWidth(200);
   561     params.setListItemTextWidth(200);
   551     mModel->updateConfiguration(params);
   562     mModel->updateConfiguration(params);
   552     QVERIFY( spy.count() == 0 );
   563     QVERIFY( spy.count() == 0 );
       
   564     QVERIFY( spy2.count() == 0 );
   553     
   565     
   554     // Previous config but no change, reset not signaled
   566     // Previous config but no change, reset not signaled
   555     mModel->updateConfiguration(params);
   567     mModel->updateConfiguration(params);
   556     QVERIFY( spy.count() == 0 );
   568     QVERIFY( spy.count() == 0 );
       
   569     QVERIFY( spy2.count() == 0 );
   557     
   570     
   558     // Config changed but no unseen events, reset not signaled
   571     // Config changed but no unseen events, reset not signaled
   559     params.setListItemTextWidth(400);
   572     params.setListItemTextWidth(400);
   560     mModel->updateConfiguration(params);
   573     mModel->updateConfiguration(params);
   561     QVERIFY( spy.count() == 0 );
   574     QVERIFY( spy.count() == 0 );
       
   575     QVERIFY( spy2.count() == 0 );
   562     
   576     
   563     // Config changed and unseen events, reset signaled
   577     // Config changed and unseen events, reset signaled
   564     LOGS_TEST_CREATE_EVENT(event, 1, LogsEvent::EventAdded );
   578     LOGS_TEST_CREATE_EVENT(event, 1, LogsEvent::EventAdded );
   565     event->setDirection(LogsEvent::DirMissed);
   579     event->setDirection(LogsEvent::DirMissed);
   566     event->setDuplicates(10);
   580     event->setDuplicates(10);
   567     params.setListItemTextWidth(300);
   581     params.setListItemTextWidth(300);
   568     mModel->updateConfiguration(params);
   582     mModel->updateConfiguration(params);
   569     QVERIFY( spy.count() == 1 );
   583     QVERIFY( spy.count() == 1 );
       
   584     QVERIFY( spy2.count() == 0 );
   570         
   585         
   571 }
   586     //Locale changed, model not empty
       
   587     spy.clear();
       
   588     params.setLocaleChanged(true);
       
   589     QVERIFY( mModel->rowCount(QModelIndex()) == 1 );
       
   590     mModel->updateConfiguration(params);
       
   591     QVERIFY( spy.count() == 0 );
       
   592     QVERIFY( spy2.count() == 1 );
       
   593     
       
   594     // Locale changed, model is empty
       
   595     spy.clear();
       
   596     spy2.clear();
       
   597     qDeleteAll( mModel->mEvents );
       
   598     mModel->mEvents.clear();
       
   599     QVERIFY( mModel->rowCount(QModelIndex()) == 0 );
       
   600     mModel->updateConfiguration(params);
       
   601     QVERIFY( spy.count() == 0 );
       
   602     QVERIFY( spy2.count() == 0 );    
       
   603 }