diff -r b31261fd4e04 -r ccd8e69b5392 mmsharing/mmshavailability/tsrc/ut_availability/src/UT_CMusAvaCapability.cpp --- a/mmsharing/mmshavailability/tsrc/ut_availability/src/UT_CMusAvaCapability.cpp Tue Feb 02 00:09:07 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,399 +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_CMusAvaCapability.h" - -// EXTERNAL INCLUDES -#include -#include - - -// INTERNAL INCLUDES -#include "sipprofile.h" -#include "sipconnection.h" - -#include "musavaCapabilityExchange.h" -#include "musavaavailabilityobserver.h" -#include "musavaavailabilityobserverimp.h" -#include "musavaoptionhandler.h" -#include "musavasettingsimp.h" -#include "musavaobserverimp.h" -#include "musavaterminal.h" -#include "MusAvaCapability.h" -#include "musavacapabilitytesthelper.h" -#include "CSipSseTestTls.h" -#include "musavacapabilitycontext.h" -#include "musavacapabilityqueryobserverimp.h" -#include "mussettings.h" - -_LIT8( KTestTerminalId, "TestTerminalID" ); - -// CONSTRUCTION -UT_CMusAvaCapability* UT_CMusAvaCapability::NewL() - { - UT_CMusAvaCapability* self = UT_CMusAvaCapability::NewLC(); - CleanupStack::Pop(); - - return self; - } - -UT_CMusAvaCapability* UT_CMusAvaCapability::NewLC() - { - UT_CMusAvaCapability* self = new( ELeave ) UT_CMusAvaCapability(); - CleanupStack::PushL( self ); - - self->ConstructL(); - - return self; - } - -// Destructor (virtual by CBase) -UT_CMusAvaCapability::~UT_CMusAvaCapability() - { - } - -// Default constructor -UT_CMusAvaCapability::UT_CMusAvaCapability() - { - } - -// Second phase construct -void UT_CMusAvaCapability::ConstructL() - { - // The ConstructL from the base class CEUnitTestSuiteClass must be called. - // It generates the test case table. - CEUnitTestSuiteClass::ConstructL(); - } - -// METHODS - - - -void UT_CMusAvaCapability::SetupL( ) - { - MSIPObserver* dummyObserver = NULL; - CSIPProfileRegistry* dummyRegistry = NULL; - MSIPConnectionObserver* dummyConnectionObserver = NULL; - - TUid uid = TUid::Uid( 1 ); - TUint32 iapId = 32; - - iSIP = CSIP::NewL( uid, *dummyObserver ); - iProfile = CSIPProfile::NewL( dummyRegistry ); - iSIPConnection = CSIPConnection::NewL( *iSIP, - iapId, - *dummyConnectionObserver ); - - iAvailabilityObserver = CMusAvaAvailabilityObserverImp::NewL(); - iConcreteSettings = CMusAvaSettingsImp::NewL(); - iOptionHandler = CMusAvaOptionHandler::NewL( *iAvailabilityObserver, - *iConcreteSettings ); - - iExchange = iOptionHandler->iCapabilityExchange; - - iCapability = iOptionHandler->iSwisCapability; - - CSipSseTestTls::OpenL(); - - } - -void UT_CMusAvaCapability::Teardown( ) - { - delete iOptionHandler; - delete iAvailabilityObserver; - delete iConcreteSettings; - CSipSseTestTls::Close(); - - delete iSIPConnection; - delete iProfile; - delete iSIP; - - } - -void UT_CMusAvaCapability::UT_CMusAvaCapability_NewLL( ) - { - - EUNIT_ASSERT( &iCapability->Exchange() == iExchange ); - EUNIT_ASSERT( iCapability->Feature().DesC().Compare( KCapabilitySwisFeature ) == 0 ); - EUNIT_ASSERT( iCapability->Enabled() ); - iCapability->Enabled() = EFalse; - EUNIT_ASSERT( !iCapability->Enabled() ); - - CSIPAcceptContactHeader* acceptContact = NULL; - - // create accept contact with feature tag, check if accept-contact-header has - // feature tag defined in iCapability - acceptContact = MusAvaCapabilityContext::AcceptContactHeaderLC( iCapability->Feature() ); - EUNIT_ASSERT( iCapability->Supports( *acceptContact ) ); - // check if feature tag is the "right one" - EUNIT_ASSERT( iCapability->Feature().DesC().Compare( KCapabilitySwisFeature ) == 0 ); - - // remove the feature tag from accept-contact header, add test-feature-tag - // check that iCapability does not support the test feature tag - // check also that iCapability feature tag is the 'right one' - acceptContact->DeleteParam( iCapability->Feature() ); - RStringF newParam = MusAvaCapabilityContext::SIPStringL( KCapabilityTestDataFeature ); - CleanupClosePushL( newParam ); - acceptContact->SetParamL( newParam ); - CleanupStack::PopAndDestroy();//newParam - EUNIT_ASSERT( !iCapability->Supports( *acceptContact ) ); - EUNIT_ASSERT( iCapability->Feature().DesC().Compare( KCapabilitySwisFeature ) == 0 ); - - CleanupStack::PopAndDestroy( acceptContact ); - - } - -void UT_CMusAvaCapability::UT_CMusAvaCapability_DoPopulateResponseLL( ) - { - CSIPServerTransaction* options = NULL; - - iCapability->Enabled() = ETrue; - - options = CapabilityTestHelper::OptionsRequestL( KCapabilityTestAddress_A, - KCapabilityTestAddress_B, - KCapabilitySwisFeature, - KCapabilitySwisFeature, - KCapabilityTestAcceptHeader, - KCapabilityTestTerminalID_B ); - CleanupStack::PushL( options ); - - // Test : AVC enabled => H263 & H264 - TInt32 KMusDisableAVC = 0x0ffffff1; // some value other than disable magic value - MultimediaSharingSettings::SetPropertyValueL(MusSettingsKeys::KEncodingDevice, - KMusDisableAVC ); - CSdpDocument* sdpContent = CMusAvaCapability::ResponseContentLC( *options ); - RPointerArray responseHeaders; - CSIPHeaderBase::PushLC( &responseHeaders ); - - iCapability->PopulateResponseL( *options, responseHeaders, *sdpContent ); - - EUNIT_ASSERT( responseHeaders.Count() == 1 ); - EUNIT_ASSERT( sdpContent->AttributeFields().Count() == 2 ); - EUNIT_ASSERT( sdpContent->MediaFields().Count() == 1 ); - EUNIT_ASSERT( sdpContent->MediaFields()[0]->FormatAttributeFields().Count() == 2 ); - CleanupStack::PopAndDestroy( &responseHeaders ); - CleanupStack::PopAndDestroy( sdpContent ); - - // Test : AVC disabled => H263 - KMusDisableAVC = 0x0fffffff; // disable magic value - MultimediaSharingSettings::SetPropertyValueL(MusSettingsKeys::KEncodingDevice, - KMusDisableAVC ); - sdpContent = CMusAvaCapability::ResponseContentLC( *options ); - CSIPHeaderBase::PushLC( &responseHeaders ); - iCapability->PopulateResponseL( *options, responseHeaders, *sdpContent ); - EUNIT_ASSERT( responseHeaders.Count() == 1 ); - EUNIT_ASSERT( sdpContent->AttributeFields().Count() == 2 ); - EUNIT_ASSERT( sdpContent->MediaFields().Count() == 1 ); - EUNIT_ASSERT( sdpContent->MediaFields()[0]->FormatAttributeFields().Count() == 1 ); - CleanupStack::PopAndDestroy( &responseHeaders ); - CleanupStack::PopAndDestroy( sdpContent ); - CleanupStack::PopAndDestroy( options ); - - } - - -void UT_CMusAvaCapability::Setup1L() - { - // save operator variant setting type to be able to set it back to original value in teardown - iOpVariantSetting = MultimediaSharingSettings::OperatorVariantSettingL(); - iCapabQueryObserver = new ( ELeave ) CMusAvaCapabilityQueryObserverImp(); - iExchange = CMusAvaCapabilityExchange::NewL( KTestTerminalId, *iCapabQueryObserver ); - iCapability = CMusAvaCapability::NewL( *iExchange ); - CSipSseTestTls::OpenL(); - } - -void UT_CMusAvaCapability::Teardown1( ) - { - CSipSseTestTls::Close(); - delete iCapability; - delete iExchange; - delete iCapabQueryObserver; - } - - -void UT_CMusAvaCapability::UT_CMusAvaCapability_SupportsL() - { - - CSIPAcceptContactHeader* contactHeader = CSIPAcceptContactHeader::NewLC(); - - RStringF str = MusAvaCapabilityContext::SDPStringL( KCapabilitySwisFeature ); - CleanupClosePushL( str ); - - contactHeader->SetParamL( str ); - - EUNIT_ASSERT( iCapability->Supports( *contactHeader ) ); - - CleanupStack::PopAndDestroy( &str ); - CleanupStack::PopAndDestroy( contactHeader ); - - } - - -void UT_CMusAvaCapability::UT_CMusAvaCapability_ResolveCodecsLL() - { - _LIT( KTest263, "H263-2000/90000"); - _LIT( KTest264, "H264/90000"); - - // Find H.263 codec - CSdpDocument* sdpContent = CSdpDocument::DecodeLC( KCapabilityTestSDP ); - CDesCArrayFlat* codecs = iCapability->ResolveCodecsL( *sdpContent ); - CleanupStack::PushL( codecs ); - EUNIT_ASSERT( codecs->MdcaCount() == 1 ); - EUNIT_ASSERT_EQUALS( (*codecs)[0], KTest263 ); - CleanupStack::PopAndDestroy( codecs ); - CleanupStack::PopAndDestroy( sdpContent ); - - // Find H.264 codec - sdpContent = CSdpDocument::DecodeLC( KCapabilityTestSDP264 ); - codecs = iCapability->ResolveCodecsL( *sdpContent ); - CleanupStack::PushL( codecs ); - EUNIT_ASSERT( codecs->MdcaCount() == 1 ); - EUNIT_ASSERT_EQUALS( (*codecs)[0], KTest264 ); - CleanupStack::PopAndDestroy( codecs ); - CleanupStack::PopAndDestroy( sdpContent ); - - // Find H.263 or H.264 codec - sdpContent = CSdpDocument::DecodeLC( KCapabilityTestSDP264And263 ); - codecs = iCapability->ResolveCodecsL( *sdpContent ); - CleanupStack::PushL( codecs ); - EUNIT_ASSERT( codecs->MdcaCount() == 2 ); - EUNIT_ASSERT_EQUALS( (*codecs)[0], KTest264 ); - EUNIT_ASSERT_EQUALS( (*codecs)[1], KTest263 ); - CleanupStack::PopAndDestroy( codecs ); - CleanupStack::PopAndDestroy( sdpContent ); - - // Do NOT find an invalid codec - sdpContent = CSdpDocument::DecodeLC( KCapabilityTestSDPWrongCodec ); - codecs = iCapability->ResolveCodecsL( *sdpContent ); - CleanupStack::PushL( codecs ); - EUNIT_ASSERT( codecs->MdcaCount() == 0 ); - CleanupStack::PopAndDestroy( codecs ); - CleanupStack::PopAndDestroy( sdpContent ); - - } - -void UT_CMusAvaCapability::UT_CMusAvaCapability_AttributeL() - { - - CSdpDocument* sdpContent = CSdpDocument::DecodeLC( KCapabilityTestSDP ); - - // give an attribute which can be found - RStringF attribute = MusAvaCapabilityContext::SDPStringL( _L8("type") ); - CleanupClosePushL( attribute ); - EUNIT_ASSERT( iCapability->Attribute( attribute, *sdpContent ) ); - CleanupStack::PopAndDestroy( &attribute ); - - // give an attribute which can be not found - attribute = MusAvaCapabilityContext::SDPStringL( _L8("xxx") ); - CleanupClosePushL( attribute ); - EUNIT_ASSERT( !iCapability->Attribute( attribute, *sdpContent ) ); - CleanupStack::PopAndDestroy( &attribute ); - - CleanupStack::PopAndDestroy( sdpContent ); - } - - -void UT_CMusAvaCapability::UT_CMusAvaCapability_PopulateResponseL_OpSpecificL() - { - - MultimediaSharingSettings::SetOperatorVariantSettingL( MusSettingsKeys::EOperatorSpecific ); - iCapabQueryObserver->iCapabilitiesResolvedForCingular = ETrue; - - CSIPServerTransaction* options = - CapabilityTestHelper::OptionsRequestL( KCapabilityTestAddress_A, - KCapabilityTestAddress_B, - KCapabilitySwisFeature, - KCapabilitySwisFeature, - KCapabilityTestAcceptHeader, - KCapabilityTestTerminalID_B ); - CleanupStack::PushL( options ); - - CSdpDocument* sdpContent = - CMusAvaCapability::ResponseContentLC( *options ); - - RPointerArray responseHeaders; - CSIPHeaderBase::PushLC( &responseHeaders ); - - iCapability->PopulateResponseL( *options, responseHeaders, *sdpContent ); - - EUNIT_ASSERT( responseHeaders.Count() == 1 ); - HBufC8* headerValue = responseHeaders[0]->ToTextValueL(); - // header value contains just one field - EUNIT_ASSERT_EQUALS( KErrNotFound, headerValue->Find(_L8(";") ) ); - delete headerValue; - - CleanupStack::PopAndDestroy( &responseHeaders ); - CleanupStack::PopAndDestroy( sdpContent ); - CleanupStack::PopAndDestroy( options ); - } - - -// TEST TABLE - -EUNIT_BEGIN_TEST_TABLE( - UT_CMusAvaCapability, - "CMusAvaCapability", - "UNIT" ) - -EUNIT_TEST( - "NewL - test ", - "CMusAvaCapability", - "NewL", - "FUNCTIONALITY", - SetupL, UT_CMusAvaCapability_NewLL, Teardown) - -EUNIT_TEST( - "DoPopulateResponseL - test ", - "CMusAvaCapability", - "DoPopulateResponseL", - "FUNCTIONALITY", - SetupL, UT_CMusAvaCapability_DoPopulateResponseLL, Teardown) - -EUNIT_TEST( - "Supports - test ", - "CMusAvaCapability", - "Supports", - "FUNCTIONALITY", - Setup1L, UT_CMusAvaCapability_SupportsL, Teardown1 ) - -EUNIT_TEST( - "ResolveCodecsL - test ", - "CMusAvaCapability", - "ResolveCodecsL", - "FUNCTIONALITY", - Setup1L, UT_CMusAvaCapability_ResolveCodecsLL, Teardown1 ) - -EUNIT_TEST( - "Attribute - test ", - "CMusAvaCapability", - "Attribute", - "FUNCTIONALITY", - Setup1L, UT_CMusAvaCapability_AttributeL, Teardown1 ) - -EUNIT_TEST( - "PopulateResponseL Operator Specific - test ", - "CMusAvaCapability", - "PopulateResponseL", - "FUNCTIONALITY", - Setup1L, UT_CMusAvaCapability_PopulateResponseL_OpSpecificL, Teardown1 ) - - -EUNIT_END_TEST_TABLE - -// END OF FILE