diff -r 000000000000 -r f0cf47e981f9 mmsharing/mmshavailability/tsrc/ut_availability/inc/musavacapabilitytesthelper.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmsharing/mmshavailability/tsrc/ut_availability/inc/musavacapabilitytesthelper.h Thu Dec 17 08:44:37 2009 +0200 @@ -0,0 +1,298 @@ +/* +* Copyright (c) 2005-2007 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: Capability Test helper +* +*/ + + +#ifndef MUSAVACAPABILITYTESTHELPER_H +#define MUSAVACAPABILITYTESTHELPER_H + + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + + +// INTERNAL INCLUDES +#include "SIP.h" +#include "SIPConnection.h" +#include "SIPProfile.h" +#include "SIPClientTransaction.h" +#include "SIPServerTransaction.h" +#include "SIPRequestElements.h" +#include "SIPResponseElements.h" +#include "SIPMessageElements.h" + + +#include "musavacapabilitycontext.h" +#include "musavacapability.h" +#include "musavacapabilityexchange.h" + +// Next row is to disable warning emerging from EUnit code. +// Placement is due to a fact that most test case files +// include this file. Directive can be removed when +// EUnit is fixed. +#pragma warn_illtokenpasting off + +_LIT8( KCapabilityTestTerminalID_A, "Terminal_A"); +_LIT8( KCapabilityTestTerminalID_B, "Terminal_B"); +_LIT8( KPAssertedIdentity_B, "sip:4455667788@foobar.com" ); +_LIT( KPAssertedIdentity_B_16, "sip:4455667788@foobar.com" ); +_LIT8( KPAssertedIdentity_B1, "tel:+4455667788"); +_LIT( KPAssertedIdentity_B1_16, "tel:+4455667788"); +_LIT8( KCapabilityTestAddress_A, "sip:a@foobar.com"); +_LIT8( KCapabilityTestAddress_B, "sip:b@foobar.com"); +_LIT8( KCapabilityPAssertedIdentity, "sip:passertedid@foobar.com"); + + + +_LIT8( KCapabilityTestSDP,"v=0\r\n\ +o=- 452027953 452027953 IN IP4 foobar.com\r\n\ +s=-\r\n\ +c=IN IP4 foobar.com\r\n\ +t=0 0\r\n\ +a=application:com.gsma.rts\r\n\ +a=type:videolive\r\n\ +m=video 0 RTP/AVP 96\r\n\ +a=rtpmap:96 H263-2000/90000\r\n"); + +_LIT8( KCapabilityTestSDPWrongCodec,"v=0\r\n\ +o=- 452027953 452027953 IN IP4 foobar.com\r\n\ +s=-\r\n\ +c=IN IP4 foobar.com\r\n\ +t=0 0\r\n\ +a=application:com.gsma.rts\r\n\ +a=type:videolive\r\n\ +m=video 0 RTP/AVP 96\r\n\ +a=rtpmap:96 MPEG-4/90000\r\n"); + +_LIT8( KCapabilityTestSDPWrongType,"v=0\r\n\ +o=- 452027953 452027953 IN IP4 foobar.com\r\n\ +s=-\r\n\ +c=IN IP4 foobar.com\r\n\ +t=0 0\r\n\ +a=application:com.gsma.rts\r\n\ +a=type:wrongtype\r\n\ +m=video 0 RTP/AVP 96\r\n\ +a=rtpmap:96 H263-2000/90000\r\n"); + +_LIT8( KCapabilityTestSDPWrongApplication,"v=0\r\n\ +o=- 452027953 452027953 IN IP4 foobar.com\r\n\ +s=-\r\n\ +c=IN IP4 foobar.com\r\n\ +t=0 0\r\n\ +a=application:com.gsma.xxx\r\n\ +a=type:videolive\r\n\ +m=video 0 RTP/AVP 96\r\n\ +a=rtpmap:96 H263-2000/90000\r\n"); + +_LIT8( KCapabilityTestSDPNoApplication,"v=0\r\n\ +o=- 452027953 452027953 IN IP4 foobar.com\r\n\ +s=-\r\n\ +c=IN IP4 foobar.com\r\n\ +t=0 0\r\n\ +a=type:videolive\r\n\ +m=video 0 RTP/AVP 96\r\n\ +a=rtpmap:96 H263-2000/90000\r\n"); + +_LIT8( KCapabilityTestSDPNoAppNoType,"v=0\r\n\ +o=- 452027953 452027953 IN IP4 foobar.com\r\n\ +s=-\r\n\ +c=IN IP4 foobar.com\r\n\ +t=0 0\r\n\ +m=video 0 RTP/AVP 96\r\n\ +a=rtpmap:96 H263-2000/90000\r\n"); + +_LIT8( KCapabilityTestSDPNoAppWrongType,"v=0\r\n\ +o=- 452027953 452027953 IN IP4 foobar.com\r\n\ +s=-\r\n\ +c=IN IP4 foobar.com\r\n\ +t=0 0\r\n\ +a=type:wrongtype\r\n\ +m=video 0 RTP/AVP 96\r\n\ +a=rtpmap:96 H263-2000/90000\r\n"); + +_LIT8( KCapabilityTestSDPNoType,"v=0\r\n\ +o=- 452027953 452027953 IN IP4 foobar.com\r\n\ +s=-\r\n\ +c=IN IP4 foobar.com\r\n\ +t=0 0\r\n\ +a=application:com.gsma.rts\r\n\ +m=video 0 RTP/AVP 96\r\n\ +a=rtpmap:96 H263-2000/90000\r\n"); + +_LIT8( KCapabilityTestSDP264,"v=0\r\n\ +o=- 452027953 452027953 IN IP4 foobar.com\r\n\ +s=-\r\n\ +c=IN IP4 foobar.com\r\n\ +t=0 0\r\n\ +a=application:com.gsma.rts\r\n\ +a=type:videolive\r\n\ +m=video 0 RTP/AVP 98\r\n\ +a=rtpmap:98 H264/90000\r\n"); + +_LIT8( KCapabilityTestSDP264And263,"v=0\r\n\ +o=- 452027953 452027953 IN IP4 foobar.com\r\n\ +s=-\r\n\ +c=IN IP4 foobar.com\r\n\ +t=0 0\r\n\ +a=application:com.gsma.rts\r\n\ +a=type:videolive\r\n\ +m=video 0 RTP/AVP 98 96\r\n\ +a=rtpmap:98 H264/90000\r\n\ +a=rtpmap:96 H263-2000/90000\r\n"); + +_LIT8( KCapabilityTestSDP263And264,"v=0\r\n\ +o=- 452027953 452027953 IN IP4 foobar.com\r\n\ +s=-\r\n\ +c=IN IP4 foobar.com\r\n\ +t=0 0\r\n\ +a=application:com.gsma.rts\r\n\ +a=type:videolive\r\n\ +m=video 0 RTP/AVP 96 98\r\n\ +a=rtpmap:98 H264/90000\r\n\ +a=rtpmap:96 H263-2000/90000\r\n"); + +_LIT8( KCapabilityTestSDP264And263AndMpeg,"v=0\r\n\ +o=- 452027953 452027953 IN IP4 foobar.com\r\n\ +s=-\r\n\ +c=IN IP4 foobar.com\r\n\ +t=0 0\r\n\ +a=application:com.gsma.rts\r\n\ +a=type:videolive\r\n\ +m=video 0 RTP/AVP 98 96 99\r\n\ +a=rtpmap:98 H264/90000\r\n\ +a=rtpmap:96 H263-2000/90000\r\n\ +a=rtpmap:99 MPEG4/90000\r\n"); + +_LIT8( KCapabilityTestContentTypeOther, "application/text"); + +_LIT8( KRegisteredContact, "sip:registeredcontact@domain.com" ); + +_LIT8( KCapabilityTestAcceptContactHeader, "Accept-Contact: *;+g.3gpp.cs-voice;explicit"); +_LIT8( KCapabilityTestAcceptHeader, "Accept: application/sdp"); +_LIT8( KCapabilityTestContactHeader_A, "Contact: ;+g.3gpp.cs-voice"); +_LIT8( KCapabilityTestContactHeaderNoFeaturetag_A, "Contact: "); +_LIT8( KCapabilityTestContactHeader_A1, "Contact: ;+g.3gpp.cs-voice"); +_LIT8( KCapabilityTestContactHeader_A1Updated, "Contact: ;+g.3gpp.cs-voice"); +_LIT8( KCapabilityTestContactHeader_B, "Contact: sip:b@foobar.com;+g.3gpp.cs-voice"); +_LIT8( KCapabilityTestSIPAddress_B, "b@localhost"); +_LIT8( KCapabilityTestUserAgent_A, "User-Agent: Terminal_A"); +_LIT8( KCapabilityTestUserAgent_B, "User-Agent: Terminal_B"); +_LIT( KCapabilityTestSIPAddressUri_B, "b@foobar.com"); +_LIT( KCapabilityTestSIPAddressUri_BSIP, "sip:b@foobar.com"); +_LIT8( KCapabilityTestSIPAddressUri8_B, "b@foobar.com"); + +_LIT8( KCapabilityTestDataFeature, "+g.3gpp.cs-data"); +_LIT8( KCapabilitySwisFeatureFalse, "+g.3gpp.cs-voice;false"); + +#define MUS_HEADER_ASSERT( r, ndx, test )\ + if ( r )\ + {\ + HBufC8* header = r->MessageElements().UserHeaders()[ ndx ]->ToTextLC();\ + EUNIT_ASSERT( header->Compare( test ) == 0 );\ + CleanupStack::PopAndDestroy( header );\ + } + + +/** + * Capability Test helper + * + * @lib musavailabilityplugin.lib + * @since S60 v3.2 + */ +class CapabilityTestHelper + { + +public: // static API + + + static CSIPServerTransaction* OptionsRequestL( const TDesC8& aRequestUri, + const TDesC8& aFrom, + const TDesC8& aAcceptContact, + const TDesC8& aContact, + const TDesC8& aAccept, + const TDesC8& aUserAgent); + + static CSIPServerTransaction* OptionsRequestL( const TDesC8& aRequestUri, + const TDesC8& aFrom, + const TDesC8& aAcceptContact, + const TDesC8& aContact, + const TDesC8& aAccept, + const TDesC8& aUserAgent, + const TDesC8& aAssertId, + const TDesC8& aSdp = KNullDesC8); + + + static CSIPClientTransaction* OptionsResponseL( TUint aResponse, + TInt aPhrase, + const TDesC8& aFrom, + const TDesC8& aContact, + const TDesC8& aUserAgent, + const TDesC8& aPAssertedId, + const TDesC8& aSdp ); + + static void SetResponseL( CSIPClientTransaction& aTrx, + TUint aResponse, + TInt aPhrase, + const TDesC8& aFrom, + const TDesC8& aContact, + const TDesC8& aUserAgent, + const TDesC8& aPAssertedId, + const TDesC8& aSdp, + const TDesC8& aContentType = KNullDesC8 ); + + static void SetResponse2L( CSIPClientTransaction& aTrx, + TUint aResponse, + TInt aPhrase, + const TDesC8& aFrom, + const TDesC8& aContact, + const TDesC8& aUserAgent, + const TDesC8& aPAssertedId, + const TDesC8& aPAssertedId2, + const TDesC8& aSdp, + const TDesC8& aContentType = KNullDesC8 ); + + + }; + + +class HelpFlags + { +public: + static CSIPAddress* iTestSipAddress; + static TBool iUseTestSipAddress; + static TBool iEmptyContactHeader; + }; + + +#endif // MUSAVACAPABILITYTESTHELPER_H