diff -r ccd8e69b5392 -r 496ad160a278 mmshplugins/mmshaoplugin/tsrc/ut_aoplugin/src/ut_muscallmonitorbase.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmshplugins/mmshaoplugin/tsrc/ut_aoplugin/src/ut_muscallmonitorbase.cpp Fri Jun 11 13:36:18 2010 +0300 @@ -0,0 +1,379 @@ +/* +* 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 "e32property.h" +#include "ut_muscallmonitorbase.h" +#include "mussesseioninformationapi.h" + +// SYSTEM INCLUDES +#include + +// Test configurations +_LIT(KEmptyProvider,""); +_LIT(KTestTelNumber,"+3585050"); + + + +CMusCallMonitorMock::CMusCallMonitorMock( const RMobileCall& aCall, + MMusTsyPropertyObserver& aObserver, + MMusCallStateObserver& aCallStateObserver ) + : CMusCallMonitorBase( aCall, aObserver, aCallStateObserver ) + { + } + + +void CMusCallMonitorMock::RunL() + { + } + +void CMusCallMonitorMock::DoCancel() + { + } + +CMusCallMonitorMock::~CMusCallMonitorMock() + { + Cancel(); + } + + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// +UT_CMusCallMonitorBase* UT_CMusCallMonitorBase::NewL() + { + UT_CMusCallMonitorBase* self = UT_CMusCallMonitorBase::NewLC(); + CleanupStack::Pop( self ); + return self; + } + + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// +UT_CMusCallMonitorBase* UT_CMusCallMonitorBase::NewLC() + { + UT_CMusCallMonitorBase* self = new( ELeave ) UT_CMusCallMonitorBase(); + CleanupStack::PushL( self ); + self->ConstructL(); + return self; + } + + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// +UT_CMusCallMonitorBase::~UT_CMusCallMonitorBase() + { + // None + } + + +// ----------------------------------------------------------------------------- +// Default constructor +// ----------------------------------------------------------------------------- +// +UT_CMusCallMonitorBase::UT_CMusCallMonitorBase() + { + // NOP + } + + +// ----------------------------------------------------------------------------- +// Second phase construct +// ----------------------------------------------------------------------------- +// +void UT_CMusCallMonitorBase::ConstructL() + { + // The ConstructL from the base class CEUnitTestSuiteClass must be called. + // It generates the test case table. + CEUnitTestSuiteClass::ConstructL(); + } + + +// ----------------------------------------------------------------------------- +// UT_CMusCallMonitorBase::NotifyCallStateChanged() +// ----------------------------------------------------------------------------- +// +void UT_CMusCallMonitorBase::NotifyCallStateChanged( + NMusSessionInformationApi::TMusCallEvent /*aVal*/, + TName& /*aCallName*/ ) + { + } + + + +// ----------------------------------------------------------------------------- +// MusCallStateChanged from the MusCallStateObserver +// ----------------------------------------------------------------------------- +// +void UT_CMusCallMonitorBase::MusCallStateChanged() + { + iCallStateObserverInvoked = ETrue; + } + + + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// +void UT_CMusCallMonitorBase::SetupL() + { + RProperty::Set( NMusSessionInformationApi::KCategoryUid, + NMusSessionInformationApi::KMusCallEvent, + 0 ); + RTelHelper::SetCallDirection( RMobileCall::EDirectionUnknown ); + iCallMonitorBase = new CMusCallMonitorMock( iCall, *this, *this ); + iCallStateObserverInvoked = EFalse; + } + + +void UT_CMusCallMonitorBase::Setup2L() + { + iCallStateObserverInvoked = EFalse; + iCallMonitorBase = new CMusCallMonitorMock( iCall, *this, *this ); + } + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// +void UT_CMusCallMonitorBase::Teardown() + { + delete iCallMonitorBase; + PropertyHelper::Close(); + iCall.Close(); + } + + + +// TEST CASES + + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// +void UT_CMusCallMonitorBase::UT_SetStateLL() + { + TInt tmp; + EUNIT_ASSERT ( RProperty::Get( NMusSessionInformationApi::KCategoryUid, + NMusSessionInformationApi::KMusCallEvent, tmp ) != KErrNone ); + + EUNIT_ASSERT_LEAVE( iCallMonitorBase->SetStateL( NMusSessionInformationApi::ECallHold ) ); + + if ( RProperty::Set( NMusSessionInformationApi::KCategoryUid, + NMusSessionInformationApi::KMusCallEvent, + 0 ) != KErrNone ) + { + User::Leave( KErrNoMemory ); + } + if ( RProperty::Set( NMusSessionInformationApi::KCategoryUid, + NMusSessionInformationApi::KMusCallCount, + 1 ) != KErrNone ) + { + User::Leave( KErrNoMemory ); + } + + EUNIT_ASSERT (!iCallStateObserverInvoked ) + + iCallMonitorBase->SetStateL( NMusSessionInformationApi::ECallHold ); + + EUNIT_ASSERT ( iCallStateObserverInvoked ) + + RProperty::Get( NMusSessionInformationApi::KCategoryUid, + NMusSessionInformationApi::KMusCallEvent, + tmp ); + EUNIT_ASSERT( tmp==NMusSessionInformationApi::ECallHold); + + iCallMonitorBase->SetStateL( NMusSessionInformationApi::ECallHold ); + RProperty::Get( NMusSessionInformationApi::KCategoryUid, + NMusSessionInformationApi::KMusCallEvent, + tmp ); + EUNIT_ASSERT( tmp==NMusSessionInformationApi::ECallHold); + + iCallMonitorBase->SetStateL( NMusSessionInformationApi::ECallConnected ); + RProperty::Get( NMusSessionInformationApi::KCategoryUid, + NMusSessionInformationApi::KMusCallEvent, + tmp ); + EUNIT_ASSERT( tmp==NMusSessionInformationApi::ECallConnected ); + + } + + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// +void UT_CMusCallMonitorBase::UT_SetCallInfoLL() + { + _LIT( KTelnro, "1234" ); + TName telnro; + TInt direction; + + iCallMonitorBase->SetCallInfoL(); + + RProperty::Get( NMusSessionInformationApi::KCategoryUid, + NMusSessionInformationApi::KMusTelNumber, + telnro ); + + EUNIT_ASSERT( telnro == KTelnro ); + + RProperty::Get( NMusSessionInformationApi::KCategoryUid, + NMusSessionInformationApi::KMusCallDirection, + direction ); + + EUNIT_ASSERT( direction == NMusSessionInformationApi::ENoDirection ); + + RTelHelper::SetCallDirection( RMobileCall::EMobileOriginated ); + + iCallMonitorBase->SetCallInfoL(); + + RProperty::Get( NMusSessionInformationApi::KCategoryUid, + NMusSessionInformationApi::KMusTelNumber, + telnro ); + + EUNIT_ASSERT( telnro == KTelnro ); + + RProperty::Get( NMusSessionInformationApi::KCategoryUid, + NMusSessionInformationApi::KMusCallDirection, + direction ); + + EUNIT_ASSERT( direction == NMusSessionInformationApi::ECallOrginated ); + + RTelHelper::SetCallDirection( RMobileCall::EMobileTerminated ); + iCallMonitorBase->SetCallInfoL(); + + RProperty::Get( NMusSessionInformationApi::KCategoryUid, + NMusSessionInformationApi::KMusTelNumber, + telnro ); + + EUNIT_ASSERT( telnro == KTelnro ); + + RProperty::Get( NMusSessionInformationApi::KCategoryUid, + NMusSessionInformationApi::KMusCallDirection, + direction ); + + EUNIT_ASSERT( direction == NMusSessionInformationApi::ECallTerminated ); + + /* Test for call provider */ + // Call Provider info is only Set for VoIP Calls + iCallMonitorBase->SetCallInfoL(); + TBuf provider; + RProperty::Get( NMusSessionInformationApi::KCategoryUid, + NMusSessionInformationApi::KMUSCallProvider, + provider ); + + + EUNIT_ASSERT( provider == KEmptyProvider ); + } + + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// +void UT_CMusCallMonitorBase::UT_RunErrorL() + { + EUNIT_ASSERT( iCallMonitorBase->RunError( KErrNotFound ) == KErrNone ); + } + + +// ----------------------------------------------------------------------------- +// UT_CMusCallMonitorBase::UT_CMusCallMonitorBase_IsDataReadyLL() +// Test if required Data is ready for CS calls +// ----------------------------------------------------------------------------- +// +void UT_CMusCallMonitorBase::UT_CMusCallMonitorBase_IsDataReadyLL() + { + TBool dataReady = EFalse; + + //Test-1: Date Ready: + User::LeaveIfError( RProperty::Set( NMusSessionInformationApi::KCategoryUid, + NMusSessionInformationApi::KMusTelNumber, + KTestTelNumber )); + + User::LeaveIfError( RProperty::Set( NMusSessionInformationApi::KCategoryUid, + NMusSessionInformationApi::KMusCallDirection, + NMusSessionInformationApi::ECallOrginated )); + + dataReady = iCallMonitorBase->IsDataReadyL(); + EUNIT_ASSERT_EQUALS( dataReady, ETrue ) + + //Test-2: Partial Data is Ready + User::LeaveIfError( RProperty::Set( NMusSessionInformationApi::KCategoryUid, + NMusSessionInformationApi::KMusTelNumber, + KNullDesC )); + dataReady = iCallMonitorBase->IsDataReadyL(); + EUNIT_ASSERT_EQUALS( dataReady, EFalse ) + + + //Test-3: Data Not Ready. + User::LeaveIfError(RProperty::Set( NMusSessionInformationApi::KCategoryUid, + NMusSessionInformationApi::KMusCallEvent, + ( TInt ) NMusSessionInformationApi::ENoCall )); + + dataReady = iCallMonitorBase->IsDataReadyL(); + EUNIT_ASSERT_EQUALS( dataReady, EFalse ) + } + + +// TEST TABLE + +EUNIT_BEGIN_TEST_TABLE( + UT_CMusCallMonitorBase, + "UT_CMusCallMonitorBase", + "UNIT" ) + +EUNIT_TEST( + "SetStateL - test", + "CMusCallMonitorBase", + "SetStateL", + "FUNCTIONALITY", + Setup2L, UT_SetStateLL, Teardown) + +EUNIT_TEST( + "SetCallInfoL - test", + "CMusCallMonitorBase", + "SetCallInfoL", + "FUNCTIONALITY", + SetupL, UT_SetCallInfoLL, Teardown) + +EUNIT_TEST( + "RunError - test", + "CMusCallMonitorBase", + "RunError", + "FUNCTIONALITY", + SetupL, UT_RunErrorL, Teardown) + + +EUNIT_TEST( + "IsDataReadyL - test", + "CMusCallMonitorBase", + "IsDataReadyL", + "FUNCTIONALITY", + SetupL, UT_CMusCallMonitorBase_IsDataReadyLL, Teardown) + + +EUNIT_END_TEST_TABLE + +// END OF FILE