logsui/logsapp/tsrc/ut_logsapp/src/ut_logsviewmanager.cpp
changeset 20 6a40edd41841
parent 19 e4c884866116
equal deleted inserted replaced
19:e4c884866116 20:6a40edd41841
    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 #include "hbapplication.h"
       
    32 #include "logsappsettings.h"
       
    33 #include "logsforegroundwatcher.h"
    32 
    34 
    33 //SYSTEM
    35 //SYSTEM
    34 #include <QtTest/QtTest>
    36 #include <QtTest/QtTest>
    35 #include <HbView.h>
    37 #include <HbView.h>
    36 #include <hbapplication.h>
    38 #include <hbapplication.h>
    48 
    50 
    49 void UT_LogsViewManager::init()
    51 void UT_LogsViewManager::init()
    50 {
    52 {
    51     mMainWindow =  new LogsMainWindow();
    53     mMainWindow =  new LogsMainWindow();
    52     mService = new LogsServiceHandler();
    54     mService = new LogsServiceHandler();
    53     mServiceOld = new LogsServiceHandlerOld();
    55     mServiceOld = new LogsServiceHandlerOld();  
    54     mLogsViewManager = new LogsViewManager(*mMainWindow, *mService, *mServiceOld);
    56     int argc = 0;
       
    57     char* argv = 0;
       
    58     mSettings = new LogsAppSettings(argc, &argv);
       
    59     mLogsViewManager = new LogsViewManager(*mMainWindow, *mService, *mServiceOld, *mSettings);
    55 }
    60 }
    56 
    61 
    57 void UT_LogsViewManager::cleanup()
    62 void UT_LogsViewManager::cleanup()
    58 {
    63 {
    59     delete mLogsViewManager;
    64     delete mLogsViewManager;
    62     mService = 0;
    67     mService = 0;
    63     delete mServiceOld;
    68     delete mServiceOld;
    64     mServiceOld = 0;
    69     mServiceOld = 0;
    65     delete mMainWindow;
    70     delete mMainWindow;
    66     mMainWindow = 0;
    71     mMainWindow = 0;
    67     LogsApplication* app = static_cast<LogsApplication*>( qApp );
    72     delete mSettings;
    68     app->mFeatureFakeExitEnabled = false;
    73     mSettings = 0;
    69     app->mFeaturePreloadedEnabled = false;
       
    70     
    74     
    71 }
    75 }
    72 
    76 
    73 void UT_LogsViewManager::testConstructorDestructor()
    77 void UT_LogsViewManager::testConstructorDestructor()
    74 {
    78 {
    76     QVERIFY( mLogsViewManager->mComponentsRepository );
    80     QVERIFY( mLogsViewManager->mComponentsRepository );
    77     QVERIFY( mLogsViewManager->mMainWindow.views().count() == 1 );
    81     QVERIFY( mLogsViewManager->mMainWindow.views().count() == 1 );
    78     QVERIFY( mLogsViewManager->mMainWindow.currentView() != 0 );
    82     QVERIFY( mLogsViewManager->mMainWindow.currentView() != 0 );
    79     QVERIFY( static_cast<LogsBaseView*>( mLogsViewManager->mMainWindow.currentView() )->viewId() == LogsRecentViewId );
    83     QVERIFY( static_cast<LogsBaseView*>( mLogsViewManager->mMainWindow.currentView() )->viewId() == LogsRecentViewId );
    80     QVERIFY( mLogsViewManager->mViewStack.count() == 1 );
    84     QVERIFY( mLogsViewManager->mViewStack.count() == 1 );
    81     QVERIFY( !mLogsViewManager->mComponentsRepository->model()->mRefreshCalled );
    85     QVERIFY( mLogsViewManager->mComponentsRepository->model()->mRefreshCalled );
    82     
    86     
    83     delete mLogsViewManager;
    87     delete mLogsViewManager;
    84     mLogsViewManager = 0;
    88     mLogsViewManager = 0;
    85     
    89     
    86     // Contructor when activity restoring started the app
    90     // Contructor when activity restoring started the app
    87     delete mMainWindow;
    91     delete mMainWindow;
    88     mMainWindow = 0;
    92     mMainWindow = 0;
    89     mMainWindow = new LogsMainWindow();
    93     mMainWindow = new LogsMainWindow();
    90     HbStubHelper::setActivityReason(Hb::ActivationReasonActivity);
    94     HbStubHelper::setActivityReason(Hb::ActivationReasonActivity);
    91     mLogsViewManager = new LogsViewManager(*mMainWindow, *mService, *mServiceOld);
    95     mLogsViewManager = new LogsViewManager(*mMainWindow, *mService, *mServiceOld, *mSettings);
    92     QVERIFY( mLogsViewManager->mComponentsRepository );
    96     QVERIFY( mLogsViewManager->mComponentsRepository );
    93     QVERIFY( static_cast<LogsBaseView*>( mLogsViewManager->mMainWindow.currentView() )->viewId() == LogsRecentViewId );
    97     QVERIFY( static_cast<LogsBaseView*>( mLogsViewManager->mMainWindow.currentView() )->viewId() == LogsRecentViewId );
    94     QVERIFY( mLogsViewManager->mViewStack.count() == 1 );
    98     QVERIFY( mLogsViewManager->mViewStack.count() == 1 );
    95     QVERIFY( mLogsViewManager->mComponentsRepository->model()->mRefreshCalled );
    99     QVERIFY( mLogsViewManager->mComponentsRepository->model()->mRefreshCalled );
    96     HbStubHelper::reset();
   100     HbStubHelper::reset();
   101     mMainWindow = new LogsMainWindow();
   105     mMainWindow = new LogsMainWindow();
   102     HbStubHelper::setActivityReason(Hb::ActivationReasonNormal);
   106     HbStubHelper::setActivityReason(Hb::ActivationReasonNormal);
   103     QtHighwayStubHelper::setIsService(true);
   107     QtHighwayStubHelper::setIsService(true);
   104     LogsServiceHandler* handler2 = new LogsServiceHandler();
   108     LogsServiceHandler* handler2 = new LogsServiceHandler();
   105     mLogsViewManager->mComponentsRepository->model()->mRefreshCalled = false;
   109     mLogsViewManager->mComponentsRepository->model()->mRefreshCalled = false;
   106     mLogsViewManager = new LogsViewManager(*mMainWindow, *handler2, *mServiceOld);
   110     mLogsViewManager = new LogsViewManager(*mMainWindow, *handler2, *mServiceOld, *mSettings);
   107     QVERIFY( mLogsViewManager->mComponentsRepository );
   111     QVERIFY( mLogsViewManager->mComponentsRepository );
   108     QVERIFY( static_cast<LogsBaseView*>( mLogsViewManager->mMainWindow.currentView() )->viewId() == LogsRecentViewId );
   112     QVERIFY( static_cast<LogsBaseView*>( mLogsViewManager->mMainWindow.currentView() )->viewId() == LogsRecentViewId );
   109     QVERIFY( mLogsViewManager->mViewStack.count() == 0 ); // Waiting for signal
   113     QVERIFY( mLogsViewManager->mViewStack.count() == 0 ); // Waiting for signal
   110     QVERIFY( mLogsViewManager->mComponentsRepository->model()->mRefreshCalled );
   114     QVERIFY( mLogsViewManager->mComponentsRepository->model()->mRefreshCalled );
       
   115     QVERIFY( !mLogsViewManager->mBackgroundStartupWatcher );
   111     HbStubHelper::reset();
   116     HbStubHelper::reset();
   112     QtHighwayStubHelper::reset();
   117     QtHighwayStubHelper::reset();
   113     delete handler2;
   118     delete handler2;
       
   119     
       
   120     // Preloading startup
       
   121     mSettings->mFeaturePreloadedEnabled = true;
       
   122     delete mMainWindow;
       
   123     mMainWindow = 0;
       
   124     mMainWindow = new LogsMainWindow();
       
   125     mLogsViewManager->mComponentsRepository->model()->mRefreshCalled = false;
       
   126     mLogsViewManager = new LogsViewManager(*mMainWindow, *mService, *mServiceOld, *mSettings);
       
   127     QVERIFY( mLogsViewManager->mComponentsRepository );
       
   128     QVERIFY( static_cast<LogsBaseView*>( mLogsViewManager->mMainWindow.currentView() )->viewId() == LogsRecentViewId );
       
   129     QVERIFY( mLogsViewManager->mViewStack.count() == 0 ); // Waiting for coming to foreground
       
   130     QVERIFY( !mLogsViewManager->mComponentsRepository->model()->mRefreshCalled );
       
   131     QVERIFY( HbStubHelper::isTsTaskVisibilitySet() );
       
   132     QVERIFY( !HbStubHelper::tsTaskVisibility() );
       
   133     QVERIFY( mLogsViewManager->mBackgroundStartupWatcher );
       
   134     HbStubHelper::reset();
       
   135     QtHighwayStubHelper::reset();
   114 }
   136 }
   115 
   137 
   116 
   138 
   117 void UT_LogsViewManager::testActivateView()
   139 void UT_LogsViewManager::testActivateView()
   118 {
   140 {
   245     mLogsViewManager->proceedExit();
   267     mLogsViewManager->proceedExit();
   246     QVERIFY( HbStubHelper::quitCalled() );
   268     QVERIFY( HbStubHelper::quitCalled() );
   247     QVERIFY( !mLogsViewManager->mComponentsRepository->model()->mCompressCalled );
   269     QVERIFY( !mLogsViewManager->mComponentsRepository->model()->mCompressCalled );
   248     
   270     
   249     // Fake exit enabled, data is compressed, app hidden and activity saved
   271     // Fake exit enabled, data is compressed, app hidden and activity saved
   250     LogsApplication* app = static_cast<LogsApplication*>( qApp );
   272     mSettings->mFeatureFakeExitEnabledVal = 1;
   251     app->mFeatureFakeExitEnabled = true;
       
   252     HbStubHelper::reset();
   273     HbStubHelper::reset();
   253     mLogsViewManager->mComponentsRepository->model()->mCompressCalled = false;
   274     mLogsViewManager->mComponentsRepository->model()->mCompressCalled = false;
   254     QtHighwayStubHelper::reset();
   275     QtHighwayStubHelper::reset();
       
   276     HbApplication* app = static_cast<HbApplication*>( qApp );
   255     QCOMPARE( app->activityManager()->activities().count(), 0 );
   277     QCOMPARE( app->activityManager()->activities().count(), 0 );
   256     mLogsViewManager->exitApplication();
   278     mLogsViewManager->exitApplication();
   257     QVERIFY( !HbStubHelper::quitCalled() );
   279     QVERIFY( !HbStubHelper::quitCalled() );
   258     QVERIFY( QtHighwayStubHelper::utilToBackground() );
   280     QVERIFY( QtHighwayStubHelper::utilToBackground() );
   259     QVERIFY( mLogsViewManager->mComponentsRepository->model()->mCompressCalled );
   281     QVERIFY( mLogsViewManager->mComponentsRepository->model()->mCompressCalled );
   270     LogsMainWindow window;
   292     LogsMainWindow window;
   271     window.setCurrentView(0); // clear stub static data
   293     window.setCurrentView(0); // clear stub static data
   272     LogsServiceHandler service;
   294     LogsServiceHandler service;
   273     LogsServiceHandlerOld serviceOld;
   295     LogsServiceHandlerOld serviceOld;
   274     service.mIsAppStartedUsingService = true;
   296     service.mIsAppStartedUsingService = true;
   275     LogsViewManager vm(window, service, serviceOld);
   297     LogsViewManager vm(window, service, serviceOld, *mSettings);
   276     QVERIFY( vm.mComponentsRepository );
   298     QVERIFY( vm.mComponentsRepository );
   277     QVERIFY( vm.mMainWindow.views().count() == 0 );
   299     QVERIFY( vm.mMainWindow.views().count() == 0 );
   278     QVERIFY( vm.mMainWindow.currentView() == 0 );
   300     QVERIFY( vm.mMainWindow.currentView() == 0 );
   279     QVERIFY( vm.mViewStack.count() == 0 );
   301     QVERIFY( vm.mViewStack.count() == 0 );
   280 }
   302 }
   377     emit mLogsViewManager->mViewStack.at(0)->exitAllowed();
   399     emit mLogsViewManager->mViewStack.at(0)->exitAllowed();
   378     QVERIFY( !HbStubHelper::quitCalled() );
   400     QVERIFY( !HbStubHelper::quitCalled() );
   379     QVERIFY( !mLogsViewManager->mComponentsRepository->model()->mRefreshCalled );
   401     QVERIFY( !mLogsViewManager->mComponentsRepository->model()->mRefreshCalled );
   380     
   402     
   381     // Gaining foreground causes data refresh if fake exit or preloading feature is enabled
   403     // Gaining foreground causes data refresh if fake exit or preloading feature is enabled
   382     HbStubHelper::reset();
   404     // If no view activated yet, default view is activated
   383     LogsApplication* app = static_cast<LogsApplication*>( qApp );
   405     HbStubHelper::reset();
   384     app->mFeatureFakeExitEnabled = true;
   406     mMainWindow->setCurrentView(0);
       
   407     mLogsViewManager->mViewStack.clear();
       
   408     mSettings->mFeatureFakeExitEnabledVal = 1;
   385     mLogsViewManager->appGainedForeground();
   409     mLogsViewManager->appGainedForeground();
   386     QVERIFY( mLogsViewManager->mComponentsRepository->model()->mRefreshCalled );
   410     QVERIFY( mLogsViewManager->mComponentsRepository->model()->mRefreshCalled );
   387     QVERIFY( HbStubHelper::isTsTaskVisibilitySet() );
   411     QVERIFY( HbStubHelper::isTsTaskVisibilitySet() );
   388     QVERIFY( HbStubHelper::tsTaskVisibility() );
   412     QVERIFY( HbStubHelper::tsTaskVisibility() );
       
   413     QVERIFY( mMainWindow->currentView() != 0 );
       
   414     QCOMPARE( mLogsViewManager->mViewStack.count(), 1 );
   389     
   415     
   390     HbStubHelper::reset();
   416     HbStubHelper::reset();
   391     mLogsViewManager->mComponentsRepository->model()->mRefreshCalled = false;
   417     mLogsViewManager->mComponentsRepository->model()->mRefreshCalled = false;
   392     app->mFeatureFakeExitEnabled = false;
   418     mSettings->mFeatureFakeExitEnabledVal = 0;
   393     app->mFeaturePreloadedEnabled = true;
   419     mSettings->mFeaturePreloadedEnabled = true;
   394     mLogsViewManager->appGainedForeground();
   420     mLogsViewManager->appGainedForeground();
   395     QVERIFY( mLogsViewManager->mComponentsRepository->model()->mRefreshCalled );
   421     QVERIFY( mLogsViewManager->mComponentsRepository->model()->mRefreshCalled );
   396     QVERIFY( HbStubHelper::isTsTaskVisibilitySet() );
   422     QVERIFY( HbStubHelper::isTsTaskVisibilitySet() );
   397     QVERIFY( HbStubHelper::tsTaskVisibility() );
   423     QVERIFY( HbStubHelper::tsTaskVisibility() );
   398 }
   424 }
   419     QVERIFY( static_cast<LogsBaseView*>( mLogsViewManager->mMainWindow.currentView() )->viewId() == LogsRecentViewId );
   445     QVERIFY( static_cast<LogsBaseView*>( mLogsViewManager->mMainWindow.currentView() )->viewId() == LogsRecentViewId );
   420     QVERIFY( !mLogsViewManager->mComponentsRepository->dialpad()->mIsOpen );
   446     QVERIFY( !mLogsViewManager->mComponentsRepository->dialpad()->mIsOpen );
   421     QCOMPARE( mLogsViewManager->mComponentsRepository->dialpad()->mLineEdit->text(), QString("") );
   447     QCOMPARE( mLogsViewManager->mComponentsRepository->dialpad()->mLineEdit->text(), QString("") );
   422     QVERIFY( HbStubHelper::isWidgetRaised() );
   448     QVERIFY( HbStubHelper::isWidgetRaised() );
   423 }
   449 }
       
   450 
       
   451 void UT_LogsViewManager::testBgStartupForegroundGained()
       
   452 {
       
   453     if ( !mLogsViewManager->mBackgroundStartupWatcher ){
       
   454         mLogsViewManager->mBackgroundStartupWatcher = new LogsForegroundWatcher();
       
   455     }
       
   456     HbStubHelper::reset();
       
   457     mLogsViewManager->mComponentsRepository->model()->mRefreshCalled = false;
       
   458     mSettings->mFeaturePreloadedEnabled = true;
       
   459     mLogsViewManager->bgStartupForegroundGained();
       
   460     QVERIFY( mLogsViewManager->mComponentsRepository->model()->mRefreshCalled );
       
   461     QVERIFY( HbStubHelper::isTsTaskVisibilitySet() );
       
   462     QVERIFY( HbStubHelper::tsTaskVisibility() );
       
   463     QVERIFY( HbStubHelper::isWidgetRaised() );
       
   464 }