logsui/logsapp/tsrc/ut_logsapp/src/ut_logsviewmanager.cpp
changeset 18 acd4e87b24b4
parent 17 90fe74753f71
child 21 2f0af9ba7665
--- a/logsui/logsapp/tsrc/ut_logsapp/src/ut_logsviewmanager.cpp	Fri Sep 03 14:26:05 2010 +0300
+++ b/logsui/logsapp/tsrc/ut_logsapp/src/ut_logsviewmanager.cpp	Fri Sep 17 16:47:32 2010 +0300
@@ -28,7 +28,9 @@
 #include "hbstubs_helper.h"
 #include "logscontact.h"
 #include "qthighway_stub_helper.h"
-#include "logsapplication.h"
+#include "hbapplication.h"
+#include "logsappsettings.h"
+#include "logsforegroundwatcher.h"
 
 //SYSTEM
 #include <QtTest/QtTest>
@@ -50,8 +52,11 @@
 {
     mMainWindow =  new LogsMainWindow();
     mService = new LogsServiceHandler();
-    mServiceOld = new LogsServiceHandlerOld();
-    mLogsViewManager = new LogsViewManager(*mMainWindow, *mService, *mServiceOld);
+    mServiceOld = new LogsServiceHandlerOld();  
+    int argc = 0;
+    char* argv = 0;
+    mSettings = new LogsAppSettings(argc, &argv);
+    mLogsViewManager = new LogsViewManager(*mMainWindow, *mService, *mServiceOld, *mSettings);
 }
 
 void UT_LogsViewManager::cleanup()
@@ -64,9 +69,8 @@
     mServiceOld = 0;
     delete mMainWindow;
     mMainWindow = 0;
-    LogsApplication* app = static_cast<LogsApplication*>( qApp );
-    app->mFeatureFakeExitEnabled = false;
-    app->mFeaturePreloadedEnabled = false;
+    delete mSettings;
+    mSettings = 0;
     
 }
 
@@ -78,7 +82,7 @@
     QVERIFY( mLogsViewManager->mMainWindow.currentView() != 0 );
     QVERIFY( static_cast<LogsBaseView*>( mLogsViewManager->mMainWindow.currentView() )->viewId() == LogsRecentViewId );
     QVERIFY( mLogsViewManager->mViewStack.count() == 1 );
-    QVERIFY( !mLogsViewManager->mComponentsRepository->model()->mRefreshCalled );
+    QVERIFY( mLogsViewManager->mComponentsRepository->model()->mRefreshCalled );
     
     delete mLogsViewManager;
     mLogsViewManager = 0;
@@ -88,7 +92,7 @@
     mMainWindow = 0;
     mMainWindow = new LogsMainWindow();
     HbStubHelper::setActivityReason(Hb::ActivationReasonActivity);
-    mLogsViewManager = new LogsViewManager(*mMainWindow, *mService, *mServiceOld);
+    mLogsViewManager = new LogsViewManager(*mMainWindow, *mService, *mServiceOld, *mSettings);
     QVERIFY( mLogsViewManager->mComponentsRepository );
     QVERIFY( static_cast<LogsBaseView*>( mLogsViewManager->mMainWindow.currentView() )->viewId() == LogsRecentViewId );
     QVERIFY( mLogsViewManager->mViewStack.count() == 1 );
@@ -103,14 +107,32 @@
     QtHighwayStubHelper::setIsService(true);
     LogsServiceHandler* handler2 = new LogsServiceHandler();
     mLogsViewManager->mComponentsRepository->model()->mRefreshCalled = false;
-    mLogsViewManager = new LogsViewManager(*mMainWindow, *handler2, *mServiceOld);
+    mLogsViewManager = new LogsViewManager(*mMainWindow, *handler2, *mServiceOld, *mSettings);
     QVERIFY( mLogsViewManager->mComponentsRepository );
     QVERIFY( static_cast<LogsBaseView*>( mLogsViewManager->mMainWindow.currentView() )->viewId() == LogsRecentViewId );
     QVERIFY( mLogsViewManager->mViewStack.count() == 0 ); // Waiting for signal
     QVERIFY( mLogsViewManager->mComponentsRepository->model()->mRefreshCalled );
+    QVERIFY( !mLogsViewManager->mBackgroundStartupWatcher );
     HbStubHelper::reset();
     QtHighwayStubHelper::reset();
     delete handler2;
