diff -r ccd8e69b5392 -r 496ad160a278 mmshplugins/mmshaoplugin/tsrc/ut_aoplugin/src/ut_muspropertymonitor.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmshplugins/mmshaoplugin/tsrc/ut_aoplugin/src/ut_muspropertymonitor.cpp Fri Jun 11 13:36:18 2010 +0300 @@ -0,0 +1,254 @@ +/* +* 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 "etelmm.h" +#include "e32property.h" +#include "ut_muspropertymonitor.h" +#include "muspropertymonitor.h" +#include "mussesseioninformationapi.h" + + +// SYSTEM INCLUDES +#include + +_LIT(KTelNo,"1234"); + + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// +UT_CMusPropertyMonitor* UT_CMusPropertyMonitor::NewL() + { + UT_CMusPropertyMonitor* self = UT_CMusPropertyMonitor::NewLC(); + CleanupStack::Pop( self ); + return self; + } + + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// +UT_CMusPropertyMonitor* UT_CMusPropertyMonitor::NewLC() + { + UT_CMusPropertyMonitor* self = new( ELeave ) UT_CMusPropertyMonitor(); + CleanupStack::PushL( self ); + self->ConstructL(); + return self; + } + + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// +UT_CMusPropertyMonitor::~UT_CMusPropertyMonitor() + { + } + + +// ----------------------------------------------------------------------------- +// Default constructor +// ----------------------------------------------------------------------------- +// +UT_CMusPropertyMonitor::UT_CMusPropertyMonitor() + { + // NOP + } + + +// ----------------------------------------------------------------------------- +// Second phase construct +// ----------------------------------------------------------------------------- +// +void UT_CMusPropertyMonitor::ConstructL() + { + // The ConstructL from the base class CEUnitTestSuiteClass must be called. + // It generates the test case table. + CEUnitTestSuiteClass::ConstructL(); + } + + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// +void UT_CMusPropertyMonitor::SetupL() + { + iMusPropertyMonitor = CMusPropertyMonitor::NewL(*this); + iMusPropertyMonitor->iPropertyEvent.iPValue = NMusSessionInformationApi::ENoCall; + iMusCallStateObserverInovked = EFalse; + } + + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// +void UT_CMusPropertyMonitor::Teardown() + { + delete iMusPropertyMonitor; + PropertyHelper::Close(); + } + + +// TEST CASES + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// +void UT_CMusPropertyMonitor::UT_CMusPropertyMonitor_RunLL() + { + EUNIT_ASSERT( iMusPropertyMonitor); + EUNIT_ASSERT( !iMusCallStateObserverInovked ); + iMusPropertyMonitor->iPropertyEvent.iPValue = NMusSessionInformationApi::ENoCall; + iMusPropertyMonitor->Cancel(); + iMusPropertyMonitor->RunL(); + EUNIT_ASSERT( iMusCallStateObserverInovked ); + } + + + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// +void UT_CMusPropertyMonitor::UT_CMusPropertyMonitor_DoCancelL() + { + EUNIT_ASSERT( iMusPropertyMonitor ); + iMusPropertyMonitor->DoCancel(); + EUNIT_ASSERT( PropertyHelper::GetCalledFunction() == + RProperty::ECancel ) + } + + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// +void UT_CMusPropertyMonitor::UT_CMusPropertyMonitor_RunErrorL() + { + EUNIT_ASSERT( !iMusCallStateObserverInovked ); + EUNIT_ASSERT( iMusPropertyMonitor ); + TInt CallState; + TInt error = KErrNotFound; + + // Call is Established: + User::LeaveIfError( RProperty::Set( NMusSessionInformationApi::KCategoryUid, + NMusSessionInformationApi::KMusCallEvent, + NMusSessionInformationApi::ECallConnected ) ); + + // Test1: Invoking Error Situation, Ensure Calll is disconected. + User::LeaveIfError( iMusPropertyMonitor->RunError(error)); + User::LeaveIfError( RProperty::Get( NMusSessionInformationApi::KCategoryUid, + NMusSessionInformationApi::KMusCallEvent, + CallState ) ); + EUNIT_ASSERT( CallState == NMusSessionInformationApi::ENoCall ); + EUNIT_ASSERT( iMusCallStateObserverInovked ); + } + + +// ----------------------------------------------------------------------------- +// UT_CMusPropertyMonitor::UT_CMusPropertyMonitor_IsCallConnected() +// Checks from the P/S keys if the Call is connected. +// ----------------------------------------------------------------------------- +// +void UT_CMusPropertyMonitor::UT_CMusPropertyMonitor_IsCallConnected() + { + // Test1: Call Not Connected: + TBool callConnected = EFalse; + User::LeaveIfError( RProperty::Set( NMusSessionInformationApi::KCategoryUid, + NMusSessionInformationApi::KMusCallEvent, + NMusSessionInformationApi::ENoCall ) ); + + callConnected = iMusPropertyMonitor->IsCallConnected(); + EUNIT_ASSERT( callConnected == EFalse ); + + // Test2: Call Connected: + User::LeaveIfError( RProperty::Set( NMusSessionInformationApi::KCategoryUid, + NMusSessionInformationApi::KMusCallEvent, + NMusSessionInformationApi::ECallConnected ) ); + + callConnected = iMusPropertyMonitor->IsCallConnected(); + EUNIT_ASSERT( callConnected == ETrue ); + + + // Test3: Hold and Conference are concidered as call connected + User::LeaveIfError( RProperty::Set( NMusSessionInformationApi::KCategoryUid, + NMusSessionInformationApi::KMusCallEvent, + NMusSessionInformationApi::ECallHold ) ); + + callConnected = iMusPropertyMonitor->IsCallConnected(); + EUNIT_ASSERT( callConnected == ETrue ); + } + + +// ----------------------------------------------------------------------------- +// MusCallStateChanged from the MusCallStateObserver +// ----------------------------------------------------------------------------- +// +void UT_CMusPropertyMonitor::MusCallStateChanged() + { + iMusCallStateObserverInovked = ETrue; + } + + + +// TEST TABLE + +EUNIT_BEGIN_TEST_TABLE( + UT_CMusPropertyMonitor, + "UT_CMusPropertyMonitor", + "UNIT" ) + +EUNIT_TEST( + "RunL - test", + "CMusCallStatusMonitor", + "RunL", + "FUNCTIONALITY", + SetupL, UT_CMusPropertyMonitor_RunLL, Teardown) + +EUNIT_TEST( + "DoCancel - test", + "CMusCallStatusMonitor", + "DoCancel", + "FUNCTIONALITY", + SetupL, UT_CMusPropertyMonitor_DoCancelL, Teardown) + +EUNIT_TEST( + "RunError - test", + "CMusCallStatusMonitor", + "RunErrorL", + "FUNCTIONALITY", + SetupL, UT_CMusPropertyMonitor_RunErrorL, Teardown) + +EUNIT_TEST( + "IsCallConnected - test", + "CMusCallStatusMonitor", + "IsCallConnected", + "FUNCTIONALITY", + SetupL, UT_CMusPropertyMonitor_IsCallConnected, Teardown) + +EUNIT_END_TEST_TABLE + +// END OF FILE + +