logsui/logsengine/tsrc/ut_logsengine/src/ut_logscontact.cpp
changeset 16 c5af8598d22c
parent 14 f27aebe284bb
child 17 90fe74753f71
equal deleted inserted replaced
14:f27aebe284bb 16:c5af8598d22c
    21 #include "logsdbconnector.h"
    21 #include "logsdbconnector.h"
    22 #include "logsdbconnector_stub_helper.h"
    22 #include "logsdbconnector_stub_helper.h"
    23 #include "qtcontacts_stubs_helper.h"
    23 #include "qtcontacts_stubs_helper.h"
    24 #include "qthighway_stub_helper.h"
    24 #include "qthighway_stub_helper.h"
    25 
    25 
    26 #include <xqservicerequest.h>
    26 #include <xqaiwrequest.h>
    27 #include <QtTest/QtTest>
    27 #include <QtTest/QtTest>
    28 
    28 
    29 const int logsContactsLocalIdTest1 = 1;
    29 const int logsContactsLocalIdTest1 = 1;
    30 const QString logsFetchService = "com.nokia.services.phonebookservices.Fetch";
    30 const char logsIContactsView[] = "com.nokia.symbian.IContactsView";
       
    31 const char logsIContactsEdit[] = "com.nokia.symbian.IContactsEdit";
       
    32 
    31 
    33 
    32 void UT_LogsContact::initTestCase()
    34 void UT_LogsContact::initTestCase()
    33 {
    35 {
    34     mDbConnector = new LogsDbConnector(mEvents);
    36     mDbConnector = new LogsDbConnector(mEvents);
    35     mLogsContact = 0;
    37     mLogsContact = 0;
    59 }
    61 }
    60 
    62 
    61 void UT_LogsContact::testConstructor()
    63 void UT_LogsContact::testConstructor()
    62 {
    64 {
    63     QVERIFY( mLogsContact );
    65     QVERIFY( mLogsContact );
    64     QVERIFY( !mLogsContact->mService );
    66     QVERIFY( !mLogsContact->mAiwRequest );
    65     QVERIFY( mLogsContact->mCurrentRequest == LogsContact::TypeLogsContactSave );
    67     QVERIFY( mLogsContact->mCurrentRequest == LogsContact::TypeLogsContactSave );
    66     
    68     
    67     LogsContact contactWithoutEvent("2345", *mDbConnector, 2);
    69     LogsContact contactWithoutEvent("2345", *mDbConnector, 2);
    68     QVERIFY( contactWithoutEvent.mContactId == 2 );
    70     QVERIFY( contactWithoutEvent.mContactId == 2 );
    69     QVERIFY( contactWithoutEvent.mNumber == "2345" );
    71     QVERIFY( contactWithoutEvent.mNumber == "2345" );
    99 }
   101 }
   100 
   102 
   101 void UT_LogsContact::testOpen()
   103 void UT_LogsContact::testOpen()
   102 {
   104 {
   103     //contact not in phonebook, can't open
   105     //contact not in phonebook, can't open
   104     QVERIFY( !mLogsContact->mService );
   106     QVERIFY( !mLogsContact->mAiwRequest );
   105     QVERIFY( !mLogsContact->open() );
   107     QVERIFY( !mLogsContact->open() );
   106     QVERIFY( !mLogsContact->mService );
   108     QVERIFY( !mLogsContact->mAiwRequest );
   107     QVERIFY( mLogsContact->mCurrentRequest == LogsContact::TypeLogsContactSave );
   109     QVERIFY( mLogsContact->mCurrentRequest == LogsContact::TypeLogsContactSave );
   108 
   110 
   109     //contact is in phonebook, open is ok
   111     //contact is in phonebook, open is ok
   110     QtHighwayStubHelper::reset();
   112     QtHighwayStubHelper::reset();
   111     mLogsEvent->logsEventData()->setContactLocalId(2);
   113     mLogsEvent->logsEventData()->setContactLocalId(2);
   112     QtContactsStubsHelper::setContactId(2);
   114     QtContactsStubsHelper::setContactId(2);
   113     delete mLogsContact;
   115     delete mLogsContact;
   114     mLogsContact = 0;
   116     mLogsContact = 0;
   115     mLogsContact = new LogsContact(*mLogsEvent, *mDbConnector);
   117     mLogsContact = new LogsContact(*mLogsEvent, *mDbConnector);
   116     QVERIFY( mLogsContact->open() );
   118     QVERIFY( mLogsContact->open() );
   117     QVERIFY( mLogsContact->mService );
   119     QVERIFY( mLogsContact->mAiwRequest );
   118     QVERIFY( mLogsContact->mCurrentRequest == LogsContact::TypeLogsContactOpen );
   120     QVERIFY( mLogsContact->mCurrentRequest == LogsContact::TypeLogsContactOpen );
   119     QVERIFY( mLogsContact->mService->service() == logsFetchService );
   121     QVERIFY( mLogsContact->mAiwRequest->descriptor().interfaceName()
   120     QVERIFY( mLogsContact->mService->message() == "open(int)" );
   122              == logsIContactsView );
   121     QVERIFY( QtHighwayStubHelper::isRequestEmbedded() );
   123     QVERIFY( mLogsContact->mAiwRequest->operation() == "openContactCard(int)" );
       
   124     QVERIFY( QtHighwayStubHelper::isRequestEmbedded() );
       
   125     QVERIFY( !QtHighwayStubHelper::isRequestSynchronous() );
   122     
   126     
   123     // Same but without using logsevent at construction
   127     // Same but without using logsevent at construction
   124     QtHighwayStubHelper::reset();
   128     QtHighwayStubHelper::reset();
   125     LogsContact contactWithoutEvent("2345", *mDbConnector, 2);
   129     LogsContact contactWithoutEvent("2345", *mDbConnector, 2);
   126     QVERIFY( contactWithoutEvent.open() );
   130     QVERIFY( contactWithoutEvent.open() );
   127     QVERIFY( contactWithoutEvent.mService );
   131     QVERIFY( contactWithoutEvent.mAiwRequest );
   128     QVERIFY( contactWithoutEvent.mCurrentRequest == LogsContact::TypeLogsContactOpen );
   132     QVERIFY( contactWithoutEvent.mCurrentRequest == LogsContact::TypeLogsContactOpen );
   129     QVERIFY( contactWithoutEvent.mService->service() == logsFetchService );
   133     QVERIFY( contactWithoutEvent.mAiwRequest->descriptor().interfaceName()
   130     QVERIFY( contactWithoutEvent.mService->message() == "open(int)" );
   134              == logsIContactsView );
   131     QVERIFY( QtHighwayStubHelper::isRequestEmbedded() );
   135     QVERIFY( contactWithoutEvent.mAiwRequest->operation() == "openContactCard(int)" );
       
   136     QVERIFY( QtHighwayStubHelper::isRequestEmbedded() );
       
   137     QVERIFY( !QtHighwayStubHelper::isRequestSynchronous() );
       
   138     
       
   139     // Request sending failed
       
   140     QtHighwayStubHelper::reset();
       
   141     QtHighwayStubHelper::setFailCreateAiwRequest(true);
       
   142     QVERIFY( !contactWithoutEvent.open() );
   132 }
   143 }
   133 
   144 
   134 void UT_LogsContact::testAddNew()
   145 void UT_LogsContact::testAddNew()
   135 {
   146 {
   136     //no caller ID, contact won't be saved
   147     //no caller ID, contact won't be saved
   137     mLogsEvent->setEventType(LogsEvent::TypeVoiceCall);
   148     mLogsEvent->setEventType(LogsEvent::TypeVoiceCall);
   138     QVERIFY( mLogsEvent->getNumberForCalling().isEmpty() );
   149     QVERIFY( mLogsEvent->getNumberForCalling().isEmpty() );
   139     QVERIFY( !mLogsContact->addNew() );
   150     QVERIFY( !mLogsContact->addNew() );
   140     QVERIFY( !mLogsContact->mService );
   151     QVERIFY( !mLogsContact->mAiwRequest );
   141     QVERIFY( mLogsContact->mCurrentRequest == LogsContact::TypeLogsContactSave );
   152     QVERIFY( mLogsContact->mCurrentRequest == LogsContact::TypeLogsContactSave );
   142 
   153 
   143     //called ID present, contact not in phonebook => save is ok
   154     //called ID present, contact not in phonebook => save is ok
   144     QtHighwayStubHelper::reset();
   155     QtHighwayStubHelper::reset();
   145     mLogsEvent->setNumber(QString::number(12345));
   156     mLogsEvent->setNumber(QString::number(12345));
   148     mLogsContact = 0;
   159     mLogsContact = 0;
   149     mLogsContact = new LogsContact(*mLogsEvent, *mDbConnector);
   160     mLogsContact = new LogsContact(*mLogsEvent, *mDbConnector);
   150     QVERIFY( !mLogsEvent->getNumberForCalling().isEmpty() );
   161     QVERIFY( !mLogsEvent->getNumberForCalling().isEmpty() );
   151     QVERIFY( !mLogsContact->isContactInPhonebook() );
   162     QVERIFY( !mLogsContact->isContactInPhonebook() );
   152     QVERIFY( mLogsContact->addNew() );
   163     QVERIFY( mLogsContact->addNew() );
   153     QVERIFY( mLogsContact->mService );
   164     QVERIFY( mLogsContact->mAiwRequest );
   154     QVERIFY( mLogsContact->mCurrentRequest == LogsContact::TypeLogsContactSave );
   165     QVERIFY( mLogsContact->mCurrentRequest == LogsContact::TypeLogsContactSave );
   155     QVERIFY( mLogsContact->mService->service() == logsFetchService );
   166     QVERIFY( mLogsContact->mAiwRequest->descriptor().interfaceName()
   156     QVERIFY( mLogsContact->mService->message() == "editCreateNew(QString,QString)" );
   167              == logsIContactsEdit );
   157     QVERIFY( QtHighwayStubHelper::isRequestEmbedded() );
   168     QVERIFY( mLogsContact->mAiwRequest->operation() == "editCreateNew(QString,QString)" );
   158         
   169     QVERIFY( QtHighwayStubHelper::isRequestEmbedded() );
       
   170     QVERIFY( !QtHighwayStubHelper::isRequestSynchronous() );
       
   171     
   159     //caller ID present, contact is in phonebook => save is ok
   172     //caller ID present, contact is in phonebook => save is ok
   160     QtHighwayStubHelper::reset();
   173     QtHighwayStubHelper::reset();
   161     mLogsEvent->setEventType(LogsEvent::TypeVoIPCall);
   174     mLogsEvent->setEventType(LogsEvent::TypeVoIPCall);
   162     mLogsEvent->setNumber("");
   175     mLogsEvent->setNumber("");
   163     mLogsEvent->logsEventData()->mRemoteUrl = "someurl@blah";
   176     mLogsEvent->logsEventData()->mRemoteUrl = "someurl@blah";
   166     delete mLogsContact;
   179     delete mLogsContact;
   167     mLogsContact = 0;
   180     mLogsContact = 0;
   168     mLogsContact = new LogsContact(*mLogsEvent, *mDbConnector);
   181     mLogsContact = new LogsContact(*mLogsEvent, *mDbConnector);
   169     QVERIFY( mLogsContact->isContactInPhonebook() );
   182     QVERIFY( mLogsContact->isContactInPhonebook() );
   170     QVERIFY( mLogsContact->addNew() );
   183     QVERIFY( mLogsContact->addNew() );
   171     QVERIFY( mLogsContact->mService );
   184     QVERIFY( mLogsContact->mAiwRequest );
   172     QVERIFY( mLogsContact->mCurrentRequest == LogsContact::TypeLogsContactSave );
   185     QVERIFY( mLogsContact->mCurrentRequest == LogsContact::TypeLogsContactSave );
   173     QVERIFY( mLogsContact->mService->service() == logsFetchService );
   186     QVERIFY( mLogsContact->mAiwRequest->descriptor().interfaceName()
   174     QVERIFY( mLogsContact->mService->message() == "editCreateNew(QString,QString)" );
   187              == logsIContactsEdit );
   175     QVERIFY( QtHighwayStubHelper::isRequestEmbedded() );
   188     QVERIFY( mLogsContact->mAiwRequest->operation() == "editCreateNew(QString,QString)" );
       
   189     QVERIFY( QtHighwayStubHelper::isRequestEmbedded() );
       
   190     QVERIFY( !QtHighwayStubHelper::isRequestSynchronous() );
   176 }
   191 }
   177 
   192 
   178 void UT_LogsContact::testUpdateExisting()
   193 void UT_LogsContact::testUpdateExisting()
   179 {
   194 {
   180     //caller ID present, contact is in phonebook => update is ok
   195     //caller ID present, contact is in phonebook => update is ok
   186     delete mLogsContact;
   201     delete mLogsContact;
   187     mLogsContact = 0;
   202     mLogsContact = 0;
   188     mLogsContact = new LogsContact(*mLogsEvent, *mDbConnector);
   203     mLogsContact = new LogsContact(*mLogsEvent, *mDbConnector);
   189     QVERIFY( mLogsContact->isContactInPhonebook() );
   204     QVERIFY( mLogsContact->isContactInPhonebook() );
   190     QVERIFY( mLogsContact->updateExisting() );
   205     QVERIFY( mLogsContact->updateExisting() );
   191     QVERIFY( mLogsContact->mService );
   206     QVERIFY( mLogsContact->mAiwRequest );
   192     QVERIFY( mLogsContact->mCurrentRequest == LogsContact::TypeLogsContactSave );
   207     QVERIFY( mLogsContact->mCurrentRequest == LogsContact::TypeLogsContactSave );
   193     QVERIFY( mLogsContact->mService->service() == logsFetchService );
   208     QVERIFY( mLogsContact->mAiwRequest->descriptor().interfaceName()
   194     QVERIFY( mLogsContact->mService->message() == "editUpdateExisting(QString,QString)" );
   209              == logsIContactsEdit );
   195     QVERIFY( QtHighwayStubHelper::isRequestEmbedded() );
   210     QVERIFY( mLogsContact->mAiwRequest->operation() == "editUpdateExisting(QString,QString)" );
       
   211     QVERIFY( QtHighwayStubHelper::isRequestEmbedded() );
       
   212     QVERIFY( !QtHighwayStubHelper::isRequestSynchronous() );
   196 }
   213 }
   197 
   214 
   198 void UT_LogsContact::testIsContactInPhonebook()
   215 void UT_LogsContact::testIsContactInPhonebook()
   199 {
   216 {
   200     QVERIFY( !mLogsContact->isContactInPhonebook() );
   217     QVERIFY( !mLogsContact->isContactInPhonebook() );
   286     QVERIFY( LogsDbConnectorStubHelper::lastCalledFunction().isEmpty() );    
   303     QVERIFY( LogsDbConnectorStubHelper::lastCalledFunction().isEmpty() );    
   287 }
   304 }
   288 
   305 
   289 void UT_LogsContact::testCancelServiceRequest()
   306 void UT_LogsContact::testCancelServiceRequest()
   290 {
   307 {
   291     QVERIFY( !mLogsContact->mService );
   308     XQAiwInterfaceDescriptor descr;
   292     mLogsContact->mService = new XQServiceRequest("service", "message", false);
   309     QVERIFY( !mLogsContact->mAiwRequest );
       
   310     mLogsContact->mAiwRequest = new XQAiwRequest(descr, "message");
   293     mLogsContact->cancelServiceRequest();
   311     mLogsContact->cancelServiceRequest();
   294     QVERIFY( !mLogsContact->mService );
   312     QVERIFY( !mLogsContact->mAiwRequest );
   295 }
   313 }