diff -r 000000000000 -r 1bce908db942 multimediacommscontroller/mmccsubcontroller/tsrc/ut_subcontroller/Src/UT_CMccAsyncEventHandler.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/multimediacommscontroller/mmccsubcontroller/tsrc/ut_subcontroller/Src/UT_CMccAsyncEventHandler.cpp Tue Feb 02 01:04:58 2010 +0200 @@ -0,0 +1,341 @@ +/* +* Copyright (c) 2004 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: +* +*/ + + + + +// CLASS HEADER +#include "UT_CMccAsyncEventHandler.h" + +// EXTERNAL INCLUDES +#include +#include "MccJitterBuffer.h" + +// INTERNAL INCLUDES +#include "Mccasynceventhandler.h" +#include "AmrPayloadFormatUtil.h" +#include "MmccDtmfSignal.h" + +// CONSTRUCTION +UT_CMccAsyncEventHandler* UT_CMccAsyncEventHandler::NewL() + { + UT_CMccAsyncEventHandler* self = UT_CMccAsyncEventHandler::NewLC(); + CleanupStack::Pop(); + + return self; + } + +UT_CMccAsyncEventHandler* UT_CMccAsyncEventHandler::NewLC() + { + UT_CMccAsyncEventHandler* self = new( ELeave ) UT_CMccAsyncEventHandler(); + CleanupStack::PushL( self ); + + self->ConstructL(); + + return self; + } + +// Destructor (virtual by CBase) +UT_CMccAsyncEventHandler::~UT_CMccAsyncEventHandler() + { + } + +// Default constructor +UT_CMccAsyncEventHandler::UT_CMccAsyncEventHandler() : + iHandler( NULL ) + { + } + +// Second phase construct +void UT_CMccAsyncEventHandler::ConstructL() + { + // The ConstructL from the base class CEUnitTestSuiteClass must be called. + // It generates the test case table. + CEUnitTestSuiteClass::ConstructL(); + } + +// METHODS + + + +void UT_CMccAsyncEventHandler::SetupL( ) + { + iHandler = CMccAsyncEventHandler::NewL(); + } + +void UT_CMccAsyncEventHandler::Teardown( ) + { + if ( iHandler ) + { + delete iHandler; + } + } + +void UT_CMccAsyncEventHandler::UT_CMccAsyncEventHandler_EventReceiveRequestLL( ) + { + // Can't test this, because the RMessage2 can only be properly created + // by a server + } + +void UT_CMccAsyncEventHandler::UT_CMccAsyncEventHandler_CancelEventReceiveRequestLL( ) + { + // No request + EUNIT_ASSERT_LEAVE( iHandler->CancelEventReceiveRequestL() ); + } + +void UT_CMccAsyncEventHandler::UT_CMccAsyncEventHandler_SendEventToClientL( ) + { + TMccRtpSinkEvent sinkEvent; + TMccRtpSourceEvent sourceEvent; + TMccJitterBufferEvent jitterEvent; + TMccAmrEvent amrEvent; + TMMFEvent mmfEvent( TUid::Uid( 0 ), KErrNone ); + + EUNIT_ASSERT_EQUALS( iHandler->SendEventToClient( sinkEvent ), KErrNone ); + + // Cancel the active object + iHandler->Cancel(); + + EUNIT_ASSERT_EQUALS( iHandler->SendEventToClient( sourceEvent ), KErrNone ); + iHandler->Cancel(); + + EUNIT_ASSERT_EQUALS( iHandler->SendEventToClient( jitterEvent ), KErrNone ); + iHandler->Cancel(); + + EUNIT_ASSERT_EQUALS( iHandler->SendEventToClient( mmfEvent ), KErrNone ); + iHandler->Cancel(); + } + +void UT_CMccAsyncEventHandler::UT_CMccAsyncEventHandler_SendMccEventToClientL( ) + { + TMccEvent event; + EUNIT_ASSERT_EQUALS( iHandler->SendMccEventToClient( event ), KErrNone ); + } + +void UT_CMccAsyncEventHandler::UT_CMccAsyncEventHandler_SendMediaSignallingToClientL( ) + { + TMccDTMFSignal dtmfSig; + iHandler->SendMediaSignallingToClient( dtmfSig ); + + TMccRtcpSignal rtcpSig; + + const TUint KMaxSignalsInQueue( 20 ); + + for ( TInt i = 0; i < KMaxSignalsInQueue; i++ ) + { + iHandler->SendMediaSignallingToClient( rtcpSig ); + } + } + +void UT_CMccAsyncEventHandler::UT_CMccAsyncEventHandler_ReconstructMediaSignalL( ) + { + iHandler->ReconstructMediaSignal(); + } + +void UT_CMccAsyncEventHandler::UT_CMccAsyncEventHandler_HandleAmrEventL( ) + { + TMccAmrEvent amrEvent; + EUNIT_ASSERT_EQUALS( iHandler->SendEventToClient( amrEvent ), KErrNone ); + iHandler->Cancel(); + + // Use a valid event type + amrEvent.iEvent = EMccAmrEventCmr; + + EUNIT_ASSERT_EQUALS( iHandler->SendEventToClient( amrEvent ), KErrNone ); + iHandler->Cancel(); + + iHandler->HandleAmrEvent(); + } + +void UT_CMccAsyncEventHandler::UT_CMccAsyncEventHandler_HandleRtpSinkEventL( ) + { + TMccRtpSinkEvent sinkEvent; + EUNIT_ASSERT_EQUALS( iHandler->SendEventToClient( sinkEvent ), KErrNone ); + iHandler->Cancel(); + + // Use a valid event type that causes no action + sinkEvent.iEvent = ERtpSinkLastBuffer; + EUNIT_ASSERT_EQUALS( iHandler->SendEventToClient( sinkEvent ), KErrNone ); + iHandler->Cancel(); + iHandler->HandleRtpSinkEvent(); + + // Use a valid event type + sinkEvent.iEvent = ERtpSinkError; + sinkEvent.iErrorCode = KErrNone; + + EUNIT_ASSERT_EQUALS( iHandler->SendEventToClient( sinkEvent ), KErrNone ); + iHandler->Cancel(); + iHandler->HandleRtpSinkEvent(); + + // Set an error code that will actually do something + sinkEvent.iErrorCode = KErrNone; + EUNIT_ASSERT_EQUALS( iHandler->SendEventToClient( sinkEvent ), KErrNone ); + iHandler->Cancel(); + iHandler->HandleRtpSinkEvent(); + iHandler->Cancel(); + } + +void UT_CMccAsyncEventHandler::UT_CMccAsyncEventHandler_HandleRtpSourceEventL( ) + { + TMccRtpSourceEvent sourceEvent; + EUNIT_ASSERT_EQUALS( iHandler->SendEventToClient( sourceEvent ), KErrNone ); + iHandler->Cancel(); + + // Use a valid event type that causes no action + sourceEvent.iEvent = EMccRtpSrcJitterUpdate; + + EUNIT_ASSERT_EQUALS( iHandler->SendEventToClient( sourceEvent ), KErrNone ); + iHandler->Cancel(); + iHandler->HandleRtpSourceEvent(); + + // Set an error code that will actually do something + sourceEvent.iEvent = EMccRtpSrcMmfEvent; + EUNIT_ASSERT_EQUALS( iHandler->SendEventToClient( sourceEvent ), KErrNone ); + iHandler->Cancel(); + iHandler->HandleRtpSourceEvent(); + iHandler->Cancel(); + } + +void UT_CMccAsyncEventHandler::UT_CMccAsyncEventHandler_HandleJitterEventL( ) + { + TMccJitterBufferEvent jitterEvent; + EUNIT_ASSERT_EQUALS( iHandler->SendEventToClient( jitterEvent ), KErrNone ); + iHandler->Cancel(); + + // These two events should cause no action + jitterEvent.iEvent = EJitterEventMmfEvent; + EUNIT_ASSERT_EQUALS( iHandler->SendEventToClient( jitterEvent ), KErrNone ); + iHandler->Cancel(); + iHandler->HandleJitterEvent(); + + jitterEvent.iEvent = EJitterEventStatusReport; + EUNIT_ASSERT_EQUALS( iHandler->SendEventToClient( jitterEvent ), KErrNone ); + iHandler->Cancel(); + iHandler->HandleJitterEvent(); + } + +void UT_CMccAsyncEventHandler::UT_CMccAsyncEventHandler_HandleMmfEventL( ) + { + TMMFEvent mmfEvent( TUid::Uid( 0 ), KErrNone ); + EUNIT_ASSERT_EQUALS( iHandler->SendEventToClient( mmfEvent ), KErrNone ); + iHandler->Cancel(); + + iHandler->HandleMmfEvent(); + iHandler->Cancel(); + } + +void UT_CMccAsyncEventHandler::UT_CMccAsyncEventHandler_CompleteClientRequestL( ) + { + iHandler->CompleteClientRequest(); + } + + +// TEST TABLE + +EUNIT_BEGIN_TEST_TABLE( + UT_CMccAsyncEventHandler, + "Add test suite description here.", + "UNIT" ) + +EUNIT_TEST( + "EventReceiveRequestL - test ", + "CMccAsyncEventHandler", + "EventReceiveRequestL", + "FUNCTIONALITY", + SetupL, UT_CMccAsyncEventHandler_EventReceiveRequestLL, Teardown) + +EUNIT_TEST( + "CancelEventReceiveRequestL - test ", + "CMccAsyncEventHandler", + "CancelEventReceiveRequestL", + "FUNCTIONALITY", + SetupL, UT_CMccAsyncEventHandler_CancelEventReceiveRequestLL, Teardown) + +EUNIT_TEST( + "SendEventToClient - test ", + "CMccAsyncEventHandler", + "SendEventToClient", + "FUNCTIONALITY", + SetupL, UT_CMccAsyncEventHandler_SendEventToClientL, Teardown) + +EUNIT_TEST( + "SendMccEventToClient - test ", + "CMccAsyncEventHandler", + "SendMccEventToClient", + "FUNCTIONALITY", + SetupL, UT_CMccAsyncEventHandler_SendMccEventToClientL, Teardown) + +EUNIT_TEST( + "SendMediaSignallingToClient - test ", + "CMccAsyncEventHandler", + "SendMediaSignallingToClient", + "FUNCTIONALITY", + SetupL, UT_CMccAsyncEventHandler_SendMediaSignallingToClientL, Teardown) + +EUNIT_TEST( + "ReconstructMediaSignal - test ", + "CMccAsyncEventHandler", + "ReconstructMediaSignal", + "FUNCTIONALITY", + SetupL, UT_CMccAsyncEventHandler_ReconstructMediaSignalL, Teardown) + +EUNIT_TEST( + "HandleAmrEvent - test ", + "CMccAsyncEventHandler", + "HandleAmrEvent", + "FUNCTIONALITY", + SetupL, UT_CMccAsyncEventHandler_HandleAmrEventL, Teardown) + +EUNIT_TEST( + "HandleRtpSinkEvent - test ", + "CMccAsyncEventHandler", + "HandleRtpSinkEvent", + "FUNCTIONALITY", + SetupL, UT_CMccAsyncEventHandler_HandleRtpSinkEventL, Teardown) + +EUNIT_TEST( + "HandleRtpSourceEvent - test ", + "CMccAsyncEventHandler", + "HandleRtpSourceEvent", + "FUNCTIONALITY", + SetupL, UT_CMccAsyncEventHandler_HandleRtpSourceEventL, Teardown) + +EUNIT_TEST( + "HandleJitterEvent - test ", + "CMccAsyncEventHandler", + "HandleJitterEvent", + "FUNCTIONALITY", + SetupL, UT_CMccAsyncEventHandler_HandleJitterEventL, Teardown) + +EUNIT_TEST( + "HandleMmfEvent - test ", + "CMccAsyncEventHandler", + "HandleMmfEvent", + "FUNCTIONALITY", + SetupL, UT_CMccAsyncEventHandler_HandleMmfEventL, Teardown) + +EUNIT_TEST( + "CompleteClientRequest - test ", + "CMccAsyncEventHandler", + "CompleteClientRequest", + "FUNCTIONALITY", + SetupL, UT_CMccAsyncEventHandler_CompleteClientRequestL, Teardown) + + +EUNIT_END_TEST_TABLE + +// END OF FILE