diff -r 33a5d2bbf6fc -r 73a1feb507fb mmsharing/livecommsui/lcui/tsrc/ut_lcui/src/ut_lcviewmanager.cpp --- /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 +#include +#include +#include +#include +#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