--- /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