logsui/logsapp/tsrc/ut_logsapp/src/ut_logsviewmanager.cpp
changeset 17 90fe74753f71
parent 15 76d2cf7a585e
child 18 acd4e87b24b4
equal deleted inserted replaced
15:76d2cf7a585e 17:90fe74753f71
    26 #include "logsmatchesview.h"
    26 #include "logsmatchesview.h"
    27 #include "logsdetailsview.h"
    27 #include "logsdetailsview.h"
    28 #include "hbstubs_helper.h"
    28 #include "hbstubs_helper.h"
    29 #include "logscontact.h"
    29 #include "logscontact.h"
    30 #include "qthighway_stub_helper.h"
    30 #include "qthighway_stub_helper.h"
       
    31 #include "logsapplication.h"
    31 
    32 
    32 //SYSTEM
    33 //SYSTEM
    33 #include <HbMainWindow.h>
       
    34 #include <QtTest/QtTest>
    34 #include <QtTest/QtTest>
    35 #include <HbView.h>
    35 #include <HbView.h>
    36 #include <hbapplication.h>
    36 #include <hbapplication.h>
    37 #include <hbactivitymanager.h>
    37 #include <hbactivitymanager.h>
    38 #include <dialpad.h>
    38 #include <dialpad.h>
    62     mService = 0;
    62     mService = 0;
    63     delete mServiceOld;
    63     delete mServiceOld;
    64     mServiceOld = 0;
    64     mServiceOld = 0;
    65     delete mMainWindow;
    65     delete mMainWindow;
    66     mMainWindow = 0;
    66     mMainWindow = 0;
       
    67     LogsApplication* app = static_cast<LogsApplication*>( qApp );
       
    68     app->mFeatureFakeExitEnabled = false;
       
    69     app->mFeaturePreloadedEnabled = false;
       
    70     
    67 }
    71 }
    68 
    72 
    69 void UT_LogsViewManager::testConstructorDestructor()
    73 void UT_LogsViewManager::testConstructorDestructor()
    70 {
    74 {
    71     QVERIFY( mLogsViewManager );
    75     QVERIFY( mLogsViewManager );
    72     QVERIFY( mLogsViewManager->mComponentsRepository );
    76     QVERIFY( mLogsViewManager->mComponentsRepository );
    73     QVERIFY( mLogsViewManager->mMainWindow.views().count() == 1 );
    77     QVERIFY( mLogsViewManager->mMainWindow.views().count() == 1 );
    74     QVERIFY( mLogsViewManager->mMainWindow.currentView() != 0 );
    78     QVERIFY( mLogsViewManager->mMainWindow.currentView() != 0 );
    75     QVERIFY( static_cast<LogsBaseView*>( mLogsViewManager->mMainWindow.currentView() )->viewId() == LogsRecentViewId );
    79     QVERIFY( static_cast<LogsBaseView*>( mLogsViewManager->mMainWindow.currentView() )->viewId() == LogsRecentViewId );
    76     QVERIFY( mLogsViewManager->mViewStack.count() == 1 );
    80     QVERIFY( mLogsViewManager->mViewStack.count() == 1 );
       
    81     QVERIFY( !mLogsViewManager->mComponentsRepository->model()->mRefreshCalled );
    77     
    82     
    78     delete mLogsViewManager;
    83     delete mLogsViewManager;
    79     mLogsViewManager = 0;
    84     mLogsViewManager = 0;
    80     
    85     
    81     // Contructor when activity restoring started the app
    86     // Contructor when activity restoring started the app
    85     HbStubHelper::setActivityReason(Hb::ActivationReasonActivity);
    90     HbStubHelper::setActivityReason(Hb::ActivationReasonActivity);
    86     mLogsViewManager = new LogsViewManager(*mMainWindow, *mService, *mServiceOld);
    91     mLogsViewManager = new LogsViewManager(*mMainWindow, *mService, *mServiceOld);
    87     QVERIFY( mLogsViewManager->mComponentsRepository );
    92     QVERIFY( mLogsViewManager->mComponentsRepository );
    88     QVERIFY( static_cast<LogsBaseView*>( mLogsViewManager->mMainWindow.currentView() )->viewId() == LogsRecentViewId );
    93     QVERIFY( static_cast<LogsBaseView*>( mLogsViewManager->mMainWindow.currentView() )->viewId() == LogsRecentViewId );
    89     QVERIFY( mLogsViewManager->mViewStack.count() == 1 );
    94     QVERIFY( mLogsViewManager->mViewStack.count() == 1 );
    90     HbStubHelper::reset();
    95     QVERIFY( mLogsViewManager->mComponentsRepository->model()->mRefreshCalled );
       
    96     HbStubHelper::reset();
       
    97     
       
    98     // Constructor when service request started the app
       
    99     delete mMainWindow;
       
   100     mMainWindow = 0;
       
   101     mMainWindow = new LogsMainWindow();
       
   102     HbStubHelper::setActivityReason(Hb::ActivationReasonNormal);
       
   103     QtHighwayStubHelper::setIsService(true);
       
   104     LogsServiceHandler* handler2 = new LogsServiceHandler();
       
   105     mLogsViewManager->mComponentsRepository->model()->mRefreshCalled = false;
       
   106     mLogsViewManager = new LogsViewManager(*mMainWindow, *handler2, *mServiceOld);
       
   107     QVERIFY( mLogsViewManager->mComponentsRepository );
       
   108     QVERIFY( static_cast<LogsBaseView*>( mLogsViewManager->mMainWindow.currentView() )->viewId() == LogsRecentViewId );
       
   109     QVERIFY( mLogsViewManager->mViewStack.count() == 0 ); // Waiting for signal
       
   110     QVERIFY( mLogsViewManager->mComponentsRepository->model()->mRefreshCalled );
       
   111     HbStubHelper::reset();
       
   112     QtHighwayStubHelper::reset();
       
   113     delete handler2;
    91 }
   114 }
    92 
   115 
    93 
   116 
    94 void UT_LogsViewManager::testActivateView()
   117 void UT_LogsViewManager::testActivateView()
    95 {
   118 {
   169     QVERIFY( mLogsViewManager->mMainWindow.currentView() == 
   192     QVERIFY( mLogsViewManager->mMainWindow.currentView() == 
   170              mLogsViewManager->mComponentsRepository->recentCallsView() );
   193              mLogsViewManager->mComponentsRepository->recentCallsView() );
   171     QVERIFY( mLogsViewManager->mComponentsRepository->mDialpad->mLineEdit->text() == dialString );
   194     QVERIFY( mLogsViewManager->mComponentsRepository->mDialpad->mLineEdit->text() == dialString );
   172     QVERIFY( HbStubHelper::isWidgetRaised() );
   195     QVERIFY( HbStubHelper::isWidgetRaised() );
   173     
   196     
   174     // Empty string clears dialpad input
   197     // Empty string clears dialpad input, check also that dialpad gets closed
   175     QtHighwayStubHelper::reset();
   198     QtHighwayStubHelper::reset();
       
   199     mLogsViewManager->mComponentsRepository->mDialpad->mIsOpen = true;
   176     mLogsViewManager->changeRecentViewViaService(XQService::LogsViewCalled, false, "");
   200     mLogsViewManager->changeRecentViewViaService(XQService::LogsViewCalled, false, "");
   177     QVERIFY( mLogsViewManager->mMainWindow.currentView() == 
   201     QVERIFY( mLogsViewManager->mMainWindow.currentView() == 
   178              mLogsViewManager->mComponentsRepository->recentCallsView() );
   202              mLogsViewManager->mComponentsRepository->recentCallsView() );
   179     QVERIFY( mLogsViewManager->mComponentsRepository->mDialpad->mLineEdit->text().isEmpty() );
   203     QVERIFY( mLogsViewManager->mComponentsRepository->mDialpad->mLineEdit->text().isEmpty() );
   180     QVERIFY( HbStubHelper::isWidgetRaised() );
   204     QVERIFY( HbStubHelper::isWidgetRaised() );
       
   205     QVERIFY( !mLogsViewManager->mComponentsRepository->mDialpad->mIsOpen );
   181     
   206     
   182     //Open recent view, view stack not empty, embedded service canceled    
   207     //Open recent view, view stack not empty, embedded service canceled    
   183     QtHighwayStubHelper::reset();
   208     QtHighwayStubHelper::reset();
   184     QVERIFY( mLogsViewManager->mViewStack.count() );
   209     QVERIFY( mLogsViewManager->mViewStack.count() );
   185     mLogsViewManager->mViewStack.at(0)->mContact = new LogsContact();
   210     mLogsViewManager->mViewStack.at(0)->mContact = new LogsContact();
   217     
   242     
   218     // Simulate view allowing exit after denying it first
   243     // Simulate view allowing exit after denying it first
   219     mLogsViewManager->mComponentsRepository->recentCallsView()->mMarkingMissedAsSeen = false;
   244     mLogsViewManager->mComponentsRepository->recentCallsView()->mMarkingMissedAsSeen = false;
   220     mLogsViewManager->proceedExit();
   245     mLogsViewManager->proceedExit();
   221     QVERIFY( HbStubHelper::quitCalled() );
   246     QVERIFY( HbStubHelper::quitCalled() );
       
   247     QVERIFY( !mLogsViewManager->mComponentsRepository->model()->mCompressCalled );
       
   248     
       
   249     // Fake exit enabled, data is compressed, app hidden and activity saved
       
   250     LogsApplication* app = static_cast<LogsApplication*>( qApp );
       
   251     app->mFeatureFakeExitEnabled = true;
       
   252     HbStubHelper::reset();
       
   253     mLogsViewManager->mComponentsRepository->model()->mCompressCalled = false;
       
   254     QtHighwayStubHelper::reset();
       
   255     QCOMPARE( app->activityManager()->activities().count(), 0 );
       
   256     mLogsViewManager->exitApplication();
       
   257     QVERIFY( !HbStubHelper::quitCalled() );
       
   258     QVERIFY( QtHighwayStubHelper::utilToBackground() );
       
   259     QVERIFY( mLogsViewManager->mComponentsRepository->model()->mCompressCalled );
       
   260     QVERIFY( HbStubHelper::isTsTaskVisibilitySet() );
       
   261     QVERIFY( !HbStubHelper::tsTaskVisibility() );
       
   262     QCOMPARE( app->activityManager()->activities().count(), 1 );
       
   263     
   222 }
   264 }
   223 
   265 
   224 void UT_LogsViewManager::testStartingWithService()
   266 void UT_LogsViewManager::testStartingWithService()
   225 {     
   267 {     
   226     // If app is started with highway service, view is not activated
   268     // If app is started with highway service, view is not activated
   248     // before completing activation
   290     // before completing activation
   249     mLogsViewManager->mFirstActivation = true;
   291     mLogsViewManager->mFirstActivation = true;
   250     mLogsViewManager->activateView(LogsRecentViewId, true, QVariant());
   292     mLogsViewManager->activateView(LogsRecentViewId, true, QVariant());
   251     QVERIFY(!mLogsViewManager->mFirstActivation);
   293     QVERIFY(!mLogsViewManager->mFirstActivation);
   252     QVERIFY(mLogsViewManager->mViewActivationShowDialpad);
   294     QVERIFY(mLogsViewManager->mViewActivationShowDialpad);
   253     QVERIFY(!mLogsViewManager->mComponentsRepository->model()->mMissedCallsCounterCleared);
       
   254     mLogsViewManager->completeViewActivation(); // Simulate paint completion (viewReady signal)
   295     mLogsViewManager->completeViewActivation(); // Simulate paint completion (viewReady signal)
   255     QVERIFY(mLogsViewManager->mComponentsRepository->model()->mMissedCallsCounterCleared);
       
   256 }
   296 }
   257 
   297 
   258 void UT_LogsViewManager::testSaveActivity()
   298 void UT_LogsViewManager::testSaveActivity()
   259 {
   299 {
   260     mLogsViewManager->activateView(LogsRecentViewId, false, QVariant());
   300     mLogsViewManager->activateView(LogsRecentViewId, false, QVariant());
   330     connect( mLogsViewManager->mViewStack.at(0), SIGNAL(exitAllowed()), mLogsViewManager, SLOT(proceedExit()) );
   370     connect( mLogsViewManager->mViewStack.at(0), SIGNAL(exitAllowed()), mLogsViewManager, SLOT(proceedExit()) );
   331     emit mLogsViewManager->mViewStack.at(0)->exitAllowed();
   371     emit mLogsViewManager->mViewStack.at(0)->exitAllowed();
   332     QVERIFY( HbStubHelper::quitCalled() );
   372     QVERIFY( HbStubHelper::quitCalled() );
   333     
   373     
   334     HbStubHelper::reset();
   374     HbStubHelper::reset();
       
   375     mLogsViewManager->mComponentsRepository->model()->mRefreshCalled = false;
   335     mLogsViewManager->appGainedForeground();
   376     mLogsViewManager->appGainedForeground();
   336     emit mLogsViewManager->mViewStack.at(0)->exitAllowed();
   377     emit mLogsViewManager->mViewStack.at(0)->exitAllowed();
   337     QVERIFY( !HbStubHelper::quitCalled() );
   378     QVERIFY( !HbStubHelper::quitCalled() );
   338 }
   379     QVERIFY( !mLogsViewManager->mComponentsRepository->model()->mRefreshCalled );
       
   380     
       
   381     // Gaining foreground causes data refresh if fake exit or preloading feature is enabled
       
   382     HbStubHelper::reset();
       
   383     LogsApplication* app = static_cast<LogsApplication*>( qApp );
       
   384     app->mFeatureFakeExitEnabled = true;
       
   385     mLogsViewManager->appGainedForeground();
       
   386     QVERIFY( mLogsViewManager->mComponentsRepository->model()->mRefreshCalled );
       
   387     QVERIFY( HbStubHelper::isTsTaskVisibilitySet() );
       
   388     QVERIFY( HbStubHelper::tsTaskVisibility() );
       
   389     
       
   390     HbStubHelper::reset();
       
   391     mLogsViewManager->mComponentsRepository->model()->mRefreshCalled = false;
       
   392     app->mFeatureFakeExitEnabled = false;
       
   393     app->mFeaturePreloadedEnabled = true;
       
   394     mLogsViewManager->appGainedForeground();
       
   395     QVERIFY( mLogsViewManager->mComponentsRepository->model()->mRefreshCalled );
       
   396     QVERIFY( HbStubHelper::isTsTaskVisibilitySet() );
       
   397     QVERIFY( HbStubHelper::tsTaskVisibility() );
       
   398 }
       
   399 
       
   400 void UT_LogsViewManager::testActivityRequested()
       
   401 {
       
   402     HbApplication* hbApp = static_cast<HbApplication*>(qApp);
       
   403     HbActivityManager* manager = hbApp->activityManager();
       
   404     
       
   405     HbStubHelper::reset();
       
   406     HbStubHelper::setActivityId("unknownActivity");
       
   407     mLogsViewManager->activityRequested("unknownActivity");
       
   408     QVERIFY( !HbStubHelper::isWidgetRaised() );
       
   409     
       
   410     HbStubHelper::setActivityId(logsActivityIdViewRecent);
       
   411     mLogsViewManager->mComponentsRepository->dialpad()->mIsOpen = false;
       
   412     mLogsViewManager->mComponentsRepository->dialpad()->mLineEdit->setText("");
       
   413     QVariantHash params;
       
   414     params.insert(logsActivityParamShowDialpad, false);
       
   415     params.insert(logsActivityParamDialpadText, QString(""));
       
   416     params.insert(logsActivityParamInternalViewId, LogsRecentViewId);
       
   417     manager->addActivity(QString(), QVariant(), params);
       
   418     mLogsViewManager->activityRequested(logsActivityIdViewRecent);
       
   419     QVERIFY( static_cast<LogsBaseView*>( mLogsViewManager->mMainWindow.currentView() )->viewId() == LogsRecentViewId );
       
   420     QVERIFY( !mLogsViewManager->mComponentsRepository->dialpad()->mIsOpen );
       
   421     QCOMPARE( mLogsViewManager->mComponentsRepository->dialpad()->mLineEdit->text(), QString("") );
       
   422     QVERIFY( HbStubHelper::isWidgetRaised() );
       
   423 }