diff -r ccd8e69b5392 -r 496ad160a278 mmsharing/mmshavailability/tsrc/ut_availability/src/UT_CMusAvaInviteHandler.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmsharing/mmshavailability/tsrc/ut_availability/src/UT_CMusAvaInviteHandler.cpp Fri Jun 11 13:36:18 2010 +0300 @@ -0,0 +1,269 @@ +/* +* 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_CMusAvaInviteHandler.h" +#include "musavaavailabilityobserver.h" +#include "musavaavailabilityobserverimp.h" +#include "musavasettingsimp.h" +#include "musavaInviteresponderobserverimp.h" +#include "musavainviteresponder.h" +#include "muslogger.h" +#include "musavaobserverimp.h" +#include "musavacapabilitytesthelper.h" //remove compilation warning + + +// EXTERNAL INCLUDES +#include +#include +#include +#include +#include +#include +#include +// INTERNAL INCLUDES +#include "musavainvitehandler.h" + + + +// CONSTRUCTION +UT_CMusAvaInviteHandler* UT_CMusAvaInviteHandler::NewL() + { + UT_CMusAvaInviteHandler* self = UT_CMusAvaInviteHandler::NewLC(); + CleanupStack::Pop(); + + return self; + } + +UT_CMusAvaInviteHandler* UT_CMusAvaInviteHandler::NewLC() + { + UT_CMusAvaInviteHandler* self = new( ELeave ) UT_CMusAvaInviteHandler(); + CleanupStack::PushL( self ); + self->ConstructL(); + + return self; + } + +// Destructor (virtual by CBase) +UT_CMusAvaInviteHandler::~UT_CMusAvaInviteHandler() + { + } + +// Default constructor +UT_CMusAvaInviteHandler::UT_CMusAvaInviteHandler() + { + } + +// Second phase construct +void UT_CMusAvaInviteHandler::ConstructL() + { + // The ConstructL from the base class CEUnitTestSuiteClass must be called. + // It generates the test case table. + CEUnitTestSuiteClass::ConstructL(); + } + +// METHODS + +void UT_CMusAvaInviteHandler::SetupL( ) + { + SIPStrings::OpenL(); + iAvailabilityObserver = CMusAvaAvailabilityObserverImp::NewL(); + iConcreteSettings = CMusAvaSettingsImp::NewL(); + iInviteHandler = CMusAvaInviteHandler::NewL( *iAvailabilityObserver, + *iConcreteSettings ); + } + +void UT_CMusAvaInviteHandler::Teardown( ) + { + delete iAvailabilityObserver; + delete iConcreteSettings; + delete iInviteHandler; + SIPStrings::Close(); + } + +void UT_CMusAvaInviteHandler::UT_CMusAvaInviteHandler_NewLL( ) + { + EUNIT_ASSERT( iInviteHandler ); + } +void UT_CMusAvaInviteHandler::UT_CMusAvaInviteHandler_IncomingRequestL() + { + CSIPServerTransaction* transaction = + CSIPServerTransaction::NewL( SIPStrings::StringF( SipStrConsts::EInvite ) ); + CleanupStack::PushL( transaction ); + transaction->iIsClientTransaction = ETrue; + transaction->iState = CSIPTransactionBase::ETrying; + EUNIT_ASSERT( !iInviteHandler->IncomingRequest( transaction ) ); + CleanupStack::Pop( transaction ); + + // Request not INVITE + transaction = + CSIPServerTransaction::NewL( SIPStrings::StringF( SipStrConsts::EOptions ) ); + CleanupStack::PushL( transaction ); + transaction->iIsClientTransaction = ETrue; + transaction->iState = CSIPTransactionBase::ETrying; + EUNIT_ASSERT( iInviteHandler->IncomingRequest( transaction ) == KErrNotFound ); + CleanupStack::PopAndDestroy( transaction ); + } + +void UT_CMusAvaInviteHandler::UT_CMusAvaInviteHandler_DoExecuteLL() + { + TInt ret = 0; + TRAPD( error, iInviteHandler->DoExecuteL() ); + if ( error == KErrNoMemory ) User::Leave( error ); + EUNIT_ASSERT ( error == KErrNone ); + + EUNIT_ASSERT( iInviteHandler->State() == MMusAvaObserver::EMusAvaStatusAvailable ); + } + +void UT_CMusAvaInviteHandler::UT_CMusAvaInviteHandler_NameL() + { + EUNIT_ASSERT( iInviteHandler->Name() == MMusAvaObserver::EMusAvaInviteHandler ); + } + + +void UT_CMusAvaInviteHandler::UT_CMusAvaInviteHandler_StopL() + { + iInviteHandler->Stop(); + EUNIT_ASSERT( iInviteHandler->iResponders.Count() == 0 ); + } + +void UT_CMusAvaInviteHandler::UT_CMusAvaInviteHandler_InvitationReceivedLL() + { + //Fails + CSIPServerTransaction* transaction2 = + CSIPServerTransaction::NewL( SIPStrings::StringF( SipStrConsts::EInvite ) ); + CleanupStack::PushL( transaction2 ); + transaction2->iState = CSIPTransactionBase::ETerminated; + iInviteHandler->InvitationReceivedL( transaction2 ); + EUNIT_ASSERT( iInviteHandler->iResponders.Count() == 0 ); + CleanupStack::Pop( transaction2 ); + //Ok + CSIPServerTransaction* transaction = + CSIPServerTransaction::NewL( SIPStrings::StringF( SipStrConsts::EInvite ) ); + CleanupStack::PushL( transaction ); + transaction->iIsClientTransaction = EFalse; + transaction->iState = CSIPTransactionBase::ETrying; + TRAPD( error, iInviteHandler->InvitationReceivedL( transaction ) ); + if ( error == KErrNoMemory ) User::Leave( error ); + CleanupStack::Pop( transaction ); + TInt count = NULL; + EUNIT_GET_ALLOC_DECORATOR_FAILCOUNT( count ); + if ( count > 0 && iInviteHandler->iResponders.Count() == 0 ) + { + User::Leave( KErrNoMemory ); + } + EUNIT_ASSERT( iInviteHandler->iResponders.Count() > 0 ); + } + +void UT_CMusAvaInviteHandler::UT_CMusAvaInviteHandler_InvitationAnsweredLDL() + { + //not removed, because response it not completed + CMusAvaInviteResponderObserverImp* responderObserverImp = CMusAvaInviteResponderObserverImp::NewL(); + CleanupStack::PushL( responderObserverImp ); + CSIPServerTransaction* serverTransaction = CSIPServerTransaction::NewL( SIPStrings::StringF( SipStrConsts::EInvite ) ); + CleanupStack::PushL( serverTransaction ); + CMusAvaInviteResponder* inviteResponder = CMusAvaInviteResponder::NewL( serverTransaction, + *responderObserverImp ); + CleanupStack::Pop( serverTransaction ); + CleanupStack::PushL( inviteResponder ); + User::LeaveIfError( iInviteHandler->iResponders.Append( inviteResponder ) ); + CleanupStack::Pop( inviteResponder ); + iInviteHandler->InvitationAnsweredLD( ); + EUNIT_ASSERT( iInviteHandler->iResponders.Count() > 0 ); + iInviteHandler->iResponders.ResetAndDestroy(); + CleanupStack::PopAndDestroy( responderObserverImp ); + //Ok + CMusAvaInviteResponderObserverImp* responderObserverImp2 = CMusAvaInviteResponderObserverImp::NewL(); + CleanupStack::PushL( responderObserverImp2 ); + + CSIPServerTransaction* serverTransaction2 = CSIPServerTransaction::NewL( SIPStrings::StringF( SipStrConsts::EInvite ) ); + CleanupStack::PushL( serverTransaction2 ); + CMusAvaInviteResponder* inviteResponder2 = CMusAvaInviteResponder::NewL( serverTransaction2, + *responderObserverImp2 ); + CleanupStack::Pop( serverTransaction2 ); + CleanupStack::PushL( inviteResponder2 ); + User::LeaveIfError( iInviteHandler->iResponders.Append( inviteResponder2 ) ); + CleanupStack::Pop( inviteResponder2 ); + serverTransaction2->iState = CSIPTransactionBase::ETerminated; + iInviteHandler->InvitationAnsweredLD( ); + EUNIT_ASSERT( iInviteHandler->iResponders.Count() == 0 ); + CleanupStack::PopAndDestroy( responderObserverImp2 ); + } + + +// TEST TABLE + +EUNIT_BEGIN_TEST_TABLE( + UT_CMusAvaInviteHandler, + "CMusAvaInviteHandler", + "UNIT" ) + +EUNIT_TEST( + "NewL - test ", + "CMusAvaInviteHandler", + "NewL", + "FUNCTIONALITY", + SetupL,UT_CMusAvaInviteHandler_NewLL, Teardown) + +EUNIT_TEST( + "IncomingRequest - test ", + "CMusAvaInviteHandler", + "IncomingRequest", + "FUNCTIONALITY", + SetupL,UT_CMusAvaInviteHandler_IncomingRequestL, Teardown) + +EUNIT_TEST( + "DoExecuteL - test ", + "CMusAvaInviteHandler", + "DoExecuteL", + "FUNCTIONALITY", + SetupL,UT_CMusAvaInviteHandler_DoExecuteLL, Teardown) + +EUNIT_TEST( + "Name - test ", + "CMusAvaInviteHandler", + "Name", + "FUNCTIONALITY", + SetupL,UT_CMusAvaInviteHandler_NameL, Teardown) + + +EUNIT_TEST( + "Stop - test ", + "CMusAvaInviteHandler", + "Stop", + "FUNCTIONALITY", + SetupL,UT_CMusAvaInviteHandler_StopL, Teardown) + + EUNIT_TEST( + "InvitationReceivedL - test ", + "CMusAvaInviteHandler", + "InvitationReceivedL", + "FUNCTIONALITY", + SetupL,UT_CMusAvaInviteHandler_InvitationReceivedLL, Teardown) + + EUNIT_TEST( + "InvitationAnsweredLD - test ", + "CMusAvaInviteHandler", + "InvitationAnsweredLD", + "FUNCTIONALITY", + SetupL,UT_CMusAvaInviteHandler_InvitationAnsweredLDL, Teardown) + + +EUNIT_END_TEST_TABLE + +// END OF FILE