diff -r 73a1feb507fb -r bc78a40cd63c mmsharing/mmshengine/tsrc/ut_engine/src/ut_musengcamerahandler.cpp --- a/mmsharing/mmshengine/tsrc/ut_engine/src/ut_musengcamerahandler.cpp Tue Aug 31 15:12:07 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,956 +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: -* -*/ - - -// INTERNAL INCLUDES -#include "ut_musengcamerahandler.h" -#include "musengstubs.h" -#include "musengtestdefs.h" -#include "musenglivesession.h" -#include "mussipprofilehandler.h" -#include "musengmceutils.h" -#include "mussettings.h" -#include "mussessionproperties.h" - -// SYSTEM INCLUDES -#include -#include -#include -#include -#include -#include -#include -#include - -const TUint KSipProfileId( 1 ); - -//use step in different time period -const TInt KZoomBigStepCount = 15; -const TInt KZoomSmallStepCount = KZoomBigStepCount*2; -const TInt KZoomStepMinSize = 1; - -// 0.4 second -const TInt64 KZoomFasterTime = 400000;//must bigger than 1/3 second - -//insure that step is 1 -#define USER_SLEEP User::After(KZoomFasterTime) - - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -UT_TMusEngCameraHandler* UT_TMusEngCameraHandler::NewL() - { - UT_TMusEngCameraHandler* self = UT_TMusEngCameraHandler::NewLC(); - CleanupStack::Pop( self ); - return self; - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -UT_TMusEngCameraHandler* UT_TMusEngCameraHandler::NewLC() - { - UT_TMusEngCameraHandler* self = new( ELeave ) UT_TMusEngCameraHandler(); - CleanupStack::PushL( self ); - self->ConstructL(); - return self; - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -UT_TMusEngCameraHandler::~UT_TMusEngCameraHandler() - { - // NOP - } - - -// ----------------------------------------------------------------------------- -// Default constructor -// ----------------------------------------------------------------------------- -// -UT_TMusEngCameraHandler::UT_TMusEngCameraHandler() - { - // NOP - } - - -// ----------------------------------------------------------------------------- -// Second phase construct -// ----------------------------------------------------------------------------- -// -void UT_TMusEngCameraHandler::ConstructL() - { - // The ConstructL from the base class CEUnitTestSuiteClass must be called. - // It generates the test case table. - CEUnitTestSuiteClass::ConstructL(); - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void UT_TMusEngCameraHandler::SetupL() - { - iManager = CMceManager::NewL( TUid::Null(), NULL ); - iObserver = new( ELeave ) CMusEngObserverStub; - iObserver->iRoamingBetweenAPsAllowed = ETrue; - iProfileHandler = CMusSipProfileHandler::NewL( *iObserver ); - - iProfileHandler->CreateProfileL( KSipProfileId ); - - iSession = CMceOutSession::NewL( *iManager, - *iProfileHandler->Profile(), - KTestRecipientSipUri8() ); - - - CMceVideoStream* videoOut = CMceVideoStream::NewLC(); - - videoOut->AddSinkL( CMceRtpSink::NewLC() ); - CleanupStack::Pop(); - - videoOut->AddSinkL( CMceDisplaySink::NewLC( *iManager ) ); - CleanupStack::Pop(); - - videoOut->SetSourceL( CMceCameraSource::NewLC( *iManager ) ); - CleanupStack::Pop(); - - CMceVideoStream* videoIn = CMceVideoStream::NewLC(); - - CMceDisplaySink* receivingDisplay = CMceDisplaySink::NewLC( *iManager ); - videoIn->AddSinkL( receivingDisplay ); - CleanupStack::Pop(); - - videoIn->SetSourceL( CMceRtpSource::NewLC() ); - CleanupStack::Pop(); - - videoOut->BindL( videoIn ); - CleanupStack::Pop( videoIn ); - - iSession->AddStreamL( videoOut ); - CleanupStack::Pop( videoOut ); - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void UT_TMusEngCameraHandler::Teardown() - { - delete iSession; - iSession = NULL; - iCameraHandler.SetSession( NULL ); - delete iProfileHandler; - delete iObserver; - delete iManager; - } - - - -// TEST CASES - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void UT_TMusEngCameraHandler::UT_LcCameraCountL() - { - // Call without setting the MCE session - EUNIT_ASSERT_SPECIFIC_LEAVE( iCameraHandler.LcCameraCountL(), KErrNotReady ) - - iCameraHandler.SetSession( iSession ); - CMceCameraSource* camera = - MusEngMceUtils::GetCameraL( *( iSession ) ); - iCameraHandler.iCameraUsage = MusSettingsKeys::EUseCameraSwapping; - camera->iCameraCount = 2; - camera->iCameraIndex = TMusEngCameraHandler::EBackCamera; - - // Two cameras - EUNIT_ASSERT_EQUALS( 2, iCameraHandler.LcCameraCountL() ) - - // Two cameras, swapping cameras not allowed, use only main camera - iCameraHandler.iCameraUsage = MusSettingsKeys::EUseOnlyMainCamera; - camera->iCameraCount = 2; - EUNIT_ASSERT_EQUALS( 1, iCameraHandler.LcCameraCountL() ) - - // Two cameras, swapping cameras not allowed, use only main camera - iCameraHandler.iCameraUsage = MusSettingsKeys::EUseOnlySecondaryCamera; - camera->iCameraCount = 2; - EUNIT_ASSERT_EQUALS( 1, iCameraHandler.LcCameraCountL() ) - - // Only one camera available - iCameraHandler.iCameraUsage = MusSettingsKeys::EUseCameraSwapping; - camera->iCameraCount = 1; - EUNIT_ASSERT_EQUALS( 1, iCameraHandler.LcCameraCountL() ) - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void UT_TMusEngCameraHandler::UT_ToggleLcCameraL() - { - EUNIT_ASSERT_EQUALS( TInt( TMusEngCameraHandler::ECameraNotAvailable ), - iCameraHandler.CurrentLcCameraIndex() ) - - iCameraHandler.SetSession( iSession ); - iCameraHandler.iCameraUsage = MusSettingsKeys::EUseCameraSwapping; - iCameraHandler.iCurrentCamera = TMusEngCameraHandler::EBackCamera; - - // Switch from back to front - iCameraHandler.ToggleLcCameraL(); - EUNIT_ASSERT_EQUALS( TInt( TMusEngCameraHandler::EFrontCamera ), - iCameraHandler.CurrentLcCameraIndex() ) - - // Switch from front to back - iCameraHandler.ToggleLcCameraL(); - EUNIT_ASSERT_EQUALS( TInt( TMusEngCameraHandler::EBackCamera ), - iCameraHandler.CurrentLcCameraIndex() ) - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void UT_TMusEngCameraHandler::UT_MinLcZoomL() - { - // MCE Session has not been set - EUNIT_ASSERT_SPECIFIC_LEAVE( iCameraHandler.MinLcZoomL(), KErrNotReady ) - - // MCE Session has been set - iCameraHandler.SetSession( iSession ); - EUNIT_ASSERT_EQUALS( - iCameraHandler.iCameraInfo.iMinZoom, - iCameraHandler.MinLcZoomL() ) - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void UT_TMusEngCameraHandler::UT_MaxLcZoomL() - { - // MCE Session has not been set - EUNIT_ASSERT_SPECIFIC_LEAVE( iCameraHandler.MaxLcZoomL(), KErrNotReady ) - - // MCE Session has been set - iCameraHandler.SetSession( iSession ); - EUNIT_ASSERT_EQUALS( - iCameraHandler.iCameraInfo.iMaxZoom + - iCameraHandler.iCameraInfo.iMaxDigitalZoom, - iCameraHandler.MaxLcZoomL() ) - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void UT_TMusEngCameraHandler::UT_LcZoomValueL() - { - // MCE Session has not been set - EUNIT_ASSERT_SPECIFIC_LEAVE( iCameraHandler.LcZoomValueL(), KErrNotReady ) - - // Check that originally current and default zoom are the same - iCameraHandler.SetSession( iSession ); - CMceCameraSource* camera = MusEngMceUtils::GetCameraL( *( iSession ) ); - - // Zoom to maximum optical value - while ( camera->iZoomFactor < iCameraHandler.iCameraInfo.iMaxZoom ) - { - iCameraHandler.LcZoomInL(); - } - EUNIT_ASSERT_EQUALS( - iCameraHandler.iCameraInfo.iMaxZoom, - iCameraHandler.LcZoomValueL() ) - - // Zoom using digital zoom - iCameraHandler.LcZoomInL(); - EUNIT_ASSERT_EQUALS( - iCameraHandler.iCameraInfo.iMaxZoom + camera->iDigitalZoomFactor, - iCameraHandler.LcZoomValueL() ) - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void UT_TMusEngCameraHandler::UT_SetLcZoomValueL() - { - // MCE Session has not been set - EUNIT_ASSERT_SPECIFIC_LEAVE( - iCameraHandler.SetLcZoomValueL( 1 ), - KErrNotReady ) - - // Value above the maximum zoom - iCameraHandler.SetSession( iSession ); - EUNIT_ASSERT_SPECIFIC_LEAVE( - iCameraHandler.SetLcZoomValueL( iCameraHandler.MaxLcZoomL() + 1 ), - KErrArgument ) - - // Value below the minimum zoom - EUNIT_ASSERT_SPECIFIC_LEAVE( - iCameraHandler.SetLcZoomValueL( iCameraHandler.MinLcZoomL() - 1 ), - KErrArgument ) - - // OK: set zoom factor - CMceCameraSource* camera = MusEngMceUtils::GetCameraL( *iSession ); - TInt zoomValue = iCameraHandler.iCameraInfo.iMaxZoom - 1; - iCameraHandler.SetLcZoomValueL( zoomValue ); - EUNIT_ASSERT_EQUALS( zoomValue, camera->ZoomFactorL() ) - - // OK: set digital zoom factor - zoomValue = iCameraHandler.iCameraInfo.iMaxZoom + 1; - iCameraHandler.SetLcZoomValueL( zoomValue ); - EUNIT_ASSERT_EQUALS( 1, camera->DigitalZoomFactorL() ) - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void UT_TMusEngCameraHandler::UT_LcZoomInL() - { - // Check that zooming is not possible before invite - TRAPD( error, iCameraHandler.LcZoomInL() ); - MUS_TEST_FORWARD_ALLOC_FAILURE( error ); - EUNIT_ASSERT( error == KErrNotReady ); - - iCameraHandler.SetSession( iSession ); - - CMceCameraSource* camera = MusEngMceUtils::GetCameraL( *( iSession ) ); - - TInt oldZoomFactor = camera->iZoomFactor; - - // Check that zoom factor can be increased - USER_SLEEP; //insure that small step is used - iCameraHandler.LcZoomInL(); - EUNIT_ASSERT( camera->iZoomFactor == oldZoomFactor + - iCameraHandler.iSmallZoomStep ); - - //Check the "burst" mode (immediate second ZoomIn), big step should be used - TInt nZoom = camera->iZoomFactor + camera->iDigitalZoomFactor; - iCameraHandler.LcZoomInL(); - TInt nStep = camera->iZoomFactor + camera->iDigitalZoomFactor - nZoom; - EUNIT_ASSERT( nStep == iCameraHandler.iBigZoomStep ); - - // Zoom to maximum optical value - while ( camera->iZoomFactor < iCameraHandler.iCameraInfo.iMaxZoom ) - { - iCameraHandler.LcZoomInL(); - } - - TInt maxOpticalZoomFactor = camera->ZoomFactorL(); - - // Check that digital zoom is used instead of optical - iCameraHandler.LcZoomInL(); - EUNIT_ASSERT( camera->iZoomFactor == maxOpticalZoomFactor ); - EUNIT_ASSERT( camera->iDigitalZoomFactor > 0 ); - - // Zoom to maximum digital value - while ( camera->iDigitalZoomFactor < - iCameraHandler.iCameraInfo.iMaxDigitalZoom ) - { - iCameraHandler.LcZoomInL(); - } - - TInt maxDigitalZoomFactor = camera->DigitalZoomFactorL(); - - // Check that further zooming is impossible - iCameraHandler.LcZoomInL(); - EUNIT_ASSERT( camera->iZoomFactor == maxOpticalZoomFactor ); - EUNIT_ASSERT( camera->iDigitalZoomFactor == maxDigitalZoomFactor ); - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void UT_TMusEngCameraHandler::UT_LcZoomOutL() - { - // Check that zooming is not possible before invite - TRAPD( error, iCameraHandler.LcZoomOutL() ); - MUS_TEST_FORWARD_ALLOC_FAILURE( error ); - EUNIT_ASSERT( error == KErrNotReady ); - - iCameraHandler.SetSession( iSession ); - - CMceCameraSource* camera = - MusEngMceUtils::GetCameraL( *(iSession) ); - - // Simulate maximum zoom - camera->iZoomFactor = iCameraHandler.iCameraInfo.iMaxZoom; - camera->iDigitalZoomFactor = iCameraHandler.iCameraInfo.iMaxDigitalZoom; - - // Check that digital zoom factor can be decreased - USER_SLEEP; //insure that small step is used - iCameraHandler.LcZoomOutL(); - EUNIT_ASSERT( camera->iZoomFactor == iCameraHandler.iCameraInfo.iMaxZoom ); - EUNIT_ASSERT( camera->iDigitalZoomFactor == - iCameraHandler.iCameraInfo.iMaxDigitalZoom - - iCameraHandler.iSmallZoomStep ); - - //Check the "burst" mode (immediate second ZoomOut), big step should be used - TInt nZoom = camera->iZoomFactor + camera->iDigitalZoomFactor; - iCameraHandler.LcZoomOutL(); - TInt nStep; - nStep = nZoom - (camera->iZoomFactor + camera->iDigitalZoomFactor ); - EUNIT_ASSERT( nStep == iCameraHandler.iBigZoomStep ); - - // Simulate maximum zoom again - camera->iZoomFactor = iCameraHandler.iCameraInfo.iMaxZoom; - camera->iDigitalZoomFactor = iCameraHandler.iCameraInfo.iMaxDigitalZoom; - - // Zoom to minimum digital zoom - while ( camera->iDigitalZoomFactor > 0 ) - { - iCameraHandler.LcZoomOutL(); - } - - EUNIT_ASSERT( camera->iZoomFactor == iCameraHandler.iCameraInfo.iMaxZoom ); - EUNIT_ASSERT( camera->iDigitalZoomFactor == 0 ); - - // Check that optical zoom is decreased instead of digital - USER_SLEEP; //insure that step is the small one - iCameraHandler.LcZoomOutL(); - EUNIT_ASSERT( camera->iZoomFactor == - iCameraHandler.iCameraInfo.iMaxZoom - - iCameraHandler.iSmallZoomStep ); - EUNIT_ASSERT( camera->iDigitalZoomFactor == 0 ); - - // Zoom to minimum optical zoom - while ( camera->iZoomFactor > iCameraHandler.iCameraInfo.iMinZoom ) - { - iCameraHandler.LcZoomOutL(); - } - - // Check that further zooming is impossible - iCameraHandler.LcZoomOutL(); - EUNIT_ASSERT( camera->iZoomFactor == iCameraHandler.iCameraInfo.iMinZoom ); - EUNIT_ASSERT( camera->iDigitalZoomFactor == 0 ); - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void UT_TMusEngCameraHandler::UT_SetLcBrightnessL() - { - // Check that setting brightness is not possible before invite - EUNIT_ASSERT_SPECIFIC_LEAVE( - iCameraHandler.SetLcBrightnessL( KTestSomeBrightness ), - KErrNotReady ) - - iCameraHandler.SetSession( iSession ); - CMceCameraSource* camera = MusEngMceUtils::GetCameraL( *( iSession ) ); - - camera->iCameraInfo.iOptionsSupported = - camera->iCameraInfo.iOptionsSupported|TCameraInfo::EBrightnessSupported; - - // Check that originally current and default brightness are the same - EUNIT_ASSERT_EQUALS( iCameraHandler.iDefaultBrightness, - iCameraHandler.LcBrightnessL() ) - - // Test setting brightness - iCameraHandler.SetLcBrightnessL( KTestSomeBrightness ); - EUNIT_ASSERT_EQUALS( KTestSomeBrightness, iCameraHandler.LcBrightnessL() ) - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void UT_TMusEngCameraHandler::UT_LcBrightnessL() - { - // Check that checking current brightness is not possible before invite - EUNIT_ASSERT_SPECIFIC_LEAVE( iCameraHandler.LcBrightnessL(), - KErrNotReady ) - - // All the other stuff checked in tests of SetBrightnessL - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void UT_TMusEngCameraHandler::UT_MaxLcBrightnessL() - { - // MaxBrightness should return a constant - EUNIT_ASSERT_EQUALS( KTestMaxBrightness, iCameraHandler.MaxLcBrightnessL() ) - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void UT_TMusEngCameraHandler::UT_MinLcBrightnessL() - { - // MinBrightness should return a constant - - EUNIT_ASSERT_EQUALS( KTestMinBrightness, iCameraHandler.MinLcBrightnessL() ) - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void UT_TMusEngCameraHandler::UT_IncreaseLcBrightnessL() - { - // Check that increasing brightness is not possible before invite - EUNIT_ASSERT_SPECIFIC_LEAVE( iCameraHandler.IncreaseLcBrightnessL(), - KErrNotReady ) - - iCameraHandler.SetSession( iSession ); - CMceCameraSource* camera = MusEngMceUtils::GetCameraL( *(iSession) ); - - camera->iCameraInfo.iOptionsSupported = - camera->iCameraInfo.iOptionsSupported|TCameraInfo::EBrightnessSupported; - - // Check that originally current and default brightness are the same - EUNIT_ASSERT_EQUALS( iCameraHandler.iDefaultBrightness, - iCameraHandler.LcBrightnessL() ) - - // Check that brightness can be increased... - iCameraHandler.IncreaseLcBrightnessL(); - EUNIT_ASSERT_EQUALS( iCameraHandler.iDefaultBrightness + KTestBrightnessStepSize, - iCameraHandler.LcBrightnessL() ) - - // ... but only to maximum - iCameraHandler.SetLcBrightnessL( KTestMaxBrightness ); - iCameraHandler.IncreaseLcBrightnessL(); - - EUNIT_ASSERT_EQUALS( KTestMaxBrightness, - iCameraHandler.LcBrightnessL() ) - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void UT_TMusEngCameraHandler::UT_DecreaseLcBrightnessL() - { - // Check that decreasing brightness is not possible before invite - EUNIT_ASSERT_SPECIFIC_LEAVE( iCameraHandler.DecreaseLcBrightnessL(), - KErrNotReady ) - - iCameraHandler.SetSession( iSession ); - CMceCameraSource* camera = MusEngMceUtils::GetCameraL( *(iSession) ); - - camera->iCameraInfo.iOptionsSupported = - camera->iCameraInfo.iOptionsSupported|TCameraInfo::EBrightnessSupported; - - // Check that originally current and default brightness are the same - EUNIT_ASSERT_EQUALS( iCameraHandler.iDefaultBrightness, - iCameraHandler.LcBrightnessL() ) - - // Check that brightness can be decreased... - iCameraHandler.DecreaseLcBrightnessL(); - - EUNIT_ASSERT_EQUALS( - iCameraHandler.iDefaultBrightness - KTestBrightnessStepSize, - iCameraHandler.LcBrightnessL() ) - - // ... but only to minimum - iCameraHandler.SetLcBrightnessL( KTestMinBrightness ); - iCameraHandler.DecreaseLcBrightnessL(); - EUNIT_ASSERT_EQUALS( KTestMinBrightness, - iCameraHandler.LcBrightnessL() ) - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void UT_TMusEngCameraHandler::UT_PlayL() - { - // Check that resuming is not possible before invite - EUNIT_ASSERT_SPECIFIC_LEAVE( iCameraHandler.PlayL(), KErrNotReady ) - - iCameraHandler.SetSession( iSession ); - - iCameraHandler.PauseL(); - - CMceCameraSource* camera = MusEngMceUtils::GetCameraL( *(iSession) ); - iCameraHandler.PlayL(); - EUNIT_ASSERT( camera->IsEnabled() ) - - // Try to enable camera again, request should be ignored - iCameraHandler.PlayL(); - EUNIT_ASSERT( camera->IsEnabled() ) - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void UT_TMusEngCameraHandler::UT_PauseL() - { - // Check that pausing is not possible before invite - EUNIT_ASSERT_SPECIFIC_LEAVE( iCameraHandler.PauseL(), KErrNotReady ) - - iCameraHandler.SetSession( iSession ); - - iCameraHandler.PlayL(); - - CMceCameraSource* camera = MusEngMceUtils::GetCameraL( *(iSession) ); - - iCameraHandler.PauseL(); - - EUNIT_ASSERT( !camera->IsEnabled() ) - - // Try to disable camera again, request should be ignored - iCameraHandler.PauseL(); - EUNIT_ASSERT( !camera->IsEnabled() ) - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void UT_TMusEngCameraHandler::UT_IsPlayingL() - { - // Try without a session - EUNIT_ASSERT_SPECIFIC_LEAVE( iCameraHandler.IsPlayingL(), KErrNotReady ) - - // Normal cases - iCameraHandler.SetSession( iSession ); - - iCameraHandler.PlayL(); - EUNIT_ASSERT( iCameraHandler.IsPlayingL() ) - - iCameraHandler.PauseL(); - EUNIT_ASSERT( !iCameraHandler.IsPlayingL() ) - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void UT_TMusEngCameraHandler::UT_InitializeZoomStepSizeL() - { - //Check that zooming steps have defualt values before session establishment - iCameraHandler.InitializeZoomStepSize(); - EUNIT_ASSERT( iCameraHandler.iSmallZoomStep == KZoomStepMinSize ); - EUNIT_ASSERT( iCameraHandler.iBigZoomStep == KZoomStepMinSize ); - - iCameraHandler.SetSession( iSession ); - CMceCameraSource* camera = MusEngMceUtils::GetCameraL( *(iSession) ); - - //Check that zooming step sizes have default value KZoomStepMinSize - //in case of zooming values range is smaller than KZoomBigStepCount - iCameraHandler.iCameraInfo.iMinZoom = 0; - iCameraHandler.iCameraInfo.iMaxZoom = 0; - iCameraHandler.iCameraInfo.iMaxDigitalZoom = KZoomBigStepCount / 2; - iCameraHandler.InitializeZoomStepSize(); - EUNIT_ASSERT( iCameraHandler.iSmallZoomStep == KZoomStepMinSize ); - EUNIT_ASSERT( iCameraHandler.iBigZoomStep == KZoomStepMinSize ); - - //Check that zooming step sizes have default value KZoomStepMinSize - //in case of zooming values range is bigger than KZoomBigStepCount, - //but smaller than 2*KZoomBigStepCount (KZoomSmallStepCount) - iCameraHandler.iCameraInfo.iMaxDigitalZoom = 2*KZoomBigStepCount - 1; - iCameraHandler.InitializeZoomStepSize(); - EUNIT_ASSERT( iCameraHandler.iSmallZoomStep == KZoomStepMinSize ); - EUNIT_ASSERT( iCameraHandler.iBigZoomStep == KZoomStepMinSize ); - - //Check zooming steps sizes in case of zooming values range is - //bigger than 2*KZoomBigStepCount and smaller than 2*KZoomSmallStepCount - iCameraHandler.iCameraInfo.iMinZoom = - KZoomBigStepCount; - iCameraHandler.iCameraInfo.iMaxZoom = KZoomBigStepCount; - iCameraHandler.iCameraInfo.iMaxDigitalZoom = KZoomBigStepCount; - //zooming range is (-KZoomBigStepCount, 2*KZoomBigStepCount) - iCameraHandler.InitializeZoomStepSize(); - EUNIT_ASSERT( iCameraHandler.iSmallZoomStep == KZoomStepMinSize ); - EUNIT_ASSERT( iCameraHandler.iBigZoomStep == 3 ); - - //Check zooming steps sizes in case of zooming values range is - //bigger than 2*KZoomSmallStepCount - iCameraHandler.iCameraInfo.iMaxZoom = KZoomSmallStepCount; - iCameraHandler.iCameraInfo.iMaxDigitalZoom = KZoomSmallStepCount; - iCameraHandler.iCameraInfo.iMinZoom = - KZoomSmallStepCount; - //zooming range is (-KZoomSmallStepCount, 2*KZoomSmallStepCount) - iCameraHandler.InitializeZoomStepSize(); - EUNIT_ASSERT( iCameraHandler.iSmallZoomStep == 3 ); - EUNIT_ASSERT( iCameraHandler.iBigZoomStep == 6 ); - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void UT_TMusEngCameraHandler::UT_ChangeActiveCameraL() - { - iCameraHandler.SetSession( iSession ); - - CMceCameraSource* camera = - MusEngMceUtils::GetCameraL( *(iSession) ); - - //Camera is not enabled - camera->iIsEnabled = ETrue; - camera->iCameraCount = 2; - camera->iCameraIndex = 1; - iCameraHandler.ChangeActiveCameraL( TMusEngCameraHandler::EFrontCamera ); - EUNIT_ASSERT( camera->iCameraIndex == 1 ); - EUNIT_ASSERT( camera->iIsEnabled == ETrue ); - - //Camera is not enabled - camera->iIsEnabled = EFalse; - camera->iCameraCount = 2; - camera->iCameraIndex = 1; - iCameraHandler.ChangeActiveCameraL( TMusEngCameraHandler::EFrontCamera ); - EUNIT_ASSERT( camera->iCameraIndex == 1 ); - EUNIT_ASSERT( camera->iIsEnabled == EFalse ); - - //Check that iCameraInfo get updated after camera change - EUNIT_PRINT(_L("Check that iCameraInfo get updated after camera change")); - - //Check that iCameraInfo get updated after camera change - EUNIT_PRINT(_L("Check that iCameraInfo get updated after camera change")); - camera->iIsEnabled = ETrue; - camera->iCameraCount = 2; - camera->iCameraIndex = 0; - iCameraHandler.ChangeActiveCameraL( TMusEngCameraHandler::EBackCamera ); - EUNIT_ASSERT( camera->iCameraIndex == 0 ); - TCameraInfo infoBack = iCameraHandler.iCameraInfo; - iCameraHandler.ChangeActiveCameraL( TMusEngCameraHandler::EFrontCamera ); - EUNIT_ASSERT( camera->iCameraIndex == 1 ); - TCameraInfo infoFront = iCameraHandler.iCameraInfo; - - EUNIT_ASSERT( infoBack.iMaxZoom != infoFront.iMaxZoom ); - EUNIT_ASSERT( infoBack.iMaxDigitalZoom != infoFront.iMaxDigitalZoom ); - camera->iIsEnabled = ETrue; - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void UT_TMusEngCameraHandler::UT_ChangeCameraL() - { - TRAPD( error, iCameraHandler.ChangeCameraL( TMusEngCameraHandler::EFrontCamera ) ); - MUS_TEST_FORWARD_ALLOC_FAILURE( error ); - EUNIT_ASSERT( error == KErrNotReady ); - - iCameraHandler.SetSession( iSession ); - - CMceCameraSource* camera = - MusEngMceUtils::GetCameraL( *(iSession) ); - //Only one camera is supported - camera->iCameraCount = 0; - camera->iCameraIndex = 0; - - iCameraHandler.ChangeCameraL( TMusEngCameraHandler::EFrontCamera ); - //EUNIT_ASSERT( camera->iCameraIndex == 0 ); - - // Front camera is supported. - camera->iCameraCount = 2; - camera->iCameraIndex = 1; - iCameraHandler.ChangeCameraL( TMusEngCameraHandler::EFrontCamera ); - EUNIT_ASSERT( camera->iCameraIndex == 1 ); - - //No change - camera->iCameraCount = 2; - camera->iCameraIndex = 0; - camera->iIsEnabled = EFalse; - iCameraHandler.ChangeCameraL( TMusEngCameraHandler::EFrontCamera ); - EUNIT_ASSERT( camera->iIsEnabled == EFalse ); - - // Back camera is supported. - camera->iCameraCount = 2; - camera->iCameraIndex = 1; - iCameraHandler.ChangeCameraL( TMusEngCameraHandler::EBackCamera ); - EUNIT_ASSERT( camera->iCameraIndex == 0 ); - - //No change - camera->iCameraCount = 2; - camera->iCameraIndex = 0; - camera->iIsEnabled = EFalse; - iCameraHandler.ChangeCameraL( TMusEngCameraHandler::EBackCamera ); - EUNIT_ASSERT( camera->iIsEnabled == EFalse ); - - // Next camera. - camera->iCameraCount = 2; - camera->iCameraIndex = 0; - iCameraHandler.ChangeCameraL( TMusEngCameraHandler::ECameraNotAvailable ); - EUNIT_ASSERT( camera->iCameraIndex == 1 ); - - camera->iCameraCount = 2; - camera->iCameraIndex = 1; - iCameraHandler.ChangeCameraL( TMusEngCameraHandler::ECameraNotAvailable ); - EUNIT_ASSERT( camera->iCameraIndex == 0 ); - } - - -// TEST TABLE - -EUNIT_BEGIN_TEST_TABLE( - UT_TMusEngCameraHandler, - "UT_TMusEngCameraHandler", - "UNIT" ) - -EUNIT_TEST( - "LcCameraCountL - test ", - "TMusEngCameraHandler", - "LcCameraCountL", - "FUNCTIONALITY", - SetupL, UT_LcCameraCountL, Teardown) - -EUNIT_TEST( - "ToggleLcCameraL - test ", - "TMusEngCameraHandler", - "ToggleLcCameraL", - "FUNCTIONALITY", - SetupL, UT_ToggleLcCameraL, Teardown) - -EUNIT_TEST( - "MinLcZoomL - test ", - "TMusEngCameraHandler", - "MinLcZoomL", - "FUNCTIONALITY", - SetupL, UT_MinLcZoomL, Teardown) - -EUNIT_TEST( - "MaxLcZoomL - test ", - "TMusEngCameraHandler", - "MaxLcZoomL", - "FUNCTIONALITY", - SetupL, UT_MaxLcZoomL, Teardown) - -EUNIT_TEST( - "LcZoomValueL - test ", - "TMusEngCameraHandler", - "LcZoomValueL", - "FUNCTIONALITY", - SetupL, UT_LcZoomValueL, Teardown) - -EUNIT_TEST( - "SetLcZoomValueL - test ", - "TMusEngCameraHandler", - "SetLcZoomValueL", - "FUNCTIONALITY", - SetupL, UT_SetLcZoomValueL, Teardown) - -EUNIT_TEST( - "LcZoomInL - test ", - "TMusEngCameraHandler", - "LcZoomInL", - "FUNCTIONALITY", - SetupL, UT_LcZoomInL, Teardown) - -EUNIT_TEST( - "LcZoomOutL - test ", - "TMusEngCameraHandler", - "LcZoomOutL", - "FUNCTIONALITY", - SetupL, UT_LcZoomOutL, Teardown) - -EUNIT_TEST( - "SetLcBrightnessL - test ", - "TMusEngCameraHandler", - "SetLcBrightnessL", - "FUNCTIONALITY", - SetupL, UT_SetLcBrightnessL, Teardown) - -EUNIT_TEST( - "LcBrightnessL - test ", - "TMusEngCameraHandler", - "LcBrightnessL", - "FUNCTIONALITY", - SetupL, UT_LcBrightnessL, Teardown) - -EUNIT_TEST( - "MaxLcBrightnessL - test ", - "TMusEngCameraHandler", - "MaxLcBrightnessL", - "FUNCTIONALITY", - SetupL, UT_MaxLcBrightnessL, Teardown) - -EUNIT_TEST( - "MinLcBrightnessL - test ", - "TMusEngCameraHandler", - "MinLcBrightnessL", - "FUNCTIONALITY", - SetupL, UT_MinLcBrightnessL, Teardown) - -EUNIT_TEST( - "IncreaseLcBrightnessL - test ", - "TMusEngCameraHandler", - "IncreaseLcBrightnessL", - "FUNCTIONALITY", - SetupL, UT_IncreaseLcBrightnessL, Teardown) - -EUNIT_TEST( - "DecreaseLcBrightnessL - test ", - "TMusEngCameraHandler", - "DecreaseLcBrightnessL", - "FUNCTIONALITY", - SetupL, UT_DecreaseLcBrightnessL, Teardown) - -EUNIT_TEST( - "PlayL - test ", - "TMusEngCameraHandler", - "PlayL", - "FUNCTIONALITY", - SetupL, UT_PlayL, Teardown) - -EUNIT_TEST( - "PauseL - test ", - "TMusEngCameraHandler", - "PauseL", - "FUNCTIONALITY", - SetupL, UT_PauseL, Teardown) - -EUNIT_TEST( - "IsPlayingL - test ", - "TMusEngCameraHandler", - "IsPlayingL", - "FUNCTIONALITY", - SetupL, UT_IsPlayingL, Teardown) - -EUNIT_TEST( - "InitializeZoomStepSize - test ", - "TMusEngCameraHandler", - "InitializeZoomStepSize", - "FUNCTIONALITY", - SetupL, UT_InitializeZoomStepSizeL, Teardown) - -EUNIT_TEST( - "ChangeCameraL - test ", - "TMusEngCameraHandler", - "ChangeCameraL", - "FUNCTIONALITY", - SetupL, UT_ChangeCameraL, Teardown) - -EUNIT_TEST( - "UT_ChangeActiveCameraL - test ", - "TMusEngCameraHandler", - "DisableAndEnableBeforeChangingCamera", - "FUNCTIONALITY", - SetupL, UT_ChangeActiveCameraL, Teardown) - -EUNIT_END_TEST_TABLE - -// END OF FILE - -