mmsharing/livecommsui/lcui/tsrc/ut_lcui/src/ut_lcviewmanager.cpp
branchRCL_3
changeset 33 bc78a40cd63c
parent 32 73a1feb507fb
child 35 6c57ef9392d2
equal deleted inserted replaced
32:73a1feb507fb 33:bc78a40cd63c
     1 /*
       
     2 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:
       
    15 *
       
    16 */
       
    17 
       
    18 #include <QtTest/QtTest>
       
    19 #include <hbmainwindow.h>
       
    20 #include <hbview.h>
       
    21 #include <hbactivitymanager.h>
       
    22 #include <HbApplication>
       
    23 #include "ut_lcviewmanager.h"         
       
    24 #include "lcviewmanager.h" 
       
    25 #include "lcviewmanager_p.h" 
       
    26 #include "ut_lcuidefs.h"
       
    27 #include "lcuiengine.h"
       
    28 #include "lcuidefs.h"
       
    29 
       
    30 // Simulate completion of queued view change
       
    31 #define LC_VIEW_CHANGE_COMPLETE( startup ) \
       
    32 mViewManager->activateCurrentView( startup );
       
    33 
       
    34 void UT_LcUiViewManager::initTestCase()
       
    35 {
       
    36     lcutStub_LcUiEngine_reset();
       
    37 
       
    38 }
       
    39 
       
    40 void UT_LcUiViewManager::cleanupTestCase()
       
    41 {
       
    42     lcutStub_LcUiEngine_reset();
       
    43 
       
    44 }
       
    45 
       
    46 void UT_LcUiViewManager::init()
       
    47 {
       
    48     lcutStub_LcUiEngine_reset();
       
    49     
       
    50     mViewManagerDecorator = new LcViewManager( lcEngineName, lcDisplayName ); 
       
    51     mViewManager = mViewManagerDecorator->d_ptr; 
       
    52 }
       
    53 
       
    54 void UT_LcUiViewManager::cleanup()
       
    55 {
       
    56     lcutStub_LcUiEngine_reset();
       
    57     delete mViewManagerDecorator;
       
    58 }
       
    59 
       
    60 void UT_LcUiViewManager::testConstructor()
       
    61 {
       
    62     QVERIFY( mViewManager );
       
    63     QVERIFY( mViewManager->mRepository );
       
    64     QVERIFY( mViewManager->mEngine );
       
    65     QVERIFY( mViewManager->mMainWindow.viewCount() == 1 );
       
    66     QVERIFY( lcutStub_LcUiEngine_expectCall( lcutNoCall ) );
       
    67     
       
    68 }
       
    69 
       
    70 void UT_LcUiViewManager::testChangeView()
       
    71 {
       
    72     QVERIFY( mViewManager );
       
    73     QVERIFY( mViewManager->mMainWindow.viewCount() == 1 );
       
    74     
       
    75     mViewManager->changeView();
       
    76     LC_VIEW_CHANGE_COMPLETE( false )
       
    77     QVERIFY( mViewManager->mMainWindow.viewCount() == 1 );
       
    78     QVERIFY( mViewManager->mMainWindow.currentView()->objectName() == lcViewIdleId );
       
    79     
       
    80     QVERIFY( lcutStub_LcUiEngine_expectCall( lcutStub_LcUiEngine_updateSession, 0 ) );
       
    81     QVERIFY( lcutStub_LcUiEngine_expectCall( lcutStub_LcUiEngine_setOrientation, 1 ) );
       
    82     QVERIFY( lcutStub_LcUiEngine_expectCall( lcutStub_LcUiEngine_setContentAreas, 2 ) );
       
    83     lcutStub_LcUiEngine_reset();
       
    84     
       
    85     LC_VIEW_CHANGE_COMPLETE( true )
       
    86     QVERIFY( mViewManager->mMainWindow.viewCount() == 1 );
       
    87     QVERIFY( lcutStub_LcUiEngine_expectCall( lcutStub_LcUiEngine_start ) );
       
    88     lcutStub_LcUiEngine_reset();
       
    89 
       
    90     lcutStub_LcUiEngine_setLayout( Lc_ReceivedViewLayout );
       
    91     mViewManager->changeView();
       
    92     LC_VIEW_CHANGE_COMPLETE( false )
       
    93     QVERIFY( mViewManager->mMainWindow.viewCount() == 2 );
       
    94     QVERIFY( mViewManager->mMainWindow.currentView()->objectName() == lcViewReceiveId );
       
    95     QVERIFY( lcutStub_LcUiEngine_expectCall( lcutStub_LcUiEngine_updateSession, 0 ) );
       
    96     QVERIFY( lcutStub_LcUiEngine_expectCall( lcutStub_LcUiEngine_setOrientation, 1 ) );
       
    97     QVERIFY( lcutStub_LcUiEngine_expectCall( lcutStub_LcUiEngine_setContentAreas, 2 ) );
       
    98     lcutStub_LcUiEngine_reset();
       
    99     
       
   100     lcutStub_LcUiEngine_setLayout( Lc_SharedViewLayout );
       
   101     mViewManager->changeView();
       
   102     LC_VIEW_CHANGE_COMPLETE( false )
       
   103     QVERIFY( mViewManager->mMainWindow.viewCount() == 3 );
       
   104     QVERIFY( mViewManager->mMainWindow.currentView()->objectName() == lcViewSendId );
       
   105     QVERIFY( lcutStub_LcUiEngine_expectCall( lcutStub_LcUiEngine_updateSession, 0 ) );
       
   106     QVERIFY( lcutStub_LcUiEngine_expectCall( lcutStub_LcUiEngine_setOrientation, 1 ) );
       
   107     QVERIFY( lcutStub_LcUiEngine_expectCall( lcutStub_LcUiEngine_setContentAreas, 2 ) );
       
   108     lcutStub_LcUiEngine_reset();
       
   109 
       
   110     lcutStub_LcUiEngine_setLayout( Lc_TwowayViewLayout );
       
   111     mViewManager->changeView();
       
   112     QVERIFY( mViewManager->mMainWindow.viewCount() == 4 );
       
   113     QVERIFY( mViewManager->mMainWindow.currentView()->objectName() == lcViewTwowayId );
       
   114     QVERIFY( lcutStub_LcUiEngine_expectCall( lcutStub_LcUiEngine_setContentAreas ) );
       
   115     lcutStub_LcUiEngine_reset();
       
   116 
       
   117     lcutStub_LcUiEngine_setLayout( Lc_ReceivedOnlyViewLayout );
       
   118     mViewManager->changeView();
       
   119     QVERIFY( mViewManager->mMainWindow.viewCount() == 5 );
       
   120     QVERIFY( mViewManager->mMainWindow.currentView()->objectName() == lcViewReceiveOnlyId );
       
   121     QVERIFY( lcutStub_LcUiEngine_expectCall( lcutStub_LcUiEngine_setContentAreas ) );
       
   122     lcutStub_LcUiEngine_reset();
       
   123     
       
   124     lcutStub_LcUiEngine_setLayout( Lc_AllInOneViewLayout );
       
   125     mViewManager->changeView();
       
   126     LC_VIEW_CHANGE_COMPLETE( false )
       
   127     QVERIFY( mViewManager->mMainWindow.viewCount() == 6 );
       
   128     QVERIFY( mViewManager->mMainWindow.currentView()->objectName() == lcViewAllInOneId );
       
   129     QVERIFY( lcutStub_LcUiEngine_expectCall( lcutStub_LcUiEngine_updateSession, 0 ) );
       
   130     QVERIFY( lcutStub_LcUiEngine_expectCall( lcutStub_LcUiEngine_setOrientation, 1 ) );
       
   131     QVERIFY( lcutStub_LcUiEngine_expectCall( lcutStub_LcUiEngine_setContentAreas, 2 ) );
       
   132     lcutStub_LcUiEngine_reset();
       
   133     
       
   134     lcutStub_LcUiEngine_setLayout( (LcViewLayoutHint)777 );
       
   135     mViewManager->changeView();
       
   136     LC_VIEW_CHANGE_COMPLETE( false )
       
   137     QVERIFY( mViewManager->mMainWindow.viewCount() == 6 );
       
   138     QVERIFY( mViewManager->mMainWindow.currentView()->objectName() == lcViewIdleId );    
       
   139     QVERIFY( lcutStub_LcUiEngine_expectCall( lcutStub_LcUiEngine_updateSession, 0 ) );
       
   140     QVERIFY( lcutStub_LcUiEngine_expectCall( lcutStub_LcUiEngine_setOrientation, 1 ) );
       
   141     QVERIFY( lcutStub_LcUiEngine_expectCall( lcutStub_LcUiEngine_setContentAreas, 2 ) );
       
   142     lcutStub_LcUiEngine_reset();
       
   143     
       
   144 }
       
   145 
       
   146 void UT_LcUiViewManager::testTerminateSession()
       
   147 {
       
   148     QVERIFY( lcutStub_LcUiEngine_expectCall( lcutNoCall ) );
       
   149     mViewManager->terminateSession();
       
   150     QVERIFY( lcutStub_LcUiEngine_expectCall( lcutStub_LcUiEngine_stop ) );
       
   151     
       
   152     
       
   153     lcutStub_LcUiEngine_reset();
       
   154     QVERIFY( lcutStub_LcUiEngine_expectCall( lcutNoCall ) );
       
   155     mViewManagerDecorator->terminateSession();
       
   156     QVERIFY( lcutStub_LcUiEngine_expectCall( lcutStub_LcUiEngine_stop ) );
       
   157 }
       
   158 
       
   159 void UT_LcUiViewManager::testPrepareOrientationChange()
       
   160 {
       
   161     mViewManager->prepareOrientationChange();
       
   162 }
       
   163 
       
   164 void UT_LcUiViewManager::testMainWindowEvent()
       
   165 {
       
   166      QSignalSpy spy( &mViewManager->mMainWindow, SIGNAL(appFocusGained()) );
       
   167      // Not interesting event
       
   168      QEvent event(QEvent::MaxUser);
       
   169      mViewManager->mMainWindow.eventFilter(0, &event);
       
   170      QVERIFY( spy.count() == 0 );
       
   171      
       
   172      // Focus in event
       
   173      QEvent event2(QEvent::ApplicationActivate);
       
   174      mViewManager->mMainWindow.eventFilter(0, &event2);
       
   175      QVERIFY( spy.count() == 1 );
       
   176       
       
   177      // test: Complete focus lost
       
   178      QSignalSpy spy2( &mViewManager->mMainWindow, SIGNAL(appFocusLost()) );
       
   179      // Focus in event
       
   180      QEvent event3(QEvent::ApplicationDeactivate);
       
   181      mViewManager->mMainWindow.mSurface = 0;
       
   182      mViewManager->mMainWindow.eventFilter(0, &event3);
       
   183      QVERIFY( spy2.count() == 1 );
       
   184      
       
   185      // test: partial focus lost i.e. in case of golbal popup.
       
   186      QSignalSpy spy3( &mViewManager->mMainWindow, SIGNAL(appFocusLost()) );
       
   187      // Partial focus in event i.e. Global popup
       
   188      QEvent event4(QEvent::ApplicationDeactivate);
       
   189      QWindowSurface surf;
       
   190      mViewManager->mMainWindow.mSurface = &surf;
       
   191      mViewManager->mMainWindow.eventFilter(0, &event4);
       
   192      QVERIFY( spy3.count() == 0 );
       
   193 }
       
   194 
       
   195 // end of file