--- 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 <EscapeUtils.h>
-#include <digia/eunit/eunitmacros.h>
-#include <sipstrings.h>
-#include <sipstrconsts.h>
-#include <stringpool.h>
-#include <sipservertransaction.h>
-#include <siptransactionbase.h>
-#include <digia/eunit/eunitdecorators.h>
-// 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