+    
+    // Preloading startup
+    mSettings->mFeaturePreloadedEnabled = true;
+    delete mMainWindow;
+    mMainWindow = 0;
+    mMainWindow = new LogsMainWindow();
+    mLogsViewManager->mComponentsRepository->model()->mRefreshCalled = false;
+    mLogsViewManager = new LogsViewManager(*mMainWindow, *mService, *mServiceOld, *mSettings);
+    QVERIFY( mLogsViewManager->mComponentsRepository );
+    QVERIFY( static_cast<LogsBaseView*>( mLogsViewManager->mMainWindow.currentView() )->viewId() == LogsRecentViewId );
+    QVERIFY( mLogsViewManager->mViewStack.count() == 0 ); // Waiting for coming to foreground
+    QVERIFY( !mLogsViewManager->mComponentsRepository->model()->mRefreshCalled );
+    QVERIFY( HbStubHelper::isTsTaskVisibilitySet() );
+    QVERIFY( !HbStubHelper::tsTaskVisibility() );
+    QVERIFY( mLogsViewManager->mBackgroundStartupWatcher );
+    HbStubHelper::reset();
+    QtHighwayStubHelper::reset();
 }
 
 
@@ -247,11 +269,11 @@
     QVERIFY( !mLogsViewManager->mComponentsRepository->model()->mCompressCalled );
     
     // Fake exit enabled, data is compressed, app hidden and activity saved
-    LogsApplication* app = static_cast<LogsApplication*>( qApp );
-    app->mFeatureFakeExitEnabled = true;
+    mSettings->mFeatureFakeExitEnabledVal = 1;
     HbStubHelper::reset();
     mLogsViewManager->mComponentsRepository->model()->mCompressCalled = false;
     QtHighwayStubHelper::reset();
+    HbApplication* app = static_cast<HbApplication*>( qApp );
     QCOMPARE( app->activityManager()->activities().count(), 0 );
     mLogsViewManager->exitApplication();
     QVERIFY( !HbStubHelper::quitCalled() );
@@ -272,7 +294,7 @@
     LogsServiceHandler service;
     LogsServiceHandlerOld serviceOld;
     service.mIsAppStartedUsingService = true;
-    LogsViewManager vm(window, service, serviceOld);
+    LogsViewManager vm(window, service, serviceOld, *mSettings);
     QVERIFY( vm.mComponentsRepository );
     QVERIFY( vm.mMainWindow.views().count() == 0 );
     QVERIFY( vm.mMainWindow.currentView() == 0 );
@@ -379,18 +401,22 @@
     QVERIFY( !mLogsViewManager->mComponentsRepository->model()->mRefreshCalled );
     
     // Gaining foreground causes data refresh if fake exit or preloading feature is enabled
+    // If no view activated yet, default view is activated
     HbStubHelper::reset();
-    LogsApplication* app = static_cast<LogsApplication*>( qApp );
-    app->mFeatureFakeExitEnabled = true;
+    mMainWindow->setCurrentView(0);
+    mLogsViewManager->mViewStack.clear();
+    mSettings->mFeatureFakeExitEnabledVal = 1;
     mLogsViewManager->appGainedForeground();
     QVERIFY( mLogsViewManager->mComponentsRepository->model()->mRefreshCalled );
     QVERIFY( HbStubHelper::isTsTaskVisibilitySet() );
     QVERIFY( HbStubHelper::tsTaskVisibility() );
+    QVERIFY( mMainWindow->currentView() != 0 );
+    QCOMPARE( mLogsViewManager->mViewStack.count(), 1 );
     
     HbStubHelper::reset();
     mLogsViewManager->mComponentsRepository->model()->mRefreshCalled = false;
-    app->mFeatureFakeExitEnabled = false;
-    app->mFeaturePreloadedEnabled = true;
+    mSettings->mFeatureFakeExitEnabledVal = 0;
+    mSettings->mFeaturePreloadedEnabled = true;
     mLogsViewManager->appGainedForeground();
     QVERIFY( mLogsViewManager->mComponentsRepository->model()->mRefreshCalled );
     QVERIFY( HbStubHelper::isTsTaskVisibilitySet() );
@@ -421,3 +447,18 @@
     QCOMPARE( mLogsViewManager->mComponentsRepository->dialpad()->mLineEdit->text(), QString("") );
     QVERIFY( HbStubHelper::isWidgetRaised() );
 }
+
+void UT_LogsViewManager::testBgStartupForegroundGained()
+{
+    if ( !mLogsViewManager->mBackgroundStartupWatcher ){
+        mLogsViewManager->mBackgroundStartupWatcher = new LogsForegroundWatcher();
+    }
+    HbStubHelper::reset();
+    mLogsViewManager->mComponentsRepository->model()->mRefreshCalled = false;
+    mSettings->mFeaturePreloadedEnabled = true;
+    mLogsViewManager->bgStartupForegroundGained();
+    QVERIFY( mLogsViewManager->mComponentsRepository->model()->mRefreshCalled );
+    QVERIFY( HbStubHelper::isTsTaskVisibilitySet() );
+    QVERIFY( HbStubHelper::tsTaskVisibility() );
+    QVERIFY( HbStubHelper::isWidgetRaised() );
+}