diff -r 73a1feb507fb -r bc78a40cd63c mmsharing/mmshengine/tsrc/ut_engine/src/ut_musengorientationhandler.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmsharing/mmshengine/tsrc/ut_engine/src/ut_musengorientationhandler.cpp Wed Sep 01 12:31:01 2010 +0100 @@ -0,0 +1,217 @@ +/* +* 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: +* +*/ + + +// INTERNAL INCLUDES +#include "ut_musengorientationhandler.h" +#include "musengorientationhandler.h" +#include "musengstubs.h" +#include "musengtestdefs.h" +#include "musenglivesession.h" +#include "musengmceutils.h" +#include +#include + +// SYSTEM INCLUDES +#include + + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// +UT_CMusEngOrientationHandler* UT_CMusEngOrientationHandler::NewL() + { + UT_CMusEngOrientationHandler* self = UT_CMusEngOrientationHandler::NewLC(); + CleanupStack::Pop( self ); + return self; + } + + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// +UT_CMusEngOrientationHandler* UT_CMusEngOrientationHandler::NewLC() + { + UT_CMusEngOrientationHandler* self = new( ELeave ) UT_CMusEngOrientationHandler(); + CleanupStack::PushL( self ); + self->ConstructL(); + return self; + } + + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// +UT_CMusEngOrientationHandler::~UT_CMusEngOrientationHandler() + { + // NOP + } + + +// ----------------------------------------------------------------------------- +// Default constructor +// ----------------------------------------------------------------------------- +// +UT_CMusEngOrientationHandler::UT_CMusEngOrientationHandler() + { + // NOP + } + + +// ----------------------------------------------------------------------------- +// Second phase construct +// ----------------------------------------------------------------------------- +// +void UT_CMusEngOrientationHandler::ConstructL() + { + // The ConstructL from the base class CEUnitTestSuiteClass must be called. + // It generates the test case table. + CEUnitTestSuiteClass::ConstructL(); + } + + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// +void UT_CMusEngOrientationHandler::SetupL() + { + iObserver = new( ELeave ) CMusEngObserverStub; + + iLiveSession = CMusEngLiveSession::NewL( TRect(0, 0, 100, 100), + *iObserver, + *iObserver, + *iObserver ); + + iLiveSession->iOperatorVariant = EFalse; + + iHandler = CMusEngOrientationHandler::NewL( *iLiveSession, *iObserver ); + } + + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// +void UT_CMusEngOrientationHandler::Teardown() + { + delete iHandler; + delete iLiveSession; + delete iObserver; + } + + + +// TEST CASES + + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// +void UT_CMusEngOrientationHandler::UT_NewLL() + { + EUNIT_ASSERT( iHandler ); + } + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// +void UT_CMusEngOrientationHandler::UT_RefreshOrientationL() + { + ESTABLISH_OUT_SESSION( iLiveSession ) + + // Refresh when both camera and display are enabled + CMceCameraSource* camera = + MusEngMceUtils::GetCameraL( *(iLiveSession->iSession) ); + camera->iIsEnabled = ETrue; + CMceDisplaySink* display = + MusEngMceUtils::GetDisplayL( *(iLiveSession->iSession) ); + display->iIsEnabled = ETrue; + EUNIT_ASSERT( !iHandler->IsActive() ); + iHandler->RefreshOrientationL(); + EUNIT_ASSERT( iHandler->IsActive() ); + EUNIT_ASSERT( !camera->iIsEnabled ); + EUNIT_ASSERT( !display->iIsEnabled ); + iHandler->Cancel(); + iHandler->RunL(); // Simulate completion + EUNIT_ASSERT( !iHandler->IsActive() ); + EUNIT_ASSERT( camera->iIsEnabled ); + EUNIT_ASSERT( display->iIsEnabled ); + + // Refresh when camera is disabled, display disabled + camera->iIsEnabled = EFalse; + display->iIsEnabled = ETrue; + iHandler->RefreshOrientationL(); + EUNIT_ASSERT( iHandler->IsActive() ); + EUNIT_ASSERT( !camera->iIsEnabled ); + EUNIT_ASSERT( !display->iIsEnabled ); + iHandler->Cancel(); + iHandler->RunL(); // Simulate completion + EUNIT_ASSERT( !iHandler->IsActive() ); + EUNIT_ASSERT( !camera->iIsEnabled ); + EUNIT_ASSERT( display->iIsEnabled ); + + // Display and camera gets resumed while delayed orientation handling is ongoing, pausing + // display after handling completes should not happen + camera->iIsEnabled = ETrue; + display->iIsEnabled = EFalse; + iHandler->RefreshOrientationL(); + EUNIT_ASSERT( iHandler->IsActive() ); + EUNIT_ASSERT( !camera->iIsEnabled ); + EUNIT_ASSERT( !display->iIsEnabled ); + display->iIsEnabled = ETrue; + camera->iIsEnabled = ETrue; + iHandler->UpdateL(); + iHandler->Cancel(); + iHandler->RunL(); // Simulate completion + EUNIT_ASSERT( !iHandler->IsActive() ); + EUNIT_ASSERT( camera->iIsEnabled ); + EUNIT_ASSERT( display->iIsEnabled ); + } + + +// TEST TABLE + +EUNIT_BEGIN_TEST_TABLE( + UT_CMusEngOrientationHandler, + "UT_CMusEngLiveSesssion", + "UNIT" ) + +EUNIT_TEST( + "NewL - test ", + "CMusEngOrienationHandler", + "NewL", + "FUNCTIONALITY", + SetupL, UT_NewLL, Teardown) + +EUNIT_TEST( + "UT_RefreshOrientationL - test ", + "CMusEngOrienationHandler", + "NewL", + "FUNCTIONALITY", + SetupL, UT_RefreshOrientationL, Teardown) + +EUNIT_END_TEST_TABLE + +// END OF FILE + +