diff -r b31261fd4e04 -r ccd8e69b5392 mmsharing/mmshavailability/tsrc/ut_availability/src/UT_CMusAvaCapabilityExchange.cpp --- a/mmsharing/mmshavailability/tsrc/ut_availability/src/UT_CMusAvaCapabilityExchange.cpp Tue Feb 02 00:09:07 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,928 +0,0 @@ -/* -* 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_CMusAvaCapabilityExchange.h" -#include "muslogger.h" - - - -// EXTERNAL INCLUDES -#include -#include -#include -#include -#include -#include -#include -#include -// INTERNAL INCLUDES -#include "musavaCapabilityExchange.h" -#include "musavaavailabilityobserver.h" -#include "musavaavailabilityobserverimp.h" -#include "musavacapabilitytesthelper.h" -#include "musavacapability.h" -#include "musavaterminal.h" -#include "CSipSseTestTls.h" -#include "musavaoptionhandler.h" -#include "musavasettingsimp.h" -#include "CSipSseTestTls.h" -#include "musavacapabilityquery.h" -#include "mussettings.h" -#include "mussettingskeys.h" -#include "musavaobserverimp.h" -#include "musavasharedobject.h" -#include "musavasip.h" -#include "musavaobserver.h" -// CONSTRUCTION -UT_CMusAvaCapabilityExchange* UT_CMusAvaCapabilityExchange::NewL() - { - UT_CMusAvaCapabilityExchange* self = UT_CMusAvaCapabilityExchange::NewLC(); - CleanupStack::Pop(); - - return self; - } - -UT_CMusAvaCapabilityExchange* UT_CMusAvaCapabilityExchange::NewLC() - { - UT_CMusAvaCapabilityExchange* self = new( ELeave ) UT_CMusAvaCapabilityExchange(); - CleanupStack::PushL( self ); - self->ConstructL(); - - return self; - } - -// Destructor (virtual by CBase) -UT_CMusAvaCapabilityExchange::~UT_CMusAvaCapabilityExchange() - { - } - -// Default constructor -UT_CMusAvaCapabilityExchange::UT_CMusAvaCapabilityExchange() - { - } - -// Second phase construct -void UT_CMusAvaCapabilityExchange::ConstructL() - { - // The ConstructL from the base class CEUnitTestSuiteClass must be called. - // It generates the test case table. - CEUnitTestSuiteClass::ConstructL(); - } - -// METHODS - -_LIT8( KTestNewTerminal, "new@foo.bar"); - -void UT_CMusAvaCapabilityExchange::SetupL( ) - { - MSIPObserver* dummyObserver = NULL; - CSIPProfileRegistry* dummyRegistry = NULL; - MSIPConnectionObserver* dummyConnectionObserver = NULL; - - TUid uid = TUid::Uid( 1 ); - TUint32 iapId = 32; - - iAvailabilityObserver = CMusAvaAvailabilityObserverImp::NewL(); - iConcreteSettings = CMusAvaSettingsImp::NewL(); - iOptionHandler = CMusAvaOptionHandler::NewL( *iAvailabilityObserver, - *iConcreteSettings ); - iSIP = CSIP::NewL( uid, *dummyObserver ); - iProfile = CSIPProfile::NewL( dummyRegistry ); - iOptionHandler->iSharedObj->MusAvaSip().iSipProfile = iProfile; - iSIPConnection = CSIPConnection::NewL( *iSIP, - iapId, - *dummyConnectionObserver ); - iOptionHandler->iSharedObj->MusAvaSip().iSipConnection = iSIPConnection; - - iExchange = iOptionHandler->iCapabilityExchange; - - iCapability = iOptionHandler->iSwisCapability; - if ( !iProfile->iRegisteredContact ) - { - iProfile->iRegisteredContact = KRegisteredContact().AllocL(); - } - - CSipSseTestTls::OpenL(); - iStorage = CSipSseTestTls::Storage(); - } - -void UT_CMusAvaCapabilityExchange::Teardown( ) - { - if ( iStorage ) - { - iStorage->Clear(); - CSipSseTestTls::Close(); - iStorage = NULL; - } - - delete iOptionHandler; - delete iAvailabilityObserver; - delete iConcreteSettings; - delete iSIP; - } - -void UT_CMusAvaCapabilityExchange::UT_CMusAvaCapabilityExchange_NewLL( ) - { - EUNIT_ASSERT( iExchange->Capabilities().Count() == 1 ); - EUNIT_ASSERT( iExchange->Terminals().Count() == 0 ); - EUNIT_ASSERT( iExchange->Capabilities()[0] == iCapability ); - } - -void UT_CMusAvaCapabilityExchange::UT_CMusAvaCapabilityExchange_QueryObserverL( ) - { - EUNIT_ASSERT( &iExchange->QueryObserver() == iOptionHandler ); - } - -void UT_CMusAvaCapabilityExchange::UT_CMusAvaCapabilityExchange_TerminalIdL( ) - { - EUNIT_ASSERT( iExchange->TerminalId().Compare( KNullDesC8 ) == 0 ); - } - -void UT_CMusAvaCapabilityExchange::UT_CMusAvaCapabilityExchange_QueryReceivedL() - { - EUNIT_DISABLE_ALLOC_DECORATOR; - MultimediaSharingSettings::SetSipProfileSettingL( 1 ); - if ( !iProfile->iArray ) - { - iProfile->iArray = new ( ELeave ) CDesC8ArrayFlat( 1 ); - iProfile->iArray->AppendL( _L8("sip:user@domain.com") ); - } - - MultimediaSharingSettings::SetOperatorVariantSettingL( - MusSettingsKeys::EStandard ); - MultimediaSharingSettings::SetCapabilityQuerySettingL( - MusSettingsKeys::ESequential ); - - CSIPServerTransaction* request = NULL; - - TBufC16<16> str(KCapabilityTestSIPAddressUri_BSIP); - HBufC16* ptr; - ptr = str.AllocLC(); - CDesCArrayFlat* sipAddress = new( ELeave ) CDesCArrayFlat( 1 ); - CleanupStack::PushL( sipAddress ); - sipAddress->AppendL( *ptr ); - iOptionHandler->iSettings.SetSipAddressesL( *sipAddress ); - sipAddress->Reset(); - CleanupStack::PopAndDestroy( sipAddress ); - CleanupStack::PopAndDestroy(); //ptr - EUNIT_ENABLE_ALLOC_DECORATOR; - - EUNIT_ASSERT( iExchange->Capabilities().Count() == 1 ); - EUNIT_ASSERT( iExchange->Capabilities()[0] == iCapability ); - EUNIT_ASSERT( iCapability->Feature().DesC().Compare( KCapabilitySwisFeature ) == 0 ); - -//ok & No terminal id configured - EUNIT_DISABLE_ALLOC_DECORATOR; - iStorage->Clear(); - iExchange->iTerminals.ResetAndDestroy(); - iOptionHandler->iState = MMusAvaObserver::EMusAvaStatusNotExecuted; - request = CapabilityTestHelper::OptionsRequestL( KCapabilityTestAddress_A, - KCapabilityTestAddress_B, - KCapabilitySwisFeature, - KCapabilitySwisFeature, - KCapabilityTestAcceptHeader, - KCapabilityTestTerminalID_B ); - - iOptionHandler->iCapabilitiesRequestAnswered = EFalse; - EUNIT_ENABLE_ALLOC_DECORATOR; - iExchange->QueryReceived( request ); - TInt count = NULL; - EUNIT_GET_ALLOC_DECORATOR_FAILCOUNT( count ); - if ( count > 0 && - iOptionHandler->State() != MMusAvaObserver::EMusAvaStatusOptionsSent ) - { - User::Leave( KErrNoMemory ); - } - - EUNIT_ASSERT( iOptionHandler->State() == MMusAvaObserver::EMusAvaStatusOptionsSent ); - EUNIT_ASSERT( iExchange->Terminals().Count() == 1 ); - EUNIT_ASSERT( iExchange->Terminals()[0]->Id().Compare( KCapabilityTestTerminalID_B ) == 0 ); - EUNIT_ASSERT( iExchange->Terminals()[0]->Uri().Compare( KCapabilityTestAddress_B ) == 0 ); - EUNIT_ASSERT( iExchange->Terminals()[0]->RequestedQuery() ); - EUNIT_ASSERT( !iExchange->Terminals()[0]->IsDiscovered() ); - - EUNIT_ASSERT( iStorage->iResponseToRequest == SIPStrings::StringF( SipStrConsts::EOptions ) ); - EUNIT_ASSERT( iStorage->iClientResponse->StatusCode() == KMUSAVASIP200 ); - EUNIT_ASSERT( iStorage->iClientResponse->MessageElements().Content().Length() > 0 ); - EUNIT_ASSERT( iStorage->iClientResponse->MessageElements().Content().Compare( KCapabilityTestSDP264And263 ) == 0 ); - - EUNIT_ASSERT( iStorage->iClientResponse->MessageElements().UserHeaders().Count() == 3 ); - MUS_HEADER_ASSERT( iStorage->iClientResponse, 0, KCapabilityTestContactHeader_A ); - iStorage->Clear(); - } - -void UT_CMusAvaCapabilityExchange::UT_CMusAvaCapabilityExchange_QueryReceived1L() - { - EUNIT_DISABLE_ALLOC_DECORATOR; - MultimediaSharingSettings::SetSipProfileSettingL( 1 ); - if ( !iProfile->iArray ) - { - iProfile->iArray = new ( ELeave ) CDesC8ArrayFlat( 1 ); - iProfile->iArray->AppendL( _L8("sip:user@domain.com") ); - } - - MultimediaSharingSettings::SetOperatorVariantSettingL( - MusSettingsKeys::EStandard ); - MultimediaSharingSettings::SetCapabilityQuerySettingL( - MusSettingsKeys::ESequential ); - - CSIPServerTransaction* request = NULL; - -//fails - iStorage->Clear(); - iOptionHandler->iState = MMusAvaObserver::EMusAvaStatusNotExecuted; - request = CapabilityTestHelper::OptionsRequestL( KCapabilityTestAddress_A, - KCapabilityTestAddress_B, - KNullDesC8,//Accepct-Contact - KCapabilitySwisFeature, - KCapabilityTestAcceptHeader, - KCapabilityTestTerminalID_B ); - - EUNIT_ENABLE_ALLOC_DECORATOR; - iExchange->QueryReceived( request ); - TInt count = NULL; - EUNIT_GET_ALLOC_DECORATOR_FAILCOUNT( count ); - if ( count > 0 && - ( iStorage->iResponseToRequest != SIPStrings::StringF( SipStrConsts::EOptions ) || - iExchange->Terminals().Count() < 1 ) ) - { - User::Leave( KErrNoMemory ); - } - - EUNIT_ASSERT( iStorage->iResponseToRequest == SIPStrings::StringF( SipStrConsts::EOptions ) ); - EUNIT_ASSERT( iExchange->Terminals().Count() == 1 ); - EUNIT_ASSERT( iExchange->Terminals()[0]->IsDiscovered() ); - EUNIT_ASSERT( iStorage->iResponseToRequest == SIPStrings::StringF( SipStrConsts::EOptions ) ); - EUNIT_ASSERT( iStorage->iClientResponse->StatusCode() == KMUSAVASIPServerInternalError ); - EUNIT_ASSERT( iStorage->iClientResponse->MessageElements().Content().Length() == 0 ); - - delete iExchange->iTerminals[ 0 ]; - iExchange->iTerminals.Remove( 0 ); - EUNIT_ASSERT( iExchange->Terminals().Count() == 0 ); - iStorage->Clear(); - } - -void UT_CMusAvaCapabilityExchange::UT_CMusAvaCapabilityExchange_QueryReceived2L() - { - EUNIT_DISABLE_ALLOC_DECORATOR; - MultimediaSharingSettings::SetSipProfileSettingL( 1 ); - if ( !iProfile->iArray ) - { - iProfile->iArray = new ( ELeave ) CDesC8ArrayFlat( 1 ); - iProfile->iArray->AppendL( _L8("sip:user@domain.com") ); - } - - MultimediaSharingSettings::SetOperatorVariantSettingL( - MusSettingsKeys::EStandard ); - MultimediaSharingSettings::SetCapabilityQuerySettingL( - MusSettingsKeys::ESequential ); - - CSIPServerTransaction* request = NULL; - - TBufC16<16> str(KCapabilityTestSIPAddressUri_BSIP); - HBufC16* ptr; - ptr = str.AllocLC(); - CDesCArrayFlat* sipAddress = new( ELeave ) CDesCArrayFlat( 1 ); - CleanupStack::PushL( sipAddress ); - sipAddress->AppendL( *ptr ); - iOptionHandler->iSettings.SetSipAddressesL( *sipAddress ); - sipAddress->Reset(); - CleanupStack::PopAndDestroy( sipAddress ); - CleanupStack::PopAndDestroy(); //ptr - EUNIT_ENABLE_ALLOC_DECORATOR; - - // cingular case && first OPTIONS request received - - iExchange->iTerminals.ResetAndDestroy(); - iOptionHandler->iCapabilitiesRequestAnswered = EFalse; - // set cingular variant key on - MultimediaSharingSettings::SetOperatorVariantSettingL( - MusSettingsKeys::EOperatorSpecific ); - request = CapabilityTestHelper::OptionsRequestL( KCapabilityTestAddress_A, - KCapabilityTestAddress_B, - KCapabilitySwisFeature, - KCapabilitySwisFeature, - KCapabilityTestAcceptHeader, - KCapabilityTestTerminalID_B ); - - iOptionHandler->iState = MMusAvaObserver::EMusAvaStatusNotExecuted; - iExchange->QueryReceived( request ); - TInt count = NULL; - EUNIT_GET_ALLOC_DECORATOR_FAILCOUNT( count ); - if ( count > 0 && - iOptionHandler->State() != MMusAvaObserver::EMusAvaStatusOptionsSent ) - { - User::Leave( KErrNoMemory ); - } - - EUNIT_ASSERT( iOptionHandler->State() == MMusAvaObserver::EMusAvaStatusOptionsSent); - EUNIT_ASSERT( iOptionHandler->CapabilitiesResolvedForCingular() == ETrue ); - MUS_HEADER_ASSERT( iStorage->iClientResponse, 0, KCapabilityTestContactHeader_A ); - - iStorage->Clear(); - // cingular case && second OPTIONS request received - // set cingular variant key on - EUNIT_DISABLE_ALLOC_DECORATOR; - MultimediaSharingSettings::SetOperatorVariantSettingL( - MusSettingsKeys::EOperatorSpecific ); - - - iExchange->iTerminals.ResetAndDestroy(); - iOptionHandler->iState = MMusAvaObserver::EMusAvaStatusNotExecuted; - iOptionHandler->iCapabilitiesRequestAnswered = ETrue; - - request = CapabilityTestHelper::OptionsRequestL( KCapabilityTestAddress_A, - KCapabilityTestAddress_B, - KCapabilitySwisFeature, - KCapabilitySwisFeature, - KCapabilityTestAcceptHeader, - KCapabilityTestTerminalID_B ); - EUNIT_ENABLE_ALLOC_DECORATOR; - iExchange->QueryReceived( request ); - EUNIT_GET_ALLOC_DECORATOR_FAILCOUNT( count ); - if ( count > 0 && - iStorage->iClientResponse->MessageElements().UserHeaders().Count() == 0 ) - { - User::Leave( KErrNoMemory ); - } - - EUNIT_ASSERT( iOptionHandler->CapabilitiesResolvedForCingular() == ETrue ); - EUNIT_ASSERT( MultimediaSharingSettings::OperatorVariantSettingL() == - MusSettingsKeys::EOperatorSpecific ); - EUNIT_ASSERT( iOptionHandler->State() == MMusAvaObserver::EMusAvaStatusNotExecuted ); - MUS_HEADER_ASSERT( iStorage->iClientResponse, 0, KCapabilityTestContactHeaderNoFeaturetag_A ); - } - -void UT_CMusAvaCapabilityExchange::UT_CMusAvaCapabilityExchange_CancelQueryL() - { - EUNIT_DISABLE_ALLOC_DECORATOR; - if ( !iProfile->iArray ) - { - iProfile->iArray = new ( ELeave ) CDesC8ArrayFlat( 1 ); - iProfile->iArray->AppendL( _L8("sip:user@domain.com") ); - } - - CMusAvaCapabilityQuery* query = NULL; - - query = CMusAvaCapabilityQuery::NewL( *iCapability, - *iSIPConnection, - *iProfile, - KCapabilityTestSIPAddressUri_B ); - CleanupStack::PushL( query ); - - EUNIT_ASSERT( query->Result() == KCapabilityQueryNotReady ); - EUNIT_ASSERT( query->State() == - CMusAvaCapabilityQueryBase::ECapabilityQueryCreated ); - EUNIT_ASSERT( !query->iTimer ); - EUNIT_ASSERT( !query->iTrx ); - - EUNIT_ASSERT( iExchange->Terminals().Count() == 1 ); - EUNIT_ASSERT( query->Terminal().Id().Length() == 0 ); - EUNIT_ASSERT( !query->Terminal().RequestedQuery() ); - EUNIT_ASSERT( !query->Terminal().IsDiscovered() ); - - query->Terminal().ExecuteQueryL( query ); - CleanupStack::Pop( query ); - - EUNIT_ASSERT( query->Terminal().iQuery == query ); - EUNIT_ASSERT( query->Result() == KCapabilityQueryNotReady ); - EUNIT_ASSERT( query->State() == - CMusAvaCapabilityQueryBase::ECapabilityQueryExecuting ); - EUNIT_ASSERT( !query->iTimer ); - EUNIT_ASSERT( query->iTrx ); - - query->SetState( CMusAvaCapabilityQueryBase::ECapabilityQueryExecuting ); - - //200 OK with User-Agent - CapabilityTestHelper::SetResponseL( *query->iTrx, - KMUSAVASIP200, - SipStrConsts::EPhraseOk, - KCapabilityTestAddress_B, - KCapabilitySwisFeature, - KCapabilityTestTerminalID_B, - KPAssertedIdentity_B, - KCapabilityTestSDP ); - TInt err = 404; - EUNIT_ENABLE_ALLOC_DECORATOR; - iExchange->CancelQuery( err, *query->iTrx ); - EUNIT_ASSERT( query->State() == - CMusAvaCapabilityQueryBase::ECapabilityQueryCompleted ); - } - -void UT_CMusAvaCapabilityExchange::UT_CMusAvaCapabilityExchange_AddCapabilityLL( ) - { - TInt index = KErrNotFound; - CMusAvaCapability* capability = NULL; - - for ( TInt i=0; i < iExchange->iCapabilities.Count() && index == KErrNotFound; i++ ) - { - capability = iExchange->iCapabilities[i]; - if ( capability->Feature() == iCapability->Feature() ) - { - index = i; - } - } - EUNIT_ASSERT( index == 0 ); - } - -void UT_CMusAvaCapabilityExchange::UT_CMusAvaCapabilityExchange_TerminalLL() - { - EUNIT_ASSERT( iExchange->Terminals().Count() == 0 ); - - CSIPServerTransaction* request = NULL; - - for( TInt i = 0;i<6;i++ ) - { - - if ( i == 0 || i == 1 ) - { - - request = - CapabilityTestHelper::OptionsRequestL( KCapabilityTestAddress_A, - KCapabilityTestAddress_B, - KCapabilitySwisFeature, - KCapabilitySwisFeature, - KCapabilityTestAcceptHeader, - KNullDesC8 ); - } - else if ( i == 2 || i == 3 ) - { - request = - CapabilityTestHelper::OptionsRequestL( KCapabilityTestAddress_A, - KCapabilityTestAddress_B, - KCapabilitySwisFeature, - KCapabilitySwisFeature, - KCapabilityTestAcceptHeader, - KCapabilityTestTerminalID_B ); - } - else if ( i == 4 ) - { - request = - CapabilityTestHelper::OptionsRequestL( KCapabilityTestAddress_A, - KCapabilityTestAddress_A,//OK - KCapabilitySwisFeature, - KCapabilitySwisFeature, - KCapabilityTestAcceptHeader, - KNullDesC8 ); - } - else if ( i == 5 ) - { - request = - CapabilityTestHelper::OptionsRequestL( KCapabilityTestAddress_A, - KCapabilityTestAddress_A,//OK - KCapabilitySwisFeature, - KCapabilitySwisFeature, - KCapabilityTestAcceptHeader, - KCapabilityTestTerminalID_A ); - } - - CleanupStack::PushL( request ); - - // Next function call creates a terminal for capability exchage - iExchange->TerminalL( *request ); - - if ( i == 0 ) - { - // Next function has the same uri as the already created terminal has, it should not create the new one - iExchange->TerminalL( KCapabilityTestAddress_B ); - EUNIT_ASSERT( iExchange->Terminals().Count() == 1 ); - EUNIT_ASSERT( iExchange->Terminals()[0]->Id().Compare( KNullDesC8 ) == 0 ); - EUNIT_ASSERT( iExchange->Terminals()[0]->Uri().Compare( KCapabilityTestAddress_B ) == 0 ); - } - else if ( i == 1 ) - { - // Next function has the same uri as the already created terminal has, it should not create the new one - iExchange->TerminalL( KCapabilityTestAddress_B ); - EUNIT_ASSERT( iExchange->Terminals().Count() == 1 ); - EUNIT_ASSERT( iExchange->Terminals()[0]->Id().Compare( KNullDesC8 ) == 0 ); - EUNIT_ASSERT( iExchange->Terminals()[0]->Uri().Compare( KCapabilityTestAddress_B ) == 0 ); - } - else if ( i == 2 ) - { - // Next function has the same uri as the already created terminal has, it should not create the new one - iExchange->TerminalL( KCapabilityTestAddress_B ); - EUNIT_ASSERT( iExchange->Terminals().Count() == 1 ); - EUNIT_ASSERT( iExchange->Terminals()[0]->Id().Compare( KCapabilityTestTerminalID_B ) == 0 ); - EUNIT_ASSERT( iExchange->Terminals()[0]->Uri().Compare( KCapabilityTestAddress_B ) == 0 ); - } - else if ( i == 3 ) - { - // Next function has the same uri as the already created terminal has, it should not create the new one - iExchange->TerminalL( KCapabilityTestAddress_B ); - EUNIT_ASSERT( iExchange->Terminals().Count() == 1 ); - EUNIT_ASSERT( iExchange->Terminals()[0]->Id().Compare( KCapabilityTestTerminalID_B ) == 0 ); - EUNIT_ASSERT( iExchange->Terminals()[0]->Uri().Compare( KCapabilityTestAddress_B ) == 0 ); - } - else if ( i == 4 ) - { - // Next function has the same uri as the already created terminal has, it should not create the new one - iExchange->TerminalL( KCapabilityTestAddress_B ); - EUNIT_ASSERT( iExchange->Terminals().Count() == 2 ); - EUNIT_ASSERT( iExchange->Terminals()[0]->Id().Compare( KCapabilityTestTerminalID_B ) == 0 ); - EUNIT_ASSERT( iExchange->Terminals()[0]->Uri().Compare( KCapabilityTestAddress_B ) == 0 ); - EUNIT_ASSERT( iExchange->Terminals()[1]->Id().Compare( KNullDesC8 ) == 0 ); - EUNIT_ASSERT( iExchange->Terminals()[1]->Uri().Compare( KCapabilityTestAddress_A ) == 0 ); - } - else if ( i == 5 ) - { - // Next function has the same uri as the already created terminal has, it should not create the new one - iExchange->TerminalL( KCapabilityTestAddress_B ); - EUNIT_ASSERT( iExchange->Terminals().Count() == 2 ); - EUNIT_ASSERT( iExchange->Terminals()[0]->Id().Compare( KCapabilityTestTerminalID_B ) == 0 ); - EUNIT_ASSERT( iExchange->Terminals()[0]->Uri().Compare( KCapabilityTestAddress_B ) == 0 ); - EUNIT_ASSERT( iExchange->Terminals()[1]->Id().Compare( KCapabilityTestTerminalID_A ) == 0 ); - EUNIT_ASSERT( iExchange->Terminals()[1]->Uri().Compare( KCapabilityTestAddress_A ) == 0 ); - } - - CleanupStack::PopAndDestroy( request ); - - } - - } - -void UT_CMusAvaCapabilityExchange::UT_CMusAvaCapabilityExchange_RejectQueryLL() - { - EUNIT_DISABLE_ALLOC_DECORATOR; - CSIPServerTransaction* request = NULL; - - iStorage->Clear(); - - request = - CapabilityTestHelper::OptionsRequestL( KCapabilityTestAddress_A, - KCapabilityTestAddress_B, - KCapabilitySwisFeature, - KCapabilitySwisFeature, - KCapabilityTestAcceptHeader, - KNullDesC8 ); - - - CleanupStack::PushL( request ); - EUNIT_ENABLE_ALLOC_DECORATOR; - - iExchange->RejectQueryL( *request, KMUSAVASIPNotImplemented ); - EUNIT_ASSERT( iStorage->iResponseToRequest == SIPStrings::StringF( SipStrConsts::EOptions ) ); - EUNIT_ASSERT( iStorage->iClientResponse->StatusCode() == KMUSAVASIPNotImplemented ); - EUNIT_ASSERT( iStorage->iClientResponse->ReasonPhrase() == SIPStrings::StringF( SipStrConsts::EEmpty ) ); - EUNIT_ASSERT( iStorage->iClientResponse->MessageElements().Content().Length() == 0 ); - - iStorage->Clear(); - - iExchange->RejectQueryL( *request, KErrGeneral ); - EUNIT_ASSERT( iStorage->iResponseToRequest == SIPStrings::StringF( SipStrConsts::EOptions ) ); - EUNIT_ASSERT( iStorage->iClientResponse->StatusCode() == KMUSAVASIPServerInternalError ); - EUNIT_ASSERT( iStorage->iClientResponse->ReasonPhrase() == SIPStrings::StringF( SipStrConsts::EPhraseServerInternalError ) ); - EUNIT_ASSERT( iStorage->iClientResponse->MessageElements().Content().Length() == 0 ); - - CleanupStack::PopAndDestroy( request ); - } - -void UT_CMusAvaCapabilityExchange::UT_CMusAvaCapabilityExchange_FindByFeatureL() - { - EUNIT_ASSERT( iExchange->FindByFeature(*iCapability) == 0 ); - } - -void UT_CMusAvaCapabilityExchange::UT_CMusAvaCapabilityExchange_AnswerToQueryReceivedL( ) - { - if ( !iProfile->iArray ) - { - iProfile->iArray = new ( ELeave ) CDesC8ArrayFlat( 1 ); - iProfile->iArray->AppendL( _L8("sip:user@domain.com") ); - } - - MultimediaSharingSettings::SetOperatorVariantSettingL( - MusSettingsKeys::EStandard ); - - EUNIT_ASSERT( iExchange->Capabilities().Count() == 1 ); - EUNIT_ASSERT( iExchange->Capabilities()[0] == iCapability ); - EUNIT_ASSERT( iCapability->Feature().DesC().Compare( KCapabilitySwisFeature ) == 0 ); - - CMusAvaCapabilityQuery* query = NULL; - - -//init - for( TInt i = 0; i<5;i++ ) - { - query = CMusAvaCapabilityQuery::NewL( *iCapability, - *iSIPConnection, - *iProfile, - KCapabilityTestSIPAddressUri_B ); - CleanupStack::PushL( query ); - - EUNIT_ASSERT( query->Result() == KCapabilityQueryNotReady ); - EUNIT_ASSERT( query->State() == CMusAvaCapabilityQueryBase::ECapabilityQueryCreated ); - EUNIT_ASSERT( !query->iTimer ); - EUNIT_ASSERT( !query->iTrx ); - - EUNIT_ASSERT( iExchange->Terminals().Count() == 1 ); - if ( i == 0 ) - { - EUNIT_ASSERT( query->Terminal().Id().Length() == 0 ); - } - else - { - EUNIT_ASSERT( query->Terminal().Id().Length() > 0 ); - EUNIT_ASSERT( query->Terminal().Id().Compare( KCapabilityTestTerminalID_B ) == 0 ); - } - - EUNIT_ASSERT( !query->Terminal().RequestedQuery() ); - EUNIT_ASSERT( !query->Terminal().IsDiscovered() ); - - // Since several queries cannot be executed, we delete the old one... - delete query->iTerminal->iQuery; - query->iTerminal->iQuery = NULL; - - // ...before execution - query->Terminal().ExecuteQueryL( query ); - CleanupStack::Pop( query ); - - EUNIT_ASSERT( query->Terminal().iQuery == query ); - EUNIT_ASSERT( query->Result() == KCapabilityQueryNotReady ); - EUNIT_ASSERT( query->State() == CMusAvaCapabilityQueryBase::ECapabilityQueryExecuting ); - EUNIT_ASSERT( !query->iTimer ); - EUNIT_ASSERT( query->iTrx ); - - EUNIT_ASSERT( iExchange->Terminals().Count() == 1 ); - if ( i == 0 ) - { - EUNIT_ASSERT( query->Terminal().Id().Length() == 0 ); - } - else - { - EUNIT_ASSERT( query->Terminal().Id().Length() > 0 ); - EUNIT_ASSERT( query->Terminal().Id().Compare( KCapabilityTestTerminalID_B ) == 0 ); - } - - HBufC* uri16 = EscapeUtils::ConvertToUnicodeFromUtf8L( query->Terminal().Uri() ); - EUNIT_ASSERT( uri16->Compare( KCapabilityTestSIPAddressUri_B ) == 0 ); - delete uri16; - uri16 = NULL; - EUNIT_ASSERT( !query->Terminal().RequestedQuery() ); - EUNIT_ASSERT( !query->Terminal().IsDiscovered() ); - - EUNIT_ASSERT( iStorage->iClientRequest->Method() == SIPStrings::StringF( SipStrConsts::EOptions ) ); - EUNIT_ASSERT( iStorage->iClientRequest->MessageElements().Content().Length() > 0 ); - EUNIT_ASSERT( iStorage->iClientRequest->MessageElements().ContentType() ); - EUNIT_ASSERT( iStorage->iClientRequest->MessageElements().UserHeaders().Count() == 6 ); - MUS_HEADER_ASSERT( iStorage->iClientRequest, 0, KCapabilityTestAcceptContactHeader ); - MUS_HEADER_ASSERT( iStorage->iClientRequest, 5, KCapabilityTestContactHeader_A1Updated ); - MUS_HEADER_ASSERT( iStorage->iClientRequest, 3, KCapabilityTestAcceptHeader ); - - //set response - - // GSMA Cingular - if ( i == 0 || i == 3 )//200 OK FT - { - CapabilityTestHelper::SetResponseL( *query->iTrx, KMUSAVASIP200, SipStrConsts::EPhraseOk, - KCapabilityTestAddress_B, - KCapabilitySwisFeature, - KCapabilityTestTerminalID_B, - KPAssertedIdentity_B, - KCapabilityTestSDP ); - } - // GSMA Cingular - else if ( i == 1 || i == 4 )//200 OK NO FT - { - CapabilityTestHelper::SetResponseL( *query->iTrx, KMUSAVASIP200, SipStrConsts::EPhraseOk, - KCapabilityTestAddress_B, - KNullDesC8, - KCapabilityTestTerminalID_B, - KPAssertedIdentity_B, - KCapabilityTestSDP ); - - } - else if ( i == 2 )//GSMA & 404 - { - CapabilityTestHelper::SetResponseL( *query->iTrx, KMUSAVASIPNotFound, SipStrConsts::EPhraseNotFound, - KCapabilityTestAddress_B, - KNullDesC8, - KNullDesC8, - KNullDesC8, - KNullDesC8 ); - - } - - if ( i == 4 ) - { - EUNIT_ASSERT( - MultimediaSharingSettings::OperatorVariantSettingL() == - MusSettingsKeys::EStandard ); - // set cingular variant key on - MultimediaSharingSettings::SetOperatorVariantSettingL( - MusSettingsKeys::EOperatorSpecific ); - EUNIT_ASSERT( MultimediaSharingSettings::OperatorVariantSettingL() - == MusSettingsKeys::EOperatorSpecific ); - } - - //iExchange->iTerminal - iExchange->AnswerToQueryReceived( *query->iTrx ); - TInt count = NULL; - EUNIT_GET_ALLOC_DECORATOR_FAILCOUNT( count ); - if ( count > 0 && - query->Terminal().Id().Length() == 0 ) - { - User::Leave( KErrNoMemory ); - } - if ( count > 0 && - i == 1 && - query->Terminal().iQuery->Result() != KCapabilityCapabilitesNotFound ) - { - User::Leave( KErrNoMemory ); - } - if ( count > 0 && - i == 2 && - !query->Retrying() ) - { - User::Leave( KErrNoMemory ); - } - - EUNIT_ASSERT( iExchange->Terminals().Count() == 1 ); - EUNIT_ASSERT( query->Terminal().Id().Length() > 0 ); - EUNIT_ASSERT( query->Terminal().Id().Compare( KCapabilityTestTerminalID_B ) == 0 ); - uri16 = EscapeUtils::ConvertToUnicodeFromUtf8L( query->Terminal().Uri() ); - delete uri16; - uri16 = NULL; - EUNIT_ASSERT( !query->Terminal().RequestedQuery() ); - - - if ( i == 0 || i == 3 )//200 OK FT - { - EUNIT_ASSERT( - MultimediaSharingSettings::OperatorVariantSettingL() == - MusSettingsKeys::EStandard ); - EUNIT_ASSERT( query->Terminal().iQuery->State() == CMusAvaCapabilityQueryBase::ECapabilityQueryCompleted ); - EUNIT_ASSERT( query->Terminal().IsDiscovered() ); - EUNIT_ASSERT( !query->Retrying() ); - EUNIT_ASSERT( query->iTimer == NULL ); - } - else if ( i == 1 )//GSMA & 200 OK NO FT - { - EUNIT_ASSERT( - MultimediaSharingSettings::OperatorVariantSettingL() == - MusSettingsKeys::EStandard ); - EUNIT_ASSERT( query->Terminal().iQuery == query ); - EUNIT_ASSERT( query->Terminal().iQuery->Result() == KCapabilityCapabilitesNotFound ); - EUNIT_ASSERT( query->Terminal().IsDiscovered() ); - EUNIT_ASSERT( !query->Retrying() ); - EUNIT_ASSERT( query->iTimer == NULL ); - } - else if ( i == 4 )//( not yet Cingular) & 200 OK NO FT - { - EUNIT_ASSERT( MultimediaSharingSettings::OperatorVariantSettingL() - == MusSettingsKeys::EOperatorSpecific ); - MultimediaSharingSettings::SetOperatorVariantSettingL( - MusSettingsKeys::EStandard ); - EUNIT_ASSERT( query->Terminal().iQuery == query ); - EUNIT_ASSERT( query->Terminal().iQuery->Result() == KCapabilityCapabilitesNotFound ); - EUNIT_ASSERT( query->Terminal().IsDiscovered() ); - EUNIT_ASSERT( !query->Retrying() ); - EUNIT_ASSERT( query->iTimer == NULL ); - } - else if ( i == 2 ) //GSMA & 404 - { - EUNIT_ASSERT( - MultimediaSharingSettings::OperatorVariantSettingL() == - MusSettingsKeys::EStandard ); - EUNIT_ASSERT( !query->Terminal().iQuery == NULL ); - EUNIT_ASSERT( !query->Terminal().IsDiscovered() ); - EUNIT_ASSERT( query->Retrying() ); - EUNIT_ASSERT( query->iTimer != NULL ); - - query->OnExpiredL( KErrNone ); - EUNIT_ASSERT( iStorage->iClientRequest->Method() == SIPStrings::StringF( SipStrConsts::EOptions ) ); - EUNIT_ASSERT( iStorage->iClientRequest->MessageElements().Content().Length() > 0 ); - EUNIT_ASSERT( iStorage->iClientRequest->MessageElements().ContentType() ); - EUNIT_ASSERT( iStorage->iClientRequest->MessageElements().UserHeaders().Count() == 6 ); - MUS_HEADER_ASSERT( iStorage->iClientRequest, 0, KCapabilityTestAcceptContactHeader ); - MUS_HEADER_ASSERT( iStorage->iClientRequest, 5, KCapabilityTestContactHeader_A1Updated ); - - CapabilityTestHelper::SetResponseL( *query->iTrx, KMUSAVASIPNotFound, SipStrConsts::EPhraseNotFound, - KCapabilityTestAddress_B, - KNullDesC8, - KNullDesC8, - KNullDesC8, - KNullDesC8 ); - iExchange->AnswerToQueryReceived( *query->iTrx ); - EUNIT_ASSERT( query->Terminal().iQuery == query ); - EUNIT_ASSERT( query->Terminal().iQuery->Result() == KCapabilityCapabilitesNotFound ); - EUNIT_ASSERT( query->Terminal().IsDiscovered() ); - EUNIT_ASSERT( !query->Retrying() ); - EUNIT_ASSERT( query->iTimer == NULL ); - - } - } - MultimediaSharingSettings::SetOperatorVariantSettingL( - MusSettingsKeys::EStandard ); - } - - -// TEST TABLE - -EUNIT_BEGIN_TEST_TABLE( - UT_CMusAvaCapabilityExchange, - "CMusAvaCapabilityExchange", - "UNIT" ) - -EUNIT_TEST( - "NewL - test ", - "CMusAvaCapabilityExchange", - "NewL", - "FUNCTIONALITY", - SetupL,UT_CMusAvaCapabilityExchange_NewLL, Teardown) - -EUNIT_TEST( - "QueryObserverL - test ", - "CMusAvaCapabilityExchange", - "QueryObserver", - "FUNCTIONALITY", - SetupL,UT_CMusAvaCapabilityExchange_QueryObserverL, Teardown) - -EUNIT_TEST( - "TerminalId - test ", - "CMusAvaCapabilityExchange", - "TerminalId", - "FUNCTIONALITY", - SetupL,UT_CMusAvaCapabilityExchange_TerminalIdL, Teardown) - - -EUNIT_TEST( - "QueryReceivedL - test ", - "CMusAvaCapabilityExchange", - "QueryReceivedL", - "FUNCTIONALITY", - SetupL,UT_CMusAvaCapabilityExchange_QueryReceivedL, Teardown) - -EUNIT_TEST( - "QueryReceivedL1 - test ", - "CMusAvaCapabilityExchange", - "QueryReceivedL", - "FUNCTIONALITY", - SetupL,UT_CMusAvaCapabilityExchange_QueryReceived1L, Teardown) - -EUNIT_TEST( - "QueryReceivedL2 - test ", - "CMusAvaCapabilityExchange", - "QueryReceivedL", - "FUNCTIONALITY", - SetupL,UT_CMusAvaCapabilityExchange_QueryReceived2L, Teardown) - -EUNIT_TEST( - "CancelQuery - test ", - "CMusAvaCapabilityExchange", - "CancelQuery", - "FUNCTIONALITY", - SetupL,UT_CMusAvaCapabilityExchange_CancelQueryL, Teardown) - - EUNIT_TEST( - "AddCapability - test ", - "CMusAvaCapabilityExchange", - "AddCapability", - "FUNCTIONALITY", - SetupL,UT_CMusAvaCapabilityExchange_AddCapabilityLL, Teardown) - - EUNIT_TEST( - "TerminalL - test ", - "CMusAvaCapabilityExchange", - "TerminalL", - "FUNCTIONALITY", - SetupL,UT_CMusAvaCapabilityExchange_TerminalLL, Teardown) - - EUNIT_TEST( - "RejectQueryL - test ", - "CMusAvaCapabilityExchange", - "RejectQueryL", - "FUNCTIONALITY", - SetupL,UT_CMusAvaCapabilityExchange_RejectQueryLL, Teardown) - - EUNIT_TEST( - "FindByFeature - test ", - "CMusAvaCapabilityExchange", - "FindByFeature", - "FUNCTIONALITY", - SetupL,UT_CMusAvaCapabilityExchange_FindByFeatureL, Teardown) - - EUNIT_TEST( - "AnswerToQueryReceived - test ", - "CMusAvaCapabilityExchange", - "AnswerToQueryReceived", - "FUNCTIONALITY", - SetupL,UT_CMusAvaCapabilityExchange_AnswerToQueryReceivedL, Teardown) - -EUNIT_END_TEST_TABLE - -// END OF FILE