41 #include <hbmenu.h> |
41 #include <hbmenu.h> |
42 #include <dialpad.h> |
42 #include <dialpad.h> |
43 #include <hbgroupbox.h> |
43 #include <hbgroupbox.h> |
44 #include <hbmessagebox.h> |
44 #include <hbmessagebox.h> |
45 #include <xqaiwdecl.h> |
45 #include <xqaiwdecl.h> |
46 |
46 #include <hblistwidget.h> |
47 #define VERIFY_CHECKED_ACTION( v, actionName ) { \ |
47 #include <hblistwidgetitem.h> |
48 QVERIFY( v->mShowFilterMenu );\ |
48 |
49 QVERIFY( v->mShowFilterMenu->actions().count() > 0 );\ |
49 #define VERIFY_SELECTED_VIEW( list, viewIndex ) {\ |
50 QAction* action = 0;\ |
50 QVERIFY(list);\ |
51 foreach ( action, v->mShowFilterMenu->actions() ){ \ |
51 QVERIFY(list->selectionModel()->selectedIndexes().count() ==1 );\ |
52 if ( action->objectName() == actionName ){ \ |
52 QCOMPARE(list->currentItem()->data(Qt::UserRole).toInt(),(int)viewIndex);\ |
53 QVERIFY( action->isChecked() ); \ |
53 } |
54 } else { \ |
|
55 QVERIFY( !action->isChecked() ); \ |
|
56 } \ |
|
57 }} |
|
58 |
|
59 |
54 |
60 void UT_LogsRecentCallsView::initTestCase() |
55 void UT_LogsRecentCallsView::initTestCase() |
61 { |
56 { |
62 mMainWindow = new LogsMainWindow(); |
57 mMainWindow = new LogsMainWindow(); |
63 mViewManager = new LogsViewManagerStub(*mMainWindow); |
58 mViewManager = new LogsViewManagerStub(*mMainWindow); |
88 QVERIFY( mRecentCallsView ); |
83 QVERIFY( mRecentCallsView ); |
89 QVERIFY( !mRecentCallsView->mViewName ); |
84 QVERIFY( !mRecentCallsView->mViewName ); |
90 QVERIFY( !mRecentCallsView->mListView ); |
85 QVERIFY( !mRecentCallsView->mListView ); |
91 QVERIFY( !mRecentCallsView->mFilter ); |
86 QVERIFY( !mRecentCallsView->mFilter ); |
92 QVERIFY( mRecentCallsView->mModel ); |
87 QVERIFY( mRecentCallsView->mModel ); |
93 QVERIFY( !mRecentCallsView->mShowFilterMenu ); |
|
94 QVERIFY( mRecentCallsView->mCurrentView == XQService::LogsViewAll ); |
88 QVERIFY( mRecentCallsView->mCurrentView == XQService::LogsViewAll ); |
95 QVERIFY( mRecentCallsView->viewId() == LogsRecentViewId ); |
89 QVERIFY( mRecentCallsView->viewId() == LogsRecentViewId ); |
96 QVERIFY( mRecentCallsView->mLayoutSectionName == "" ); |
90 QVERIFY( mRecentCallsView->mLayoutSectionName == "" ); |
97 QCOMPARE( mRecentCallsView->mActivities.at(XQService::LogsViewAll), QString(logsActivityIdViewRecent) ); |
91 QCOMPARE( mRecentCallsView->mActivities.at(XQService::LogsViewAll), QString(logsActivityIdViewRecent) ); |
98 QCOMPARE( mRecentCallsView->mActivities.at(XQService::LogsViewReceived), QString(logsActivityIdViewReceived) ); |
92 QCOMPARE( mRecentCallsView->mActivities.at(XQService::LogsViewReceived), QString(logsActivityIdViewReceived) ); |
126 QVERIFY( view ); |
116 QVERIFY( view ); |
127 // Change for uninitialized causes initialization |
117 // Change for uninitialized causes initialization |
128 QVERIFY( !view->mInitialized ); |
118 QVERIFY( !view->mInitialized ); |
129 QVERIFY( !view->mFilter ); |
119 QVERIFY( !view->mFilter ); |
130 QVERIFY( !view->mEmptyListLabel ); |
120 QVERIFY( !view->mEmptyListLabel ); |
131 view->activated(false, QVariant(XQService::LogsViewAll)); |
121 view->activated(false, QVariant(XQService::LogsViewAll), view->mDialpad->editor().text()); |
132 QVERIFY( view->mInitialized ); |
122 QVERIFY( view->mInitialized ); |
133 QVERIFY( view->mFilter ); |
123 QVERIFY( view->mFilter ); |
134 QVERIFY( view->mEmptyListLabel ); |
124 QVERIFY( view->mEmptyListLabel ); |
135 QVERIFY( !view->mModel->mMissedCallsCounterCleared ); |
125 QVERIFY( view->mModel->mMissedCallsCounterCleared ); |
136 VERIFY_CHECKED_ACTION( view, logsShowFilterRecentMenuActionId ) |
126 VERIFY_SELECTED_VIEW(view->mViewSwitchList, XQService::LogsViewAll); |
137 |
127 |
138 // Change views |
128 // Change views |
139 view->activated(false, QVariant(XQService::LogsViewReceived)); |
129 view->mModel->mMissedCallsCounterCleared = false; |
|
130 view->activated(false, QVariant(XQService::LogsViewReceived), view->mDialpad->editor().text()); |
140 QVERIFY( view->mFilter ); |
131 QVERIFY( view->mFilter ); |
141 QVERIFY( view->mFilter->filterType() == LogsFilter::Received ); |
132 QVERIFY( view->mFilter->filterType() == LogsFilter::Received ); |
142 QVERIFY( !view->mModel->mMissedCallsCounterCleared ); |
133 QVERIFY( !view->mModel->mMissedCallsCounterCleared ); |
143 VERIFY_CHECKED_ACTION( view, logsShowFilterReceivedMenuActionId ) |
134 VERIFY_SELECTED_VIEW(view->mViewSwitchList, XQService::LogsViewReceived); |
144 |
135 |
145 view->activated(false, QVariant(XQService::LogsViewMissed)); |
136 view->activated(false, QVariant(XQService::LogsViewMissed), view->mDialpad->editor().text()); |
146 QVERIFY( view->mFilter->filterType() == LogsFilter::Missed ); |
137 QVERIFY( view->mFilter->filterType() == LogsFilter::Missed ); |
147 QVERIFY( view->mModel->mMissedCallsCounterCleared ); |
138 QVERIFY( view->mModel->mMissedCallsCounterCleared ); |
148 VERIFY_CHECKED_ACTION( view, logsShowFilterMissedMenuActionId ) |
139 VERIFY_SELECTED_VIEW(view->mViewSwitchList, XQService::LogsViewMissed); |
149 |
140 |
150 // Change to missed view again, no need to update view, only |
141 // Change to missed view again, no need to update view, only |
151 // missed call counter updated |
142 // missed call counter updated |
152 view->mModel->mMissedCallsCounterCleared = false; |
143 view->mModel->mMissedCallsCounterCleared = false; |
153 view->updateFilter(LogsFilter::Received); |
144 view->updateFilter(LogsFilter::Received); |
154 view->activated(false, QVariant(XQService::LogsViewMissed)); |
145 view->activated(false, QVariant(XQService::LogsViewMissed), view->mDialpad->editor().text()); |
155 QVERIFY( view->mFilter->filterType() == LogsFilter::Received ); |
146 QVERIFY( view->mFilter->filterType() == LogsFilter::Received ); |
156 QVERIFY( view->mModel->mMissedCallsCounterCleared ); |
147 QVERIFY( view->mModel->mMissedCallsCounterCleared ); |
157 |
148 |
158 view->mModel->mMissedCallsCounterCleared = false; |
149 view->mModel->mMissedCallsCounterCleared = false; |
159 view->activated(false, QVariant(XQService::LogsViewCalled)); |
150 view->activated(false, QVariant(XQService::LogsViewCalled), view->mDialpad->editor().text()); |
160 QVERIFY( view->mFilter->filterType() == LogsFilter::Called ); |
151 QVERIFY( view->mFilter->filterType() == LogsFilter::Called ); |
161 QVERIFY( !view->mModel->mMissedCallsCounterCleared ); |
152 QVERIFY( !view->mModel->mMissedCallsCounterCleared ); |
162 VERIFY_CHECKED_ACTION( view, logsShowFilterDialledMenuActionId ) |
153 VERIFY_SELECTED_VIEW(view->mViewSwitchList, XQService::LogsViewCalled); |
163 |
154 |
164 view->mViewManager.mainWindow().setOrientation( Qt::Horizontal ); |
155 view->mViewManager.mainWindow().setOrientation( Qt::Horizontal ); |
165 view->mDialpad->editor().setText( QString("hello") ); |
156 view->mDialpad->editor().setText( QString("hello") ); |
166 view->mActivating = true; |
157 view->mActivating = true; |
167 view->activated(false, QVariant(XQService::LogsViewAll)); |
158 view->activated(false, QVariant(XQService::LogsViewAll), view->mDialpad->editor().text()); |
168 QVERIFY( view->mFilter->filterType() == LogsFilter::All ); |
159 QVERIFY( view->mFilter->filterType() == LogsFilter::All ); |
169 QVERIFY( !view->mModel->mMissedCallsCounterCleared ); |
160 QVERIFY( view->mModel->mMissedCallsCounterCleared ); |
170 VERIFY_CHECKED_ACTION( view, logsShowFilterRecentMenuActionId ) |
161 VERIFY_SELECTED_VIEW(view->mViewSwitchList, XQService::LogsViewAll); |
171 QVERIFY( !view->mDialpad->editor().text().isEmpty() ); |
162 QVERIFY( !view->currDialpadText().isEmpty() ); |
172 QVERIFY( view->mListView->layoutName() == logsListLandscapeLayout ); |
163 QVERIFY( view->mListView->layoutName() == logsListLandscapeLayout ); |
173 QVERIFY( view->mLayoutSectionName == logsViewDefaultSection ); |
164 QVERIFY( view->mLayoutSectionName == logsViewDefaultSection ); |
174 QVERIFY( !view->mActivating ); |
165 QVERIFY( !view->mActivating ); |
|
166 delete view; |
175 } |
167 } |
176 |
168 |
177 void UT_LogsRecentCallsView::testDeactivated() |
169 void UT_LogsRecentCallsView::testDeactivated() |
178 { |
170 { |
179 mRecentCallsView->deactivated(); |
171 mRecentCallsView->deactivated(); |
253 mRecentCallsView->mConversionMap.value(XQService::LogsViewMissed))); |
245 mRecentCallsView->mConversionMap.value(XQService::LogsViewMissed))); |
254 delete mRecentCallsView->mViewName; |
246 delete mRecentCallsView->mViewName; |
255 mRecentCallsView->mViewName = 0; |
247 mRecentCallsView->mViewName = 0; |
256 } |
248 } |
257 |
249 |
258 void UT_LogsRecentCallsView::testChangeFilter() |
250 void UT_LogsRecentCallsView::testHandleViewSwitchSelected() |
259 { |
251 { |
260 mRepository->recentCallsView(); |
252 LogsRecentCallsView* view = mRepository->recentCallsView(); |
261 mRecentCallsView->activated( false, QVariant(XQService::LogsViewAll) ); |
253 mRecentCallsView->initToolbarExtension(); |
|
254 mRecentCallsView->activated( false, QVariant(XQService::LogsViewAll), mRecentCallsView->mDialpad->editor().text() ); |
262 QVERIFY( mRecentCallsView->mFilter ); |
255 QVERIFY( mRecentCallsView->mFilter ); |
263 QVERIFY( mRecentCallsView->mFilter->filterType() == LogsFilter::All ); |
256 QVERIFY( mRecentCallsView->mFilter->filterType() == LogsFilter::All ); |
264 |
257 |
265 HbAction* action = new HbAction(); |
258 QVERIFY( mRecentCallsView->mViewSwitchList ); |
266 action->setObjectName(logsShowFilterMissedMenuActionId); |
259 HbListWidgetItem* item = new HbListWidgetItem(); |
267 mRecentCallsView->changeFilter(action); |
260 item->setData(QVariant(XQService::LogsViewMissed), Qt::UserRole); |
|
261 |
|
262 mRecentCallsView->handleViewSwitchSelected(item); |
|
263 |
|
264 delete item; |
268 // Scrollbar is disbaled while changing the list and is restored when appearByMoving slot is called |
265 // Scrollbar is disbaled while changing the list and is restored when appearByMoving slot is called |
269 QVERIFY( mRecentCallsView->mListView->verticalScrollBarPolicy() == HbScrollArea::ScrollBarAlwaysOff ); |
266 QVERIFY( mRecentCallsView->mListView->verticalScrollBarPolicy() == HbScrollArea::ScrollBarAlwaysOff ); |
270 |
267 |
271 // Because of effects, filter is not changed immediately, simulate effect completion |
268 // Because of effects, filter is not changed immediately, simulate effect completion |
272 QVERIFY( mRecentCallsView->mAppearingView == XQService::LogsViewMissed ); |
269 QVERIFY( mRecentCallsView->mAppearingView == XQService::LogsViewMissed ); |
517 QCOMPARE(view->mCurrentView, XQService::LogsViewCalled); |
512 QCOMPARE(view->mCurrentView, XQService::LogsViewCalled); |
518 QCOMPARE(view->mAppearingView, XQService::LogsViewReceived); |
513 QCOMPARE(view->mAppearingView, XQService::LogsViewReceived); |
519 QVERIFY(event2.isAccepted(Qt::SwipeGesture)); |
514 QVERIFY(event2.isAccepted(Qt::SwipeGesture)); |
520 |
515 |
521 qDeleteAll(list); |
516 qDeleteAll(list); |
|
517 delete view; |
522 } |
518 } |
523 |
519 |
524 void UT_LogsRecentCallsView::testViewChangeByFlicking() |
520 void UT_LogsRecentCallsView::testViewChangeByFlicking() |
525 { |
521 { |
526 qApp->setLayoutDirection(Qt::LeftToRight); |
522 qApp->setLayoutDirection(Qt::LeftToRight); |
527 |
523 |
528 // At leftmost list, moving to left not possible |
524 // At leftmost list, moving to left not possible |
529 // List not empty, starting list animation |
525 // List not empty, starting list animation |
530 LogsRecentCallsView* view = mRepository->recentCallsView(); |
526 LogsRecentCallsView* view = mRepository->recentCallsView(); |
531 view->activated( false, QVariant(XQService::LogsViewAll) ); |
527 view->activated( false, QVariant(XQService::LogsViewAll), view->mDialpad->editor().text() ); |
532 view->mCurrentView = XQService::LogsViewAll; |
528 view->mCurrentView = XQService::LogsViewAll; |
533 QVERIFY(view->model() && view->model()->rowCount()>0); |
529 QVERIFY(view->model() && view->model()->rowCount()>0); |
534 view->moveBackwardInLists(); |
530 view->moveBackwardInLists(); |
535 QVERIFY(view->mCurrentView == XQService::LogsViewAll); |
531 QVERIFY(view->mCurrentView == XQService::LogsViewAll); |
536 QVERIFY(view->mAppearingView == XQService::LogsViewAll); |
532 QVERIFY(view->mAppearingView == XQService::LogsViewAll); |
603 view->mCurrentView = XQService::LogsViewCalled; |
599 view->mCurrentView = XQService::LogsViewCalled; |
604 view->moveBackwardInLists(); |
600 view->moveBackwardInLists(); |
605 QVERIFY(view->mCurrentView == XQService::LogsViewCalled); |
601 QVERIFY(view->mCurrentView == XQService::LogsViewCalled); |
606 QVERIFY(view->mAppearingView == XQService::LogsViewAll); |
602 QVERIFY(view->mAppearingView == XQService::LogsViewAll); |
607 QVERIFY(!view->mMoveLeftInList); |
603 QVERIFY(!view->mMoveLeftInList); |
608 |
604 delete view; |
609 |
|
610 } |
605 } |
611 |
606 |
612 |
607 |
613 void UT_LogsRecentCallsView::testModel() |
608 void UT_LogsRecentCallsView::testModel() |
614 { |
609 { |
615 LogsRecentCallsView* view = mRepository->recentCallsView(); |
610 LogsRecentCallsView* view = mRepository->recentCallsView(); |
616 view->activated(false, QVariant(XQService::LogsViewAll)); |
611 view->activated(false, QVariant(XQService::LogsViewAll), view->mDialpad->editor().text()); |
617 QVERIFY( view->mFilter ); |
612 QVERIFY( view->mFilter ); |
618 QVERIFY( view->model() == view->mFilter ); |
613 QVERIFY( view->model() == view->mFilter ); |
|
614 delete view; |
619 } |
615 } |
620 |
616 |
621 void UT_LogsRecentCallsView::testShowListItemMenu() |
617 void UT_LogsRecentCallsView::testShowListItemMenu() |
622 { |
618 { |
623 HbStubHelper::reset(); |
619 HbStubHelper::reset(); |
955 view->mModel->mPredectiveSearchStatus = 2; |
954 view->mModel->mPredectiveSearchStatus = 2; |
956 //set contact search on |
955 //set contact search on |
957 view->toggleContactSearch(); |
956 view->toggleContactSearch(); |
958 status = view->mModel->predictiveSearchStatus(); |
957 status = view->mModel->predictiveSearchStatus(); |
959 QVERIFY( status == 1 ); |
958 QVERIFY( status == 1 ); |
960 |
959 delete view; |
961 } |
960 } |
962 |
961 |
963 void UT_LogsRecentCallsView::testDialpadOpened() |
962 void UT_LogsRecentCallsView::testDialpadOpened() |
964 { |
963 { |
965 mRepository->recentCallsView(); |
964 LogsRecentCallsView* view = mRepository->recentCallsView(); |
966 mRecentCallsView->activated( false, QVariant(XQService::LogsViewAll) ); |
965 mRecentCallsView->activated( false, QVariant(XQService::LogsViewAll), mRecentCallsView->mDialpad->editor().text() ); |
967 |
966 |
968 // If contact search is disabled, opening dialpad containing input |
967 // If contact search is disabled, opening dialpad containing input |
969 // does not cause going to matches view |
968 // does not cause going to matches view |
970 mViewManager->reset(); |
969 mViewManager->reset(); |
971 mRecentCallsView->mDialpad->mIsOpen = true; |
970 mRecentCallsView->mDialpad->mIsOpen = true; |