websrv_pub/web_service_messaging_api/tsrc/newsoapclassesTester/src/newsoapclassesTesterBlocks.cpp
changeset 0 62f9d29f7211
equal deleted inserted replaced
-1:000000000000 0:62f9d29f7211
       
     1 /*
       
     2 * Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies). 
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:        ?Description
       
    15 *
       
    16 */
       
    17 
       
    18 
       
    19 // [INCLUDE FILES] - do not remove
       
    20 #include <e32math.h>
       
    21 #include <libc/assert.h>
       
    22 #include <e32panic.h>
       
    23 #include <e32svr.h>
       
    24 #include <StifParser.h>
       
    25 #include <StifTestInterface.h>
       
    26 #include "newsoapclassesTester.h"
       
    27 
       
    28 // EXTERNAL DATA STRUCTURES
       
    29 //extern  ?external_data;
       
    30 
       
    31 // EXTERNAL FUNCTION PROTOTYPES  
       
    32 //extern ?external_function( ?arg_type,?arg_type );
       
    33 
       
    34 // CONSTANTS
       
    35 //const ?type ?constant_var = ?constant;
       
    36 
       
    37 // MACROS
       
    38 //#define ?macro ?macro_def
       
    39 
       
    40 // LOCAL CONSTANTS AND MACROS
       
    41 //const ?type ?constant_var = ?constant;
       
    42 //#define ?macro_name ?macro_def
       
    43 
       
    44 // MODULE DATA STRUCTURES
       
    45 //enum ?declaration
       
    46 //typedef ?declaration
       
    47 
       
    48 // LOCAL FUNCTION PROTOTYPES
       
    49 //?type ?function_name( ?arg_type, ?arg_type );
       
    50 
       
    51 // FORWARD DECLARATIONS
       
    52 //class ?FORWARD_CLASSNAME;
       
    53 
       
    54 // ============================= LOCAL FUNCTIONS ===============================
       
    55 
       
    56 // -----------------------------------------------------------------------------
       
    57 // ?function_name ?description.
       
    58 // ?description
       
    59 // Returns: ?value_1: ?description
       
    60 //          ?value_n: ?description_line1
       
    61 //                    ?description_line2
       
    62 // -----------------------------------------------------------------------------
       
    63 //
       
    64 /*
       
    65 ?type ?function_name(
       
    66     ?arg_type arg,  // ?description
       
    67     ?arg_type arg)  // ?description
       
    68     {
       
    69 
       
    70     ?code  // ?comment
       
    71 
       
    72     // ?comment
       
    73     ?code
       
    74     }
       
    75 */
       
    76 
       
    77 // ============================ MEMBER FUNCTIONS ===============================
       
    78 
       
    79 // -----------------------------------------------------------------------------
       
    80 // CnewsoapclassesTester::Delete
       
    81 // Delete here all resources allocated and opened from test methods. 
       
    82 // Called from destructor. 
       
    83 // -----------------------------------------------------------------------------
       
    84 //
       
    85 void CnewsoapclassesTester::Delete() 
       
    86     {
       
    87 
       
    88     }
       
    89 
       
    90 // -----------------------------------------------------------------------------
       
    91 // CnewsoapclassesTester::RunMethodL
       
    92 // Run specified method. Contains also table of test mothods and their names.
       
    93 // -----------------------------------------------------------------------------
       
    94 //
       
    95 TInt CnewsoapclassesTester::RunMethodL( 
       
    96     CStifItemParser& aItem ) 
       
    97     {
       
    98 
       
    99     static TStifFunctionInfo const KFunctions[] =
       
   100         {  
       
   101         // Copy this line for every implemented function.
       
   102         // First string is the function name used in TestScripter script file.
       
   103         // Second is the actual implementation member function. 
       
   104         ENTRY( "NewL-CSenSoapEnvelope2", CnewsoapclassesTester::MT_CSenSoapEnvelope2_NewLL ),
       
   105         ENTRY( "NewLC-CSenSoapEnvelope2", CnewsoapclassesTester::MT_CSenSoapEnvelope2_NewLCL ),
       
   106         //ENTRY( "NewL-CSenSoapEnvelope2", CnewsoapclassesTester::MT_CSenSoapEnvelope2_NewL_1L ),
       
   107         //ENTRY( "NewLC-CSenSoapEnvelope2", CnewsoapclassesTester::MT_CSenSoapEnvelope2_NewLC_1L ),
       
   108         ENTRY( "NewL-CSenSoapEnvelope2", CnewsoapclassesTester::MT_CSenSoapEnvelope2_NewL_2L ),
       
   109         ENTRY( "NewLC-CSenSoapEnvelope2", CnewsoapclassesTester::MT_CSenSoapEnvelope2_NewLC_2L ),
       
   110         ENTRY( "Type-CSenSoapEnvelope2", CnewsoapclassesTester::MT_CSenSoapEnvelope2_TypeL ),
       
   111         ENTRY( "Direction-CSenSoapEnvelope2", CnewsoapclassesTester::MT_CSenSoapEnvelope2_DirectionL ),
       
   112         ENTRY( "TxnId-CSenSoapEnvelope2", CnewsoapclassesTester::MT_CSenSoapEnvelope2_TxnIdL ),
       
   113         ENTRY( "Clone-CSenSoapEnvelope2", CnewsoapclassesTester::MT_CSenSoapEnvelope2_CloneL ),
       
   114         ENTRY( "SoapVersion-CSenSoapEnvelope2", CnewsoapclassesTester::MT_CSenSoapEnvelope2_SoapVersionL ),
       
   115         //ENTRY( "SetContext-CSenSoapEnvelope2", CnewsoapclassesTester::MT_CSenSoapEnvelope2_SetContextL ),
       
   116         //ENTRY( "Context-CSenSoapEnvelope2", CnewsoapclassesTester::MT_CSenSoapEnvelope2_ContextL ),
       
   117         ENTRY( "SetProperties-CSenSoapEnvelope2", CnewsoapclassesTester::MT_CSenSoapEnvelope2_SetPropertiesL ),
       
   118         ENTRY( "SetBodyL-CSenSoapEnvelope2", CnewsoapclassesTester::MT_CSenSoapEnvelope2_SetBodyLL ),
       
   119         ENTRY( "Properties-CSenSoapEnvelope2", CnewsoapclassesTester::MT_CSenSoapEnvelope2_PropertiesL ),
       
   120         ENTRY( "IsSafeToCast-CSenSoapEnvelope2", CnewsoapclassesTester::MT_CSenSoapEnvelope2_IsSafeToCastL ),
       
   121         
       
   122         ENTRY( "SetBodyL-CSenSoapEnvelope2", CnewsoapclassesTester::MT_CSenSoapEnvelope2_SetBodyL_1L ),
       
   123         ENTRY( "BodyL-CSenSoapEnvelope2", CnewsoapclassesTester::MT_CSenSoapEnvelope2_BodyLL ),
       
   124         ENTRY( "HeaderL-CSenSoapEnvelope2", CnewsoapclassesTester::MT_CSenSoapEnvelope2_HeaderLL ),
       
   125         ENTRY( "AddHeaderL-CSenSoapEnvelope2", CnewsoapclassesTester::MT_CSenSoapEnvelope2_AddHeaderLL ),
       
   126         ENTRY( "BodyAsStringL-CSenSoapEnvelope2", CnewsoapclassesTester::MT_CSenSoapEnvelope2_BodyAsStringLL ),
       
   127         ENTRY( "IsFault-CSenSoapEnvelope2", CnewsoapclassesTester::MT_CSenSoapEnvelope2_IsFaultL ),
       
   128         ENTRY( "DetachFaultL-CSenSoapEnvelope2", CnewsoapclassesTester::MT_CSenSoapEnvelope2_DetachFaultLL ),
       
   129         ENTRY( "FaultL-CSenSoapEnvelope2", CnewsoapclassesTester::MT_CSenSoapEnvelope2_FaultLL ),
       
   130         ENTRY( "SetSoapActionL-CSenSoapEnvelope2", CnewsoapclassesTester::MT_CSenSoapEnvelope2_SetSoapActionLL ),
       
   131         ENTRY( "SoapAction-CSenSoapEnvelope2", CnewsoapclassesTester::MT_CSenSoapEnvelope2_SoapActionL ),
       
   132         ENTRY( "HasHeader-CSenSoapEnvelope2", CnewsoapclassesTester::MT_CSenSoapEnvelope2_HasHeaderL ),
       
   133         ENTRY( "HasBody-CSenSoapEnvelope2", CnewsoapclassesTester::MT_CSenSoapEnvelope2_HasBodyL ),
       
   134         ENTRY( "Parse1-CSenSoapEnvelope2", CnewsoapclassesTester::MT_CSenSoapEnvelope2_Parse1L ),
       
   135         ENTRY( "Parse2-CSenSoapEnvelope2", CnewsoapclassesTester::MT_CSenSoapEnvelope2_Parse2L ),
       
   136         ENTRY( "Parse2-CSenSoapEnvelope2", CnewsoapclassesTester::MT_CSenSoapEnvelope2_Parse3L ),
       
   137         ENTRY( "NewL-CSenSoapFault2", CnewsoapclassesTester::MT_CSenSoapFault2_NewLL ),
       
   138         ENTRY( "NewL-CSenSoapFault2", CnewsoapclassesTester::MT_CSenSoapFault2_NewL_1L ),
       
   139         ENTRY( "NewL-CSenSoapFault2", CnewsoapclassesTester::MT_CSenSoapFault2_NewL_2L ),
       
   140         ENTRY( "FaultCode-CSenSoapFault2", CnewsoapclassesTester::MT_CSenSoapFault2_FaultCodeL ),
       
   141         ENTRY( "FaultSubcode-CSenSoapFault2", CnewsoapclassesTester::MT_CSenSoapFault2_FaultSubcodeL ),
       
   142         ENTRY( "FaultString-CSenSoapFault2", CnewsoapclassesTester::MT_CSenSoapFault2_FaultStringL ),
       
   143         ENTRY( "FaultActor-CSenSoapFault2", CnewsoapclassesTester::MT_CSenSoapFault2_FaultActorL ),
       
   144         ENTRY( "Detail-CSenSoapFault2", CnewsoapclassesTester::MT_CSenSoapFault2_DetailL ),
       
   145         ENTRY( "NewL-CSenSoapMessage2", CnewsoapclassesTester::MT_CSenSoapMessage2_NewLL ),
       
   146         ENTRY( "NewLC-CSenSoapMessage2", CnewsoapclassesTester::MT_CSenSoapMessage2_NewLCL ),
       
   147         ENTRY( "NewL-CSenSoapMessage2", CnewsoapclassesTester::MT_CSenSoapMessage2_NewL_1L ),
       
   148         ENTRY( "NewLC-CSenSoapMessage2", CnewsoapclassesTester::MT_CSenSoapMessage2_NewLC_1L ),
       
   149         ENTRY( "NewL-CSenSoapMessage2", CnewsoapclassesTester::MT_CSenSoapMessage2_NewL_2L ),
       
   150         ENTRY( "NewLC-CSenSoapMessage2", CnewsoapclassesTester::MT_CSenSoapMessage2_NewLC_2L ),
       
   151         ENTRY( "NewL-CSenSoapMessage2", CnewsoapclassesTester::MT_CSenSoapMessage2_NewL_3L ),
       
   152         ENTRY( "NewLC-CSenSoapMessage2", CnewsoapclassesTester::MT_CSenSoapMessage2_NewLC_3L ),
       
   153         //ENTRY( "NewL-CSenSoapMessage2", CnewsoapclassesTester::MT_CSenSoapMessage2_NewL_4L ),
       
   154         //ENTRY( "NewLC-CSenSoapMessage2", CnewsoapclassesTester::MT_CSenSoapMessage2_NewLC_4L ),
       
   155         //ENTRY( "NewL-CSenSoapMessage2", CnewsoapclassesTester::MT_CSenSoapMessage2_NewL_5L ),
       
   156         //ENTRY( "NewLC-CSenSoapMessage2", CnewsoapclassesTester::MT_CSenSoapMessage2_NewLC_5L ),
       
   157         //ENTRY( "NewL-CSenSoapMessage2", CnewsoapclassesTester::MT_CSenSoapMessage2_NewL_6L ),
       
   158         //ENTRY( "NewLC-CSenSoapMessage2", CnewsoapclassesTester::MT_CSenSoapMessage2_NewLC_6L ),
       
   159         ENTRY( "NewL-CSenSoapMessage2", CnewsoapclassesTester::MT_CSenSoapEnvelope2_NewLL ),
       
   160         ENTRY( "Type-CSenSoapMessage2", CnewsoapclassesTester::MT_CSenSoapMessage2_TypeL ),
       
   161         ENTRY( "Clone-CSenSoapMessage2", CnewsoapclassesTester::MT_CSenSoapMessage2_CloneL ),
       
   162 		ENTRY( "Parse-CSenSoapMessage2", CnewsoapclassesTester::MT_CSenSoapMessage2_Parse1L ),        
       
   163         ENTRY( "SetSecurityHeaderL-CSenSoapMessage2", CnewsoapclassesTester::MT_CSenSoapMessage2_SetSecurityHeaderLL ),
       
   164         ENTRY( "AddSecurityTokenL-CSenSoapMessage2", CnewsoapclassesTester::MT_CSenSoapMessage2_AddSecurityTokenLL ),
       
   165         ENTRY( "NewL-CSenWsSecurityHeader2", CnewsoapclassesTester::MT_CSenWsSecurityHeader2_NewLL ),
       
   166         ENTRY( "NewLC-CSenWsSecurityHeader2", CnewsoapclassesTester::MT_CSenWsSecurityHeader2_NewLCL ),
       
   167         ENTRY( "NewL-CSenWsSecurityHeader2", CnewsoapclassesTester::MT_CSenWsSecurityHeader2_NewL_1L ),
       
   168         ENTRY( "NewLC-CSenWsSecurityHeader2", CnewsoapclassesTester::MT_CSenWsSecurityHeader2_NewLC_1L ),
       
   169         ENTRY( "NewL-CSenWsSecurityHeader2", CnewsoapclassesTester::MT_CSenWsSecurityHeader2_NewL_2L ),
       
   170         ENTRY( "NewLC-CSenWsSecurityHeader2", CnewsoapclassesTester::MT_CSenWsSecurityHeader2_NewLC_2L ),
       
   171         ENTRY( "UsernameTokenL-CSenWsSecurityHeader2", CnewsoapclassesTester::MT_CSenWsSecurityHeader2_UsernameTokenLL ),
       
   172         ENTRY( "UsernameTokenL-CSenWsSecurityHeader2", CnewsoapclassesTester::MT_CSenWsSecurityHeader2_UsernameTokenL_1L ),
       
   173         ENTRY( "UsernameTokenL-CSenWsSecurityHeader2", CnewsoapclassesTester::MT_CSenWsSecurityHeader2_UsernameTokenL_2L ),
       
   174         ENTRY( "UsernameTokenL-CSenWsSecurityHeader2", CnewsoapclassesTester::MT_CSenWsSecurityHeader2_UsernameTokenL_3L ),
       
   175         ENTRY( "UsernameTokenL-CSenWsSecurityHeader2", CnewsoapclassesTester::MT_CSenWsSecurityHeader2_UsernameTokenL_4L ),
       
   176         ENTRY( "TimestampL-CSenWsSecurityHeader2", CnewsoapclassesTester::MT_CSenWsSecurityHeader2_TimestampLL ),
       
   177         ENTRY( "TimestampL-CSenWsSecurityHeader2", CnewsoapclassesTester::MT_CSenWsSecurityHeader2_TimestampL_1L ),
       
   178         ENTRY( "XmlNs-CSenWsSecurityHeader2", CnewsoapclassesTester::MT_CSenWsSecurityHeader2_XmlNsL ),
       
   179         ENTRY( "XmlNsPrefix-CSenWsSecurityHeader2", CnewsoapclassesTester::MT_CSenWsSecurityHeader2_XmlNsPrefixL ),
       
   180         // Example how to use OOM functionality
       
   181         //OOM_ENTRY( "Loop test with OOM", CnewsoapclassesTester::LoopTest, ETrue, 2, 3),
       
   182         //OOM_FUNCENTRY( CnewsoapclassesTester::PrintTest, ETrue, 1, 3 ),
       
   183 
       
   184         };
       
   185 
       
   186     const TInt count = sizeof( KFunctions ) / 
       
   187                         sizeof( TStifFunctionInfo );
       
   188 
       
   189     return RunInternalL( KFunctions, count, aItem );
       
   190 
       
   191     }
       
   192 
       
   193 // -----------------------------------------------------------------------------
       
   194 // CnewsoapclassesTester::ExampleL
       
   195 // Example test method function.
       
   196 // (other items were commented in a header).
       
   197 // -----------------------------------------------------------------------------
       
   198 //
       
   199 void CnewsoapclassesTester::SetupL(  ){
       
   200 
       
   201 	} 
       
   202 
       
   203 void CnewsoapclassesTester::Teardown(  ){
       
   204 
       
   205 	}
       
   206 
       
   207 TInt CnewsoapclassesTester::MT_CSenSoapEnvelope2_NewLL( CStifItemParser& aItem )
       
   208     {
       
   209 	SetupL();
       
   210     _LIT8(KEnvelopeString, "<S:Envelope xmlns:S=\"http://schemas.xmlsoap.org/soap/envelope/\"/>");
       
   211     CSenSoapEnvelope2* pEnvelope = CSenSoapEnvelope2::NewL();
       
   212     CleanupStack::PushL(pEnvelope);
       
   213     HBufC8* pAsXml = pEnvelope->AsXmlL();
       
   214     CleanupStack::PushL(pAsXml);
       
   215     
       
   216     if(!( *pAsXml == KEnvelopeString )) return KErrArgument;
       
   217     
       
   218     CleanupStack::PopAndDestroy(pAsXml);
       
   219     CleanupStack::PopAndDestroy(pEnvelope);
       
   220     Teardown();
       
   221     return KErrNone;    
       
   222     }
       
   223     
       
   224 TInt CnewsoapclassesTester::MT_CSenSoapEnvelope2_NewLCL( CStifItemParser& aItem )
       
   225     {
       
   226 	SetupL();
       
   227     _LIT8(KEnvelopeString, "<S:Envelope xmlns:S=\"http://schemas.xmlsoap.org/soap/envelope/\"/>");
       
   228     CSenSoapEnvelope2* pEnvelope = CSenSoapEnvelope2::NewLC();
       
   229     HBufC8* pAsXml = pEnvelope->AsXmlL();
       
   230     CleanupStack::PushL(pAsXml);
       
   231     
       
   232     if(!( *pAsXml == KEnvelopeString )) return KErrArgument;
       
   233     
       
   234     CleanupStack::PopAndDestroy(pAsXml);
       
   235     CleanupStack::PopAndDestroy(pEnvelope);
       
   236     //CleanupStack::PopAndDestroy();
       
   237     
       
   238     Teardown();
       
   239     return KErrNone;    
       
   240     }    
       
   241 /*    
       
   242 TInt CnewsoapclassesTester::MT_CSenSoapEnvelope2_NewL_1L( CStifItemParser& aItem )
       
   243     {
       
   244 	SetupL();
       
   245     _LIT8(KEnvelopeString, "<S:Envelope xmlns:S=\"http://schemas.xmlsoap.org/soap/envelope/\"/>");
       
   246 	MSenMessageContext* mContext = NULL;
       
   247     CSenSoapEnvelope2* pEnvelope = CSenSoapEnvelope2::NewL(*mContext);
       
   248     CleanupStack::PushL(pEnvelope);
       
   249     HBufC8* pAsXml = pEnvelope->AsXmlL();
       
   250     CleanupStack::PushL(pAsXml);
       
   251     
       
   252     if(!( *pAsXml == KEnvelopeString )) return KErrArgument;
       
   253     
       
   254     CleanupStack::PopAndDestroy(pAsXml);
       
   255     CleanupStack::PopAndDestroy(pEnvelope);    
       
   256     Teardown();
       
   257     return KErrNone;    
       
   258 	}
       
   259 
       
   260 
       
   261 TInt CnewsoapclassesTester::MT_CSenSoapEnvelope2_NewLC_1L( CStifItemParser& aItem )
       
   262 	{
       
   263 	 SetupL();
       
   264 	 _LIT8(KEnvelopeString, "<S:Envelope xmlns:S=\"http://schemas.xmlsoap.org/soap/envelope/\"/>");
       
   265 	 MSenMessageContext* mContext = NULL;
       
   266 	 CSenSoapEnvelope2* pEnvelope = CSenSoapEnvelope2::NewLC(*mContext);
       
   267 	 HBufC8* pAsXml = pEnvelope->AsXmlL();
       
   268 	 CleanupStack::PushL(pAsXml);
       
   269      if(!( *pAsXml == KEnvelopeString )) return KErrArgument;
       
   270      CleanupStack::PopAndDestroy(pAsXml);
       
   271      CleanupStack::PopAndDestroy(pEnvelope);
       
   272      //CleanupStack::PopAndDestroy();
       
   273     Teardown();
       
   274     return KErrNone;    
       
   275 	}
       
   276  */   
       
   277 TInt CnewsoapclassesTester::MT_CSenSoapEnvelope2_NewL_2L( CStifItemParser& aItem )
       
   278     {
       
   279 	SetupL();
       
   280     _LIT8(KEnvelopeString, "<S:Envelope xmlns:S=\"http://schemas.xmlsoap.org/soap/envelope/\"/>");
       
   281     CSenSoapEnvelope2* pEnvelope, *pEnvelope1 = CSenSoapEnvelope2::NewL();
       
   282     pEnvelope = CSenSoapEnvelope2::NewL(*pEnvelope1);
       
   283     CleanupStack::PushL(pEnvelope);
       
   284 
       
   285     
       
   286     HBufC8* pAsXml = pEnvelope->AsXmlL();
       
   287     CleanupStack::PushL(pAsXml);
       
   288     
       
   289     if(!( *pAsXml == KEnvelopeString )) return KErrArgument;
       
   290     
       
   291     CleanupStack::PopAndDestroy(pAsXml);
       
   292     CleanupStack::PopAndDestroy(pEnvelope);
       
   293     delete pEnvelope1;
       
   294     pEnvelope1 = NULL;
       
   295     Teardown();
       
   296     return KErrNone;    
       
   297 	}
       
   298     
       
   299 TInt CnewsoapclassesTester::MT_CSenSoapEnvelope2_NewLC_2L( CStifItemParser& aItem )
       
   300     {
       
   301 	SetupL();
       
   302    _LIT8(KEnvelopeString, "<S:Envelope xmlns:S=\"http://schemas.xmlsoap.org/soap/envelope/\"/>");
       
   303     CSenSoapEnvelope2* pEnvelope, *pEnvelope1 = CSenSoapEnvelope2::NewL();
       
   304     pEnvelope = CSenSoapEnvelope2::NewLC(*pEnvelope1);
       
   305     
       
   306     HBufC8* pAsXml = pEnvelope->AsXmlL();
       
   307     CleanupStack::PushL(pAsXml);
       
   308     
       
   309     if(!( *pAsXml == KEnvelopeString )) return KErrArgument;
       
   310     
       
   311     CleanupStack::PopAndDestroy(pAsXml);
       
   312     
       
   313     CleanupStack::PopAndDestroy(pEnvelope);
       
   314     //CleanupStack::PopAndDestroy();
       
   315     delete pEnvelope1;
       
   316     pEnvelope1 = NULL;
       
   317     Teardown();
       
   318     return KErrNone;    
       
   319 	}
       
   320     
       
   321 TInt CnewsoapclassesTester::MT_CSenSoapEnvelope2_TypeL( CStifItemParser& aItem )
       
   322 	{
       
   323 	SetupL();
       
   324 	MSenMessage::TClass var = MSenMessage::ESoapEnvelope2;
       
   325 	_LIT8(KEnvelopeString, "<S:Envelope xmlns:S=\"http://schemas.xmlsoap.org/soap/envelope/\"/>");
       
   326     CSenSoapEnvelope2* pEnvelope = CSenSoapEnvelope2::NewL();
       
   327     CleanupStack::PushL(pEnvelope);
       
   328     HBufC8* pAsXml = pEnvelope->AsXmlL();
       
   329     CleanupStack::PushL(pAsXml);
       
   330     
       
   331     if(!( *pAsXml == KEnvelopeString )) return KErrArgument;
       
   332     CleanupStack::PopAndDestroy(pAsXml);
       
   333     
       
   334     TL(var == pEnvelope->Type());
       
   335     CleanupStack::PopAndDestroy(pEnvelope);
       
   336     Teardown();
       
   337     return KErrNone;    
       
   338 	}
       
   339 	
       
   340 TInt CnewsoapclassesTester::MT_CSenSoapEnvelope2_DirectionL( CStifItemParser& aItem )
       
   341 	{
       
   342 	SetupL();
       
   343 	MSenMessage::TDirection var = MSenMessage::EOutbound;
       
   344 	_LIT8(KEnvelopeString, "<S:Envelope xmlns:S=\"http://schemas.xmlsoap.org/soap/envelope/\"/>");
       
   345     CSenSoapEnvelope2* pEnvelope = CSenSoapEnvelope2::NewL();
       
   346     CleanupStack::PushL(pEnvelope);
       
   347     HBufC8* pAsXml = pEnvelope->AsXmlL();
       
   348     CleanupStack::PushL(pAsXml);
       
   349     
       
   350     if(!( *pAsXml == KEnvelopeString )) return KErrArgument;
       
   351     CleanupStack::PopAndDestroy(pAsXml);
       
   352     
       
   353     TL(var == pEnvelope->Direction());
       
   354     CleanupStack::PopAndDestroy(pEnvelope);
       
   355     Teardown();
       
   356     return KErrNone;    
       
   357 	}
       
   358 	
       
   359 TInt CnewsoapclassesTester::MT_CSenSoapEnvelope2_TxnIdL( CStifItemParser& aItem )
       
   360 	{
       
   361 	SetupL();
       
   362 	_LIT8(KEnvelopeString, "<S:Envelope xmlns:S=\"http://schemas.xmlsoap.org/soap/envelope/\"/>");
       
   363     CSenSoapEnvelope2* pEnvelope, *pEnvelope1 = CSenSoapEnvelope2::NewL();
       
   364     pEnvelope = CSenSoapEnvelope2::NewL(*pEnvelope1);
       
   365     
       
   366     HBufC8* pAsXml = pEnvelope->AsXmlL();
       
   367     CleanupStack::PushL(pAsXml);
       
   368     
       
   369     if(!( *pAsXml == KEnvelopeString )) return KErrArgument;
       
   370     
       
   371     CleanupStack::PopAndDestroy(pAsXml);
       
   372     
       
   373     TInt var = pEnvelope->TxnId();
       
   374     TBool Flag;
       
   375     
       
   376     if(var >= 0)
       
   377     if(!(Flag)) return KErrArgument;
       
   378     
       
   379     __ASSERT_ALWAYS_NO_LEAVE(delete pEnvelope);
       
   380     pEnvelope = NULL;
       
   381     delete pEnvelope1;
       
   382     pEnvelope1 = NULL;
       
   383     Teardown();
       
   384     return KErrNone;    
       
   385 	}
       
   386 
       
   387 TInt CnewsoapclassesTester::MT_CSenSoapEnvelope2_CloneL( CStifItemParser& aItem )
       
   388 	{
       
   389 	SetupL();
       
   390 	TBool Flag;
       
   391 	CSenSoapEnvelope2* pEnvelope = CSenSoapEnvelope2::NewL();
       
   392 	CleanupStack::PushL(pEnvelope);
       
   393 	CSenSoapEnvelope2* pClone = NULL;
       
   394     pClone = (CSenSoapEnvelope2*)pEnvelope->CloneL(); 
       
   395     if(pClone != NULL)
       
   396     	Flag = 1;
       
   397     if(!(Flag)) return KErrArgument;
       
   398    
       
   399 	delete pClone;
       
   400     CleanupStack::PopAndDestroy(pEnvelope);
       
   401     
       
   402     Teardown();
       
   403     return KErrNone;    
       
   404 	}
       
   405 	
       
   406 TInt CnewsoapclassesTester::MT_CSenSoapEnvelope2_SoapVersionL( CStifItemParser& aItem )
       
   407 	{
       
   408 	SetupL();
       
   409 	TSOAPVersion var = ESOAP11;
       
   410 	_LIT8(KEnvelopeString, "<S:Envelope xmlns:S=\"http://schemas.xmlsoap.org/soap/envelope/\"/>");
       
   411     CSenSoapEnvelope2* pEnvelope = CSenSoapEnvelope2::NewL();
       
   412     CleanupStack::PushL(pEnvelope);
       
   413     HBufC8* pAsXml = pEnvelope->AsXmlL();
       
   414     CleanupStack::PushL(pAsXml);
       
   415     
       
   416     if(!( *pAsXml == KEnvelopeString )) return KErrArgument;
       
   417     CleanupStack::PopAndDestroy(pAsXml);
       
   418     
       
   419     TL(var == pEnvelope->SoapVersion());
       
   420     CleanupStack::PopAndDestroy(pEnvelope);
       
   421     Teardown();
       
   422     return KErrNone;    
       
   423 	}
       
   424 /*	
       
   425 TInt CnewsoapclassesTester::MT_CSenSoapEnvelope2_SetContextL( CStifItemParser& aItem )
       
   426 	{
       
   427 	SetupL();
       
   428     CSenSoapEnvelope2* pEnvelope = CSenSoapEnvelope2::NewL();
       
   429     CleanupStack::PushL(pEnvelope);
       
   430     MSenMessageContext* mContext = NULL;
       
   431    
       
   432 	CSenXmlProperties* prop = CSenXmlProperties::NewL();
       
   433 	CSenMessageContext* mContext1 = CSenMessageContext::NewL(SenContext::EOutgoing, prop);
       
   434     TL(KErrArgument == pEnvelope->SetContext(mContext));
       
   435     TL(KErrNone == pEnvelope->SetContext(mContext1));
       
   436     TL(mContext1 == pEnvelope->Context());
       
   437     CleanupStack::PopAndDestroy(pEnvelope);
       
   438     delete mContext1;
       
   439     Teardown();
       
   440     return KErrNone;    
       
   441 	}
       
   442 	
       
   443 TInt CnewsoapclassesTester::MT_CSenSoapEnvelope2_ContextL( CStifItemParser& aItem )
       
   444 	{
       
   445 	SetupL();
       
   446 	TTestResult Result;	
       
   447 	CnewsoapclassesTester::MT_CSenSoapEnvelope2_SetContextL(Result);
       
   448     Teardown();
       
   449     return KErrNone;    
       
   450 	}
       
   451 */
       
   452 TInt CnewsoapclassesTester::MT_CSenSoapEnvelope2_SetPropertiesL( CStifItemParser& aItem )
       
   453 	{
       
   454 	SetupL();
       
   455     CSenXmlProperties* prop = CSenXmlProperties::NewL();
       
   456     CleanupStack::PushL(prop);
       
   457     
       
   458     CSenSoapEnvelope2* pEnvelope = CSenSoapEnvelope2::NewL();
       
   459     
       
   460     CleanupStack::Pop();
       
   461     CleanupStack::PushL(pEnvelope);
       
   462     
       
   463     
       
   464     TL(KErrNone == pEnvelope->SetProperties(prop));
       
   465     CleanupStack::PopAndDestroy();
       
   466     
       
   467     
       
   468     Teardown();
       
   469     return KErrNone;    
       
   470 	}
       
   471 	
       
   472 TInt CnewsoapclassesTester::MT_CSenSoapEnvelope2_PropertiesL( CStifItemParser& aItem )
       
   473 	{
       
   474 	SetupL();
       
   475     CSenXmlProperties* prop = CSenXmlProperties::NewL();
       
   476     CleanupStack::PushL(prop);
       
   477     
       
   478     CSenSoapEnvelope2* pEnvelope = CSenSoapEnvelope2::NewL();
       
   479     
       
   480     CleanupStack::Pop();
       
   481     CleanupStack::PushL(pEnvelope);
       
   482     
       
   483     
       
   484     TL(KErrNone == pEnvelope->SetProperties(prop));
       
   485     TL(prop == pEnvelope->Properties());
       
   486     CleanupStack::PopAndDestroy();
       
   487     
       
   488     
       
   489     Teardown();
       
   490     return KErrNone;    
       
   491 	}
       
   492 
       
   493 TInt CnewsoapclassesTester::MT_CSenSoapEnvelope2_IsSafeToCastL( CStifItemParser& aItem )
       
   494 	{
       
   495 	SetupL();
       
   496 	MSenMessage::TClass var = MSenMessage::ESoapEnvelope2;
       
   497 	TBool retVal = ETrue;
       
   498     CSenSoapEnvelope2* pEnvelope = CSenSoapEnvelope2::NewL();
       
   499     
       
   500     CleanupStack::PushL(pEnvelope);
       
   501     
       
   502     
       
   503     retVal == pEnvelope->IsSafeToCast(var);
       
   504 
       
   505 
       
   506     if(retVal == EFalse)
       
   507     	return KErrArgument;
       
   508     
       
   509     CleanupStack::PopAndDestroy();
       
   510     Teardown();
       
   511     return KErrNone;    
       
   512 	}
       
   513 	
       
   514 
       
   515 TInt CnewsoapclassesTester::MT_CSenSoapEnvelope2_SetBodyLL( CStifItemParser& aItem )
       
   516     {
       
   517 	SetupL();
       
   518     _LIT8(KBodyContentString, "<Test>Content</Test>");
       
   519 
       
   520     _LIT8(KEnvelopeString, "<S:Envelope \
       
   521 xmlns:S=\"http://schemas.xmlsoap.org/soap/envelope/\">\
       
   522 <S:Body><Test>Content</Test></S:Body>\
       
   523 </S:Envelope>");
       
   524 
       
   525     CSenSoapEnvelope2* pEnvelope = CSenSoapEnvelope2::NewL();
       
   526     CleanupStack::PushL(pEnvelope);
       
   527     pEnvelope->SetBodyL(KBodyContentString);
       
   528     HBufC8* pAsXml = pEnvelope->AsXmlL();
       
   529     CleanupStack::PushL(pAsXml);
       
   530 
       
   531     if(!( *pAsXml == KEnvelopeString )) return KErrArgument;
       
   532 
       
   533     CleanupStack::PopAndDestroy(pAsXml);
       
   534     CleanupStack::PopAndDestroy(pEnvelope);
       
   535     Teardown();
       
   536     return KErrNone;    
       
   537 	}
       
   538 
       
   539 TInt CnewsoapclassesTester::MT_CSenSoapEnvelope2_SetBodyL_1L( CStifItemParser& aItem )
       
   540     {
       
   541 	SetupL();
       
   542     _LIT8(KBodyElementName,   "BodyElement");
       
   543     _LIT8(KBodyContent,       "BodyContent");
       
   544     _LIT8(KBodyElementName2,  "BodyElement2");
       
   545     _LIT8(KBodyContent2,      "BodyContent2");
       
   546 
       
   547     _LIT8(KEnvelopeString, "<S:Envelope \
       
   548 xmlns:S=\"http://schemas.xmlsoap.org/soap/envelope/\">\
       
   549 <S:Body><BodyElement>BodyContent</BodyElement></S:Body>\
       
   550 </S:Envelope>");
       
   551 
       
   552     _LIT8(KEnvelopeString2, "<S:Envelope \
       
   553 xmlns:S=\"http://schemas.xmlsoap.org/soap/envelope/\">\
       
   554 <S:Body><BodyElement2>BodyContent2</BodyElement2></S:Body>\
       
   555 </S:Envelope>");
       
   556 
       
   557     CSenSoapEnvelope2* pEnvelope = CSenSoapEnvelope2::NewL();
       
   558     CleanupStack::PushL(pEnvelope);
       
   559 
       
   560     RSenDocument document = RSenDocument::NewLC();
       
   561     TXmlEngElement bodyElement = document.CreateDocumentElementL(KBodyElementName());
       
   562     bodyElement.AddTextL(KBodyContent());
       
   563     pEnvelope->SetBodyL(bodyElement);
       
   564 
       
   565     HBufC8* pAsXml = pEnvelope->AsXmlL();
       
   566     CleanupStack::PushL(pAsXml);
       
   567     if(!( *pAsXml == KEnvelopeString )) KErrArgument;
       
   568     CleanupStack::PopAndDestroy(pAsXml);
       
   569 
       
   570     TXmlEngElement bodyElement2 = document.CreateDocumentElementL(KBodyElementName2());
       
   571     bodyElement2.AddTextL(KBodyContent2());
       
   572     pEnvelope->SetBodyL(bodyElement2);
       
   573 
       
   574     pAsXml = pEnvelope->AsXmlL();
       
   575     CleanupStack::PushL(pAsXml);
       
   576     if(!( *pAsXml == KEnvelopeString2 )) return KErrArgument;
       
   577     CleanupStack::PopAndDestroy(pAsXml);
       
   578 
       
   579     CleanupStack::PopAndDestroy(1); // document
       
   580     CleanupStack::PopAndDestroy(pEnvelope);
       
   581     Teardown();
       
   582     return KErrNone;    
       
   583 	}
       
   584 
       
   585 TInt CnewsoapclassesTester::MT_CSenSoapEnvelope2_BodyLL( CStifItemParser& aItem )
       
   586     {
       
   587 	SetupL();
       
   588     _LIT8(KBodyContentString, "Test");
       
   589     _LIT8(KBodyString, "<S:Body>Test</S:Body>");
       
   590 
       
   591     CSenSoapEnvelope2* pEnvelope = CSenSoapEnvelope2::NewL();
       
   592     CleanupStack::PushL(pEnvelope);
       
   593     pEnvelope->SetBodyL(KBodyContentString);
       
   594 
       
   595     TXmlEngElement element = pEnvelope->BodyL();
       
   596     RSenDocument document = pEnvelope->AsDocumentL();
       
   597 
       
   598     TXmlEngSerializationOptions options;
       
   599     // Omit following declarations from the beginning of XML Document:
       
   600     // <?xml version=\"1.0\...
       
   601     //   encoding="..."
       
   602     //   standalone="..."
       
   603     // ?>
       
   604     options.iOptions = options.iOptions |
       
   605                        TXmlEngSerializationOptions::KOptionOmitXMLDeclaration;
       
   606     RBuf8 asXml;
       
   607     CleanupClosePushL(asXml);
       
   608     document.SaveL(asXml, element, options);
       
   609 
       
   610     // Serialized body should contain only body as XML.
       
   611     if(!( asXml == KBodyString )) return KErrArgument;
       
   612 
       
   613     CleanupStack::PopAndDestroy(&asXml);
       
   614 
       
   615     CleanupStack::PopAndDestroy(pEnvelope);
       
   616     Teardown();
       
   617     return KErrNone;    
       
   618 	}
       
   619 
       
   620 TInt CnewsoapclassesTester::MT_CSenSoapEnvelope2_HeaderLL( CStifItemParser& aItem )
       
   621     {
       
   622 	SetupL();
       
   623     _LIT8(KHeaderString, "<S:Header/>");
       
   624 
       
   625     CSenSoapEnvelope2* pEnvelope = CSenSoapEnvelope2::NewL();
       
   626     CleanupStack::PushL(pEnvelope);
       
   627 
       
   628     TXmlEngElement element = pEnvelope->HeaderL();
       
   629 
       
   630     RSenDocument document = pEnvelope->AsDocumentL();
       
   631 
       
   632     TXmlEngSerializationOptions options;
       
   633     // Omit following declarations from the beginning of XML Document:
       
   634     // <?xml version=\"1.0\...
       
   635     //   encoding="..."
       
   636     //   standalone="..."
       
   637     // ?>
       
   638     options.iOptions = options.iOptions |
       
   639                        TXmlEngSerializationOptions::KOptionOmitXMLDeclaration;
       
   640     RBuf8 asXml;
       
   641     CleanupClosePushL(asXml);
       
   642     document.SaveL(asXml, element, options);
       
   643 
       
   644     // Serialized header should contain only header as XML.
       
   645     if(!( asXml == KHeaderString )) return KErrArgument;
       
   646 
       
   647     CleanupStack::PopAndDestroy(&asXml);
       
   648 
       
   649     CleanupStack::PopAndDestroy(pEnvelope);
       
   650     Teardown();
       
   651     return KErrNone;    
       
   652 	}
       
   653 
       
   654 TInt CnewsoapclassesTester::MT_CSenSoapEnvelope2_AddHeaderLL( CStifItemParser& aItem )
       
   655     {
       
   656 	SetupL();
       
   657     _LIT8(KHeaderElementName,   "HeaderElement");
       
   658     _LIT8(KHeaderContent,       "HeaderContent");
       
   659     _LIT8(KHeaderElementName2,  "HeaderElement2");
       
   660     _LIT8(KHeaderContent2,      "HeaderContent2");
       
   661 
       
   662     _LIT8(KEnvelope,            "<S:Envelope \
       
   663 xmlns:S=\"http://schemas.xmlsoap.org/soap/envelope/\">\
       
   664 <S:Header>\
       
   665 <HeaderElement>HeaderContent</HeaderElement>\
       
   666 </S:Header>\
       
   667 <S:Body/></S:Envelope>");
       
   668 
       
   669     _LIT8(KEnvelope2,            "<S:Envelope \
       
   670 xmlns:S=\"http://schemas.xmlsoap.org/soap/envelope/\">\
       
   671 <S:Header>\
       
   672 <HeaderElement>HeaderContent</HeaderElement>\
       
   673 <HeaderElement2>HeaderContent2</HeaderElement2>\
       
   674 </S:Header>\
       
   675 <S:Body/></S:Envelope>");
       
   676 
       
   677     CSenSoapEnvelope2* pEnvelope = CSenSoapEnvelope2::NewL();
       
   678     CleanupStack::PushL(pEnvelope);
       
   679 
       
   680     RSenDocument document = RSenDocument::NewLC();
       
   681     TXmlEngElement headerElement = document.CreateDocumentElementL(KHeaderElementName());
       
   682     headerElement.AddTextL(KHeaderContent());
       
   683     pEnvelope->AddHeaderL(headerElement);
       
   684 
       
   685     HBufC8* pAsXml = pEnvelope->AsXmlL();
       
   686     CleanupStack::PushL(pAsXml);
       
   687     if(!( *pAsXml == KEnvelope )) return KErrArgument;
       
   688     CleanupStack::PopAndDestroy(pAsXml);
       
   689 
       
   690     TXmlEngElement headerElement2 = document.CreateDocumentElementL(KHeaderElementName2());
       
   691     headerElement2.AddTextL(KHeaderContent2());
       
   692     pEnvelope->AddHeaderL(headerElement2);
       
   693 
       
   694     pAsXml = pEnvelope->AsXmlL();
       
   695     CleanupStack::PushL(pAsXml);
       
   696     if(!( *pAsXml == KEnvelope2 )) return KErrArgument;
       
   697     CleanupStack::PopAndDestroy(pAsXml);
       
   698 
       
   699     CleanupStack::PopAndDestroy(1); // document
       
   700     CleanupStack::PopAndDestroy(pEnvelope);
       
   701     Teardown();
       
   702     return KErrNone;    
       
   703 	}
       
   704 
       
   705 TInt CnewsoapclassesTester::MT_CSenSoapEnvelope2_BodyAsStringLL( CStifItemParser& aItem )
       
   706     {
       
   707 	SetupL();
       
   708     _LIT8(KBodyElementName,    "BodyElement");
       
   709     _LIT8(KBodyElementContent, "BodyElementContent");
       
   710     _LIT8(KBodyContent,        "BodyContent");
       
   711 
       
   712     _LIT8(KBodyAsString1, "<S:Body xmlns:S=\"http://schemas.xmlsoap.org/soap/envelope/\">BodyContent</S:Body>");
       
   713     _LIT8(KBodyAsString2, "<S:Body xmlns:S=\"http://schemas.xmlsoap.org/soap/envelope/\">\
       
   714 <BodyElement>BodyElementContent</BodyElement>\
       
   715 </S:Body>");
       
   716 
       
   717     CSenSoapEnvelope2* pEnvelope = CSenSoapEnvelope2::NewL();
       
   718     CleanupStack::PushL(pEnvelope);
       
   719 
       
   720     RSenDocument document = RSenDocument::NewLC();
       
   721     TXmlEngElement bodyElement = document.CreateDocumentElementL(KBodyElementName());
       
   722     bodyElement.AddTextL(KBodyElementContent());
       
   723 
       
   724     pEnvelope->SetBodyL(KBodyContent);
       
   725 
       
   726     // If Body element does not contain any elements
       
   727     // whole Body element is returned (and detached
       
   728     // => needed namespace declarations are moved into
       
   729     //    Body)
       
   730     HBufC8* pAsXml = pEnvelope->BodyAsStringL();
       
   731     CleanupStack::PushL(pAsXml);
       
   732     if(!( *pAsXml == KBodyAsString1 )) return KErrArgument;
       
   733     CleanupStack::PopAndDestroy(pAsXml);
       
   734 
       
   735     pEnvelope->SetBodyL(bodyElement);
       
   736 
       
   737     // If Body element contains element(s)
       
   738     // only first element (and all its child elements)
       
   739     // from Body element is returned and detached
       
   740     // (not Body element).
       
   741     pAsXml = pEnvelope->BodyAsStringL();
       
   742     CleanupStack::PushL(pAsXml);
       
   743     if(!( *pAsXml == KBodyAsString2 )) return KErrArgument;
       
   744     CleanupStack::PopAndDestroy(pAsXml);
       
   745 
       
   746     CleanupStack::PopAndDestroy(1); // document
       
   747     CleanupStack::PopAndDestroy(pEnvelope);
       
   748     Teardown();
       
   749     return KErrNone;    
       
   750 	}
       
   751 	
       
   752 
       
   753 TInt CnewsoapclassesTester::MT_CSenSoapEnvelope2_IsFaultL( CStifItemParser& aItem )
       
   754     {
       
   755 	SetupL();
       
   756     _LIT8(KFaultElementName,  "Fault");
       
   757     _LIT8(KFaultContent,      "FaultContent");
       
   758     _LIT8(KFaultInputString,  "<SOAP:Envelope \
       
   759 xmlns:SOAP=\"http://schemas.xmlsoap.org/soap/envelope/\">\
       
   760 <SOAP:Header>\
       
   761 <HeaderElement>HeaderContent</HeaderElement>\
       
   762 </SOAP:Header>\
       
   763 <SOAP:Body><SOAP:Fault>FaultContent</SOAP:Fault></SOAP:Body>\
       
   764 </SOAP:Envelope>");
       
   765 
       
   766     // 1. Test that IsFault return EFalse by default
       
   767     CSenSoapEnvelope2* pEnvelope = CSenSoapEnvelope2::NewL();
       
   768     CleanupStack::PushL(pEnvelope);
       
   769 
       
   770     //if(!( pEnvelope->IsFault() == EFalse )) return KErrArgument;
       
   771     TL( pEnvelope->IsFault() == EFalse )
       
   772 
       
   773     // 2. Test that IsFault returns ETrue when fault is added
       
   774     //    using SetBodyL method
       
   775     RSenDocument document = RSenDocument::NewLC();
       
   776     TXmlEngElement faultElement = document.CreateDocumentElementL(KFaultElementName(),
       
   777                                                             pEnvelope->NsUri());
       
   778     faultElement.AddTextL(KFaultContent());
       
   779     pEnvelope->SetBodyL(faultElement);
       
   780 
       
   781     if(!( pEnvelope->IsFault())) return KErrArgument;
       
   782 
       
   783     CleanupStack::PopAndDestroy(1); // document
       
   784     CleanupStack::PopAndDestroy(pEnvelope);
       
   785 
       
   786     // 3. Test that IsFault returns ETrue if fault is added
       
   787     //    when Envelope is parsed
       
   788 
       
   789     CSenParser* pParser = CSenParser::NewLC();
       
   790     pEnvelope = CSenSoapEnvelope2::NewL();
       
   791     CleanupStack::PushL(pEnvelope);
       
   792 
       
   793 	pParser->ParseL(KFaultInputString, *pEnvelope);
       
   794 	if(!( pEnvelope->IsFault())) return KErrArgument;
       
   795 
       
   796     CleanupStack::PopAndDestroy(pEnvelope);
       
   797     CleanupStack::PopAndDestroy(pParser);
       
   798     Teardown();
       
   799     return KErrNone;    
       
   800 	}
       
   801 
       
   802 TInt CnewsoapclassesTester::MT_CSenSoapEnvelope2_DetachFaultLL( CStifItemParser& aItem )
       
   803     {
       
   804 	SetupL();
       
   805     _LIT8(KFaultElementName,  "Fault");
       
   806     _LIT8(KFaultContent,      "FaultContent");
       
   807     _LIT8(KFaultElement,       "<S:Fault xmlns:S=\"http://schemas.xmlsoap.org/soap/envelope/\">FaultContent</S:Fault>");
       
   808 
       
   809     CSenSoapEnvelope2* pEnvelope = CSenSoapEnvelope2::NewL();
       
   810     CleanupStack::PushL(pEnvelope);
       
   811 
       
   812     TXmlEngElement body = pEnvelope->BodyL();
       
   813     TXmlEngElement faultElement = body.AddNewElementWithNsL(KFaultElementName(),
       
   814                                                       pEnvelope->NsUri());
       
   815     faultElement.AddTextL(KFaultContent());
       
   816 
       
   817     CSenSoapFault2* pFault = pEnvelope->DetachFaultL();
       
   818     CleanupStack::PushL(pFault);
       
   819 
       
   820     HBufC8* pAsXml = pFault->AsXmlL();
       
   821     CleanupStack::PushL(pAsXml);
       
   822     if(!( *pAsXml == KFaultElement )) return KErrArgument;
       
   823     CleanupStack::PopAndDestroy(pAsXml);
       
   824 
       
   825     CleanupStack::PopAndDestroy(pFault);
       
   826 
       
   827     CleanupStack::PopAndDestroy(pEnvelope);
       
   828     Teardown();
       
   829     return KErrNone;    
       
   830 	}
       
   831 	
       
   832 	
       
   833 
       
   834 TInt CnewsoapclassesTester::MT_CSenSoapEnvelope2_FaultLL( CStifItemParser& aItem )
       
   835     {
       
   836 	SetupL();
       
   837     _LIT8(KFaultElementName,  "Fault");
       
   838     _LIT8(KFaultContent,      "FaultContent");
       
   839     _LIT8(KFaultElement,       "<S:Fault>FaultContent</S:Fault>");
       
   840 
       
   841     CSenSoapEnvelope2* pEnvelope = CSenSoapEnvelope2::NewL();
       
   842     CleanupStack::PushL(pEnvelope);
       
   843 
       
   844     TXmlEngElement body = pEnvelope->BodyL();
       
   845     TXmlEngElement faultElement = body.AddNewElementWithNsL(KFaultElementName(),
       
   846                                                             pEnvelope->NsUri());
       
   847     faultElement.AddTextL(KFaultContent());
       
   848 
       
   849     CSenSoapFault2* pFault = pEnvelope->FaultL();
       
   850     CleanupStack::PushL(pFault);
       
   851 
       
   852     HBufC8* pAsXml = pFault->AsXmlL();
       
   853     CleanupStack::PushL(pAsXml);
       
   854     if(!( *pAsXml == KFaultElement )) return KErrArgument;
       
   855     CleanupStack::PopAndDestroy(pAsXml);
       
   856 
       
   857     CleanupStack::PopAndDestroy(pFault);
       
   858 
       
   859     CleanupStack::PopAndDestroy(pEnvelope);
       
   860     Teardown();
       
   861     return KErrNone;    
       
   862 	}
       
   863 
       
   864 TInt CnewsoapclassesTester::MT_CSenSoapEnvelope2_SetSoapActionLL( CStifItemParser& aItem )
       
   865     {
       
   866 	SetupL();
       
   867     _LIT8(KSoapActionValue,         "SoapActionValue");
       
   868     _LIT8(KSoapActionValueInQuotes, "\"SoapActionValue\"");
       
   869 
       
   870     CSenSoapEnvelope2* pEnvelope = CSenSoapEnvelope2::NewL();
       
   871     CleanupStack::PushL(pEnvelope);
       
   872 
       
   873     TPtrC8 retVal = pEnvelope->SetSoapActionL(KSoapActionValue);
       
   874     if(!( retVal == KSoapActionValueInQuotes )) return KErrArgument;
       
   875 
       
   876     TPtrC8 soapAction = pEnvelope->SoapAction();
       
   877     if(!( soapAction == KSoapActionValueInQuotes )) return KErrArgument;
       
   878 
       
   879     TPtrC8 retVal2 = pEnvelope->SetSoapActionL(KSoapActionValueInQuotes);
       
   880     if(!( retVal2 == KSoapActionValueInQuotes )) return KErrArgument;
       
   881 
       
   882     TPtrC8 soapAction2 = pEnvelope->SoapAction();
       
   883     if(!( soapAction2 == KSoapActionValueInQuotes )) return KErrArgument;
       
   884 
       
   885     CleanupStack::PopAndDestroy(pEnvelope);
       
   886     Teardown();
       
   887     return KErrNone;    
       
   888 	}
       
   889 
       
   890 TInt CnewsoapclassesTester::MT_CSenSoapEnvelope2_SoapActionL( CStifItemParser& aItem )
       
   891     {
       
   892 	SetupL();
       
   893     _LIT8(KSoapActionValue,         "SoapActionValue");
       
   894     _LIT8(KSoapActionValueInQuotes, "\"SoapActionValue\"");
       
   895 
       
   896     CSenSoapEnvelope2* pEnvelope = CSenSoapEnvelope2::NewL();
       
   897     CleanupStack::PushL(pEnvelope);
       
   898 
       
   899     TPtrC8 retVal = pEnvelope->SetSoapActionL(KSoapActionValue);
       
   900     if(!( retVal == KSoapActionValueInQuotes )) return KErrArgument;
       
   901 
       
   902     TPtrC8 soapAction = pEnvelope->SoapAction();
       
   903     if(!( soapAction == KSoapActionValueInQuotes )) return KErrArgument;
       
   904 
       
   905     TPtrC8 retVal2 = pEnvelope->SetSoapActionL(KSoapActionValueInQuotes) ;
       
   906     if(!( retVal2 == KSoapActionValueInQuotes )) return KErrArgument;
       
   907 
       
   908     TPtrC8 soapAction2 = pEnvelope->SoapAction();
       
   909     if(!( soapAction2 == KSoapActionValueInQuotes )) return KErrArgument;
       
   910 
       
   911     CleanupStack::PopAndDestroy(pEnvelope);
       
   912     Teardown();
       
   913     return KErrNone;    
       
   914 	}
       
   915 
       
   916 TInt CnewsoapclassesTester::MT_CSenSoapEnvelope2_HasHeaderL( CStifItemParser& aItem )
       
   917     {
       
   918 	SetupL();
       
   919     _LIT8(KHeaderElementName,   "HeaderElement");
       
   920     _LIT8(KHeaderContent,       "HeaderContent");
       
   921 
       
   922     CSenSoapEnvelope2* pEnvelope = CSenSoapEnvelope2::NewL();
       
   923     CleanupStack::PushL(pEnvelope);
       
   924 
       
   925     if(!( pEnvelope->HasHeader() == EFalse )) return KErrArgument;
       
   926 
       
   927     RSenDocument document = RSenDocument::NewLC();
       
   928     TXmlEngElement headerElement = document.CreateDocumentElementL(KHeaderElementName());
       
   929     headerElement.AddTextL(KHeaderContent());
       
   930     pEnvelope->AddHeaderL(headerElement);
       
   931 
       
   932     if(!( pEnvelope->HasHeader())) return KErrArgument;
       
   933 
       
   934     CleanupStack::PopAndDestroy(1); // document
       
   935     CleanupStack::PopAndDestroy(pEnvelope);
       
   936     Teardown();
       
   937     return KErrNone;    
       
   938 	}
       
   939 
       
   940 TInt CnewsoapclassesTester::MT_CSenSoapEnvelope2_HasBodyL( CStifItemParser& aItem )
       
   941     {
       
   942 	SetupL();
       
   943     _LIT8(KBodyElementName,    "BodyElement");
       
   944     _LIT8(KBodyElementContent, "BodyElementContent");
       
   945 
       
   946     CSenSoapEnvelope2* pEnvelope = CSenSoapEnvelope2::NewL();
       
   947     CleanupStack::PushL(pEnvelope);
       
   948 
       
   949     if(!( pEnvelope->HasBody() == EFalse )) return KErrArgument;
       
   950 
       
   951     RSenDocument document = RSenDocument::NewLC();
       
   952     TXmlEngElement bodyElement = document.CreateDocumentElementL(KBodyElementName());
       
   953     bodyElement.AddTextL(KBodyElementContent());
       
   954 
       
   955     pEnvelope->SetBodyL(bodyElement);
       
   956 
       
   957     if(!( pEnvelope->HasBody())) return KErrArgument;
       
   958 
       
   959     CleanupStack::PopAndDestroy(1); // document
       
   960     CleanupStack::PopAndDestroy(pEnvelope);
       
   961     Teardown();
       
   962     return KErrNone;    
       
   963 	}
       
   964 
       
   965 TInt CnewsoapclassesTester::MT_CSenSoapEnvelope2_Parse1L( CStifItemParser& aItem )
       
   966     {
       
   967 	SetupL();
       
   968     _LIT8(KInputString,             "<S:Envelope \
       
   969 xmlns:S=\"http://schemas.xmlsoap.org/soap/envelope/\">\
       
   970 <S:Header>\
       
   971 <sb:Correlation xmlns:sb=\"urn:liberty:sb:2003-08\" \
       
   972 messageID=\"URN:UUID:860949DC-134D-A989-E328-2FD7F20E31CE\" timestamp=\"2006-06-01T14:53:19Z\"/>\
       
   973 <wsse:Security xmlns:wsse=\"http://schemas.xmlsoap.org/ws/2003/06/secext\"/>\
       
   974 </S:Header>\
       
   975 <S:Body>\
       
   976 <sa:SASLRequest xmlns:sa=\"urn:liberty:sa:2004-04\" mechanism=\"ANONYMOUS PLAIN CRAM-MD5\" authzID=\"testuser1\"/>\
       
   977 </S:Body>\
       
   978 </S:Envelope>");
       
   979     _LIT8(KBodyAsString,     "\
       
   980 <S:Body xmlns:S=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:sa=\"urn:liberty:sa:2004-04\">\
       
   981 <sa:SASLRequest xmlns:sa=\"urn:liberty:sa:2004-04\" mechanism=\"ANONYMOUS PLAIN CRAM-MD5\" authzID=\"testuser1\"/>\
       
   982 </S:Body>");
       
   983 
       
   984     _LIT8(KEmptyBodyAsString,       "<S:Body/>");
       
   985 
       
   986     _LIT8(KEmptyBodyWithNsAsString, "<S:Body xmlns:S=\"http://schemas.xmlsoap.org/soap/envelope/\"/>");
       
   987 
       
   988     CSenParser* pParser = CSenParser::NewLC();
       
   989     CSenSoapEnvelope2* pEnvelope = CSenSoapEnvelope2::NewL();
       
   990     CleanupStack::PushL(pEnvelope);
       
   991 
       
   992 	pParser->ParseL(KInputString, *pEnvelope);
       
   993 
       
   994 	// 1) Check that parsed SoapEnvelope can be
       
   995 	//    serialized correctly
       
   996 	HBufC8* pAsXml = pEnvelope->AsXmlL();
       
   997 	CleanupStack::PushL(pAsXml);
       
   998 	if(!( *pAsXml == KInputString )) return KErrArgument;
       
   999 	CleanupStack::PopAndDestroy(pAsXml);
       
  1000 
       
  1001 	// 2) Check that body can be detached from SoapEnvelope
       
  1002 	//    correctly.
       
  1003 	// Note: Following "BodyAsStringL()" call will detach
       
  1004 	//       Body from SoapEnvelope
       
  1005 	HBufC8* pBodyAsString = pEnvelope->BodyAsStringL();
       
  1006 	CleanupStack::PushL(pBodyAsString);
       
  1007 	if(!( *pBodyAsString == KBodyAsString )) return KErrArgument;
       
  1008 	CleanupStack::PopAndDestroy(pBodyAsString);
       
  1009 
       
  1010 	// 3) Check that body can be detached from SoapEnvelope
       
  1011 	//    twice
       
  1012 	//    In this case body does not have child elements.
       
  1013 	//    => Empty body should be returned.
       
  1014 	//       Note: Empty body should contain namespace
       
  1015 	//             declaration because body is detached
       
  1016 	pBodyAsString = pEnvelope->BodyAsStringL();
       
  1017 	CleanupStack::PushL(pBodyAsString);
       
  1018 	if(!( *pBodyAsString == KEmptyBodyWithNsAsString )) return KErrArgument;
       
  1019 	CleanupStack::PopAndDestroy(pBodyAsString);
       
  1020 
       
  1021 	// 4) Check that body was detached from SoapEnvelope
       
  1022 	//    correctly
       
  1023 	//    => Getting body again should result empty body to be returned.
       
  1024 	TXmlEngElement bodyElement = pEnvelope->BodyL();
       
  1025 	RSenDocument document = pEnvelope->AsDocumentL();
       
  1026 
       
  1027     TUint optionFlags = 0;
       
  1028     // Omit following declarations from the beginning of XML Document:
       
  1029     // <?xml version=\"1.0\...
       
  1030     //   encoding="..."
       
  1031     //   standalone="..."
       
  1032     // ?>
       
  1033     optionFlags = optionFlags | TXmlEngSerializationOptions::KOptionOmitXMLDeclaration;
       
  1034 
       
  1035     // Allow encoding declaration (if KOptionOmitXMLDeclaration is _not_ set)
       
  1036     //optionFlags = optionFlags | TSerializationOptions::KOptionEncoding;
       
  1037 
       
  1038     // Allow standalone declaration (if KOptionOmitXMLDeclaration is _not_ set)
       
  1039     //optionFlags = optionFlags | TSerializationOptions::KOptionStandalone;
       
  1040 
       
  1041     TXmlEngSerializationOptions options(optionFlags);
       
  1042 
       
  1043     RBuf8 asXml;
       
  1044     CleanupClosePushL(asXml);
       
  1045     document.SaveL(asXml, bodyElement, options);
       
  1046 
       
  1047     // Serielized body should be empty because "BodyAsStringL()"
       
  1048     // previously detached body.
       
  1049     if(!( asXml == KEmptyBodyAsString )) return KErrArgument;
       
  1050 
       
  1051     CleanupStack::PopAndDestroy(&asXml);
       
  1052 
       
  1053     CleanupStack::PopAndDestroy(pEnvelope);
       
  1054     CleanupStack::PopAndDestroy(pParser);
       
  1055     Teardown();
       
  1056     return KErrNone;    
       
  1057 	}
       
  1058 
       
  1059 TInt CnewsoapclassesTester::MT_CSenSoapEnvelope2_Parse2L( CStifItemParser& aItem )
       
  1060     {
       
  1061 	SetupL();
       
  1062     _LIT8(KInputString,         "<S:Envelope \
       
  1063 xmlns:S=\"http://schemas.xmlsoap.org/soap/envelope/\">\
       
  1064 <S:Header>\
       
  1065 <sb:Correlation xmlns:sb=\"urn:liberty:sb:2003-08\" \
       
  1066 messageID=\"URN:UUID:860949DC-134D-A989-E328-2FD7F20E31CE\" timestamp=\"2006-06-01T14:53:19Z\"/>\
       
  1067 <wsse:Security xmlns:wsse=\"http://schemas.xmlsoap.org/ws/2003/06/secext\"/>\
       
  1068 </S:Header>\
       
  1069 <S:Body>\
       
  1070 <sa:SASLRequest xmlns:sa=\"urn:liberty:sa:2004-04\" mechanism=\"ANONYMOUS PLAIN CRAM-MD5\" authzID=\"testuser1\"/>\
       
  1071 </S:Body>\
       
  1072 </S:Envelope>");
       
  1073 
       
  1074     _LIT8(KWholeBodyAsString,   "<S:Body>\
       
  1075 <sa:SASLRequest xmlns:sa=\"urn:liberty:sa:2004-04\" mechanism=\"ANONYMOUS PLAIN CRAM-MD5\" authzID=\"testuser1\"/>\
       
  1076 </S:Body>");
       
  1077 
       
  1078     _LIT8(KWholeHeaderAsString, "<S:Header>\
       
  1079 <sb:Correlation xmlns:sb=\"urn:liberty:sb:2003-08\" \
       
  1080 messageID=\"URN:UUID:860949DC-134D-A989-E328-2FD7F20E31CE\" timestamp=\"2006-06-01T14:53:19Z\"/>\
       
  1081 <wsse:Security xmlns:wsse=\"http://schemas.xmlsoap.org/ws/2003/06/secext\"/>\
       
  1082 </S:Header>");
       
  1083 
       
  1084     CSenParser* pParser = CSenParser::NewLC();
       
  1085     CSenSoapEnvelope2* pEnvelope = CSenSoapEnvelope2::NewL();
       
  1086     CleanupStack::PushL(pEnvelope);
       
  1087 
       
  1088 	pParser->ParseL(KInputString, *pEnvelope);
       
  1089 
       
  1090 	// 1) Check that parsed SoapEnvelope can be
       
  1091 	//    serialized correctly
       
  1092 	HBufC8* pAsXml = pEnvelope->AsXmlL();
       
  1093 	CleanupStack::PushL(pAsXml);
       
  1094 	if(!( *pAsXml == KInputString )) return KErrArgument;
       
  1095 	CleanupStack::PopAndDestroy(pAsXml);
       
  1096 
       
  1097 	// 2) Check that body can be got from SoapEnvelope
       
  1098 	//    correctly
       
  1099 	// Note: Body won't be detached. Only reference for
       
  1100 	//       body TXmlEngElement inside SoapEnvelope is returned.
       
  1101 	TXmlEngElement bodyElement = pEnvelope->BodyL();
       
  1102 	RSenDocument document = pEnvelope->AsDocumentL();
       
  1103 
       
  1104     TUint optionFlags = 0;
       
  1105     // Omit following declarations from the beginning of XML Document:
       
  1106     // <?xml version=\"1.0\...
       
  1107     //   encoding="..."
       
  1108     //   standalone="..."
       
  1109     // ?>
       
  1110     optionFlags = optionFlags | TXmlEngSerializationOptions::KOptionOmitXMLDeclaration;
       
  1111 
       
  1112     // Allow encoding declaration (if KOptionOmitXMLDeclaration is _not_ set)
       
  1113     //optionFlags = optionFlags | TSerializationOptions::KOptionEncoding;
       
  1114 
       
  1115     // Allow standalone declaration (if KOptionOmitXMLDeclaration is _not_ set)
       
  1116     //optionFlags = optionFlags | TSerializationOptions::KOptionStandalone;
       
  1117 
       
  1118     TXmlEngSerializationOptions options(optionFlags);
       
  1119 
       
  1120     RBuf8 asXml;
       
  1121     CleanupClosePushL(asXml);
       
  1122     document.SaveL(asXml, bodyElement, options);
       
  1123 
       
  1124     // Serielized body should be in exactly the same form
       
  1125     // as in original SoapEnvelope
       
  1126     if(!( asXml == KWholeBodyAsString )) return KErrArgument;
       
  1127 
       
  1128     CleanupStack::PopAndDestroy(&asXml);
       
  1129 
       
  1130     // 3) Check that header TXmlEngElement can be got from SoapEnvelope
       
  1131 	//    correctly
       
  1132     TXmlEngElement headerElement = pEnvelope->HeaderL();
       
  1133 
       
  1134     RBuf8 headerAsXml;
       
  1135     CleanupClosePushL(headerAsXml);
       
  1136     document.SaveL(headerAsXml, headerElement, options);
       
  1137 
       
  1138     // Serielized header should be in exactly the same form
       
  1139     // as in original SoapEnvelope
       
  1140     if(!( headerAsXml == KWholeHeaderAsString )) return KErrArgument;
       
  1141 
       
  1142     CleanupStack::PopAndDestroy(&headerAsXml);
       
  1143 
       
  1144     CleanupStack::PopAndDestroy(pEnvelope);
       
  1145     CleanupStack::PopAndDestroy(pParser);
       
  1146     Teardown();
       
  1147     return KErrNone;    
       
  1148 	}
       
  1149 
       
  1150 TInt CnewsoapclassesTester::MT_CSenSoapEnvelope2_Parse3L( CStifItemParser& aItem )
       
  1151     {
       
  1152 	SetupL();
       
  1153     _LIT8(KInputString,         "<S:Envelope \
       
  1154 xmlns:S=\"http://www.w3.org/2003/05/soap-envelope\" \
       
  1155 xmlns:wsa=\"http://schemas.xmlsoap.org/ws/2004/08/addressing\">\
       
  1156 <S:Header>\
       
  1157 <wsse:Security xmlns:wsse=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd\"/>\
       
  1158 <wsa:MessageID>urn:uuid:7837d733-b9f8-3eb1-5c3f-7a509797e6b2</wsa:MessageID>\
       
  1159 <wsa:To>http://schemas.live.com/mws/2005/08/spaces</wsa:To>\
       
  1160 <wsa:Action>http://schemas.live.com/mws/2005/08/spaces/Post</wsa:Action>\
       
  1161 <wsa:ReplyTo><wsa:Address>id:7bbd5c5b-7857-44c4-b609-53498d0cab3b</wsa:Address></wsa:ReplyTo>\
       
  1162 </S:Header>\
       
  1163 <S:Body>\
       
  1164 <PostRequest xmlns=\"http://schemas.live.com/mws/2005/08/spaces\">\
       
  1165 <Item><Filename>sample1.wav</Filename><ItemType>8</ItemType><Image><Data></Data></Image></Item>\
       
  1166 </PostRequest>\
       
  1167 </S:Body>\
       
  1168 </S:Envelope>");
       
  1169 
       
  1170     _LIT8(KOuterXml,            "<S:Body>\
       
  1171 <PostRequest xmlns=\"http://schemas.live.com/mws/2005/08/spaces\">\
       
  1172 <Item><Filename>sample1.wav</Filename><ItemType>8</ItemType><Image><Data/></Image></Item>\
       
  1173 </PostRequest>\
       
  1174 </S:Body>");
       
  1175 
       
  1176     CSenParser* pParser = CSenParser::NewL();
       
  1177     CleanupStack::PushL(pParser);
       
  1178 
       
  1179     CSenSoapEnvelope2* pEnvelope = CSenSoapEnvelope2::NewL();
       
  1180     CleanupStack::PushL(pEnvelope);
       
  1181 
       
  1182     pParser->ParseL(KInputString, *pEnvelope);
       
  1183     TXmlEngElement element = pEnvelope->BodyL();
       
  1184 
       
  1185     RBuf8 outerXml;
       
  1186     CleanupClosePushL(outerXml);
       
  1187     element.OuterXmlL(outerXml);
       
  1188 
       
  1189     if(!( outerXml == KOuterXml )) return KErrArgument;
       
  1190 
       
  1191     CleanupStack::PopAndDestroy(&outerXml);
       
  1192     CleanupStack::PopAndDestroy(pEnvelope);
       
  1193     CleanupStack::PopAndDestroy(pParser);
       
  1194     Teardown();
       
  1195     return KErrNone;    
       
  1196 	}
       
  1197 
       
  1198 
       
  1199 TInt CnewsoapclassesTester::MT_CSenSoapFault2_NewLL( CStifItemParser& aItem )
       
  1200     {
       
  1201 	SetupL();
       
  1202     _LIT8(KFaultElementName,    "Fault");
       
  1203     _LIT8(KFaultElementContent, "FaultContent");
       
  1204     _LIT8(KFaultElement,        "<Fault>FaultContent</Fault>");
       
  1205 
       
  1206     RSenDocument document = RSenDocument::NewLC();
       
  1207     TXmlEngElement faultElement = document.CreateDocumentElementL(KFaultElementName());
       
  1208     faultElement.AddTextL(KFaultElementContent());
       
  1209 
       
  1210     CSenSoapFault2* pSoapFault = CSenSoapFault2::NewL(faultElement);
       
  1211     CleanupStack::PopAndDestroy(1); // document
       
  1212     CleanupStack::PushL(pSoapFault);
       
  1213 
       
  1214     HBufC8* pAsXml = pSoapFault->AsXmlL();
       
  1215     CleanupStack::PushL(pAsXml);
       
  1216     if(!( *pAsXml == KFaultElement )) return KErrArgument;
       
  1217     CleanupStack::PopAndDestroy(pAsXml);
       
  1218 
       
  1219     CleanupStack::PopAndDestroy(pSoapFault);
       
  1220     Teardown();
       
  1221     return KErrNone;    
       
  1222 	}
       
  1223 
       
  1224 TInt CnewsoapclassesTester::MT_CSenSoapFault2_NewL_1L( CStifItemParser& aItem )
       
  1225     {
       
  1226 	SetupL();
       
  1227     _LIT8(KFaultElementName,    "Fault");
       
  1228     _LIT8(KFaultElementContent, "FaultContent");
       
  1229     _LIT8(KFaultElement,        "<Fault>FaultContent</Fault>");
       
  1230 
       
  1231     RSenDocument document = RSenDocument::NewLC();
       
  1232     TXmlEngElement faultElement = document.CreateDocumentElementL(KFaultElementName());
       
  1233     faultElement.AddTextL(KFaultElementContent());
       
  1234 
       
  1235     CSenSoapFault2* pSoapFault = CSenSoapFault2::NewL(faultElement, document);
       
  1236     CleanupStack::PopAndDestroy(1); // document
       
  1237     CleanupStack::PushL(pSoapFault);
       
  1238 
       
  1239     HBufC8* pAsXml = pSoapFault->AsXmlL();
       
  1240     CleanupStack::PushL(pAsXml);
       
  1241     if(!( *pAsXml == KFaultElement )) return KErrArgument;
       
  1242     CleanupStack::PopAndDestroy(pAsXml);
       
  1243 
       
  1244     CleanupStack::PopAndDestroy(pSoapFault);
       
  1245     Teardown();
       
  1246     return KErrNone;    
       
  1247 	}
       
  1248 
       
  1249 TInt CnewsoapclassesTester::MT_CSenSoapFault2_NewL_2L( CStifItemParser& aItem )
       
  1250     {
       
  1251 	SetupL();
       
  1252     _LIT8(KParentName,          "Parent");
       
  1253 
       
  1254     _LIT8(KAttributeNsUri,      "nsuri");
       
  1255     _LIT8(KAttributeNsPrefix,   "pr");
       
  1256     _LIT8(KAttributeLocalName,  "AttrName");
       
  1257     _LIT8(KAttributeValue,      "Value");
       
  1258 
       
  1259     _LIT8(KFaultNsUri,          "http://schemas.xmlsoap.org/soap/envelope/");
       
  1260     _LIT8(KFaultNsPrefix,       "S");
       
  1261     _LIT8(KFaultLocalName,      "Fault");
       
  1262 
       
  1263     _LIT8(KFaultElement,        "<S:Fault \
       
  1264 xmlns:S=\"http://schemas.xmlsoap.org/soap/envelope/\" \
       
  1265 xmlns:pr=\"nsuri\" pr:AttrName=\"Value\"/>");
       
  1266 
       
  1267     _LIT8(KParentDocument,      "<Parent><S:Fault \
       
  1268 xmlns:S=\"http://schemas.xmlsoap.org/soap/envelope/\" \
       
  1269 xmlns:pr=\"nsuri\" pr:AttrName=\"Value\"/>\
       
  1270 </Parent>");
       
  1271 
       
  1272     RSenDocument document = RSenDocument::NewL();
       
  1273     CleanupClosePushL(document);
       
  1274     TXmlEngElement parentElement = document.CreateDocumentElementL(KParentName());
       
  1275 
       
  1276     RStringPool stringPool;
       
  1277     stringPool.OpenL();
       
  1278     CleanupClosePushL(stringPool);
       
  1279 
       
  1280     RString nsUriRString        = stringPool.OpenStringL(KAttributeNsUri);
       
  1281     CleanupClosePushL(nsUriRString);
       
  1282     RString nsPrefixRString     = stringPool.OpenStringL(KAttributeNsPrefix);
       
  1283     CleanupClosePushL(nsPrefixRString);
       
  1284     RString localNameRString    = stringPool.OpenStringL(KAttributeLocalName);
       
  1285     CleanupClosePushL(localNameRString);
       
  1286     RString valueRString        = stringPool.OpenStringL(KAttributeValue);
       
  1287     CleanupClosePushL(valueRString);
       
  1288 
       
  1289     RAttribute attribute;
       
  1290     attribute.Open(nsUriRString, nsPrefixRString, localNameRString,
       
  1291                    valueRString);
       
  1292     // attribute took ownership of all RStrings
       
  1293     // => All RStrings can be pop from CleanupStack
       
  1294     CleanupStack::Pop(&valueRString);
       
  1295     CleanupStack::Pop(&localNameRString);
       
  1296     CleanupStack::Pop(&nsPrefixRString);
       
  1297     CleanupStack::Pop(&nsUriRString);
       
  1298 
       
  1299     CleanupClosePushL(attribute);
       
  1300 
       
  1301     RAttributeArray attrArray;
       
  1302     // append the namespace attribute (declaration)
       
  1303     attrArray.AppendL(attribute);
       
  1304     CleanupClosePushL(attrArray);
       
  1305 
       
  1306     CSenSoapFault2* pSoapFault = CSenSoapFault2::NewL(KFaultNsUri,
       
  1307                                                       KFaultLocalName,
       
  1308                                                       KFaultNsPrefix,
       
  1309                                                       attrArray,
       
  1310                                                       parentElement,
       
  1311                                                       document);
       
  1312     CleanupStack::PushL(pSoapFault);
       
  1313     HBufC8* pAsXml = pSoapFault->AsXmlL();
       
  1314     CleanupStack::PushL(pAsXml);
       
  1315     if(!( *pAsXml == KFaultElement )) return KErrArgument;
       
  1316 
       
  1317     RBuf8 buffer;
       
  1318     CleanupClosePushL(buffer);
       
  1319     parentElement.OuterXmlL(buffer);
       
  1320 
       
  1321     if(!( buffer == KParentDocument )) return KErrArgument;
       
  1322     CleanupStack::PopAndDestroy(&buffer);
       
  1323 
       
  1324     CleanupStack::PopAndDestroy(pAsXml);
       
  1325     CleanupStack::PopAndDestroy(pSoapFault);
       
  1326     CleanupStack::PopAndDestroy(&attrArray);
       
  1327     CleanupStack::PopAndDestroy(&attribute);
       
  1328     CleanupStack::PopAndDestroy(&stringPool);
       
  1329     CleanupStack::PopAndDestroy(&document);
       
  1330     Teardown();
       
  1331     return KErrNone;    
       
  1332 	}
       
  1333 
       
  1334 TInt CnewsoapclassesTester::MT_CSenSoapFault2_FaultCodeL( CStifItemParser& aItem )
       
  1335     {
       
  1336 	SetupL();
       
  1337     _LIT8(KSenSoapEnvelopeXmlns,               "http://schemas.xmlsoap.org/soap/envelope/");
       
  1338     _LIT8(KSenSoap12EnvelopeXmlns,             "http://www.w3.org/2003/05/soap-envelope");
       
  1339 
       
  1340     _LIT8(KFaultElementLocalname,   "Fault");
       
  1341     _LIT8(KFaultNsPrefix,           "S");
       
  1342 
       
  1343     _LIT8(KFaultCodeLocalname,      "faultcode");
       
  1344 
       
  1345     _LIT8(KFault12CodeLocalname,    "Code");    // Soap 1.2
       
  1346     _LIT8(KFault12ValueLocalname,	"Value");	//	Soap1.2
       
  1347 
       
  1348     _LIT8(KFaultCodeValue,          "123");
       
  1349 
       
  1350 
       
  1351     // 1) Fault code in Soap other than 1.2
       
  1352     //    Note: In SOAP older than 1.2 fault elements are _NOT_ namespace qualified
       
  1353     RSenDocument document = RSenDocument::NewLC();
       
  1354     TXmlEngElement faultElement = document.CreateDocumentElementL(KFaultElementLocalname(),
       
  1355                                                                   KSenSoapEnvelopeXmlns(),
       
  1356                                                                   KFaultNsPrefix());
       
  1357     TXmlEngElement faultCodeElement = faultElement.AddNewElementL(KFaultCodeLocalname());
       
  1358     faultCodeElement.AddTextL(KFaultCodeValue());
       
  1359 
       
  1360     CSenSoapFault2* pSoapFault = CSenSoapFault2::NewL(faultElement, document);
       
  1361     CleanupStack::PopAndDestroy(1); // document
       
  1362     CleanupStack::PushL(pSoapFault);
       
  1363 
       
  1364     TPtrC8 faultCode = pSoapFault->FaultCode();
       
  1365     if(!( faultCode == KFaultCodeValue )) return KErrArgument;
       
  1366 
       
  1367     CleanupStack::PopAndDestroy(pSoapFault);
       
  1368 
       
  1369     // 2) Fault code in Soap 1.2
       
  1370     //    Note: SOAP 1.2 faults are structured differently to SOAP 1.1.
       
  1371     //          In particular all fault elements are now namespace _qualified_,
       
  1372     //          many have been renamed and fault codes are now hierarchical
       
  1373     RSenDocument document2 = RSenDocument::NewLC();
       
  1374     TXmlEngElement faultElement2 = document2.CreateDocumentElementL(KFaultElementLocalname(),
       
  1375                                                                     KSenSoap12EnvelopeXmlns(),
       
  1376                                                                     KFaultNsPrefix());
       
  1377     TXmlEngElement faultCodeElement2 = faultElement2.AddNewElementSameNsL(KFault12CodeLocalname());
       
  1378     TXmlEngElement faultValueElement2 = faultCodeElement2.AddNewElementSameNsL(KFault12ValueLocalname());
       
  1379     faultValueElement2.AddTextL(KFaultCodeValue());
       
  1380 
       
  1381     CSenSoapFault2* pSoapFault2 = CSenSoapFault2::NewL(faultElement2, document2);
       
  1382     CleanupStack::PopAndDestroy(1); // document2
       
  1383     CleanupStack::PushL(pSoapFault2);
       
  1384 
       
  1385     TPtrC8 faultCode2 = pSoapFault2->FaultCode();
       
  1386     if(!( faultCode2 == KFaultCodeValue )) return KErrArgument;
       
  1387 
       
  1388     CleanupStack::PopAndDestroy(pSoapFault2);
       
  1389     Teardown();
       
  1390     return KErrNone;    
       
  1391 	}
       
  1392 
       
  1393 TInt CnewsoapclassesTester::MT_CSenSoapFault2_FaultSubcodeL( CStifItemParser& aItem )
       
  1394     {
       
  1395 	SetupL();
       
  1396     // FaultSubcodeL is supported only in Soap 1.2
       
  1397     // If other version of Soap is used return value will always be KNullDesC
       
  1398     _LIT8(KSenSoapEnvelopeXmlns,               "http://schemas.xmlsoap.org/soap/envelope/");
       
  1399     _LIT8(KSenSoap12EnvelopeXmlns,             "http://www.w3.org/2003/05/soap-envelope");
       
  1400 
       
  1401     _LIT8(KFaultElementLocalname,   "Fault");
       
  1402     _LIT8(KFaultNsPrefix,           "S");
       
  1403 
       
  1404 //    _LIT8(KFaultCodeLocalname,      "faultcode");
       
  1405 
       
  1406     _LIT8(KFault12CodeLocalname,    "Code");    // Soap 1.2
       
  1407     _LIT8(KFault12SubcodeLocalname,	"Subcode"); // Soap 1.2
       
  1408     _LIT8(KFault12ValueLocalname,	"Value");	// Soap1.2
       
  1409 
       
  1410     _LIT8(KFaultCodeValue,          "123");
       
  1411 
       
  1412 
       
  1413     // 1) Fault subcode in Soap other than 1.2
       
  1414     //    Note: In SOAP older than 1.2 there is _NO_ sobcode
       
  1415     //          => KNullDesC8 should be returned.
       
  1416     //    Note: In SOAP older than 1.2 fault elements are _NOT_ namespace qualified
       
  1417     RSenDocument document = RSenDocument::NewLC();
       
  1418     TXmlEngElement faultElement = document.CreateDocumentElementL(KFaultElementLocalname(),
       
  1419                                                                   KSenSoapEnvelopeXmlns(),
       
  1420                                                                   KFaultNsPrefix());
       
  1421     TXmlEngElement faultCodeElement    = faultElement.AddNewElementL(KFault12CodeLocalname());
       
  1422     TXmlEngElement faultSubCodeElement = faultCodeElement.AddNewElementSameNsL(KFault12SubcodeLocalname());
       
  1423     TXmlEngElement faultValueElement   = faultSubCodeElement.AddNewElementSameNsL(KFault12ValueLocalname());
       
  1424     faultValueElement.AddTextL(KFaultCodeValue());
       
  1425 
       
  1426     CSenSoapFault2* pSoapFault = CSenSoapFault2::NewL(faultElement, document);
       
  1427     CleanupStack::PopAndDestroy(1); // document
       
  1428     CleanupStack::PushL(pSoapFault);
       
  1429 
       
  1430     TPtrC8 faultCode = pSoapFault->FaultSubcode();
       
  1431     if(!( faultCode == KNullDesC8 )) return KErrArgument;
       
  1432 
       
  1433     CleanupStack::PopAndDestroy(pSoapFault);
       
  1434 
       
  1435     // 2) Fault subcode in Soap 1.2
       
  1436     //    Note: SOAP 1.2 faults are structured differently to SOAP 1.1.
       
  1437     //          In particular all fault elements are now namespace _qualified_,
       
  1438     //          many have been renamed and fault codes are now hierarchical
       
  1439     RSenDocument document2 = RSenDocument::NewLC();
       
  1440     TXmlEngElement faultElement2 = document2.CreateDocumentElementL(KFaultElementLocalname(),
       
  1441                                                                     KSenSoap12EnvelopeXmlns(),
       
  1442                                                                     KFaultNsPrefix());
       
  1443     TXmlEngElement faultCodeElement2    = faultElement2.AddNewElementSameNsL(KFault12CodeLocalname());
       
  1444     TXmlEngElement faultSubCodeElement2 = faultCodeElement2.AddNewElementSameNsL(KFault12SubcodeLocalname());
       
  1445     TXmlEngElement faultValueElement2   = faultSubCodeElement2.AddNewElementSameNsL(KFault12ValueLocalname());
       
  1446     faultValueElement2.AddTextL(KFaultCodeValue());
       
  1447 
       
  1448     CSenSoapFault2* pSoapFault2 = CSenSoapFault2::NewL(faultElement2, document2);
       
  1449     CleanupStack::PopAndDestroy(1); // document2
       
  1450     CleanupStack::PushL(pSoapFault2);
       
  1451 
       
  1452     TPtrC8 faultCode2 = pSoapFault2->FaultSubcode();
       
  1453     if(!( faultCode2 == KFaultCodeValue )) return KErrArgument;
       
  1454 
       
  1455     CleanupStack::PopAndDestroy(pSoapFault2);
       
  1456     Teardown();
       
  1457     return KErrNone;    
       
  1458 	}
       
  1459 
       
  1460 TInt CnewsoapclassesTester::MT_CSenSoapFault2_FaultStringL( CStifItemParser& aItem )
       
  1461     {
       
  1462 	SetupL();
       
  1463     _LIT8(KSenSoapEnvelopeXmlns,               "http://schemas.xmlsoap.org/soap/envelope/");
       
  1464     _LIT8(KSenSoap12EnvelopeXmlns,             "http://www.w3.org/2003/05/soap-envelope");
       
  1465 
       
  1466     _LIT8(KFaultElementLocalname,   "Fault");
       
  1467     _LIT8(KFaultNsPrefix,           "S");
       
  1468 
       
  1469     _LIT8(KFaultStringLocalname,    "faultstring");
       
  1470 
       
  1471     _LIT8(KFault12ReasonLocalname,	"Reason");  // Soap1.2
       
  1472     _LIT8(KFault12TextLocalname,	"Text");    // Soap1.2
       
  1473 
       
  1474 
       
  1475     _LIT8(KFaultStringValue,        "Fault code string");
       
  1476 
       
  1477 
       
  1478     // 1) Fault code in Soap other than 1.2
       
  1479     //    Note: In SOAP older than 1.2 fault elements are _NOT_ namespace qualified
       
  1480     RSenDocument document = RSenDocument::NewLC();
       
  1481     TXmlEngElement faultElement = document.CreateDocumentElementL(KFaultElementLocalname(),
       
  1482                                                                   KSenSoapEnvelopeXmlns(),
       
  1483                                                                   KFaultNsPrefix());
       
  1484     TXmlEngElement faultStringElement = faultElement.AddNewElementL(KFaultStringLocalname());
       
  1485     faultStringElement.AddTextL(KFaultStringValue());
       
  1486 
       
  1487     CSenSoapFault2* pSoapFault = CSenSoapFault2::NewL(faultElement, document);
       
  1488     CleanupStack::PopAndDestroy(1); // document
       
  1489     CleanupStack::PushL(pSoapFault);
       
  1490 
       
  1491     TPtrC8 faultCode = pSoapFault->FaultString();
       
  1492     if(!( faultCode == KFaultStringValue )) return KErrArgument;
       
  1493 
       
  1494     CleanupStack::PopAndDestroy(pSoapFault);
       
  1495 
       
  1496     // 2) Fault code in Soap 1.2
       
  1497     //    Note: SOAP 1.2 faults are structured differently to SOAP 1.1.
       
  1498     //          In particular all fault elements are now namespace _qualified_,
       
  1499     //          many have been renamed and fault codes are now hierarchical
       
  1500     RSenDocument document2 = RSenDocument::NewLC();
       
  1501     TXmlEngElement faultElement2 = document2.CreateDocumentElementL(KFaultElementLocalname(),
       
  1502                                                                     KSenSoap12EnvelopeXmlns(),
       
  1503                                                                     KFaultNsPrefix());
       
  1504     TXmlEngElement faultReasonElement2 = faultElement2.AddNewElementSameNsL(KFault12ReasonLocalname());
       
  1505     TXmlEngElement faultTextElement2 = faultReasonElement2.AddNewElementSameNsL(KFault12TextLocalname());
       
  1506     faultTextElement2.AddTextL(KFaultStringValue());
       
  1507 
       
  1508     CSenSoapFault2* pSoapFault2 = CSenSoapFault2::NewL(faultElement2, document2);
       
  1509     CleanupStack::PopAndDestroy(1); // document2
       
  1510     CleanupStack::PushL(pSoapFault2);
       
  1511 
       
  1512     TPtrC8 faultCode2 = pSoapFault2->FaultString();
       
  1513     if(!( faultCode2 == KFaultStringValue )) return KErrArgument;
       
  1514 
       
  1515     CleanupStack::PopAndDestroy(pSoapFault2);
       
  1516     Teardown();
       
  1517     return KErrNone;    
       
  1518 	}
       
  1519 
       
  1520 TInt CnewsoapclassesTester::MT_CSenSoapFault2_FaultActorL( CStifItemParser& aItem )
       
  1521     {
       
  1522 	SetupL();
       
  1523     _LIT8(KSenSoapEnvelopeXmlns,               "http://schemas.xmlsoap.org/soap/envelope/");
       
  1524     _LIT8(KSenSoap12EnvelopeXmlns,             "http://www.w3.org/2003/05/soap-envelope");
       
  1525 
       
  1526     _LIT8(KFaultElementLocalname,   "Fault");
       
  1527     _LIT8(KFaultNsPrefix,           "S");
       
  1528 
       
  1529     _LIT8(KFaultActorLocalname,     "faultactor");
       
  1530 
       
  1531     _LIT8(KFault12NodeLocalname,	"Node");    // Node represents faultactor in Soap 1.2
       
  1532 
       
  1533     _LIT8(KFaultActorValue,          "http://www.wrox.com/heroes/endpoint.asp");
       
  1534 
       
  1535 
       
  1536     // 1) Faultactor in Soap other than 1.2
       
  1537     //    "faultactor" is intended to provide information about which SOAP node
       
  1538     //    on the SOAP message path caused the fault to happen.
       
  1539     //    The value of the "faultactor" is a URI identifying the source of the fault.
       
  1540 
       
  1541     RSenDocument document = RSenDocument::NewLC();
       
  1542     TXmlEngElement faultElement = document.CreateDocumentElementL(KFaultElementLocalname(),
       
  1543                                                                   KSenSoapEnvelopeXmlns(),
       
  1544                                                                   KFaultNsPrefix());
       
  1545     TXmlEngElement faultCodeElement = faultElement.AddNewElementL(KFaultActorLocalname());
       
  1546     faultCodeElement.AddTextL(KFaultActorValue());
       
  1547 
       
  1548     CSenSoapFault2* pSoapFault = CSenSoapFault2::NewL(faultElement, document);
       
  1549     CleanupStack::PopAndDestroy(1); // document
       
  1550     CleanupStack::PushL(pSoapFault);
       
  1551 
       
  1552     TPtrC8 faultActor = pSoapFault->FaultActor();
       
  1553     if(!( faultActor == KFaultActorValue )) return KErrArgument;
       
  1554 
       
  1555     CleanupStack::PopAndDestroy(pSoapFault);
       
  1556 
       
  1557     // 2) Faultactor in Soap 1.2
       
  1558     //    "Node" is intended to provide information about which SOAP node on the
       
  1559     //    SOAP message path caused the fault to happen.
       
  1560     //    "Node" contains the URI of the SOAP node that generated the fault.
       
  1561     //
       
  1562     //    Note: In Soap 1.2 "Node" represents "faultactor" from previous SOAP versions.
       
  1563 
       
  1564     RSenDocument document2 = RSenDocument::NewLC();
       
  1565     TXmlEngElement faultElement2 = document2.CreateDocumentElementL(KFaultElementLocalname(),
       
  1566                                                                     KSenSoap12EnvelopeXmlns(),
       
  1567                                                                     KFaultNsPrefix());
       
  1568     TXmlEngElement faultNodeElement2 = faultElement2.AddNewElementSameNsL(KFault12NodeLocalname());
       
  1569     faultNodeElement2.AddTextL(KFaultActorValue());
       
  1570 
       
  1571     CSenSoapFault2* pSoapFault2 = CSenSoapFault2::NewL(faultElement2, document2);
       
  1572     CleanupStack::PopAndDestroy(1); // document2
       
  1573     CleanupStack::PushL(pSoapFault2);
       
  1574 
       
  1575     HBufC8* pAsXml = pSoapFault2->AsXmlL();
       
  1576     delete pAsXml;
       
  1577 
       
  1578     TPtrC8 faultCode2 = pSoapFault2->FaultActor();
       
  1579     if(!( faultCode2 == KFaultActorValue )) return KErrArgument;
       
  1580 
       
  1581     CleanupStack::PopAndDestroy(pSoapFault2);
       
  1582     Teardown();
       
  1583     return KErrNone;    
       
  1584 	}
       
  1585 
       
  1586 TInt CnewsoapclassesTester::MT_CSenSoapFault2_DetailL( CStifItemParser& aItem )
       
  1587     {
       
  1588 	SetupL();
       
  1589     _LIT8(KSenSoapEnvelopeXmlns,               "http://schemas.xmlsoap.org/soap/envelope/");
       
  1590     _LIT8(KSenSoap12EnvelopeXmlns,             "http://www.w3.org/2003/05/soap-envelope");
       
  1591 
       
  1592     _LIT8(KFaultElementLocalname,   "Fault");
       
  1593     _LIT8(KFaultNsPrefix,           "S");
       
  1594 
       
  1595     _LIT8(KDetailLocalname,         "detail");
       
  1596 
       
  1597     _LIT8(KFault12DetailLocalname,	"Detail");    // Soap 1.2
       
  1598 
       
  1599     _LIT8(KFaultDetailValue,          "Detailed information");
       
  1600 
       
  1601 
       
  1602     // 1) Fault code in Soap other than 1.2
       
  1603     //    Note: In SOAP older than 1.2 fault elements are _NOT_ namespace qualified
       
  1604     RSenDocument document = RSenDocument::NewLC();
       
  1605     TXmlEngElement faultElement = document.CreateDocumentElementL(KFaultElementLocalname(),
       
  1606                                                                   KSenSoapEnvelopeXmlns(),
       
  1607                                                                   KFaultNsPrefix());
       
  1608     TXmlEngElement faultDetailElement = faultElement.AddNewElementL(KDetailLocalname());
       
  1609     faultDetailElement.AddTextL(KFaultDetailValue());
       
  1610 
       
  1611     CSenSoapFault2* pSoapFault = CSenSoapFault2::NewL(faultElement, document);
       
  1612     CleanupStack::PopAndDestroy(1); // document
       
  1613     CleanupStack::PushL(pSoapFault);
       
  1614 
       
  1615     TPtrC8 faultDetail = pSoapFault->Detail();
       
  1616     if(!( faultDetail == KFaultDetailValue )) return KErrArgument;
       
  1617 
       
  1618     CleanupStack::PopAndDestroy(pSoapFault);
       
  1619 
       
  1620     // 2) Fault code in Soap 1.2
       
  1621     //    Note: SOAP 1.2 faults are structured differently to SOAP 1.1.
       
  1622     //          In particular all fault elements are now namespace _qualified_,
       
  1623     //          many have been renamed and fault codes are now hierarchical
       
  1624     RSenDocument document2 = RSenDocument::NewLC();
       
  1625     TXmlEngElement faultElement2 = document2.CreateDocumentElementL(KFaultElementLocalname(),
       
  1626                                                                     KSenSoap12EnvelopeXmlns(),
       
  1627                                                                     KFaultNsPrefix());
       
  1628     TXmlEngElement faultDetailElement2 = faultElement2.AddNewElementSameNsL(KFault12DetailLocalname());
       
  1629     faultDetailElement2.AddTextL(KFaultDetailValue());
       
  1630 
       
  1631     CSenSoapFault2* pSoapFault2 = CSenSoapFault2::NewL(faultElement2, document2);
       
  1632     CleanupStack::PopAndDestroy(1); // document2
       
  1633     CleanupStack::PushL(pSoapFault2);
       
  1634 
       
  1635     TPtrC8 faultDetail2 = pSoapFault2->Detail();
       
  1636     if(!( faultDetail2 == KFaultDetailValue )) return KErrArgument;
       
  1637 
       
  1638     CleanupStack::PopAndDestroy(pSoapFault2);
       
  1639     Teardown();
       
  1640     return KErrNone;    
       
  1641 	}
       
  1642 
       
  1643 TInt CnewsoapclassesTester::MT_CSenSoapMessage2_NewLL( CStifItemParser& aItem )
       
  1644     {
       
  1645 	SetupL();
       
  1646     _LIT8(KSoapMessage11,   "<S:Envelope xmlns:S=\"http://schemas.xmlsoap.org/soap/envelope/\"/>");
       
  1647 
       
  1648     CSenSoapMessage2* pSoapMessage = CSenSoapMessage2::NewL();
       
  1649     CleanupStack::PushL(pSoapMessage);
       
  1650 
       
  1651     HBufC8* pAsXml = pSoapMessage->AsXmlL();
       
  1652     CleanupStack::PushL(pAsXml);
       
  1653     if(!( *pAsXml == KSoapMessage11 )) return KErrArgument;
       
  1654     CleanupStack::PopAndDestroy(pAsXml);
       
  1655 
       
  1656     CleanupStack::PopAndDestroy(pSoapMessage);
       
  1657     Teardown();
       
  1658     return KErrNone;    
       
  1659 	}
       
  1660     
       
  1661 TInt CnewsoapclassesTester::MT_CSenSoapMessage2_NewLCL( CStifItemParser& aItem )
       
  1662     {
       
  1663 	SetupL();
       
  1664     _LIT8(KSoapMessage11,   "<S:Envelope xmlns:S=\"http://schemas.xmlsoap.org/soap/envelope/\"/>");
       
  1665 
       
  1666     CSenSoapMessage2* pSoapMessage = CSenSoapMessage2::NewLC();
       
  1667 
       
  1668     HBufC8* pAsXml = pSoapMessage->AsXmlL();
       
  1669     CleanupStack::PushL(pAsXml);
       
  1670     if(!( *pAsXml == KSoapMessage11 )) return KErrArgument;
       
  1671     CleanupStack::PopAndDestroy(pAsXml);
       
  1672     CleanupStack::PopAndDestroy(pSoapMessage);
       
  1673     Teardown();
       
  1674     return KErrNone;    
       
  1675 	}
       
  1676 
       
  1677 TInt CnewsoapclassesTester::MT_CSenSoapMessage2_NewL_1L( CStifItemParser& aItem )
       
  1678     {
       
  1679 	SetupL();
       
  1680     _LIT8(KSoapMessage11,   "<S:Envelope xmlns:S=\"http://schemas.xmlsoap.org/soap/envelope/\"/>");
       
  1681     _LIT8(KSoapMessage12,   "<S:Envelope xmlns:S=\"http://www.w3.org/2003/05/soap-envelope\"/>");
       
  1682 
       
  1683     // 1) Test creating of SOAP 1.1 version SoapMessage
       
  1684     CSenSoapMessage2* pSoapMessage = CSenSoapMessage2::NewL(ESOAP11);
       
  1685     CleanupStack::PushL(pSoapMessage);
       
  1686 
       
  1687     HBufC8* pAsXml = pSoapMessage->AsXmlL();
       
  1688     CleanupStack::PushL(pAsXml);
       
  1689     if(!( *pAsXml == KSoapMessage11 )) return KErrArgument;
       
  1690     CleanupStack::PopAndDestroy(pAsXml);
       
  1691 
       
  1692     CleanupStack::PopAndDestroy(pSoapMessage);
       
  1693 
       
  1694     // 2) Test creating of SOAP 1.2 version SoapMessage
       
  1695     pSoapMessage = CSenSoapMessage2::NewL(ESOAP12);
       
  1696     CleanupStack::PushL(pSoapMessage);
       
  1697 
       
  1698     pAsXml = pSoapMessage->AsXmlL();
       
  1699     CleanupStack::PushL(pAsXml);
       
  1700     if(!( *pAsXml == KSoapMessage12 )) return KErrArgument;
       
  1701     CleanupStack::PopAndDestroy(pAsXml);
       
  1702 
       
  1703     CleanupStack::PopAndDestroy(pSoapMessage);
       
  1704     Teardown();
       
  1705     return KErrNone;    
       
  1706 	}
       
  1707     
       
  1708 TInt CnewsoapclassesTester::MT_CSenSoapMessage2_NewLC_1L( CStifItemParser& aItem )
       
  1709     {
       
  1710 	SetupL();
       
  1711     _LIT8(KSoapMessage11,   "<S:Envelope xmlns:S=\"http://schemas.xmlsoap.org/soap/envelope/\"/>");
       
  1712     _LIT8(KSoapMessage12,   "<S:Envelope xmlns:S=\"http://www.w3.org/2003/05/soap-envelope\"/>");
       
  1713 
       
  1714     // 1) Test creating of SOAP 1.1 version SoapMessage
       
  1715     CSenSoapMessage2* pSoapMessage = CSenSoapMessage2::NewLC(ESOAP11);
       
  1716 
       
  1717     HBufC8* pAsXml = pSoapMessage->AsXmlL();
       
  1718     CleanupStack::PushL(pAsXml);
       
  1719     if(!( *pAsXml == KSoapMessage11 )) return KErrArgument;
       
  1720     CleanupStack::PopAndDestroy(pAsXml);
       
  1721 
       
  1722     CleanupStack::PopAndDestroy(pSoapMessage);
       
  1723 
       
  1724     // 2) Test creating of SOAP 1.2 version SoapMessage
       
  1725     pSoapMessage = CSenSoapMessage2::NewLC(ESOAP12);
       
  1726 
       
  1727     pAsXml = pSoapMessage->AsXmlL();
       
  1728     CleanupStack::PushL(pAsXml);
       
  1729     if(!( *pAsXml == KSoapMessage12 )) return KErrArgument;
       
  1730     CleanupStack::PopAndDestroy(pAsXml);
       
  1731 
       
  1732     CleanupStack::PopAndDestroy(pSoapMessage);
       
  1733     Teardown();
       
  1734     return KErrNone;    
       
  1735 	}
       
  1736 
       
  1737 TInt CnewsoapclassesTester::MT_CSenSoapMessage2_NewL_2L( CStifItemParser& aItem )
       
  1738     {
       
  1739 	SetupL();
       
  1740     _LIT8(KIllegalNamespace,            "illegalNamespace");
       
  1741     _LIT8(KSecuritySchemeXmlNamespace,  "http://schemas.xmlsoap.org/ws/2003/06/secext");
       
  1742     _LIT8(KSecurityXmlNamespace,        "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd");
       
  1743 
       
  1744     _LIT8(KSoapMessage11,    "<S:Envelope xmlns:S=\"http://schemas.xmlsoap.org/soap/envelope/\"/>");
       
  1745     _LIT8(KSoapMessage12,    "<S:Envelope xmlns:S=\"http://schemas.xmlsoap.org/soap/envelope/\">\
       
  1746 <S:Header><wsse:Security xmlns:wsse=\"http://schemas.xmlsoap.org/ws/2003/06/secext\"/></S:Header>\
       
  1747 <S:Body/>\
       
  1748 </S:Envelope>");
       
  1749     _LIT8(KSoapMessage13,    "<S:Envelope xmlns:S=\"http://schemas.xmlsoap.org/soap/envelope/\">\
       
  1750 <S:Header><wsse:Security xmlns:wsse=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd\"/></S:Header>\
       
  1751 <S:Body/>\
       
  1752 </S:Envelope>");
       
  1753     _LIT8(KSoapMessage21,    "<S:Envelope xmlns:S=\"http://www.w3.org/2003/05/soap-envelope\"/>");
       
  1754     _LIT8(KSoapMessage22,    "<S:Envelope xmlns:S=\"http://www.w3.org/2003/05/soap-envelope\">\
       
  1755 <S:Header><wsse:Security xmlns:wsse=\"http://schemas.xmlsoap.org/ws/2003/06/secext\"/></S:Header>\
       
  1756 <S:Body/>\
       
  1757 </S:Envelope>");
       
  1758     _LIT8(KSoapMessage23,    "<S:Envelope xmlns:S=\"http://www.w3.org/2003/05/soap-envelope\">\
       
  1759 <S:Header><wsse:Security xmlns:wsse=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd\"/></S:Header>\
       
  1760 <S:Body/>\
       
  1761 </S:Envelope>");
       
  1762 
       
  1763     // 1.1) Test creating of SOAP 1.1 version SoapMessage with illegal namespace
       
  1764     //      => No security header should be added.
       
  1765     CSenSoapMessage2* pSoapMessage = CSenSoapMessage2::NewL(ESOAP11, KIllegalNamespace);
       
  1766     CleanupStack::PushL(pSoapMessage);
       
  1767 
       
  1768     HBufC8* pAsXml = pSoapMessage->AsXmlL();
       
  1769     CleanupStack::PushL(pAsXml);
       
  1770     if(!( *pAsXml == KSoapMessage11 )) return KErrArgument;
       
  1771     CleanupStack::PopAndDestroy(pAsXml);
       
  1772 
       
  1773     CleanupStack::PopAndDestroy(pSoapMessage);
       
  1774 
       
  1775     // 1.2) Test creating of SOAP 1.1 version SoapMessage with scheme namespace
       
  1776     //      => Security header should be created with given namespace.
       
  1777     pSoapMessage = CSenSoapMessage2::NewL(ESOAP11, KSecuritySchemeXmlNamespace);
       
  1778     CleanupStack::PushL(pSoapMessage);
       
  1779 
       
  1780     pAsXml = pSoapMessage->AsXmlL();
       
  1781     CleanupStack::PushL(pAsXml);
       
  1782     if(!( *pAsXml == KSoapMessage12 )) return KErrArgument;
       
  1783     CleanupStack::PopAndDestroy(pAsXml);
       
  1784 
       
  1785     CleanupStack::PopAndDestroy(pSoapMessage);
       
  1786 
       
  1787     // 1.3) Test creating of SOAP 1.1 version SoapMessage with security namespace
       
  1788     //      => Security header should be created with given namespace.
       
  1789     pSoapMessage = CSenSoapMessage2::NewL(ESOAP11, KSecurityXmlNamespace);
       
  1790     CleanupStack::PushL(pSoapMessage);
       
  1791 
       
  1792     pAsXml = pSoapMessage->AsXmlL();
       
  1793     CleanupStack::PushL(pAsXml);
       
  1794     if(!( *pAsXml == KSoapMessage13 )) return KErrArgument;
       
  1795     CleanupStack::PopAndDestroy(pAsXml);
       
  1796 
       
  1797     CleanupStack::PopAndDestroy(pSoapMessage);
       
  1798 
       
  1799     // 2.1) Test creating of SOAP 1.2 version SoapMessage with illegal namespace
       
  1800     //      => No security header should be added.
       
  1801     pSoapMessage = CSenSoapMessage2::NewL(ESOAP12, KIllegalNamespace);
       
  1802     CleanupStack::PushL(pSoapMessage);
       
  1803 
       
  1804     pAsXml = pSoapMessage->AsXmlL();
       
  1805     CleanupStack::PushL(pAsXml);
       
  1806     if(!( *pAsXml == KSoapMessage21 )) return KErrArgument;
       
  1807     CleanupStack::PopAndDestroy(pAsXml);
       
  1808 
       
  1809     CleanupStack::PopAndDestroy(pSoapMessage);
       
  1810 
       
  1811     // 2.2) Test creating of SOAP 1.2 version SoapMessage with scheme namespace
       
  1812     //      => Security header should be created with given namespace.
       
  1813     pSoapMessage = CSenSoapMessage2::NewL(ESOAP12, KSecuritySchemeXmlNamespace);
       
  1814     CleanupStack::PushL(pSoapMessage);
       
  1815 
       
  1816     pAsXml = pSoapMessage->AsXmlL();
       
  1817     CleanupStack::PushL(pAsXml);
       
  1818     if(!( *pAsXml == KSoapMessage22 )) return KErrArgument;
       
  1819     CleanupStack::PopAndDestroy(pAsXml);
       
  1820 
       
  1821     CleanupStack::PopAndDestroy(pSoapMessage);
       
  1822 
       
  1823     // 2.3) Test creating of SOAP 1.2 version SoapMessage with security namespace
       
  1824     //      => Security header should be created with given namespace.
       
  1825     pSoapMessage = CSenSoapMessage2::NewL(ESOAP12, KSecurityXmlNamespace);
       
  1826     CleanupStack::PushL(pSoapMessage);
       
  1827 
       
  1828     pAsXml = pSoapMessage->AsXmlL();
       
  1829     CleanupStack::PushL(pAsXml);
       
  1830     if(!( *pAsXml == KSoapMessage23 )) return KErrArgument;
       
  1831     CleanupStack::PopAndDestroy(pAsXml);
       
  1832 
       
  1833     CleanupStack::PopAndDestroy(pSoapMessage);
       
  1834     Teardown();
       
  1835     return KErrNone;    
       
  1836 	}
       
  1837     
       
  1838 TInt CnewsoapclassesTester::MT_CSenSoapMessage2_NewLC_2L( CStifItemParser& aItem )
       
  1839     {
       
  1840 	SetupL();
       
  1841     _LIT8(KIllegalNamespace,            "illegalNamespace");
       
  1842     _LIT8(KSecuritySchemeXmlNamespace,  "http://schemas.xmlsoap.org/ws/2003/06/secext");
       
  1843     _LIT8(KSecurityXmlNamespace,        "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd");
       
  1844 
       
  1845     _LIT8(KSoapMessage11,    "<S:Envelope xmlns:S=\"http://schemas.xmlsoap.org/soap/envelope/\"/>");
       
  1846     _LIT8(KSoapMessage12,    "<S:Envelope xmlns:S=\"http://schemas.xmlsoap.org/soap/envelope/\">\
       
  1847 <S:Header><wsse:Security xmlns:wsse=\"http://schemas.xmlsoap.org/ws/2003/06/secext\"/></S:Header>\
       
  1848 <S:Body/>\
       
  1849 </S:Envelope>");
       
  1850     _LIT8(KSoapMessage13,    "<S:Envelope xmlns:S=\"http://schemas.xmlsoap.org/soap/envelope/\">\
       
  1851 <S:Header><wsse:Security xmlns:wsse=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd\"/></S:Header>\
       
  1852 <S:Body/>\
       
  1853 </S:Envelope>");
       
  1854     _LIT8(KSoapMessage21,    "<S:Envelope xmlns:S=\"http://www.w3.org/2003/05/soap-envelope\"/>");
       
  1855     _LIT8(KSoapMessage22,    "<S:Envelope xmlns:S=\"http://www.w3.org/2003/05/soap-envelope\">\
       
  1856 <S:Header><wsse:Security xmlns:wsse=\"http://schemas.xmlsoap.org/ws/2003/06/secext\"/></S:Header>\
       
  1857 <S:Body/>\
       
  1858 </S:Envelope>");
       
  1859     _LIT8(KSoapMessage23,    "<S:Envelope xmlns:S=\"http://www.w3.org/2003/05/soap-envelope\">\
       
  1860 <S:Header><wsse:Security xmlns:wsse=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd\"/></S:Header>\
       
  1861 <S:Body/>\
       
  1862 </S:Envelope>");
       
  1863 
       
  1864     // 1.1) Test creating of SOAP 1.1 version SoapMessage with illegal namespace
       
  1865     //      => No security header should be added.
       
  1866     CSenSoapMessage2* pSoapMessage = CSenSoapMessage2::NewLC(ESOAP11, KIllegalNamespace);
       
  1867 
       
  1868     HBufC8* pAsXml = pSoapMessage->AsXmlL();
       
  1869     CleanupStack::PushL(pAsXml);
       
  1870     if(!( *pAsXml == KSoapMessage11 )) return KErrArgument;
       
  1871     CleanupStack::PopAndDestroy(pAsXml);
       
  1872 
       
  1873     CleanupStack::PopAndDestroy(pSoapMessage);
       
  1874 
       
  1875     // 1.2) Test creating of SOAP 1.1 version SoapMessage with scheme namespace
       
  1876     //      => Security header should be created with given namespace.
       
  1877     pSoapMessage = CSenSoapMessage2::NewLC(ESOAP11, KSecuritySchemeXmlNamespace);
       
  1878 
       
  1879     pAsXml = pSoapMessage->AsXmlL();
       
  1880     CleanupStack::PushL(pAsXml);
       
  1881     if(!( *pAsXml == KSoapMessage12 )) return KErrArgument;
       
  1882     CleanupStack::PopAndDestroy(pAsXml);
       
  1883 
       
  1884     CleanupStack::PopAndDestroy(pSoapMessage);
       
  1885 
       
  1886     // 1.3) Test creating of SOAP 1.1 version SoapMessage with security namespace
       
  1887     //      => Security header should be created with given namespace.
       
  1888     pSoapMessage = CSenSoapMessage2::NewLC(ESOAP11, KSecurityXmlNamespace);
       
  1889 
       
  1890     pAsXml = pSoapMessage->AsXmlL();
       
  1891     CleanupStack::PushL(pAsXml);
       
  1892     if(!( *pAsXml == KSoapMessage13 )) return KErrArgument;
       
  1893     CleanupStack::PopAndDestroy(pAsXml);
       
  1894 
       
  1895     CleanupStack::PopAndDestroy(pSoapMessage);
       
  1896 
       
  1897     // 2.1) Test creating of SOAP 1.2 version SoapMessage with illegal namespace
       
  1898     //      => No security header should be added.
       
  1899     pSoapMessage = CSenSoapMessage2::NewLC(ESOAP12, KIllegalNamespace);
       
  1900 
       
  1901     pAsXml = pSoapMessage->AsXmlL();
       
  1902     CleanupStack::PushL(pAsXml);
       
  1903     if(!( *pAsXml == KSoapMessage21 )) return KErrArgument;
       
  1904     CleanupStack::PopAndDestroy(pAsXml);
       
  1905 
       
  1906     CleanupStack::PopAndDestroy(pSoapMessage);
       
  1907 
       
  1908     // 2.2) Test creating of SOAP 1.2 version SoapMessage with scheme namespace
       
  1909     //      => Security header should be created with given namespace.
       
  1910     pSoapMessage = CSenSoapMessage2::NewLC(ESOAP12, KSecuritySchemeXmlNamespace);
       
  1911 
       
  1912     pAsXml = pSoapMessage->AsXmlL();
       
  1913     CleanupStack::PushL(pAsXml);
       
  1914     if(!( *pAsXml == KSoapMessage22 )) return KErrArgument;
       
  1915     CleanupStack::PopAndDestroy(pAsXml);
       
  1916 
       
  1917     CleanupStack::PopAndDestroy(pSoapMessage);
       
  1918 
       
  1919     // 2.3) Test creating of SOAP 1.2 version SoapMessage with security namespace
       
  1920     //      => Security header should be created with given namespace.
       
  1921     pSoapMessage = CSenSoapMessage2::NewLC(ESOAP12, KSecurityXmlNamespace);
       
  1922 
       
  1923     pAsXml = pSoapMessage->AsXmlL();
       
  1924     CleanupStack::PushL(pAsXml);
       
  1925     if(!( *pAsXml == KSoapMessage23 )) return KErrArgument;
       
  1926     CleanupStack::PopAndDestroy(pAsXml);
       
  1927 
       
  1928     CleanupStack::PopAndDestroy(pSoapMessage);
       
  1929     Teardown();
       
  1930     return KErrNone;    
       
  1931 	}
       
  1932 
       
  1933 TInt CnewsoapclassesTester::MT_CSenSoapMessage2_NewL_3L( CStifItemParser& aItem )
       
  1934     {
       
  1935 	SetupL();
       
  1936     _LIT8(KSoapMessage11,   "<S:Envelope xmlns:S=\"http://schemas.xmlsoap.org/soap/envelope/\"/>");
       
  1937     CSenSoapMessage2* pSoapMessage, *pSoapMessage1 = CSenSoapMessage2::NewL();
       
  1938     pSoapMessage = CSenSoapMessage2::NewL(*pSoapMessage1);
       
  1939     
       
  1940     HBufC8* pAsXml = pSoapMessage->AsXmlL();
       
  1941     CleanupStack::PushL(pAsXml);
       
  1942     
       
  1943     if(!( *pAsXml == KSoapMessage11 )) return KErrArgument;
       
  1944     
       
  1945     CleanupStack::PopAndDestroy(pAsXml);
       
  1946     
       
  1947     
       
  1948     __ASSERT_ALWAYS_NO_LEAVE(delete pSoapMessage);
       
  1949     pSoapMessage = NULL;
       
  1950     delete pSoapMessage1;
       
  1951     pSoapMessage1 = NULL;
       
  1952     Teardown();
       
  1953     return KErrNone;    
       
  1954 	}
       
  1955     
       
  1956 TInt CnewsoapclassesTester::MT_CSenSoapMessage2_NewLC_3L( CStifItemParser& aItem )
       
  1957     {
       
  1958 	SetupL();
       
  1959     _LIT8(KSoapMessage11,   "<S:Envelope xmlns:S=\"http://schemas.xmlsoap.org/soap/envelope/\"/>");
       
  1960     CSenSoapMessage2* pSoapMessage, *pSoapMessage1 = CSenSoapMessage2::NewL();
       
  1961     pSoapMessage = CSenSoapMessage2::NewLC(*pSoapMessage1);
       
  1962     
       
  1963     HBufC8* pAsXml = pSoapMessage->AsXmlL();
       
  1964     CleanupStack::PushL(pAsXml);
       
  1965     
       
  1966     if(!( *pAsXml == KSoapMessage11 )) return KErrArgument;
       
  1967     
       
  1968     CleanupStack::PopAndDestroy(pAsXml);
       
  1969     CleanupStack::PopAndDestroy(pSoapMessage);
       
  1970     delete pSoapMessage1;
       
  1971     pSoapMessage1 = NULL;
       
  1972     Teardown();
       
  1973     return KErrNone;    
       
  1974 	}
       
  1975 /*    
       
  1976 TInt CnewsoapclassesTester::MT_CSenSoapMessage2_NewL_4L( CStifItemParser& aItem )
       
  1977 	{
       
  1978 	SetupL();
       
  1979     _LIT8(KSoapMessage11,   "<S:Envelope xmlns:S=\"http://schemas.xmlsoap.org/soap/envelope/\"/>");
       
  1980 	MSenMessageContext* mContext = NULL;
       
  1981     CSenSoapMessage2* pSoapMessage = CSenSoapMessage2::NewL(*mContext);
       
  1982     CleanupStack::PushL(pSoapMessage);
       
  1983     HBufC8* pAsXml = pSoapMessage->AsXmlL();
       
  1984     CleanupStack::PushL(pAsXml);
       
  1985     
       
  1986     if(!( *pAsXml == KSoapMessage11 )) return KErrArgument;
       
  1987     
       
  1988     CleanupStack::PopAndDestroy(pAsXml);
       
  1989     CleanupStack::PopAndDestroy(pSoapMessage);
       
  1990     Teardown();
       
  1991     return KErrNone;    
       
  1992 	}
       
  1993 	
       
  1994 TInt CnewsoapclassesTester::MT_CSenSoapMessage2_NewLC_4L( CStifItemParser& aItem )
       
  1995 	{
       
  1996 	SetupL();
       
  1997 	_LIT8(KSoapMessage11,   "<S:Envelope xmlns:S=\"http://schemas.xmlsoap.org/soap/envelope/\"/>");
       
  1998 	MSenMessageContext* mContext = NULL;
       
  1999     CSenSoapMessage2* pSoapMessage = CSenSoapMessage2::NewLC(*mContext);
       
  2000     HBufC8* pAsXml = pSoapMessage->AsXmlL();
       
  2001     CleanupStack::PushL(pAsXml);
       
  2002     
       
  2003     if(!( *pAsXml == KSoapMessage11 )) return KErrArgument;
       
  2004     CleanupStack::PopAndDestroy(pAsXml);
       
  2005     
       
  2006     CleanupStack::PopAndDestroy(pSoapMessage);
       
  2007 
       
  2008     Teardown();
       
  2009     return KErrNone;    
       
  2010 	}
       
  2011 	
       
  2012 TInt CnewsoapclassesTester::MT_CSenSoapMessage2_NewL_5L( CStifItemParser& aItem )
       
  2013 	{
       
  2014 	SetupL();
       
  2015 	_LIT8(KSoapMessage11,   "<S:Envelope xmlns:S=\"http://schemas.xmlsoap.org/soap/envelope/\"/>");
       
  2016     _LIT8(KSoapMessage12,   "<S:Envelope xmlns:S=\"http://www.w3.org/2003/05/soap-envelope\"/>");
       
  2017 	
       
  2018     MSenMessageContext* mContext = NULL;
       
  2019     // 1) Test creating of SOAP 1.1 version SoapMessage
       
  2020     CSenSoapMessage2* pSoapMessage = CSenSoapMessage2::NewL(*mContext, ESOAP11);
       
  2021     CleanupStack::PushL(pSoapMessage);
       
  2022 
       
  2023     HBufC8* pAsXml = pSoapMessage->AsXmlL();
       
  2024     CleanupStack::PushL(pAsXml);
       
  2025     if(!( *pAsXml == KSoapMessage11 )) return KErrArgument;
       
  2026     CleanupStack::PopAndDestroy(pAsXml);
       
  2027 
       
  2028     CleanupStack::PopAndDestroy(pSoapMessage);
       
  2029 
       
  2030     // 2) Test creating of SOAP 1.2 version SoapMessage
       
  2031     pSoapMessage = CSenSoapMessage2::NewL(*mContext, ESOAP12 );
       
  2032     CleanupStack::PushL(pSoapMessage);
       
  2033 
       
  2034     pAsXml = pSoapMessage->AsXmlL();
       
  2035     CleanupStack::PushL(pAsXml);
       
  2036     if(!( *pAsXml == KSoapMessage12 )) return KErrArgument;
       
  2037     CleanupStack::PopAndDestroy(pAsXml);
       
  2038 
       
  2039     CleanupStack::PopAndDestroy(pSoapMessage);
       
  2040     Teardown();
       
  2041     return KErrNone;    
       
  2042 	}
       
  2043 	
       
  2044 TInt CnewsoapclassesTester::MT_CSenSoapMessage2_NewLC_5L( CStifItemParser& aItem )
       
  2045 	{
       
  2046 	SetupL();
       
  2047 	_LIT8(KSoapMessage11,   "<S:Envelope xmlns:S=\"http://schemas.xmlsoap.org/soap/envelope/\"/>");
       
  2048     _LIT8(KSoapMessage12,   "<S:Envelope xmlns:S=\"http://www.w3.org/2003/05/soap-envelope\"/>");
       
  2049     MSenMessageContext* mContext = NULL;
       
  2050 
       
  2051   
       
  2052     // 1) Test creating of SOAP 1.1 version SoapMessage
       
  2053     CSenSoapMessage2* pSoapMessage = CSenSoapMessage2::NewLC(*mContext, ESOAP11);
       
  2054     HBufC8* pAsXml = pSoapMessage->AsXmlL();
       
  2055     CleanupStack::PushL(pAsXml);
       
  2056     if(!( *pAsXml == KSoapMessage11 )) return KErrArgument;
       
  2057     CleanupStack::PopAndDestroy(pAsXml);
       
  2058 
       
  2059     CleanupStack::PopAndDestroy(pSoapMessage);
       
  2060 
       
  2061 
       
  2062     // 2) Test creating of SOAP 1.2 version SoapMessage
       
  2063     pSoapMessage = CSenSoapMessage2::NewLC(*mContext, ESOAP12);
       
  2064 
       
  2065     pAsXml = pSoapMessage->AsXmlL();
       
  2066     CleanupStack::PushL(pAsXml);
       
  2067     if(!( *pAsXml == KSoapMessage12 )) return KErrArgument;
       
  2068     CleanupStack::PopAndDestroy(pAsXml);
       
  2069 
       
  2070     CleanupStack::PopAndDestroy(pSoapMessage);
       
  2071     Teardown();
       
  2072     return KErrNone;    
       
  2073 	}
       
  2074 	
       
  2075 TInt CnewsoapclassesTester::MT_CSenSoapMessage2_NewL_6L( CStifItemParser& aItem )
       
  2076 	{
       
  2077 	SetupL();
       
  2078 	MSenMessageContext* mContext = NULL;
       
  2079 
       
  2080     
       
  2081 	_LIT8(KIllegalNamespace,            "illegalNamespace");
       
  2082     _LIT8(KSecuritySchemeXmlNamespace,  "http://schemas.xmlsoap.org/ws/2003/06/secext");
       
  2083     _LIT8(KSecurityXmlNamespace,        "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd");
       
  2084 
       
  2085     _LIT8(KSoapMessage11,    "<S:Envelope xmlns:S=\"http://schemas.xmlsoap.org/soap/envelope/\"/>");
       
  2086     _LIT8(KSoapMessage12,    "<S:Envelope xmlns:S=\"http://schemas.xmlsoap.org/soap/envelope/\">\
       
  2087 <S:Header><wsse:Security xmlns:wsse=\"http://schemas.xmlsoap.org/ws/2003/06/secext\"/></S:Header>\
       
  2088 <S:Body/>\
       
  2089 </S:Envelope>");
       
  2090     _LIT8(KSoapMessage13,    "<S:Envelope xmlns:S=\"http://schemas.xmlsoap.org/soap/envelope/\">\
       
  2091 <S:Header><wsse:Security xmlns:wsse=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd\"/></S:Header>\
       
  2092 <S:Body/>\
       
  2093 </S:Envelope>");
       
  2094     _LIT8(KSoapMessage21,    "<S:Envelope xmlns:S=\"http://www.w3.org/2003/05/soap-envelope\"/>");
       
  2095     _LIT8(KSoapMessage22,    "<S:Envelope xmlns:S=\"http://www.w3.org/2003/05/soap-envelope\">\
       
  2096 <S:Header><wsse:Security xmlns:wsse=\"http://schemas.xmlsoap.org/ws/2003/06/secext\"/></S:Header>\
       
  2097 <S:Body/>\
       
  2098 </S:Envelope>");
       
  2099     _LIT8(KSoapMessage23,    "<S:Envelope xmlns:S=\"http://www.w3.org/2003/05/soap-envelope\">\
       
  2100 <S:Header><wsse:Security xmlns:wsse=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd\"/></S:Header>\
       
  2101 <S:Body/>\
       
  2102 </S:Envelope>");
       
  2103 
       
  2104     // 1.1) Test creating of SOAP 1.1 version SoapMessage with illegal namespace
       
  2105     //      => No security header should be added.
       
  2106     CSenSoapMessage2* pSoapMessage = CSenSoapMessage2::NewL(*mContext, ESOAP11, KIllegalNamespace);
       
  2107     CleanupStack::PushL(pSoapMessage);
       
  2108 
       
  2109     HBufC8* pAsXml = pSoapMessage->AsXmlL();
       
  2110     CleanupStack::PushL(pAsXml);
       
  2111     if(!( *pAsXml == KSoapMessage11 )) return KErrArgument;
       
  2112     CleanupStack::PopAndDestroy(pAsXml);
       
  2113 
       
  2114     CleanupStack::PopAndDestroy(pSoapMessage);
       
  2115 
       
  2116     // 1.2) Test creating of SOAP 1.1 version SoapMessage with scheme namespace
       
  2117     //      => Security header should be created with given namespace.
       
  2118     pSoapMessage = CSenSoapMessage2::NewL(*mContext,ESOAP11, KSecuritySchemeXmlNamespace);
       
  2119     CleanupStack::PushL(pSoapMessage);
       
  2120 
       
  2121     pAsXml = pSoapMessage->AsXmlL();
       
  2122     CleanupStack::PushL(pAsXml);
       
  2123     if(!( *pAsXml == KSoapMessage12 )) return KErrArgument;
       
  2124     CleanupStack::PopAndDestroy(pAsXml);
       
  2125 
       
  2126     CleanupStack::PopAndDestroy(pSoapMessage);
       
  2127 
       
  2128     // 1.3) Test creating of SOAP 1.1 version SoapMessage with security namespace
       
  2129     //      => Security header should be created with given namespace.
       
  2130     pSoapMessage = CSenSoapMessage2::NewL(*mContext,ESOAP11, KSecurityXmlNamespace);
       
  2131     CleanupStack::PushL(pSoapMessage);
       
  2132 
       
  2133     pAsXml = pSoapMessage->AsXmlL();
       
  2134     CleanupStack::PushL(pAsXml);
       
  2135     if(!( *pAsXml == KSoapMessage13 )) return KErrArgument;
       
  2136     CleanupStack::PopAndDestroy(pAsXml);
       
  2137 
       
  2138     CleanupStack::PopAndDestroy(pSoapMessage);
       
  2139 
       
  2140     // 2.1) Test creating of SOAP 1.2 version SoapMessage with illegal namespace
       
  2141     //      => No security header should be added.
       
  2142     pSoapMessage = CSenSoapMessage2::NewL(*mContext,ESOAP12, KIllegalNamespace);
       
  2143     CleanupStack::PushL(pSoapMessage);
       
  2144 
       
  2145     pAsXml = pSoapMessage->AsXmlL();
       
  2146     CleanupStack::PushL(pAsXml);
       
  2147     if(!( *pAsXml == KSoapMessage21 )) return KErrArgument;
       
  2148     CleanupStack::PopAndDestroy(pAsXml);
       
  2149 
       
  2150     CleanupStack::PopAndDestroy(pSoapMessage);
       
  2151 
       
  2152     // 2.2) Test creating of SOAP 1.2 version SoapMessage with scheme namespace
       
  2153     //      => Security header should be created with given namespace.
       
  2154     pSoapMessage = CSenSoapMessage2::NewL(*mContext,ESOAP12, KSecuritySchemeXmlNamespace);
       
  2155     CleanupStack::PushL(pSoapMessage);
       
  2156 
       
  2157     pAsXml = pSoapMessage->AsXmlL();
       
  2158     CleanupStack::PushL(pAsXml);
       
  2159     if(!( *pAsXml == KSoapMessage22 )) return KErrArgument;
       
  2160     CleanupStack::PopAndDestroy(pAsXml);
       
  2161 
       
  2162     CleanupStack::PopAndDestroy(pSoapMessage);
       
  2163 
       
  2164     // 2.3) Test creating of SOAP 1.2 version SoapMessage with security namespace
       
  2165     //      => Security header should be created with given namespace.
       
  2166     pSoapMessage = CSenSoapMessage2::NewL(*mContext,ESOAP12, KSecurityXmlNamespace);
       
  2167     CleanupStack::PushL(pSoapMessage);
       
  2168 
       
  2169     pAsXml = pSoapMessage->AsXmlL();
       
  2170     CleanupStack::PushL(pAsXml);
       
  2171     if(!( *pAsXml == KSoapMessage23 )) return KErrArgument;
       
  2172     CleanupStack::PopAndDestroy(pAsXml);
       
  2173 
       
  2174     CleanupStack::PopAndDestroy(pSoapMessage);
       
  2175     
       
  2176     Teardown();
       
  2177     return KErrNone;    
       
  2178 	}
       
  2179 	
       
  2180 TInt CnewsoapclassesTester::MT_CSenSoapMessage2_NewLC_6L(CStifItemParser& aItem )
       
  2181 	{
       
  2182 	SetupL();
       
  2183 	MSenMessageContext* mContext = NULL;
       
  2184     
       
  2185 	 _LIT8(KIllegalNamespace,            "illegalNamespace");
       
  2186     _LIT8(KSecuritySchemeXmlNamespace,  "http://schemas.xmlsoap.org/ws/2003/06/secext");
       
  2187     _LIT8(KSecurityXmlNamespace,        "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd");
       
  2188 
       
  2189     _LIT8(KSoapMessage11,    "<S:Envelope xmlns:S=\"http://schemas.xmlsoap.org/soap/envelope/\"/>");
       
  2190     _LIT8(KSoapMessage12,    "<S:Envelope xmlns:S=\"http://schemas.xmlsoap.org/soap/envelope/\">\
       
  2191 <S:Header><wsse:Security xmlns:wsse=\"http://schemas.xmlsoap.org/ws/2003/06/secext\"/></S:Header>\
       
  2192 <S:Body/>\
       
  2193 </S:Envelope>");
       
  2194     _LIT8(KSoapMessage13,    "<S:Envelope xmlns:S=\"http://schemas.xmlsoap.org/soap/envelope/\">\
       
  2195 <S:Header><wsse:Security xmlns:wsse=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd\"/></S:Header>\
       
  2196 <S:Body/>\
       
  2197 </S:Envelope>");
       
  2198     _LIT8(KSoapMessage21,    "<S:Envelope xmlns:S=\"http://www.w3.org/2003/05/soap-envelope\"/>");
       
  2199     _LIT8(KSoapMessage22,    "<S:Envelope xmlns:S=\"http://www.w3.org/2003/05/soap-envelope\">\
       
  2200 <S:Header><wsse:Security xmlns:wsse=\"http://schemas.xmlsoap.org/ws/2003/06/secext\"/></S:Header>\
       
  2201 <S:Body/>\
       
  2202 </S:Envelope>");
       
  2203     _LIT8(KSoapMessage23,    "<S:Envelope xmlns:S=\"http://www.w3.org/2003/05/soap-envelope\">\
       
  2204 <S:Header><wsse:Security xmlns:wsse=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd\"/></S:Header>\
       
  2205 <S:Body/>\
       
  2206 </S:Envelope>");
       
  2207 
       
  2208     // 1.1) Test creating of SOAP 1.1 version SoapMessage with illegal namespace
       
  2209     //      => No security header should be added.
       
  2210     CSenSoapMessage2* pSoapMessage = CSenSoapMessage2::NewLC(*mContext,ESOAP11, KIllegalNamespace);
       
  2211 
       
  2212     HBufC8* pAsXml = pSoapMessage->AsXmlL();
       
  2213     CleanupStack::PushL(pAsXml);
       
  2214     if(!( *pAsXml == KSoapMessage11 )) return KErrArgument;
       
  2215     CleanupStack::PopAndDestroy(pAsXml);
       
  2216 
       
  2217     CleanupStack::PopAndDestroy(pSoapMessage);
       
  2218 
       
  2219     // 1.2) Test creating of SOAP 1.1 version SoapMessage with scheme namespace
       
  2220     //      => Security header should be created with given namespace.
       
  2221     pSoapMessage = CSenSoapMessage2::NewLC(*mContext,ESOAP11, KSecuritySchemeXmlNamespace);
       
  2222 
       
  2223     pAsXml = pSoapMessage->AsXmlL();
       
  2224     CleanupStack::PushL(pAsXml);
       
  2225     if(!( *pAsXml == KSoapMessage12 )) return KErrArgument;
       
  2226     CleanupStack::PopAndDestroy(pAsXml);
       
  2227 
       
  2228     CleanupStack::PopAndDestroy(pSoapMessage);
       
  2229 
       
  2230     // 1.3) Test creating of SOAP 1.1 version SoapMessage with security namespace
       
  2231     //      => Security header should be created with given namespace.
       
  2232     pSoapMessage = CSenSoapMessage2::NewLC(*mContext,ESOAP11, KSecurityXmlNamespace);
       
  2233 
       
  2234     pAsXml = pSoapMessage->AsXmlL();
       
  2235     CleanupStack::PushL(pAsXml);
       
  2236     if(!( *pAsXml == KSoapMessage13 )) return KErrArgument;
       
  2237     CleanupStack::PopAndDestroy(pAsXml);
       
  2238 
       
  2239     CleanupStack::PopAndDestroy(pSoapMessage);
       
  2240 
       
  2241     // 2.1) Test creating of SOAP 1.2 version SoapMessage with illegal namespace
       
  2242     //      => No security header should be added.
       
  2243     pSoapMessage = CSenSoapMessage2::NewLC(*mContext,ESOAP12, KIllegalNamespace);
       
  2244 
       
  2245     pAsXml = pSoapMessage->AsXmlL();
       
  2246     CleanupStack::PushL(pAsXml);
       
  2247     if(!( *pAsXml == KSoapMessage21 )) return KErrArgument;
       
  2248     CleanupStack::PopAndDestroy(pAsXml);
       
  2249 
       
  2250     CleanupStack::PopAndDestroy(pSoapMessage);
       
  2251 
       
  2252     // 2.2) Test creating of SOAP 1.2 version SoapMessage with scheme namespace
       
  2253     //      => Security header should be created with given namespace.
       
  2254     pSoapMessage = CSenSoapMessage2::NewLC(*mContext,ESOAP12, KSecuritySchemeXmlNamespace);
       
  2255 
       
  2256     pAsXml = pSoapMessage->AsXmlL();
       
  2257     CleanupStack::PushL(pAsXml);
       
  2258     if(!( *pAsXml == KSoapMessage22 )) return KErrArgument;
       
  2259     CleanupStack::PopAndDestroy(pAsXml);
       
  2260 
       
  2261     CleanupStack::PopAndDestroy(pSoapMessage);
       
  2262 
       
  2263     // 2.3) Test creating of SOAP 1.2 version SoapMessage with security namespace
       
  2264     //      => Security header should be created with given namespace.
       
  2265     pSoapMessage = CSenSoapMessage2::NewLC(*mContext,ESOAP12, KSecurityXmlNamespace);
       
  2266 
       
  2267     pAsXml = pSoapMessage->AsXmlL();
       
  2268     CleanupStack::PushL(pAsXml);
       
  2269     if(!( *pAsXml == KSoapMessage23 )) return KErrArgument;
       
  2270     CleanupStack::PopAndDestroy(pAsXml);
       
  2271 
       
  2272     CleanupStack::PopAndDestroy(pSoapMessage);
       
  2273 
       
  2274     Teardown();
       
  2275     return KErrNone;    
       
  2276 	}
       
  2277 */	
       
  2278  
       
  2279 TInt CnewsoapclassesTester::MT_CSenSoapMessage2_TypeL( CStifItemParser& aItem )
       
  2280 	{
       
  2281 	SetupL();
       
  2282 	CSenSoapMessage2* pSoapMessage = CSenSoapMessage2::NewL();
       
  2283     CleanupStack::PushL(pSoapMessage);
       
  2284     
       
  2285     TL(MSenMessage::ESoapMessage2 == pSoapMessage->Type());
       
  2286     CleanupStack::PopAndDestroy(pSoapMessage);
       
  2287     Teardown();
       
  2288     return KErrNone;    
       
  2289     
       
  2290 	}
       
  2291 
       
  2292 TInt CnewsoapclassesTester::MT_CSenSoapMessage2_CloneL( CStifItemParser& aItem )
       
  2293 	{
       
  2294 	SetupL();
       
  2295 	TBool Flag;
       
  2296 	CSenSoapMessage2* pSoapMessage = CSenSoapMessage2::NewL();
       
  2297     CleanupStack::PushL(pSoapMessage);
       
  2298 
       
  2299 	CSenSoapMessage2* pClone = NULL;
       
  2300     pClone = 	(CSenSoapMessage2*)pSoapMessage->CloneL(); 
       
  2301     if(pClone != NULL)
       
  2302     	Flag = 1;
       
  2303     if(!(Flag)) return KErrArgument;
       
  2304     delete pClone;
       
  2305     CleanupStack::PopAndDestroy(pSoapMessage);
       
  2306     Teardown();
       
  2307     return KErrNone;    
       
  2308 	}
       
  2309 	
       
  2310 TInt CnewsoapclassesTester::MT_CSenSoapMessage2_Parse1L( CStifItemParser& aItem )
       
  2311     {
       
  2312 	SetupL();
       
  2313     _LIT8(KInputString,             "<S:Envelope \
       
  2314 xmlns:S=\"http://schemas.xmlsoap.org/soap/envelope/\">\
       
  2315 <S:Header>\
       
  2316 <sb:Correlation xmlns:sb=\"urn:liberty:sb:2003-08\" \
       
  2317 messageID=\"URN:UUID:860949DC-134D-A989-E328-2FD7F20E31CE\" timestamp=\"2006-06-01T14:53:19Z\"/>\
       
  2318 <wsse:Security xmlns:wsse=\"http://schemas.xmlsoap.org/ws/2003/06/secext\"/>\
       
  2319 </S:Header>\
       
  2320 <S:Body>\
       
  2321 <sa:SASLRequest xmlns:sa=\"urn:liberty:sa:2004-04\" mechanism=\"ANONYMOUS PLAIN CRAM-MD5\" authzID=\"testuser1\"/>\
       
  2322 </S:Body>\
       
  2323 </S:Envelope>");
       
  2324     _LIT8(KBodyAsString,     "\
       
  2325 <S:Body xmlns:S=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:sa=\"urn:liberty:sa:2004-04\">\
       
  2326 <sa:SASLRequest xmlns:sa=\"urn:liberty:sa:2004-04\" mechanism=\"ANONYMOUS PLAIN CRAM-MD5\" authzID=\"testuser1\"/>\
       
  2327 </S:Body>");
       
  2328     
       
  2329 
       
  2330     _LIT8(KEmptyBodyAsString,       "<S:Body/>");
       
  2331 
       
  2332     _LIT8(KEmptyBodyWithNsAsString, "<S:Body xmlns:S=\"http://schemas.xmlsoap.org/soap/envelope/\"/>");
       
  2333 
       
  2334     CSenParser* pParser = CSenParser::NewLC();
       
  2335     CSenSoapMessage2* pMessage = CSenSoapMessage2::NewL();
       
  2336     CleanupStack::PushL(pMessage);
       
  2337 
       
  2338 	pParser->ParseL(KInputString, *pMessage);
       
  2339 
       
  2340 	// 1) Check that parsed SoapEnvelope can be
       
  2341 	//    serialized correctly
       
  2342 	HBufC8* pAsXml = pMessage->AsXmlL();
       
  2343 	CleanupStack::PushL(pAsXml);
       
  2344 	if(!( *pAsXml == KInputString )) return KErrArgument;
       
  2345 	CleanupStack::PopAndDestroy(pAsXml);
       
  2346 
       
  2347 	// 2) Check that body can be detached from SoapEnvelope
       
  2348 	//    correctly.
       
  2349 	// Note: Following "BodyAsStringL()" call will detach
       
  2350 	//       Body from SoapEnvelope
       
  2351 	HBufC8* pBodyAsString = pMessage->BodyAsStringL();
       
  2352 	CleanupStack::PushL(pBodyAsString);
       
  2353 	if(!( *pBodyAsString == KBodyAsString )) return KErrArgument;
       
  2354 	CleanupStack::PopAndDestroy(pBodyAsString);
       
  2355 
       
  2356 	// 3) Check that body can be detached from SoapEnvelope
       
  2357 	//    twice
       
  2358 	//    In this case body does not have child elements.
       
  2359 	//    => Empty body should be returned.
       
  2360 	//       Note: Empty body should contain namespace
       
  2361 	//             declaration because body is detached
       
  2362 	pBodyAsString = pMessage->BodyAsStringL();
       
  2363 	CleanupStack::PushL(pBodyAsString);
       
  2364 	if(!( *pBodyAsString == KEmptyBodyWithNsAsString )) return KErrArgument;
       
  2365 	CleanupStack::PopAndDestroy(pBodyAsString);
       
  2366 
       
  2367 	// 4) Check that body was detached from SoapEnvelope
       
  2368 	//    correctly
       
  2369 	//    => Getting body again should result empty body to be returned.
       
  2370 	TXmlEngElement bodyElement = pMessage->BodyL();
       
  2371 	RSenDocument document = pMessage->AsDocumentL();
       
  2372 
       
  2373     TUint optionFlags = 0;
       
  2374     // Omit following declarations from the beginning of XML Document:
       
  2375     // <?xml version=\"1.0\...
       
  2376     //   encoding="..."
       
  2377     //   standalone="..."
       
  2378     // ?>
       
  2379     optionFlags = optionFlags | TXmlEngSerializationOptions::KOptionOmitXMLDeclaration;
       
  2380 
       
  2381     // Allow encoding declaration (if KOptionOmitXMLDeclaration is _not_ set)
       
  2382     //optionFlags = optionFlags | TSerializationOptions::KOptionEncoding;
       
  2383 
       
  2384     // Allow standalone declaration (if KOptionOmitXMLDeclaration is _not_ set)
       
  2385     //optionFlags = optionFlags | TSerializationOptions::KOptionStandalone;
       
  2386 
       
  2387     TXmlEngSerializationOptions options(optionFlags);
       
  2388 
       
  2389     RBuf8 asXml;
       
  2390     CleanupClosePushL(asXml);
       
  2391     document.SaveL(asXml, bodyElement, options);
       
  2392 
       
  2393     // Serielized body should be empty because "BodyAsStringL()"
       
  2394     // previously detached body.
       
  2395     if(!( asXml == KEmptyBodyAsString )) return KErrArgument;
       
  2396 
       
  2397     CleanupStack::PopAndDestroy(&asXml);
       
  2398 
       
  2399     CleanupStack::PopAndDestroy(pMessage);
       
  2400     CleanupStack::PopAndDestroy(pParser);
       
  2401     Teardown();
       
  2402     return KErrNone;    
       
  2403 	}
       
  2404 	
       
  2405 
       
  2406 TInt CnewsoapclassesTester::MT_CSenSoapMessage2_SetSecurityHeaderLL( CStifItemParser& aItem )
       
  2407     {
       
  2408 	SetupL();
       
  2409     _LIT8(KSoapMessage11_1, "<S:Envelope \
       
  2410 xmlns:S=\"http://schemas.xmlsoap.org/soap/envelope/\">\
       
  2411 <S:Header>\
       
  2412 <wsse:Security xmlns:wsse=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd\">\
       
  2413 <Credential/>\
       
  2414 </wsse:Security>\
       
  2415 </S:Header>\
       
  2416 <S:Body/>\
       
  2417 </S:Envelope>");
       
  2418 
       
  2419     _LIT8(KSoapMessage11_2, "<S:Envelope \
       
  2420 xmlns:S=\"http://schemas.xmlsoap.org/soap/envelope/\">\
       
  2421 <S:Header>\
       
  2422 <wsse:Security xmlns:wsse=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd\"/>\
       
  2423 </S:Header>\
       
  2424 <S:Body/>\
       
  2425 </S:Envelope>");
       
  2426 
       
  2427     _LIT8(KSoapMessage12_1, "<S:Envelope \
       
  2428 xmlns:S=\"http://www.w3.org/2003/05/soap-envelope\">\
       
  2429 <S:Header>\
       
  2430 <wsse:Security xmlns:wsse=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd\">\
       
  2431 <Credential/>\
       
  2432 </wsse:Security>\
       
  2433 </S:Header>\
       
  2434 <S:Body/>\
       
  2435 </S:Envelope>");
       
  2436 
       
  2437     _LIT8(KSoapMessage12_2, "<S:Envelope \
       
  2438 xmlns:S=\"http://www.w3.org/2003/05/soap-envelope\">\
       
  2439 <S:Header>\
       
  2440 <wsse:Security xmlns:wsse=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd\"/>\
       
  2441 </S:Header>\
       
  2442 <S:Body/>\
       
  2443 </S:Envelope>");
       
  2444 
       
  2445     _LIT8(KCredential,      "<Credential/>");
       
  2446 
       
  2447     // 1) Soap 1.1 - Test setting of SecurityHeader WITH Credential
       
  2448     CSenSoapMessage2* pSoapMessage = CSenSoapMessage2::NewL(ESOAP11);
       
  2449     CleanupStack::PushL(pSoapMessage);
       
  2450 
       
  2451     pSoapMessage->SetSecurityHeaderL(KCredential);
       
  2452 
       
  2453     HBufC8* pAsXml = pSoapMessage->AsXmlL();
       
  2454     CleanupStack::PushL(pAsXml);
       
  2455     if(!( *pAsXml == KSoapMessage11_1 )) return KErrArgument;
       
  2456     CleanupStack::PopAndDestroy(pAsXml);
       
  2457 
       
  2458     CleanupStack::PopAndDestroy(pSoapMessage);
       
  2459 
       
  2460     // 2) Soap 1.1 - Test setting of SecurityHeader WITHOUT Credential
       
  2461     pSoapMessage = CSenSoapMessage2::NewL(ESOAP11);
       
  2462     CleanupStack::PushL(pSoapMessage);
       
  2463 
       
  2464     pSoapMessage->SetSecurityHeaderL(KNullDesC8);
       
  2465 
       
  2466     pAsXml = pSoapMessage->AsXmlL();
       
  2467     CleanupStack::PushL(pAsXml);
       
  2468     if(!( *pAsXml == KSoapMessage11_2 )) return KErrArgument;
       
  2469     CleanupStack::PopAndDestroy(pAsXml);
       
  2470 
       
  2471     CleanupStack::PopAndDestroy(pSoapMessage);
       
  2472 
       
  2473     // 3) Soap 1.2 - Test setting of SecurityHeader WITH Credential
       
  2474     pSoapMessage = CSenSoapMessage2::NewL(ESOAP12);
       
  2475     CleanupStack::PushL(pSoapMessage);
       
  2476 
       
  2477     pSoapMessage->SetSecurityHeaderL(KCredential);
       
  2478 
       
  2479     pAsXml = pSoapMessage->AsXmlL();
       
  2480     CleanupStack::PushL(pAsXml);
       
  2481     if(!( *pAsXml == KSoapMessage12_1 )) return KErrArgument;
       
  2482     CleanupStack::PopAndDestroy(pAsXml);
       
  2483 
       
  2484     CleanupStack::PopAndDestroy(pSoapMessage);
       
  2485 
       
  2486     // 4) Soap 1.2 - Test setting of SecurityHeader WITH Credential
       
  2487     pSoapMessage = CSenSoapMessage2::NewL(ESOAP12);
       
  2488     CleanupStack::PushL(pSoapMessage);
       
  2489 
       
  2490     pSoapMessage->SetSecurityHeaderL(KNullDesC8);
       
  2491 
       
  2492     pAsXml = pSoapMessage->AsXmlL();
       
  2493     CleanupStack::PushL(pAsXml);
       
  2494     if(!( *pAsXml == KSoapMessage12_2 )) return KErrArgument;
       
  2495     CleanupStack::PopAndDestroy(pAsXml);
       
  2496 
       
  2497     CleanupStack::PopAndDestroy(pSoapMessage);
       
  2498     Teardown();
       
  2499     return KErrNone;    
       
  2500 	}
       
  2501 
       
  2502 TInt CnewsoapclassesTester::MT_CSenSoapMessage2_AddSecurityTokenLL( CStifItemParser& aItem )
       
  2503     {
       
  2504 	SetupL();
       
  2505     _LIT8(KSoapMessage11_1, "<S:Envelope \
       
  2506 xmlns:S=\"http://schemas.xmlsoap.org/soap/envelope/\">\
       
  2507 <S:Header>\
       
  2508 <wsse:Security xmlns:wsse=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd\">\
       
  2509 <SecurityToken/>\
       
  2510 </wsse:Security>\
       
  2511 </S:Header>\
       
  2512 <S:Body/>\
       
  2513 </S:Envelope>");
       
  2514 
       
  2515     _LIT8(KSoapMessage11_2, "<S:Envelope \
       
  2516 xmlns:S=\"http://schemas.xmlsoap.org/soap/envelope/\">\
       
  2517 <S:Header>\
       
  2518 <wsse:Security xmlns:wsse=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd\">\
       
  2519 <SecurityToken/>\
       
  2520 <SecurityToken2/>\
       
  2521 </wsse:Security>\
       
  2522 </S:Header>\
       
  2523 <S:Body/>\
       
  2524 </S:Envelope>");
       
  2525 
       
  2526     _LIT8(KSoapMessage12_1, "<S:Envelope \
       
  2527 xmlns:S=\"http://www.w3.org/2003/05/soap-envelope\">\
       
  2528 <S:Header>\
       
  2529 <wsse:Security xmlns:wsse=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd\">\
       
  2530 <SecurityToken/>\
       
  2531 </wsse:Security>\
       
  2532 </S:Header>\
       
  2533 <S:Body/>\
       
  2534 </S:Envelope>");
       
  2535 
       
  2536     _LIT8(KSoapMessage12_2, "<S:Envelope \
       
  2537 xmlns:S=\"http://www.w3.org/2003/05/soap-envelope\">\
       
  2538 <S:Header>\
       
  2539 <wsse:Security xmlns:wsse=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd\">\
       
  2540 <SecurityToken/>\
       
  2541 <SecurityToken2/>\
       
  2542 </wsse:Security>\
       
  2543 </S:Header>\
       
  2544 <S:Body/>\
       
  2545 </S:Envelope>");
       
  2546 
       
  2547     _LIT8(KSecurityToken,   "<SecurityToken/>");
       
  2548     _LIT8(KSecurityToken2,   "<SecurityToken2/>");
       
  2549 
       
  2550     // 1) Soap 1.1 - Test adding of SecurityToken
       
  2551     CSenSoapMessage2* pSoapMessage = CSenSoapMessage2::NewL(ESOAP11);
       
  2552     CleanupStack::PushL(pSoapMessage);
       
  2553 
       
  2554     pSoapMessage->AddSecurityTokenL(KSecurityToken);
       
  2555 
       
  2556     HBufC8* pAsXml = pSoapMessage->AsXmlL();
       
  2557     CleanupStack::PushL(pAsXml);
       
  2558     if(!( *pAsXml == KSoapMessage11_1 )) return KErrArgument;
       
  2559     CleanupStack::PopAndDestroy(pAsXml);
       
  2560 
       
  2561     CleanupStack::PopAndDestroy(pSoapMessage);
       
  2562 
       
  2563     // 2) Soap 1.1 - Test adding of two SecurityTokens
       
  2564     pSoapMessage = CSenSoapMessage2::NewL(ESOAP11);
       
  2565     CleanupStack::PushL(pSoapMessage);
       
  2566 
       
  2567     pSoapMessage->AddSecurityTokenL(KSecurityToken);
       
  2568     pSoapMessage->AddSecurityTokenL(KSecurityToken2);
       
  2569 
       
  2570     pAsXml = pSoapMessage->AsXmlL();
       
  2571     CleanupStack::PushL(pAsXml);
       
  2572     if(!( *pAsXml == KSoapMessage11_2 )) return KErrArgument;
       
  2573     CleanupStack::PopAndDestroy(pAsXml);
       
  2574 
       
  2575     CleanupStack::PopAndDestroy(pSoapMessage);
       
  2576 
       
  2577     // 3) Soap 1.2 - Test adding of SecurityToken
       
  2578     pSoapMessage = CSenSoapMessage2::NewL(ESOAP12);
       
  2579     CleanupStack::PushL(pSoapMessage);
       
  2580 
       
  2581     pSoapMessage->AddSecurityTokenL(KSecurityToken);
       
  2582 
       
  2583     pAsXml = pSoapMessage->AsXmlL();
       
  2584     CleanupStack::PushL(pAsXml);
       
  2585     if(!( *pAsXml == KSoapMessage12_1 )) return KErrArgument;
       
  2586     CleanupStack::PopAndDestroy(pAsXml);
       
  2587 
       
  2588     CleanupStack::PopAndDestroy(pSoapMessage);
       
  2589 
       
  2590     // 4) Soap 1.2 - Test adding of two SecurityTokens
       
  2591     pSoapMessage = CSenSoapMessage2::NewL(ESOAP12);
       
  2592     CleanupStack::PushL(pSoapMessage);
       
  2593 
       
  2594     pSoapMessage->AddSecurityTokenL(KSecurityToken);
       
  2595     pSoapMessage->AddSecurityTokenL(KSecurityToken2);
       
  2596 
       
  2597     pAsXml = pSoapMessage->AsXmlL();
       
  2598     CleanupStack::PushL(pAsXml);
       
  2599     if(!( *pAsXml == KSoapMessage12_2 )) return KErrArgument;
       
  2600     CleanupStack::PopAndDestroy(pAsXml);
       
  2601 
       
  2602     CleanupStack::PopAndDestroy(pSoapMessage);
       
  2603     Teardown();
       
  2604     return KErrNone;    
       
  2605 	}
       
  2606 
       
  2607 TInt CnewsoapclassesTester::MT_CSenWsSecurityHeader2_NewLL( CStifItemParser& aItem )
       
  2608     {
       
  2609 	SetupL();
       
  2610     _LIT8(KRootElement,     "<RootElement>\
       
  2611 <wsse:Security xmlns:wsse=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd\"/>\
       
  2612 </RootElement>");
       
  2613 
       
  2614     _LIT8(KSecurityHeader,  "\
       
  2615 <wsse:Security xmlns:wsse=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd\"/>");
       
  2616 
       
  2617     _LIT8(KRootElementName, "RootElement");
       
  2618 
       
  2619 
       
  2620     RSenDocument document = RSenDocument::NewLC();
       
  2621     TXmlEngElement rootElement = document.CreateDocumentElementL(KRootElementName());
       
  2622 
       
  2623     CSenWsSecurityHeader2* pWsSecHeader = CSenWsSecurityHeader2::NewL(document,
       
  2624                                                                       rootElement);
       
  2625     CleanupStack::PushL(pWsSecHeader);
       
  2626 
       
  2627     TUint optionFlags = 0;
       
  2628     // Omit following declarations from the beginning of XML Document:
       
  2629     // <?xml version=\"1.0\...
       
  2630     //   encoding="..."
       
  2631     //   standalone="..."
       
  2632     // ?>
       
  2633     optionFlags = optionFlags | TXmlEngSerializationOptions::KOptionOmitXMLDeclaration;
       
  2634 
       
  2635     // Allow encoding declaration (if KOptionOmitXMLDeclaration is _not_ set)
       
  2636     //optionFlags = optionFlags | TSerializationOptions::KOptionEncoding;
       
  2637 
       
  2638     // Allow standalone declaration (if KOptionOmitXMLDeclaration is _not_ set)
       
  2639     //optionFlags = optionFlags | TSerializationOptions::KOptionStandalone;
       
  2640 
       
  2641     TXmlEngSerializationOptions options(optionFlags);
       
  2642 
       
  2643     RBuf8 asXml;
       
  2644     CleanupClosePushL(asXml);
       
  2645     document.SaveL(asXml, rootElement, options);
       
  2646 
       
  2647     // Serialized document should contain all the Fragment data as XML.
       
  2648     if(!( asXml == KRootElement )) return KErrArgument;
       
  2649 
       
  2650     CleanupStack::PopAndDestroy(&asXml);
       
  2651 
       
  2652     HBufC8* pAsXml = pWsSecHeader->AsXmlL();
       
  2653     CleanupStack::PushL(pAsXml);
       
  2654     if(!( *pAsXml == KSecurityHeader )) return KErrArgument;
       
  2655     CleanupStack::PopAndDestroy(pAsXml);
       
  2656 
       
  2657     CleanupStack::PopAndDestroy(pWsSecHeader);
       
  2658     CleanupStack::PopAndDestroy(1); // document
       
  2659     Teardown();
       
  2660     return KErrNone;    
       
  2661 	}
       
  2662 
       
  2663 TInt CnewsoapclassesTester::MT_CSenWsSecurityHeader2_NewLCL( CStifItemParser& aItem )
       
  2664     {
       
  2665 	SetupL();
       
  2666     _LIT8(KRootElement,     "<RootElement>\
       
  2667 <wsse:Security xmlns:wsse=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd\"/>\
       
  2668 </RootElement>");
       
  2669 
       
  2670     _LIT8(KSecurityHeader,  "\
       
  2671 <wsse:Security xmlns:wsse=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd\"/>");
       
  2672 
       
  2673     _LIT8(KRootElementName, "RootElement");
       
  2674 
       
  2675 
       
  2676     RSenDocument document = RSenDocument::NewLC();
       
  2677     TXmlEngElement rootElement = document.CreateDocumentElementL(KRootElementName());
       
  2678 
       
  2679     CSenWsSecurityHeader2* pWsSecHeader = CSenWsSecurityHeader2::NewLC(document,
       
  2680                                                                        rootElement);
       
  2681     TUint optionFlags = 0;
       
  2682     // Omit following declarations from the beginning of XML Document:
       
  2683     // <?xml version=\"1.0\...
       
  2684     //   encoding="..."
       
  2685     //   standalone="..."
       
  2686     // ?>
       
  2687     optionFlags = optionFlags | TXmlEngSerializationOptions::KOptionOmitXMLDeclaration;
       
  2688 
       
  2689     // Allow encoding declaration (if KOptionOmitXMLDeclaration is _not_ set)
       
  2690     //optionFlags = optionFlags | TSerializationOptions::KOptionEncoding;
       
  2691 
       
  2692     // Allow standalone declaration (if KOptionOmitXMLDeclaration is _not_ set)
       
  2693     //optionFlags = optionFlags | TSerializationOptions::KOptionStandalone;
       
  2694 
       
  2695     TXmlEngSerializationOptions options(optionFlags);
       
  2696 
       
  2697     RBuf8 asXml;
       
  2698     CleanupClosePushL(asXml);
       
  2699     document.SaveL(asXml, rootElement, options);
       
  2700 
       
  2701     // Serialized document should contain all the Fragment data as XML.
       
  2702     if(!( asXml == KRootElement )) return KErrArgument;
       
  2703 
       
  2704     CleanupStack::PopAndDestroy(&asXml);
       
  2705 
       
  2706     HBufC8* pAsXml = pWsSecHeader->AsXmlL();
       
  2707     CleanupStack::PushL(pAsXml);
       
  2708     if(!( *pAsXml == KSecurityHeader )) return KErrArgument;
       
  2709     CleanupStack::PopAndDestroy(pAsXml);
       
  2710 
       
  2711     CleanupStack::PopAndDestroy(pWsSecHeader);
       
  2712     CleanupStack::PopAndDestroy(1); // document
       
  2713     Teardown();
       
  2714     return KErrNone;    
       
  2715 	}
       
  2716 
       
  2717 TInt CnewsoapclassesTester::MT_CSenWsSecurityHeader2_NewL_1L( CStifItemParser& aItem )
       
  2718     {
       
  2719 	SetupL();
       
  2720     _LIT8(KRootElement,     "<RootElement>\
       
  2721 <wsse:Security xmlns:wsse=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd\">\
       
  2722 SecurityToken\
       
  2723 </wsse:Security>\
       
  2724 </RootElement>");
       
  2725 
       
  2726     _LIT8(KSecurityHeader,  "\
       
  2727 <wsse:Security xmlns:wsse=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd\">\
       
  2728 SecurityToken\
       
  2729 </wsse:Security>");
       
  2730 
       
  2731     _LIT8(KRootElementName, "RootElement");
       
  2732     _LIT8(KSecurityToken,   "SecurityToken");
       
  2733 
       
  2734 
       
  2735     RSenDocument document = RSenDocument::NewLC();
       
  2736     TXmlEngElement rootElement = document.CreateDocumentElementL(KRootElementName());
       
  2737 
       
  2738     CSenWsSecurityHeader2* pWsSecHeader = CSenWsSecurityHeader2::NewL(KSecurityToken,
       
  2739                                                                       document,
       
  2740                                                                       rootElement);
       
  2741     CleanupStack::PushL(pWsSecHeader);
       
  2742 
       
  2743     TUint optionFlags = 0;
       
  2744     // Omit following declarations from the beginning of XML Document:
       
  2745     // <?xml version=\"1.0\...
       
  2746     //   encoding="..."
       
  2747     //   standalone="..."
       
  2748     // ?>
       
  2749     optionFlags = optionFlags | TXmlEngSerializationOptions::KOptionOmitXMLDeclaration;
       
  2750 
       
  2751     // Allow encoding declaration (if KOptionOmitXMLDeclaration is _not_ set)
       
  2752     //optionFlags = optionFlags | TSerializationOptions::KOptionEncoding;
       
  2753 
       
  2754     // Allow standalone declaration (if KOptionOmitXMLDeclaration is _not_ set)
       
  2755     //optionFlags = optionFlags | TSerializationOptions::KOptionStandalone;
       
  2756 
       
  2757     TXmlEngSerializationOptions options(optionFlags);
       
  2758 
       
  2759     RBuf8 asXml;
       
  2760     CleanupClosePushL(asXml);
       
  2761     document.SaveL(asXml, rootElement, options);
       
  2762 
       
  2763     // Serialized document should contain all the Fragment data as XML.
       
  2764     if(!( asXml == KRootElement )) return KErrArgument;
       
  2765 
       
  2766     CleanupStack::PopAndDestroy(&asXml);
       
  2767 
       
  2768     HBufC8* pAsXml = pWsSecHeader->AsXmlL();
       
  2769     CleanupStack::PushL(pAsXml);
       
  2770     if(!( *pAsXml == KSecurityHeader )) return KErrArgument;
       
  2771     CleanupStack::PopAndDestroy(pAsXml);
       
  2772 
       
  2773     CleanupStack::PopAndDestroy(pWsSecHeader);
       
  2774     CleanupStack::PopAndDestroy(1); // document
       
  2775     Teardown();
       
  2776     return KErrNone;    
       
  2777 	}
       
  2778 
       
  2779 TInt CnewsoapclassesTester::MT_CSenWsSecurityHeader2_NewLC_1L( CStifItemParser& aItem )
       
  2780     {
       
  2781 	SetupL();
       
  2782     _LIT8(KRootElement,     "<RootElement>\
       
  2783 <wsse:Security xmlns:wsse=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd\">\
       
  2784 SecurityToken\
       
  2785 </wsse:Security>\
       
  2786 </RootElement>");
       
  2787 
       
  2788     _LIT8(KSecurityHeader,  "\
       
  2789 <wsse:Security xmlns:wsse=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd\">\
       
  2790 SecurityToken\
       
  2791 </wsse:Security>");
       
  2792 
       
  2793     _LIT8(KRootElementName, "RootElement");
       
  2794     _LIT8(KSecurityToken,   "SecurityToken");
       
  2795 
       
  2796 
       
  2797     RSenDocument document = RSenDocument::NewLC();
       
  2798     TXmlEngElement rootElement = document.CreateDocumentElementL(KRootElementName());
       
  2799 
       
  2800     CSenWsSecurityHeader2* pWsSecHeader = CSenWsSecurityHeader2::NewLC(KSecurityToken,
       
  2801                                                                        document,
       
  2802                                                                        rootElement);
       
  2803     TUint optionFlags = 0;
       
  2804     // Omit following declarations from the beginning of XML Document:
       
  2805     // <?xml version=\"1.0\...
       
  2806     //   encoding="..."
       
  2807     //   standalone="..."
       
  2808     // ?>
       
  2809     optionFlags = optionFlags | TXmlEngSerializationOptions::KOptionOmitXMLDeclaration;
       
  2810 
       
  2811     // Allow encoding declaration (if KOptionOmitXMLDeclaration is _not_ set)
       
  2812     //optionFlags = optionFlags | TSerializationOptions::KOptionEncoding;
       
  2813 
       
  2814     // Allow standalone declaration (if KOptionOmitXMLDeclaration is _not_ set)
       
  2815     //optionFlags = optionFlags | TSerializationOptions::KOptionStandalone;
       
  2816 
       
  2817     TXmlEngSerializationOptions options(optionFlags);
       
  2818 
       
  2819     RBuf8 asXml;
       
  2820     CleanupClosePushL(asXml);
       
  2821     document.SaveL(asXml, rootElement, options);
       
  2822 
       
  2823     // Serialized document should contain all the Fragment data as XML.
       
  2824     if(!( asXml == KRootElement )) return KErrArgument;
       
  2825 
       
  2826     CleanupStack::PopAndDestroy(&asXml);
       
  2827 
       
  2828     HBufC8* pAsXml = pWsSecHeader->AsXmlL();
       
  2829     CleanupStack::PushL(pAsXml);
       
  2830     if(!( *pAsXml == KSecurityHeader )) return KErrArgument;
       
  2831     CleanupStack::PopAndDestroy(pAsXml);
       
  2832 
       
  2833     CleanupStack::PopAndDestroy(pWsSecHeader);
       
  2834     CleanupStack::PopAndDestroy(1); // document
       
  2835     Teardown();
       
  2836     return KErrNone;    
       
  2837 	}
       
  2838 
       
  2839 TInt CnewsoapclassesTester::MT_CSenWsSecurityHeader2_NewL_2L( CStifItemParser& aItem )
       
  2840     {
       
  2841 	SetupL();
       
  2842     _LIT8(KRootElement,     "<RootElement>\
       
  2843 <wsse:Security xmlns:wsse=\"namespace\">\
       
  2844 SecurityToken\
       
  2845 </wsse:Security>\
       
  2846 </RootElement>");
       
  2847 
       
  2848     _LIT8(KSecurityHeader,  "\
       
  2849 <wsse:Security xmlns:wsse=\"namespace\">\
       
  2850 SecurityToken\
       
  2851 </wsse:Security>");
       
  2852 
       
  2853     _LIT8(KRootElementName, "RootElement");
       
  2854     _LIT8(KSecurityToken,   "SecurityToken");
       
  2855     _LIT8(KNamespace,       "namespace");
       
  2856 
       
  2857 
       
  2858     RSenDocument document = RSenDocument::NewLC();
       
  2859     TXmlEngElement rootElement = document.CreateDocumentElementL(KRootElementName());
       
  2860 
       
  2861     CSenWsSecurityHeader2* pWsSecHeader = CSenWsSecurityHeader2::NewL(KSecurityToken,
       
  2862                                                                       KNamespace,
       
  2863                                                                       document,
       
  2864                                                                       rootElement);
       
  2865     CleanupStack::PushL(pWsSecHeader);
       
  2866 
       
  2867     TUint optionFlags = 0;
       
  2868     // Omit following declarations from the beginning of XML Document:
       
  2869     // <?xml version=\"1.0\...
       
  2870     //   encoding="..."
       
  2871     //   standalone="..."
       
  2872     // ?>
       
  2873     optionFlags = optionFlags | TXmlEngSerializationOptions::KOptionOmitXMLDeclaration;
       
  2874 
       
  2875     // Allow encoding declaration (if KOptionOmitXMLDeclaration is _not_ set)
       
  2876     //optionFlags = optionFlags | TSerializationOptions::KOptionEncoding;
       
  2877 
       
  2878     // Allow standalone declaration (if KOptionOmitXMLDeclaration is _not_ set)
       
  2879     //optionFlags = optionFlags | TSerializationOptions::KOptionStandalone;
       
  2880 
       
  2881     TXmlEngSerializationOptions options(optionFlags);
       
  2882 
       
  2883     RBuf8 asXml;
       
  2884     CleanupClosePushL(asXml);
       
  2885     document.SaveL(asXml, rootElement, options);
       
  2886 
       
  2887     // Serialized document should contain all the Fragment data as XML.
       
  2888     if(!( asXml == KRootElement )) return KErrArgument;
       
  2889 
       
  2890     CleanupStack::PopAndDestroy(&asXml);
       
  2891 
       
  2892     HBufC8* pAsXml = pWsSecHeader->AsXmlL();
       
  2893     CleanupStack::PushL(pAsXml);
       
  2894     if(!( *pAsXml == KSecurityHeader )) return KErrArgument;
       
  2895     CleanupStack::PopAndDestroy(pAsXml);
       
  2896 
       
  2897     CleanupStack::PopAndDestroy(pWsSecHeader);
       
  2898     CleanupStack::PopAndDestroy(1); // document
       
  2899     Teardown();
       
  2900     return KErrNone;    
       
  2901 	}
       
  2902 
       
  2903 TInt CnewsoapclassesTester::MT_CSenWsSecurityHeader2_NewLC_2L( CStifItemParser& aItem )
       
  2904     {
       
  2905 	SetupL();
       
  2906     _LIT8(KRootElement,     "<RootElement>\
       
  2907 <wsse:Security xmlns:wsse=\"namespace\">\
       
  2908 SecurityToken\
       
  2909 </wsse:Security>\
       
  2910 </RootElement>");
       
  2911 
       
  2912     _LIT8(KSecurityHeader,  "\
       
  2913 <wsse:Security xmlns:wsse=\"namespace\">\
       
  2914 SecurityToken\
       
  2915 </wsse:Security>");
       
  2916 
       
  2917     _LIT8(KRootElementName, "RootElement");
       
  2918     _LIT8(KSecurityToken,   "SecurityToken");
       
  2919     _LIT8(KNamespace,       "namespace");
       
  2920 
       
  2921     RSenDocument document = RSenDocument::NewLC();
       
  2922     TXmlEngElement rootElement = document.CreateDocumentElementL(KRootElementName());
       
  2923 
       
  2924     CSenWsSecurityHeader2* pWsSecHeader = CSenWsSecurityHeader2::NewLC(KSecurityToken,
       
  2925                                                                        KNamespace,
       
  2926                                                                        document,
       
  2927                                                                        rootElement);
       
  2928     TUint optionFlags = 0;
       
  2929     // Omit following declarations from the beginning of XML Document:
       
  2930     // <?xml version=\"1.0\...
       
  2931     //   encoding="..."
       
  2932     //   standalone="..."
       
  2933     // ?>
       
  2934     optionFlags = optionFlags | TXmlEngSerializationOptions::KOptionOmitXMLDeclaration;
       
  2935 
       
  2936     // Allow encoding declaration (if KOptionOmitXMLDeclaration is _not_ set)
       
  2937     //optionFlags = optionFlags | TSerializationOptions::KOptionEncoding;
       
  2938 
       
  2939     // Allow standalone declaration (if KOptionOmitXMLDeclaration is _not_ set)
       
  2940     //optionFlags = optionFlags | TSerializationOptions::KOptionStandalone;
       
  2941 
       
  2942     TXmlEngSerializationOptions options(optionFlags);
       
  2943 
       
  2944     RBuf8 asXml;
       
  2945     CleanupClosePushL(asXml);
       
  2946     document.SaveL(asXml, rootElement, options);
       
  2947 
       
  2948     // Serialized document should contain all the Fragment data as XML.
       
  2949     if(!( asXml == KRootElement )) return KErrArgument;
       
  2950 
       
  2951     CleanupStack::PopAndDestroy(&asXml);
       
  2952 
       
  2953     HBufC8* pAsXml = pWsSecHeader->AsXmlL();
       
  2954     CleanupStack::PushL(pAsXml);
       
  2955     if(!( *pAsXml == KSecurityHeader )) return KErrArgument;
       
  2956     CleanupStack::PopAndDestroy(pAsXml);
       
  2957 
       
  2958     CleanupStack::PopAndDestroy(pWsSecHeader);
       
  2959     CleanupStack::PopAndDestroy(1); // document
       
  2960     Teardown();
       
  2961     return KErrNone;    
       
  2962 	}
       
  2963 
       
  2964 TInt CnewsoapclassesTester::MT_CSenWsSecurityHeader2_UsernameTokenLL( CStifItemParser& aItem )
       
  2965     {
       
  2966 	SetupL();
       
  2967     _LIT8(KRootElementName, "RootElement");
       
  2968     _LIT8(KUserName,        "UserName");
       
  2969     _LIT8(KUserNameToken,   "<wsse:UsernameToken>\
       
  2970 <wsse:Username>UserName</wsse:Username>\
       
  2971 </wsse:UsernameToken>");
       
  2972 
       
  2973     RSenDocument document = RSenDocument::NewLC();
       
  2974     TXmlEngElement rootElement = document.CreateDocumentElementL(KRootElementName());
       
  2975 
       
  2976     CSenWsSecurityHeader2* pWsSecHeader = CSenWsSecurityHeader2::NewLC(document,
       
  2977                                                                        rootElement);
       
  2978 
       
  2979     HBufC8* pUserNameToken = NULL;
       
  2980     pWsSecHeader->UsernameTokenL(KUserName, pUserNameToken);
       
  2981     CleanupStack::PushL(pUserNameToken);
       
  2982     if(!( *pUserNameToken == KUserNameToken )) return KErrArgument;
       
  2983     CleanupStack::PopAndDestroy(pUserNameToken);
       
  2984 
       
  2985     CleanupStack::PopAndDestroy(pWsSecHeader);
       
  2986 
       
  2987     CleanupStack::PopAndDestroy(1); // document
       
  2988     Teardown();
       
  2989     return KErrNone;    
       
  2990 	}
       
  2991 
       
  2992 TInt CnewsoapclassesTester::MT_CSenWsSecurityHeader2_UsernameTokenL_1L( CStifItemParser& aItem )
       
  2993     {
       
  2994 	SetupL();
       
  2995     _LIT8(KRootElementName,     "RootElement");
       
  2996 
       
  2997     _LIT8(KFakeEndPoint,        "http://www.fake_endpoint.com/");
       
  2998     _LIT8(KUsername,            "Username");
       
  2999     _LIT8(KPassword,            "Password");
       
  3000 
       
  3001     _LIT8(KUserNameToken,       "<wsse:UsernameToken>\
       
  3002 <wsse:Username>Username</wsse:Username>\
       
  3003 <wsse:Password>Password</wsse:Password>\
       
  3004 </wsse:UsernameToken>");
       
  3005 
       
  3006     _LIT8(KUserNameTokenDigest, "<wsse:UsernameToken>\
       
  3007 <wsse:Username>Username</wsse:Username>\
       
  3008 <wsse:Password Type=\"wsse:PasswordDigest\">Password</wsse:Password>\
       
  3009 </wsse:UsernameToken>");
       
  3010 
       
  3011     RSenDocument document = RSenDocument::NewLC();
       
  3012     TXmlEngElement rootElement = document.CreateDocumentElementL(KRootElementName());
       
  3013 
       
  3014     CSenIdentityProvider* pIdP = CSenIdentityProvider::NewLC(KFakeEndPoint());
       
  3015     pIdP->SetUserInfoL(KUsername, KNullDesC8, KPassword);
       
  3016 
       
  3017     // 1) Test using CSenWsSecurityHeader2::EText
       
  3018     CSenWsSecurityHeader2* pWsSecHeader = CSenWsSecurityHeader2::NewLC(document,
       
  3019                                                                        rootElement);
       
  3020 
       
  3021     HBufC8* pUserNameToken = pWsSecHeader->UsernameTokenL(*pIdP, CSenWsSecurityHeader2::EText);
       
  3022     CleanupStack::PushL(pUserNameToken);
       
  3023     if(!( *pUserNameToken == KUserNameToken )) return KErrArgument;
       
  3024     CleanupStack::PopAndDestroy(pUserNameToken);
       
  3025 
       
  3026     CleanupStack::PopAndDestroy(pWsSecHeader);
       
  3027 
       
  3028     // 2) Test using CSenWsSecurityHeader2::EDigest
       
  3029     pWsSecHeader = CSenWsSecurityHeader2::NewLC(document, rootElement);
       
  3030 
       
  3031     pUserNameToken = pWsSecHeader->UsernameTokenL(*pIdP, CSenWsSecurityHeader2::EDigest);
       
  3032     CleanupStack::PushL(pUserNameToken);
       
  3033     if(!( *pUserNameToken == KUserNameTokenDigest )) return KErrArgument;
       
  3034     CleanupStack::PopAndDestroy(pUserNameToken);
       
  3035 
       
  3036     CleanupStack::PopAndDestroy(pWsSecHeader);
       
  3037 
       
  3038     CleanupStack::PopAndDestroy(pIdP);
       
  3039 
       
  3040     CleanupStack::PopAndDestroy(1); // document
       
  3041     Teardown();
       
  3042     return KErrNone;    
       
  3043 	}
       
  3044 
       
  3045 TInt CnewsoapclassesTester::MT_CSenWsSecurityHeader2_UsernameTokenL_2L( CStifItemParser& aItem )
       
  3046     {
       
  3047 	SetupL();
       
  3048     _LIT8(KRootElementName, "RootElement");
       
  3049     _LIT8(KUserName,        "UserName");
       
  3050     _LIT8(KPassword,        "Password");
       
  3051     _LIT8(KUserNameToken,   "<wsse:UsernameToken>\
       
  3052 <wsse:Username>UserName</wsse:Username>\
       
  3053 <wsse:Password>Password</wsse:Password>\
       
  3054 </wsse:UsernameToken>");
       
  3055 
       
  3056     RSenDocument document = RSenDocument::NewLC();
       
  3057     TXmlEngElement rootElement = document.CreateDocumentElementL(KRootElementName());
       
  3058 
       
  3059     CSenWsSecurityHeader2* pWsSecHeader = CSenWsSecurityHeader2::NewLC(document,
       
  3060                                                                        rootElement);
       
  3061 
       
  3062     HBufC8* pUserNameToken = NULL;
       
  3063     pWsSecHeader->UsernameTokenL(KUserName, KPassword, pUserNameToken);
       
  3064     CleanupStack::PushL(pUserNameToken);
       
  3065     if(!( *pUserNameToken == KUserNameToken )) return KErrArgument;
       
  3066     CleanupStack::PopAndDestroy(pUserNameToken);
       
  3067 
       
  3068     CleanupStack::PopAndDestroy(pWsSecHeader);
       
  3069 
       
  3070     CleanupStack::PopAndDestroy(1); // document
       
  3071     Teardown();
       
  3072     return KErrNone;    
       
  3073 	}
       
  3074 
       
  3075 TInt CnewsoapclassesTester::MT_CSenWsSecurityHeader2_UsernameTokenL_3L( CStifItemParser& aItem )
       
  3076     {
       
  3077 	SetupL();
       
  3078     _LIT8(KRootElementName,     "RootElement");
       
  3079     _LIT8(KUserName,            "UserName");
       
  3080     _LIT8(KPassword,            "Password");
       
  3081     _LIT8(KUserNameToken,       "<wsse:UsernameToken>\
       
  3082 <wsse:Username>UserName</wsse:Username>\
       
  3083 <wsse:Password>Password</wsse:Password>\
       
  3084 </wsse:UsernameToken>");
       
  3085 
       
  3086     _LIT8(KUserNameTokenDigest, "<wsse:UsernameToken>\
       
  3087 <wsse:Username>UserName</wsse:Username>\
       
  3088 <wsse:Password Type=\"wsse:PasswordDigest\">Password</wsse:Password>\
       
  3089 </wsse:UsernameToken>");
       
  3090 
       
  3091     RSenDocument document = RSenDocument::NewLC();
       
  3092     TXmlEngElement rootElement = document.CreateDocumentElementL(KRootElementName());
       
  3093 
       
  3094     // 1) Test using CSenWsSecurityHeader2::EText
       
  3095     CSenWsSecurityHeader2* pWsSecHeader = CSenWsSecurityHeader2::NewLC(document,
       
  3096                                                                        rootElement);
       
  3097 
       
  3098     HBufC8* pUserNameToken = NULL;
       
  3099     pWsSecHeader->UsernameTokenL(KUserName, KPassword, CSenWsSecurityHeader2::EText,
       
  3100                                  pUserNameToken);
       
  3101     CleanupStack::PushL(pUserNameToken);
       
  3102     if(!( *pUserNameToken == KUserNameToken )) return KErrArgument;
       
  3103     CleanupStack::PopAndDestroy(pUserNameToken);
       
  3104 
       
  3105     CleanupStack::PopAndDestroy(pWsSecHeader);
       
  3106 
       
  3107     // 2) Test using CSenWsSecurityHeader2::EDigest
       
  3108     pWsSecHeader = CSenWsSecurityHeader2::NewLC(document, rootElement);
       
  3109 
       
  3110     pUserNameToken = NULL;
       
  3111     pWsSecHeader->UsernameTokenL(KUserName, KPassword, CSenWsSecurityHeader2::EDigest,
       
  3112                                  pUserNameToken);
       
  3113     CleanupStack::PushL(pUserNameToken);
       
  3114     if(!( *pUserNameToken == KUserNameTokenDigest )) return KErrArgument;
       
  3115     CleanupStack::PopAndDestroy(pUserNameToken);
       
  3116 
       
  3117     CleanupStack::PopAndDestroy(pWsSecHeader);
       
  3118 
       
  3119     CleanupStack::PopAndDestroy(1); // document
       
  3120     Teardown();
       
  3121     return KErrNone;    
       
  3122 	}
       
  3123 
       
  3124 TInt CnewsoapclassesTester::MT_CSenWsSecurityHeader2_UsernameTokenL_4L( CStifItemParser& aItem )
       
  3125     {
       
  3126 	SetupL();
       
  3127     _LIT8(KRootElementName, "RootElement");
       
  3128 
       
  3129     _LIT8(KFakeEndPoint,    "http://www.fake_endpoint.com/");
       
  3130     _LIT8(KUsername,        "Username");
       
  3131     _LIT8(KPassword,        "Password");
       
  3132 
       
  3133     _LIT8(KUserNameToken,   "<wsse:UsernameToken>\
       
  3134 <wsse:Username>Username</wsse:Username>\
       
  3135 </wsse:UsernameToken>");
       
  3136 
       
  3137     RSenDocument document = RSenDocument::NewLC();
       
  3138     TXmlEngElement rootElement = document.CreateDocumentElementL(KRootElementName());
       
  3139 
       
  3140     CSenWsSecurityHeader2* pWsSecHeader = CSenWsSecurityHeader2::NewLC(document,
       
  3141                                                                        rootElement);
       
  3142 
       
  3143     CSenIdentityProvider* pIdP = CSenIdentityProvider::NewLC(KFakeEndPoint());
       
  3144     pIdP->SetUserInfoL(KUsername, KNullDesC8, KPassword);
       
  3145 
       
  3146     HBufC8* pUserNameToken = pWsSecHeader->UsernameTokenL(*pIdP);
       
  3147     CleanupStack::PushL(pUserNameToken);
       
  3148     if(!( *pUserNameToken == KUserNameToken )) return KErrArgument;
       
  3149     CleanupStack::PopAndDestroy(pUserNameToken);
       
  3150 
       
  3151     CleanupStack::PopAndDestroy(pIdP);
       
  3152 
       
  3153     CleanupStack::PopAndDestroy(pWsSecHeader);
       
  3154 
       
  3155     CleanupStack::PopAndDestroy(1); // document
       
  3156     Teardown();
       
  3157     return KErrNone;    
       
  3158 	}
       
  3159 
       
  3160 TInt CnewsoapclassesTester::MT_CSenWsSecurityHeader2_TimestampLL( CStifItemParser& aItem )
       
  3161     {
       
  3162 	SetupL();
       
  3163     _LIT8(KRootElementName, "RootElement");
       
  3164     _LIT8(KCreated,         "2001-09-13T08:42:00Z");
       
  3165     _LIT8(KExpires,         "2002-09-13T08:42:00Z");
       
  3166     _LIT8(KTimeStamp,       "\
       
  3167 <wsu:Timestamp xmlns:wsu=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd\">\
       
  3168 <wsu:Created>2001-09-13T08:42:00Z</wsu:Created>\
       
  3169 <wsu:Expires>2002-09-13T08:42:00Z</wsu:Expires>\
       
  3170 </wsu:Timestamp>");
       
  3171 
       
  3172     RSenDocument document = RSenDocument::NewLC();
       
  3173     TXmlEngElement rootElement = document.CreateDocumentElementL(KRootElementName());
       
  3174 
       
  3175     CSenWsSecurityHeader2* pWsSecHeader = CSenWsSecurityHeader2::NewLC(document,
       
  3176                                                                        rootElement);
       
  3177     HBufC8* pTimeStamp;
       
  3178     pWsSecHeader->TimestampL(KCreated, KExpires, pTimeStamp);
       
  3179     CleanupStack::PushL(pTimeStamp);
       
  3180     if(!( *pTimeStamp == KTimeStamp )) return KErrArgument;
       
  3181     CleanupStack::PopAndDestroy(pTimeStamp);
       
  3182 
       
  3183     CleanupStack::PopAndDestroy(pWsSecHeader);
       
  3184 
       
  3185     CleanupStack::PopAndDestroy(1); // document
       
  3186     Teardown();
       
  3187     return KErrNone;    
       
  3188 	}
       
  3189 
       
  3190 TInt CnewsoapclassesTester::MT_CSenWsSecurityHeader2_TimestampL_1L( CStifItemParser& aItem )
       
  3191     {
       
  3192 	SetupL();
       
  3193     _LIT8(KRootElementName, "RootElement");
       
  3194     _LIT8(KCreated,         "2001-09-13T08:42:00Z");
       
  3195     _LIT8(KTimeStamp,       "\
       
  3196 <wsu:Timestamp xmlns:wsu=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd\">\
       
  3197 <wsu:Created>2001-09-13T08:42:00Z</wsu:Created>\
       
  3198 </wsu:Timestamp>");
       
  3199 
       
  3200     RSenDocument document = RSenDocument::NewLC();
       
  3201     TXmlEngElement rootElement = document.CreateDocumentElementL(KRootElementName());
       
  3202 
       
  3203     CSenWsSecurityHeader2* pWsSecHeader = CSenWsSecurityHeader2::NewLC(document,
       
  3204                                                                        rootElement);
       
  3205     HBufC8* pTimeStamp;
       
  3206     pWsSecHeader->TimestampL(KCreated, pTimeStamp);
       
  3207     CleanupStack::PushL(pTimeStamp);
       
  3208     if(!( *pTimeStamp == KTimeStamp )) return KErrArgument;
       
  3209     CleanupStack::PopAndDestroy(pTimeStamp);
       
  3210 
       
  3211     CleanupStack::PopAndDestroy(pWsSecHeader);
       
  3212 
       
  3213     CleanupStack::PopAndDestroy(1); // document
       
  3214     Teardown();
       
  3215     return KErrNone;    
       
  3216 	}
       
  3217 
       
  3218 TInt CnewsoapclassesTester::MT_CSenWsSecurityHeader2_XmlNsL( CStifItemParser& aItem )
       
  3219     {
       
  3220 	SetupL();
       
  3221     _LIT8(KRootElementName,     "RootElement");
       
  3222     _LIT8(KSecurityNamespace,   "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd");
       
  3223 
       
  3224     RSenDocument document = RSenDocument::NewLC();
       
  3225     TXmlEngElement rootElement = document.CreateDocumentElementL(KRootElementName());
       
  3226 
       
  3227     CSenWsSecurityHeader2* pWsSecHeader = CSenWsSecurityHeader2::NewLC(document,
       
  3228                                                                        rootElement);
       
  3229     TPtrC8 nameSpace = pWsSecHeader->XmlNs();
       
  3230     if(!( nameSpace == KSecurityNamespace )) return KErrArgument;
       
  3231 
       
  3232     CleanupStack::PopAndDestroy(pWsSecHeader);
       
  3233 
       
  3234     CleanupStack::PopAndDestroy(1); // document
       
  3235     Teardown();
       
  3236     return KErrNone;    
       
  3237 	}
       
  3238 
       
  3239 TInt CnewsoapclassesTester::MT_CSenWsSecurityHeader2_XmlNsPrefixL( CStifItemParser& aItem )
       
  3240     {
       
  3241 	SetupL();
       
  3242     _LIT8(KRootElementName,         "RootElement");
       
  3243     _LIT8(KSecurityNamespacePrefix, "wsse");
       
  3244 
       
  3245     RSenDocument document = RSenDocument::NewLC();
       
  3246     TXmlEngElement rootElement = document.CreateDocumentElementL(KRootElementName());
       
  3247 
       
  3248     CSenWsSecurityHeader2* pWsSecHeader = CSenWsSecurityHeader2::NewLC(document,
       
  3249                                                                        rootElement);
       
  3250     TPtrC8 prefix = pWsSecHeader->XmlNsPrefix();
       
  3251     if(!( prefix == KSecurityNamespacePrefix )) return KErrArgument;
       
  3252 
       
  3253     CleanupStack::PopAndDestroy(pWsSecHeader);
       
  3254 
       
  3255     CleanupStack::PopAndDestroy(1); // document
       
  3256     Teardown();
       
  3257     return KErrNone;    
       
  3258 	}
       
  3259 
       
  3260 // -----------------------------------------------------------------------------
       
  3261 // CnewsoapclassesTester::?member_function
       
  3262 // ?implementation_description
       
  3263 // (other items were commented in a header).
       
  3264 // -----------------------------------------------------------------------------
       
  3265 //
       
  3266 /*
       
  3267 TInt CnewsoapclassesTester::?member_function(
       
  3268    CItemParser& aItem )
       
  3269    {
       
  3270 
       
  3271    ?code
       
  3272 
       
  3273    }
       
  3274 */
       
  3275 
       
  3276 // ========================== OTHER EXPORTED FUNCTIONS =========================
       
  3277 // None
       
  3278 
       
  3279 //  [End of File] - Do not remove