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);\ |
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 } |