mmsharing/livecommsui/lcui/tsrc/ut_lcui/src/ut_lcviewmanager.cpp
branchRCL_3
changeset 22 73a1feb507fb
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mmsharing/livecommsui/lcui/tsrc/ut_lcui/src/ut_lcviewmanager.cpp	Tue Aug 31 15:12:07 2010 +0300
@@ -0,0 +1,195 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+#include <QtTest/QtTest>
+#include <hbmainwindow.h>
+#include <hbview.h>
+#include <hbactivitymanager.h>
+#include <HbApplication>
+#include "ut_lcviewmanager.h"         
+#include "lcviewmanager.h" 
+#include "lcviewmanager_p.h" 
+#include "ut_lcuidefs.h"
+#include "lcuiengine.h"
+#include "lcuidefs.h"
+
+// Simulate completion of queued view change
+#define LC_VIEW_CHANGE_COMPLETE( startup ) \
+mViewManager->activateCurrentView( startup );
+
+void UT_LcUiViewManager::initTestCase()
+{
+    lcutStub_LcUiEngine_reset();
+
+}
+
+void UT_LcUiViewManager::cleanupTestCase()
+{
+    lcutStub_LcUiEngine_reset();
+
+}
+
+void UT_LcUiViewManager::init()
+{
+    lcutStub_LcUiEngine_reset();
+    
+    mViewManagerDecorator = new LcViewManager( lcEngineName, lcDisplayName ); 
+    mViewManager = mViewManagerDecorator->d_ptr; 
+}
+
+void UT_LcUiViewManager::cleanup()
+{
+    lcutStub_LcUiEngine_reset();
+    delete mViewManagerDecorator;
+}
+
+void UT_LcUiViewManager::testConstructor()
+{
+    QVERIFY( mViewManager );
+    QVERIFY( mViewManager->mRepository );
+    QVERIFY( mViewManager->mEngine );
+    QVERIFY( mViewManager->mMainWindow.viewCount() == 1 );
+    QVERIFY( lcutStub_LcUiEngine_expectCall( lcutNoCall ) );
+    
+}
+
+void UT_LcUiViewManager::testChangeView()
+{
+    QVERIFY( mViewManager );
+    QVERIFY( mViewManager->mMainWindow.viewCount() == 1 );
+    
+    mViewManager->changeView();
+    LC_VIEW_CHANGE_COMPLETE( false )
+    QVERIFY( mViewManager->mMainWindow.viewCount() == 1 );
+    QVERIFY( mViewManager->mMainWindow.currentView()->objectName() == lcViewIdleId );
+    
+    QVERIFY( lcutStub_LcUiEngine_expectCall( lcutStub_LcUiEngine_updateSession, 0 ) );
+    QVERIFY( lcutStub_LcUiEngine_expectCall( lcutStub_LcUiEngine_setOrientation, 1 ) );
+    QVERIFY( lcutStub_LcUiEngine_expectCall( lcutStub_LcUiEngine_setContentAreas, 2 ) );
+    lcutStub_LcUiEngine_reset();
+    
+    LC_VIEW_CHANGE_COMPLETE( true )
+    QVERIFY( mViewManager->mMainWindow.viewCount() == 1 );
+    QVERIFY( lcutStub_LcUiEngine_expectCall( lcutStub_LcUiEngine_start ) );
+    lcutStub_LcUiEngine_reset();
+
+    lcutStub_LcUiEngine_setLayout( Lc_ReceivedViewLayout );
+    mViewManager->changeView();
+    LC_VIEW_CHANGE_COMPLETE( false )
+    QVERIFY( mViewManager->mMainWindow.viewCount() == 2 );
+    QVERIFY( mViewManager->mMainWindow.currentView()->objectName() == lcViewReceiveId );
+    QVERIFY( lcutStub_LcUiEngine_expectCall( lcutStub_LcUiEngine_updateSession, 0 ) );
+    QVERIFY( lcutStub_LcUiEngine_expectCall( lcutStub_LcUiEngine_setOrientation, 1 ) );
+    QVERIFY( lcutStub_LcUiEngine_expectCall( lcutStub_LcUiEngine_setContentAreas, 2 ) );
+    lcutStub_LcUiEngine_reset();
+    
+    lcutStub_LcUiEngine_setLayout( Lc_SharedViewLayout );
+    mViewManager->changeView();
+    LC_VIEW_CHANGE_COMPLETE( false )
+    QVERIFY( mViewManager->mMainWindow.viewCount() == 3 );
+    QVERIFY( mViewManager->mMainWindow.currentView()->objectName() == lcViewSendId );
+    QVERIFY( lcutStub_LcUiEngine_expectCall( lcutStub_LcUiEngine_updateSession, 0 ) );
+    QVERIFY( lcutStub_LcUiEngine_expectCall( lcutStub_LcUiEngine_setOrientation, 1 ) );
+    QVERIFY( lcutStub_LcUiEngine_expectCall( lcutStub_LcUiEngine_setContentAreas, 2 ) );
+    lcutStub_LcUiEngine_reset();
+
+    lcutStub_LcUiEngine_setLayout( Lc_TwowayViewLayout );
+    mViewManager->changeView();
+    QVERIFY( mViewManager->mMainWindow.viewCount() == 4 );
+    QVERIFY( mViewManager->mMainWindow.currentView()->objectName() == lcViewTwowayId );
+    QVERIFY( lcutStub_LcUiEngine_expectCall( lcutStub_LcUiEngine_setContentAreas ) );
+    lcutStub_LcUiEngine_reset();
+
+    lcutStub_LcUiEngine_setLayout( Lc_ReceivedOnlyViewLayout );
+    mViewManager->changeView();
+    QVERIFY( mViewManager->mMainWindow.viewCount() == 5 );
+    QVERIFY( mViewManager->mMainWindow.currentView()->objectName() == lcViewReceiveOnlyId );
+    QVERIFY( lcutStub_LcUiEngine_expectCall( lcutStub_LcUiEngine_setContentAreas ) );
+    lcutStub_LcUiEngine_reset();
+    
+    lcutStub_LcUiEngine_setLayout( Lc_AllInOneViewLayout );
+    mViewManager->changeView();
+    LC_VIEW_CHANGE_COMPLETE( false )
+    QVERIFY( mViewManager->mMainWindow.viewCount() == 6 );
+    QVERIFY( mViewManager->mMainWindow.currentView()->objectName() == lcViewAllInOneId );
+    QVERIFY( lcutStub_LcUiEngine_expectCall( lcutStub_LcUiEngine_updateSession, 0 ) );
+    QVERIFY( lcutStub_LcUiEngine_expectCall( lcutStub_LcUiEngine_setOrientation, 1 ) );
+    QVERIFY( lcutStub_LcUiEngine_expectCall( lcutStub_LcUiEngine_setContentAreas, 2 ) );
+    lcutStub_LcUiEngine_reset();
+    
+    lcutStub_LcUiEngine_setLayout( (LcViewLayoutHint)777 );
+    mViewManager->changeView();
+    LC_VIEW_CHANGE_COMPLETE( false )
+    QVERIFY( mViewManager->mMainWindow.viewCount() == 6 );
+    QVERIFY( mViewManager->mMainWindow.currentView()->objectName() == lcViewIdleId );    
+    QVERIFY( lcutStub_LcUiEngine_expectCall( lcutStub_LcUiEngine_updateSession, 0 ) );
+    QVERIFY( lcutStub_LcUiEngine_expectCall( lcutStub_LcUiEngine_setOrientation, 1 ) );
+    QVERIFY( lcutStub_LcUiEngine_expectCall( lcutStub_LcUiEngine_setContentAreas, 2 ) );
+    lcutStub_LcUiEngine_reset();
+    
+}
+
+void UT_LcUiViewManager::testTerminateSession()
+{
+    QVERIFY( lcutStub_LcUiEngine_expectCall( lcutNoCall ) );
+    mViewManager->terminateSession();
+    QVERIFY( lcutStub_LcUiEngine_expectCall( lcutStub_LcUiEngine_stop ) );
+    
+    
+    lcutStub_LcUiEngine_reset();
+    QVERIFY( lcutStub_LcUiEngine_expectCall( lcutNoCall ) );
+    mViewManagerDecorator->terminateSession();
+    QVERIFY( lcutStub_LcUiEngine_expectCall( lcutStub_LcUiEngine_stop ) );
+}
+
+void UT_LcUiViewManager::testPrepareOrientationChange()
+{
+    mViewManager->prepareOrientationChange();
+}
+
+void UT_LcUiViewManager::testMainWindowEvent()
+{
+     QSignalSpy spy( &mViewManager->mMainWindow, SIGNAL(appFocusGained()) );
+     // Not interesting event
+     QEvent event(QEvent::MaxUser);
+     mViewManager->mMainWindow.eventFilter(0, &event);
+     QVERIFY( spy.count() == 0 );
+     
+     // Focus in event
+     QEvent event2(QEvent::ApplicationActivate);
+     mViewManager->mMainWindow.eventFilter(0, &event2);
+     QVERIFY( spy.count() == 1 );
+      
+     // test: Complete focus lost
+     QSignalSpy spy2( &mViewManager->mMainWindow, SIGNAL(appFocusLost()) );
+     // Focus in event
+     QEvent event3(QEvent::ApplicationDeactivate);
+     mViewManager->mMainWindow.mSurface = 0;
+     mViewManager->mMainWindow.eventFilter(0, &event3);
+     QVERIFY( spy2.count() == 1 );
+     
+     // test: partial focus lost i.e. in case of golbal popup.
+     QSignalSpy spy3( &mViewManager->mMainWindow, SIGNAL(appFocusLost()) );
+     // Partial focus in event i.e. Global popup
+     QEvent event4(QEvent::ApplicationDeactivate);
+     QWindowSurface surf;
+     mViewManager->mMainWindow.mSurface = &surf;
+     mViewManager->mMainWindow.eventFilter(0, &event4);
+     QVERIFY( spy3.count() == 0 );
+}
+
+// end of file