diff -r 73a1feb507fb -r bc78a40cd63c mmsharing/livecommsui/lcui/tsrc/ut_lcui/src/ut_lceffecthandler.cpp --- a/mmsharing/livecommsui/lcui/tsrc/ut_lcui/src/ut_lceffecthandler.cpp Tue Aug 31 15:12:07 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,469 +0,0 @@ -/* -* 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 "ut_lceffecthandler.h" -#include "ut_lcuidefs.h" -#include "lceffecthandler.h" -#include "lcuiengine.h" -#include "lcuidefs.h" -#include "lcvideowidget.h" -#include -#include -#include - -#define UT_SET_ORIENTATION(orient) \ -HbInstance::instance()->allMainWindows().at(0)->setOrientation(orient); - -void UT_LcEffectHandler::initTestCase() -{ - lcutStub_LcUiEngine_reset(); - //must have main window, even if it not used - mMainWindow = new HbMainWindow(); -} - -void UT_LcEffectHandler::cleanupTestCase() -{ - lcutStub_LcUiEngine_reset(); - delete mMainWindow; -} - - -void UT_LcEffectHandler::init() -{ - mEngine = new LcUiEngine( lcEngineName, lcDisplayName ); - - mSharedVideo = new LcVideoWidget(); - mSharedVideoOverlay = new LcVideoWidget(0,false); - mReceivedVideo = new LcVideoWidget(); - mReceivedVideoOverlay = new LcVideoWidget(0,false); - mEffectHandler = new LcEffectHandler( - *mEngine,mSharedVideo,mSharedVideoOverlay, - mReceivedVideo,mReceivedVideoOverlay); - -} - -void UT_LcEffectHandler::cleanup() -{ - lcutStub_LcUiEngine_reset(); - delete mEffectHandler; - delete mEngine; - delete mSharedVideo; - delete mSharedVideoOverlay; - delete mReceivedVideoOverlay; - delete mReceivedVideo; -} - -void UT_LcEffectHandler::testConstructor() -{ - QVERIFY( mEffectHandler ); -} - -void UT_LcEffectHandler::testSwap() -{ - clearWidgets(); - QSignalSpy spy( mEffectHandler, SIGNAL(loadSwapLayout()) ); - QVERIFY( !mEffectHandler->mSharedVideo ); - QVERIFY( !mEffectHandler->mReceivedVideo ); - QVERIFY( !mEffectHandler->mSwapInProgress ); - QCOMPARE( spy.count(), 0 ); - - mEffectHandler->swap(); - setWidgets(); - - QVERIFY( mEffectHandler->mSwapInProgress ); - QCOMPARE( spy.count(), 1 ); - - HbWidget* sharedVideoWidget = mEffectHandler->mSharedVideo; - HbWidget* receivedVideoWidget = mEffectHandler->mReceivedVideo; - HbWidget* sharedVideoWidget2 = mEffectHandler->mSharedVideoOverlay; - HbWidget* receivedVideoWidget2 = mEffectHandler->mReceivedVideoOverlay; - QRectF sharedOrig = mEffectHandler->mSharedVideo->geometry(); - QRectF recvOrig = mEffectHandler->mReceivedVideo->geometry(); - - // Swapping not started because other widget missing - mEffectHandler->mSwapSharedCompleted = true; - mEffectHandler->mSwapReceivedCompleted = true; - mEffectHandler->mSharedVideo = 0; - mEffectHandler->swap(); - QCOMPARE( sharedVideoWidget->geometry(), sharedOrig ); - QCOMPARE( receivedVideoWidget->geometry(), recvOrig ); - QCOMPARE( mEffectHandler->mSwapSharedCompleted, true ); - QCOMPARE( mEffectHandler->mSwapReceivedCompleted, true ); - - // Swapping not started because other widget missing - mEffectHandler->mSharedVideo = sharedVideoWidget; - mEffectHandler->mReceivedVideo = 0; - mEffectHandler->swap(); - QCOMPARE( sharedVideoWidget->geometry(), sharedOrig ); - QCOMPARE( receivedVideoWidget->geometry(), recvOrig ); - QCOMPARE( mEffectHandler->mSwapSharedCompleted, true ); - QCOMPARE( mEffectHandler->mSwapReceivedCompleted, true ); - - // Swapping started, however geometry is change only once swapping completes - mEffectHandler->mSharedVideo = sharedVideoWidget; - mEffectHandler->mReceivedVideo = receivedVideoWidget; - mEffectHandler->swap(); - - QCOMPARE( sharedVideoWidget->geometry(), sharedOrig ); - QCOMPARE( receivedVideoWidget->geometry(), recvOrig ); - QCOMPARE( mEffectHandler->mSwapSharedCompleted, false ); - QCOMPARE( mEffectHandler->mSwapReceivedCompleted, false ); - - // Swapping started, however geometry is change only once swapping completes - mEffectHandler->mSwapSharedCompleted = true; - mEffectHandler->mSwapReceivedCompleted = true; - mEffectHandler->swap(); - QCOMPARE( sharedVideoWidget->geometry(), sharedOrig ); - QCOMPARE( receivedVideoWidget->geometry(), recvOrig ); - QCOMPARE( mEffectHandler->mSwapSharedCompleted, false ); - QCOMPARE( mEffectHandler->mSwapReceivedCompleted, false ); -} - -void UT_LcEffectHandler::testShowSendWindow() -{ - // Shared video widget does not exist - setWidgets(); - HbWidget* sharedVideoWidget = mEffectHandler->mSharedVideo; - QVERIFY( sharedVideoWidget != 0 ); - sharedVideoWidget->hide(); - QVERIFY( !sharedVideoWidget->isVisible() ); - mEffectHandler->mSharedVideo = 0; - mEffectHandler->showSendWindow(); - QVERIFY( !sharedVideoWidget->isVisible() ); - - // Shared video widget exists, effects running, dont show - HbEffect::mRunning = true; - mEffectHandler->mSharedVideo = sharedVideoWidget; - mEffectHandler->showSendWindow(); - QVERIFY( !mEffectHandler->mSharedVideo->isVisible() ); - - // Shared video widget exists, show - HbEffect::mRunning = false; - mEffectHandler->mSharedVideo = sharedVideoWidget; - mEffectHandler->showSendWindow(); - QVERIFY( mEffectHandler->mSharedVideo->isVisible() ); -} - -void UT_LcEffectHandler::testHideSendWindow() -{ - // Shared video widget does not exist - setWidgets(); - HbWidget* sharedVideoWidget = mEffectHandler->mSharedVideo; - QVERIFY( sharedVideoWidget != 0 ); - mEffectHandler->mSharedVideo = 0; - mEffectHandler->hideSendWindow(); - - // Shared video widget exists, show - mEffectHandler->mSharedVideo = sharedVideoWidget; - mEffectHandler->showSendWindow(); - QVERIFY( mEffectHandler->mSharedVideo->isVisible() ); - - // Shared video widget exists, hide - mEffectHandler->hideSendWindow(); - QVERIFY( !mEffectHandler->mSharedVideo->isVisible() ); -} - -void UT_LcEffectHandler::testShowReceiveWindow() -{ - // Shared video widget does not exist - setWidgets(); - HbWidget* receivedVideoWidget = mEffectHandler->mReceivedVideo; - QVERIFY( receivedVideoWidget != 0 ); - receivedVideoWidget->hide(); - QVERIFY( !receivedVideoWidget->isVisible() ); - mEffectHandler->mReceivedVideo = 0; - mEffectHandler->showReceiveWindow(); - QVERIFY( !receivedVideoWidget->isVisible() ); - - // Received video widget exists, show - mEffectHandler->mReceivedVideo = receivedVideoWidget; - mEffectHandler->showReceiveWindow(); - QVERIFY( mEffectHandler->mReceivedVideo->isVisible() ); -} - -void UT_LcEffectHandler::testHideReceiveWindow() -{ - // Shared video widget does not exist - setWidgets(); - HbWidget* receivedVideoWidget = mEffectHandler->mReceivedVideo; - QVERIFY( receivedVideoWidget != 0 ); - mEffectHandler->mReceivedVideo = 0; - mEffectHandler->hideReceiveWindow(); - - - // Received video widget exists, show - mEffectHandler->mReceivedVideo = receivedVideoWidget; - mEffectHandler->showReceiveWindow(); - QVERIFY( mEffectHandler->mReceivedVideo->isVisible() ); - - // Receive video widget exists, hide - mEffectHandler->hideReceiveWindow(); - QVERIFY( !mEffectHandler->mReceivedVideo->isVisible() ); -} - - -// windowFlipComplete -// windowDisappearToFlipComplete -// windowDisappearComplete -// windowAppearComplete -// WindowSwapSharedComplete -// WindowSwapReceivedComplete - -void UT_LcEffectHandler::testEffectComplete() -{ - clearWidgets(); - - // Video widgets does not exist - HbEffect::EffectStatus status; - mEffectHandler->windowAppearComplete( status ); - mEffectHandler->windowDisappearComplete( status ); - mEffectHandler->windowDisappearToFlipComplete( status ); - mEffectHandler->windowFlipComplete( status ); - - setWidgets(); - - HbWidget* sharedVideoWidget = mEffectHandler->mSharedVideo; - HbWidget* receivedVideoWidget = mEffectHandler->mReceivedVideo; - sharedVideoWidget->hide(); - receivedVideoWidget->hide(); - - mEffectHandler->showSendWindow(); - mEffectHandler->windowAppearComplete( status ); - QVERIFY( sharedVideoWidget->isVisible() ); - - mEffectHandler->windowDisappearComplete( status ); - QVERIFY( sharedVideoWidget->isVisible() ); - - mEffectHandler->windowDisappearToFlipComplete( status ); - QVERIFY( !sharedVideoWidget->isVisible() ); - - lcutStub_LcUiEngine_setLocalPlaying( false ); - mEffectHandler->windowFlipComplete( status ); - QVERIFY( !sharedVideoWidget->isVisible() ); - - lcutStub_LcUiEngine_setLocalPlaying( true ); - mEffectHandler->windowFlipComplete( status ); - QVERIFY( sharedVideoWidget->isVisible() ); - - sharedVideoWidget->hide(); - receivedVideoWidget->hide(); - lcutStub_LcUiEngine_setLocalPlaying( true ); - mEffectHandler->windowFlipComplete( status ); - QVERIFY( sharedVideoWidget->isVisible() ); - - // Swapping, real video widgets are set visible only after - // both swap effects have completeded swapping completes and completion - // is also signal - - // Geomerty changes are handled by the view using DoCML's - // when swapping completes and completion is also signal - - QRectF pos1 = QRectF(5,100, 200, 200); - QRectF pos2 = QRectF(5,300, 400, 400); - mEffectHandler->mSharedVideo->setGeometry(pos1); - mEffectHandler->mReceivedVideo->setGeometry(pos2); - QSignalSpy spy( mEffectHandler, SIGNAL(swapCompleted()) ); - sharedVideoWidget->hide(); - receivedVideoWidget->hide(); - lcutStub_LcUiEngine_setLocalPlaying( true ); - mEffectHandler->windowSwapSharedComplete( status ); - QVERIFY( !sharedVideoWidget->isVisible() ); - QCOMPARE( spy.count(), 0 ); - - sharedVideoWidget->hide(); - receivedVideoWidget->hide(); - lcutStub_LcUiEngine_setRemotePlaying( true ); - mEffectHandler->windowSwapReceivedComplete( status ); - QVERIFY( receivedVideoWidget->isVisible() ); - QVERIFY( sharedVideoWidget->isVisible() ); - QCOMPARE( spy.count(), 1 ); - - // Players are disabled so even when swap completes, widgets are not set - // visible - sharedVideoWidget->hide(); - receivedVideoWidget->hide(); - lcutStub_LcUiEngine_setLocalPlaying( false ); - mEffectHandler->windowSwapSharedComplete( status ); - QVERIFY( !sharedVideoWidget->isVisible() ); - - sharedVideoWidget->hide(); - receivedVideoWidget->hide(); - lcutStub_LcUiEngine_setRemotePlaying( false ); - mEffectHandler->windowSwapReceivedComplete( status ); - QVERIFY( !receivedVideoWidget->isVisible() ); - QVERIFY( !sharedVideoWidget->isVisible() ); -} - -void UT_LcEffectHandler::testStartEffect() -{ - clearWidgets(); - - const char *effectId = "myeffect"; - const char *callBack = "mycallback"; - - QVERIFY( !mEffectHandler->mSharedVideo ); - QVERIFY( !mEffectHandler->mSharedVideoOverlay ); - mEffectHandler->startEffect( mEffectHandler->mSharedVideoOverlay,effectId, callBack); - - setWidgets(); - - QVERIFY( mEffectHandler->mSharedVideo ); - QVERIFY( mEffectHandler->mSharedVideoOverlay ); - - HbWidget* sharedVideoWidget = mEffectHandler->mSharedVideo; - HbWidget* sharedVideoWidget2 = mEffectHandler->mSharedVideoOverlay; - QRectF sharedOrig = mEffectHandler->mSharedVideo->geometry(); - - mEffectHandler->mSharedVideo = 0; - mEffectHandler->startEffect( mEffectHandler->mSharedVideoOverlay,effectId, callBack); - - mEffectHandler->mSharedVideo = sharedVideoWidget; - mEffectHandler->mSharedVideoOverlay = 0; - mEffectHandler->startEffect( mEffectHandler->mSharedVideoOverlay,effectId, callBack); - - mEffectHandler->mSharedVideo = sharedVideoWidget; - mEffectHandler->mSharedVideoOverlay = sharedVideoWidget2; - mEffectHandler->startEffect( mEffectHandler->mSharedVideoOverlay,effectId, callBack); - - QCOMPARE( sharedVideoWidget->geometry(), sharedVideoWidget2->geometry() ); -} - -void UT_LcEffectHandler::testSetVisibility() -{ - setWidgets(); - - QVERIFY( mEffectHandler->mSharedVideo ); - HbWidget* sharedVideoWidget = mEffectHandler->mSharedVideo; - sharedVideoWidget->setVisible(false); - - //If Effects are not running than we can set the visibility of widget - mEffectHandler->setVisibility(sharedVideoWidget,true); - // TODO: setvisibility temporarily NOP - /*QVERIFY( mEffectHandler->mSharedVideo->isVisible() ); - - //If Effects are running we can not set the visibility of widget. - HbEffect::mRunning = true; - mEffectHandler->setVisibility(sharedVideoWidget,false); - QVERIFY( mEffectHandler->mSharedVideo->isVisible() );*/ -} - -void UT_LcEffectHandler::testSetDissappearEffect() -{ - QCOMPARE( mEffectHandler->mEffectCallBack, - QString::fromAscii(lcEffectWinDefaultCallback )); - mEffectHandler->setDissappearEffect(LcEffectHandler::DissappearToFlip ); - QCOMPARE( mEffectHandler->mEffectCallBack, - QString::fromAscii("windowDisappearToFlipComplete" )); - mEffectHandler->setDissappearEffect(LcEffectHandler::NormalDissappear ); - QCOMPARE( mEffectHandler->mEffectCallBack, - QString::fromAscii("windowDisappearComplete" )); -} - -void UT_LcEffectHandler::testIsSharedVideoAtTop() -{ - setWidgets(); - - QRectF pos1 = QRectF(5,100, 200, 200); - QRectF pos2 = QRectF(5,300, 400, 400); - mEffectHandler->mSharedVideo->setGeometry(pos1); - mEffectHandler->mReceivedVideo->setGeometry(pos2); - - QVERIFY( mEffectHandler->isSharedVideoAtTop() ); - - mEffectHandler->mSharedVideo->setGeometry(pos2); - mEffectHandler->mReceivedVideo->setGeometry(pos1); - QVERIFY( !mEffectHandler->isSharedVideoAtTop() ); - -} - -void UT_LcEffectHandler::testVideosSideBySide() -{ - setWidgets(); - QRectF pos1 = QRectF(5,100, 200, 200); - QRectF pos2 = QRectF(5,300, 400, 400); - QRectF pos3 = QRectF(5,100, 400, 400); - - mEffectHandler->mSharedVideo->setGeometry(pos1); - mEffectHandler->mReceivedVideo->setGeometry(pos2); - - QVERIFY( !mEffectHandler->videosSideBySide() ); - mEffectHandler->mReceivedVideo->setGeometry(pos3); - QVERIFY( mEffectHandler->videosSideBySide() ); -} - -void UT_LcEffectHandler::testHandleSwapCompletion() -{ - QSignalSpy spy( mEffectHandler, SIGNAL(swapCompleted()) ); - mEffectHandler->mSwapInProgress = true; - mEffectHandler->mSwapSharedCompleted = false; - mEffectHandler->mSwapReceivedCompleted = false; - - // Test1: Swap is not completed. - mEffectHandler->handleSwapCompletion(); - QVERIFY( mEffectHandler->mSwapInProgress ); - QCOMPARE( spy.count(), 0 ); - - // Test2: Swap is partially completed. - mEffectHandler->mSwapSharedCompleted = true; - mEffectHandler->handleSwapCompletion(); - QVERIFY( mEffectHandler->mSwapInProgress ); - QCOMPARE( spy.count(), 0 ); - - // Test 3. Swap Completed completely. - mEffectHandler->mSwapSharedCompleted = true; - mEffectHandler->mSwapReceivedCompleted = true; - mEffectHandler->handleSwapCompletion(); - QVERIFY( !mEffectHandler->mSwapInProgress ); - QCOMPARE( spy.count(), 1 ); - - //Test 4. Local & Remote are player are availble. - lcutStub_LcUiEngine_setLocalPlaying( true ); - lcutStub_LcUiEngine_setRemotePlaying( true ); - - mEffectHandler->handleSwapCompletion(); - QVERIFY( mEffectHandler->mSharedVideo->isVisible() ); - QVERIFY( mEffectHandler->mReceivedVideo->isVisible() ); -} - -void UT_LcEffectHandler::testIsSwapInProgress() -{ - QVERIFY( !mEffectHandler->isSwapInProgress() ); - mEffectHandler->swap(); - QVERIFY( mEffectHandler->isSwapInProgress() ); -} - - -// Helper Utility Function for the Unit Test. -void UT_LcEffectHandler::clearWidgets() -{ - mEffectHandler->mReceivedVideo = 0; - mEffectHandler->mReceivedVideoOverlay = 0; - mEffectHandler->mSharedVideo = 0; - mEffectHandler->mSharedVideoOverlay = 0; -} - -void UT_LcEffectHandler::setWidgets() -{ - mEffectHandler->mReceivedVideo = mReceivedVideo; - mEffectHandler->mReceivedVideoOverlay = mReceivedVideoOverlay; - mEffectHandler->mSharedVideo = mSharedVideo; - mEffectHandler->mSharedVideoOverlay = mSharedVideoOverlay; -} - - -