mmsharing/mmshavailability/tsrc/ut_availability/src/UT_CMusAvaCapabilityExchange.cpp
changeset 15 ccd8e69b5392
parent 2 b31261fd4e04
child 20 e8be2c2e049d
child 22 496ad160a278
--- 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