applayerprotocols/httptransportfw/Test/T_WspDecoder/WspHeaderReaderUnitTest.cpp
changeset 0 b16258d2340f
equal deleted inserted replaced
-1:000000000000 0:b16258d2340f
       
     1 // Copyright (c) 2001-2009 Nokia Corporation and/or its subsidiary(-ies).
       
     2 // All rights reserved.
       
     3 // This component and the accompanying materials are made available
       
     4 // under the terms of "Eclipse Public License v1.0"
       
     5 // which accompanies this distribution, and is available
       
     6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     7 //
       
     8 // Initial Contributors:
       
     9 // Nokia Corporation - initial contribution.
       
    10 //
       
    11 // Contributors:
       
    12 //
       
    13 // Description:
       
    14 // The unit test class implementations for the CWspHeaderReader class.
       
    15 // 
       
    16 //
       
    17 
       
    18 /**
       
    19  @file WspHeaderReaderUnitTest.cpp
       
    20 */
       
    21 
       
    22 #include "WspHeaderReaderUnitTest.h"
       
    23 
       
    24 // System includes
       
    25 #include <wspstringconstants.h>
       
    26 
       
    27 // ______________________________________________________________________________
       
    28 //
       
    29 _LIT(KWspHeaderReaderCreateAndDestroyUnitTest,"CWspHeaderReader_CreateAndDestroy_UnitTest");
       
    30 
       
    31 CWspHeaderReader_CreateAndDestroy_UnitTest* CWspHeaderReader_CreateAndDestroy_UnitTest::NewL(CDataLogger& aDataLogger,
       
    32 											MUnitTestObserver& aObserver)
       
    33 	{
       
    34 	CWspHeaderReader_CreateAndDestroy_UnitTest* self = 
       
    35 					new(ELeave) CWspHeaderReader_CreateAndDestroy_UnitTest(aDataLogger,
       
    36 																aObserver);
       
    37 	CleanupStack::PushL(self);
       
    38 	self->ConstructL();
       
    39 	CleanupStack::Pop(self);
       
    40 	return self; 
       
    41 	}
       
    42 
       
    43 inline TInt CWspHeaderReader_CreateAndDestroy_UnitTest::RunError(TInt aError)
       
    44 	{
       
    45 	// The RunL left so chain to the base first and then cleanup
       
    46 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
    47 	delete iUTContext;
       
    48 	iUTContext = NULL;
       
    49 	delete iStateAccessor;
       
    50 	iStateAccessor = NULL;
       
    51 	/* delete any validators used */
       
    52 	delete iCtorValidator;
       
    53 	iCtorValidator = NULL;
       
    54 	delete iDtorValidator;
       
    55 	iDtorValidator = NULL;
       
    56 	return error;
       
    57 	}
       
    58 
       
    59 inline CWspHeaderReader_CreateAndDestroy_UnitTest::~CWspHeaderReader_CreateAndDestroy_UnitTest()
       
    60 	{
       
    61 	// Simply delete our test class instance
       
    62 	delete iUTContext;
       
    63 	delete iStateAccessor;
       
    64 	/* delete any validators used */
       
    65 	delete iCtorValidator;
       
    66 	delete iDtorValidator;
       
    67 	}
       
    68 
       
    69 inline CWspHeaderReader_CreateAndDestroy_UnitTest::CWspHeaderReader_CreateAndDestroy_UnitTest(CDataLogger& aDataLogger,
       
    70 																	MUnitTestObserver& aObserver)
       
    71 : CUnitTest(KWspHeaderReaderCreateAndDestroyUnitTest, aDataLogger, aObserver)
       
    72 	{
       
    73 	//Do nothing
       
    74 	}
       
    75 
       
    76 // Now the Individual transitions need to be added.
       
    77 inline void CWspHeaderReader_CreateAndDestroy_UnitTest::ConstructL()
       
    78 	{
       
    79 	// Perform the base class initialization
       
    80 	UnitTestConstructL();
       
    81 
       
    82 	// Create the Unit test state accessor
       
    83 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
    84 	// Construct the Unit test context.
       
    85 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
    86 	iUTContext->ConstructL(WSP::EAccept);
       
    87 	// Add the Transitions in the order they are to run
       
    88 	// C'tor first, D'tor last...
       
    89 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
    90 		using constructor and destuctor validators */
       
    91 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
    92 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
    93 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
    94 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
    95 	}
       
    96 
       
    97 // ______________________________________________________________________________
       
    98 //
       
    99 _LIT(KWspHeaderReaderContentTypeShortTokenUnitTest,"CWspHeaderReader_ContentTypeShortToken_UnitTest");
       
   100 
       
   101 CWspHeaderReader_ContentTypeShortToken_UnitTest* CWspHeaderReader_ContentTypeShortToken_UnitTest::NewL(CDataLogger& aDataLogger,
       
   102 											MUnitTestObserver& aObserver)
       
   103 	{
       
   104 	CWspHeaderReader_ContentTypeShortToken_UnitTest* self = 
       
   105 					new(ELeave) CWspHeaderReader_ContentTypeShortToken_UnitTest(aDataLogger,
       
   106 																aObserver);
       
   107 	CleanupStack::PushL(self);
       
   108 	self->ConstructL();
       
   109 	CleanupStack::Pop(self);
       
   110 	return self; 
       
   111 	}
       
   112 
       
   113 inline TInt CWspHeaderReader_ContentTypeShortToken_UnitTest::RunError(TInt aError)
       
   114 	{
       
   115 	// The RunL left so chain to the base first and then cleanup
       
   116 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
   117 	delete iUTContext;
       
   118 	iUTContext = NULL;
       
   119 	delete iStateAccessor;
       
   120 	iStateAccessor = NULL;
       
   121 	/* delete any validators used */
       
   122 	delete iCtorValidator;
       
   123 	iCtorValidator = NULL;
       
   124 	delete iContentTypeShortTokenValidator;
       
   125 	iContentTypeShortTokenValidator = NULL;
       
   126 	delete iDtorValidator;
       
   127 	iDtorValidator = NULL;
       
   128 	return error;
       
   129 	}
       
   130 
       
   131 inline CWspHeaderReader_ContentTypeShortToken_UnitTest::~CWspHeaderReader_ContentTypeShortToken_UnitTest()
       
   132 	{
       
   133 	// Simply delete our test class instance
       
   134 	delete iUTContext;
       
   135 	delete iStateAccessor;
       
   136 	/* delete any validators used */
       
   137 	delete iCtorValidator;
       
   138 	delete iContentTypeShortTokenValidator;
       
   139 	delete iDtorValidator;
       
   140 	}
       
   141 
       
   142 inline CWspHeaderReader_ContentTypeShortToken_UnitTest::CWspHeaderReader_ContentTypeShortToken_UnitTest(CDataLogger& aDataLogger,
       
   143 																	MUnitTestObserver& aObserver)
       
   144 : CUnitTest(KWspHeaderReaderContentTypeShortTokenUnitTest, aDataLogger, aObserver)
       
   145 	{
       
   146 	//Do nothing
       
   147 	}
       
   148 
       
   149 // Now the Individual transitions need to be added.
       
   150 inline void CWspHeaderReader_ContentTypeShortToken_UnitTest::ConstructL()
       
   151 	{
       
   152 	// Perform the base class initialization
       
   153 	UnitTestConstructL();
       
   154 
       
   155 	// Create the Unit test state accessor
       
   156 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
   157 	// Construct the Unit test context.
       
   158 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
   159 	iUTContext->ConstructL(WSP::EContentType);
       
   160 	iUTContext->iTestHeader->BeginRawDataL();
       
   161 	TUint8 octet81 = 0x81; // Should be token value for text/*
       
   162 	iUTContext->iTestHeader->WriteRawDataL(octet81);
       
   163 	iUTContext->iTestHeader->CommitRawData();
       
   164 	_LIT8(KTxtExpected, "text/*");
       
   165 	iUTContext->SetExpectedL(KTxtExpected());
       
   166 	// Add the Transitions in the order they are to run
       
   167 	// C'tor first, D'tor last...
       
   168 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
   169 		using constructor and destuctor validators */
       
   170 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
   171 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
   172 	iContentTypeShortTokenValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
   173 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderL_Transition(*iUTContext,*iContentTypeShortTokenValidator));
       
   174 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
   175 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
   176 	}
       
   177 
       
   178 // ______________________________________________________________________________
       
   179 //
       
   180 _LIT(KWspHeaderReaderContentTypeExtensionMediaUnitTest,"CWspHeaderReader_ContentTypeExtensionMedia_UnitTest");
       
   181 
       
   182 CWspHeaderReader_ContentTypeExtensionMedia_UnitTest* CWspHeaderReader_ContentTypeExtensionMedia_UnitTest::NewL(CDataLogger& aDataLogger,
       
   183 											MUnitTestObserver& aObserver)
       
   184 	{
       
   185 	CWspHeaderReader_ContentTypeExtensionMedia_UnitTest* self = 
       
   186 					new(ELeave) CWspHeaderReader_ContentTypeExtensionMedia_UnitTest(aDataLogger,
       
   187 																aObserver);
       
   188 	CleanupStack::PushL(self);
       
   189 	self->ConstructL();
       
   190 	CleanupStack::Pop(self);
       
   191 	return self; 
       
   192 	}
       
   193 
       
   194 inline TInt CWspHeaderReader_ContentTypeExtensionMedia_UnitTest::RunError(TInt aError)
       
   195 	{
       
   196 	// The RunL left so chain to the base first and then cleanup
       
   197 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
   198 	delete iUTContext;
       
   199 	iUTContext = NULL;
       
   200 	delete iStateAccessor;
       
   201 	iStateAccessor = NULL;
       
   202 	/* delete any validators used */
       
   203 	delete iCtorValidator;
       
   204 	iCtorValidator = NULL;
       
   205 	delete iContentTypeExtensionMediaValidator;
       
   206 	iContentTypeExtensionMediaValidator = NULL;
       
   207 	delete iDtorValidator;
       
   208 	iDtorValidator = NULL;
       
   209 	return error;
       
   210 	}
       
   211 
       
   212 inline CWspHeaderReader_ContentTypeExtensionMedia_UnitTest::~CWspHeaderReader_ContentTypeExtensionMedia_UnitTest()
       
   213 	{
       
   214 	// Simply delete our test class instance
       
   215 	delete iUTContext;
       
   216 	delete iStateAccessor;
       
   217 	/* delete any validators used */
       
   218 	delete iCtorValidator;
       
   219 	delete iContentTypeExtensionMediaValidator;
       
   220 	delete iDtorValidator;
       
   221 	}
       
   222 
       
   223 inline CWspHeaderReader_ContentTypeExtensionMedia_UnitTest::CWspHeaderReader_ContentTypeExtensionMedia_UnitTest(CDataLogger& aDataLogger,
       
   224 																	MUnitTestObserver& aObserver)
       
   225 : CUnitTest(KWspHeaderReaderContentTypeExtensionMediaUnitTest, aDataLogger, aObserver)
       
   226 	{
       
   227 	//Do nothing
       
   228 	}
       
   229 
       
   230 // Now the Individual transitions need to be added.
       
   231 inline void CWspHeaderReader_ContentTypeExtensionMedia_UnitTest::ConstructL()
       
   232 	{
       
   233 	// Perform the base class initialization
       
   234 	UnitTestConstructL();
       
   235 
       
   236 	// Create the Unit test state accessor
       
   237 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
   238 	// Construct the Unit test context.
       
   239 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
   240 	iUTContext->ConstructL(WSP::EContentType);
       
   241 	iUTContext->iTestHeader->BeginRawDataL();
       
   242 	_LIT8(KTxtData, "extension/media\0");
       
   243 	iUTContext->iTestHeader->WriteRawDataL(KTxtData());
       
   244 	iUTContext->iTestHeader->CommitRawData();
       
   245 	_LIT8(KTxtExpected, "extension/media");
       
   246 	iUTContext->SetExpectedL(KTxtExpected());
       
   247 	// Add the Transitions in the order they are to run
       
   248 	// C'tor first, D'tor last...
       
   249 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
   250 		using constructor and destuctor validators */
       
   251 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
   252 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
   253 	iContentTypeExtensionMediaValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
   254 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderL_Transition(*iUTContext,*iContentTypeExtensionMediaValidator));
       
   255 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
   256 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
   257 	}
       
   258 
       
   259 // ______________________________________________________________________________
       
   260 //
       
   261 _LIT(KWspHeaderReaderContentTypeNullUnitTest,"CWspHeaderReader_ContentTypeNull_UnitTest");
       
   262 
       
   263 CWspHeaderReader_ContentTypeNull_UnitTest* CWspHeaderReader_ContentTypeNull_UnitTest::NewL(CDataLogger& aDataLogger,
       
   264 											MUnitTestObserver& aObserver)
       
   265 	{
       
   266 	CWspHeaderReader_ContentTypeNull_UnitTest* self = 
       
   267 					new(ELeave) CWspHeaderReader_ContentTypeNull_UnitTest(aDataLogger,
       
   268 																aObserver);
       
   269 	CleanupStack::PushL(self);
       
   270 	self->ConstructL();
       
   271 	CleanupStack::Pop(self);
       
   272 	return self; 
       
   273 	}
       
   274 
       
   275 inline TInt CWspHeaderReader_ContentTypeNull_UnitTest::RunError(TInt aError)
       
   276 	{
       
   277 	// The RunL left so chain to the base first and then cleanup
       
   278 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
   279 	delete iUTContext;
       
   280 	iUTContext = NULL;
       
   281 	delete iStateAccessor;
       
   282 	iStateAccessor = NULL;
       
   283 	/* delete any validators used */
       
   284 	delete iCtorValidator;
       
   285 	iCtorValidator = NULL;
       
   286 	delete iContentTypeNullValidator;
       
   287 	iContentTypeNullValidator = NULL;
       
   288 	delete iDtorValidator;
       
   289 	iDtorValidator = NULL;
       
   290 	return error;
       
   291 	}
       
   292 
       
   293 inline CWspHeaderReader_ContentTypeNull_UnitTest::~CWspHeaderReader_ContentTypeNull_UnitTest()
       
   294 	{
       
   295 	// Simply delete our test class instance
       
   296 	delete iUTContext;
       
   297 	delete iStateAccessor;
       
   298 	/* delete any validators used */
       
   299 	delete iCtorValidator;
       
   300 	delete iContentTypeNullValidator;
       
   301 	delete iDtorValidator;
       
   302 	}
       
   303 
       
   304 inline CWspHeaderReader_ContentTypeNull_UnitTest::CWspHeaderReader_ContentTypeNull_UnitTest(CDataLogger& aDataLogger,
       
   305 																	MUnitTestObserver& aObserver)
       
   306 : CUnitTest(KWspHeaderReaderContentTypeNullUnitTest, aDataLogger, aObserver)
       
   307 	{
       
   308 	//Do nothing
       
   309 	}
       
   310 
       
   311 // Now the Individual transitions need to be added.
       
   312 inline void CWspHeaderReader_ContentTypeNull_UnitTest::ConstructL()
       
   313 	{
       
   314 	// Perform the base class initialization
       
   315 	UnitTestConstructL();
       
   316 
       
   317 	// Create the Unit test state accessor
       
   318 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
   319 	// Construct the Unit test context.
       
   320 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
   321 	iUTContext->ConstructL(WSP::EContentType);
       
   322 	iUTContext->iTestHeader->BeginRawDataL();
       
   323 	TUint8 octet00 = 0x00;
       
   324 	iUTContext->iTestHeader->WriteRawDataL(octet00);
       
   325 	iUTContext->iTestHeader->CommitRawData();
       
   326 	iUTContext->SetExpectedL(KNullDesC8());
       
   327 	// Add the Transitions in the order they are to run
       
   328 	// C'tor first, D'tor last...
       
   329 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
   330 		using constructor and destuctor validators */
       
   331 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
   332 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
   333 	iContentTypeNullValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
   334 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderL_Transition(*iUTContext,*iContentTypeNullValidator));
       
   335 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
   336 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
   337 	}
       
   338 
       
   339 // ______________________________________________________________________________
       
   340 //
       
   341 _LIT(KWspHeaderReaderContentTypeWellKnownMediaIntUnitTest,"CWspHeaderReader_ContentTypeWellKnownMediaInt_UnitTest");
       
   342 
       
   343 CWspHeaderReader_ContentTypeWellKnownMediaInt_UnitTest* CWspHeaderReader_ContentTypeWellKnownMediaInt_UnitTest::NewL(CDataLogger& aDataLogger,
       
   344 											MUnitTestObserver& aObserver)
       
   345 	{
       
   346 	CWspHeaderReader_ContentTypeWellKnownMediaInt_UnitTest* self = 
       
   347 					new(ELeave) CWspHeaderReader_ContentTypeWellKnownMediaInt_UnitTest(aDataLogger,
       
   348 																aObserver);
       
   349 	CleanupStack::PushL(self);
       
   350 	self->ConstructL();
       
   351 	CleanupStack::Pop(self);
       
   352 	return self; 
       
   353 	}
       
   354 
       
   355 inline TInt CWspHeaderReader_ContentTypeWellKnownMediaInt_UnitTest::RunError(TInt aError)
       
   356 	{
       
   357 	// The RunL left so chain to the base first and then cleanup
       
   358 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
   359 	delete iUTContext;
       
   360 	iUTContext = NULL;
       
   361 	delete iStateAccessor;
       
   362 	iStateAccessor = NULL;
       
   363 	/* delete any validators used */
       
   364 	delete iCtorValidator;
       
   365 	iCtorValidator = NULL;
       
   366 	delete iContentTypeWellKnownMediaIntValidator;
       
   367 	iContentTypeWellKnownMediaIntValidator = NULL;
       
   368 	delete iDtorValidator;
       
   369 	iDtorValidator = NULL;
       
   370 	return error;
       
   371 	}
       
   372 
       
   373 inline CWspHeaderReader_ContentTypeWellKnownMediaInt_UnitTest::~CWspHeaderReader_ContentTypeWellKnownMediaInt_UnitTest()
       
   374 	{
       
   375 	// Simply delete our test class instance
       
   376 	delete iUTContext;
       
   377 	delete iStateAccessor;
       
   378 	/* delete any validators used */
       
   379 	delete iCtorValidator;
       
   380 	delete iContentTypeWellKnownMediaIntValidator;
       
   381 	delete iDtorValidator;
       
   382 	}
       
   383 
       
   384 inline CWspHeaderReader_ContentTypeWellKnownMediaInt_UnitTest::CWspHeaderReader_ContentTypeWellKnownMediaInt_UnitTest(CDataLogger& aDataLogger,
       
   385 																	MUnitTestObserver& aObserver)
       
   386 : CUnitTest(KWspHeaderReaderContentTypeWellKnownMediaIntUnitTest, aDataLogger, aObserver)
       
   387 	{
       
   388 	//Do nothing
       
   389 	}
       
   390 
       
   391 // Now the Individual transitions need to be added.
       
   392 inline void CWspHeaderReader_ContentTypeWellKnownMediaInt_UnitTest::ConstructL()
       
   393 	{
       
   394 	// Perform the base class initialization
       
   395 	UnitTestConstructL();
       
   396 
       
   397 	// Create the Unit test state accessor
       
   398 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
   399 	// Construct the Unit test context.
       
   400 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
   401 	iUTContext->ConstructL(WSP::EContentType);
       
   402 	iUTContext->iTestHeader->BeginRawDataL();
       
   403 	TUint8 octet02 = 0x02;
       
   404 	TUint8 octet03 = 0x03;
       
   405 	TUint8 octet0B = 0x0B;
       
   406 	iUTContext->iTestHeader->WriteRawDataL(octet03);
       
   407 	iUTContext->iTestHeader->WriteRawDataL(octet02);
       
   408 	iUTContext->iTestHeader->WriteRawDataL(octet02);
       
   409 	iUTContext->iTestHeader->WriteRawDataL(octet0B);
       
   410 	
       
   411 	iUTContext->iTestHeader->CommitRawData();
       
   412 	_LIT8(KTxtExpected, "application/vnd.nokia.syncset+wbxml");
       
   413 	iUTContext->SetExpectedL(KTxtExpected());
       
   414 	// Add the Transitions in the order they are to run
       
   415 	// C'tor first, D'tor last...
       
   416 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
   417 		using constructor and destuctor validators */
       
   418 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
   419 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
   420 	iContentTypeWellKnownMediaIntValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
   421 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderL_Transition(*iUTContext,*iContentTypeWellKnownMediaIntValidator));
       
   422 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
   423 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
   424 	}
       
   425 
       
   426 // ______________________________________________________________________________
       
   427 //
       
   428 _LIT(KWspHeaderReaderContentTypeMediaTypeExtensionUnitTest,"CWspHeaderReader_ContentTypeMediaTypeExtension_UnitTest");
       
   429 
       
   430 CWspHeaderReader_ContentTypeMediaTypeExtension_UnitTest* CWspHeaderReader_ContentTypeMediaTypeExtension_UnitTest::NewL(CDataLogger& aDataLogger,
       
   431 											MUnitTestObserver& aObserver)
       
   432 	{
       
   433 	CWspHeaderReader_ContentTypeMediaTypeExtension_UnitTest* self = 
       
   434 					new(ELeave) CWspHeaderReader_ContentTypeMediaTypeExtension_UnitTest(aDataLogger,
       
   435 																aObserver);
       
   436 	CleanupStack::PushL(self);
       
   437 	self->ConstructL();
       
   438 	CleanupStack::Pop(self);
       
   439 	return self; 
       
   440 	}
       
   441 
       
   442 inline TInt CWspHeaderReader_ContentTypeMediaTypeExtension_UnitTest::RunError(TInt aError)
       
   443 	{
       
   444 	// The RunL left so chain to the base first and then cleanup
       
   445 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
   446 	delete iUTContext;
       
   447 	iUTContext = NULL;
       
   448 	delete iStateAccessor;
       
   449 	iStateAccessor = NULL;
       
   450 	/* delete any validators used */
       
   451 	delete iCtorValidator;
       
   452 	iCtorValidator = NULL;
       
   453 	delete iContentTypeMediaTypeExtensionValidator;
       
   454 	iContentTypeMediaTypeExtensionValidator = NULL;
       
   455 	delete iDtorValidator;
       
   456 	iDtorValidator = NULL;
       
   457 	return error;
       
   458 	}
       
   459 
       
   460 inline CWspHeaderReader_ContentTypeMediaTypeExtension_UnitTest::~CWspHeaderReader_ContentTypeMediaTypeExtension_UnitTest()
       
   461 	{
       
   462 	// Simply delete our test class instance
       
   463 	delete iUTContext;
       
   464 	delete iStateAccessor;
       
   465 	/* delete any validators used */
       
   466 	delete iCtorValidator;
       
   467 	delete iContentTypeMediaTypeExtensionValidator;
       
   468 	delete iDtorValidator;
       
   469 	}
       
   470 
       
   471 inline CWspHeaderReader_ContentTypeMediaTypeExtension_UnitTest::CWspHeaderReader_ContentTypeMediaTypeExtension_UnitTest(CDataLogger& aDataLogger,
       
   472 																	MUnitTestObserver& aObserver)
       
   473 : CUnitTest(KWspHeaderReaderContentTypeMediaTypeExtensionUnitTest, aDataLogger, aObserver)
       
   474 	{
       
   475 	//Do nothing
       
   476 	}
       
   477 
       
   478 // Now the Individual transitions need to be added.
       
   479 inline void CWspHeaderReader_ContentTypeMediaTypeExtension_UnitTest::ConstructL()
       
   480 	{
       
   481 	// Perform the base class initialization
       
   482 	UnitTestConstructL();
       
   483 
       
   484 	// Create the Unit test state accessor
       
   485 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
   486 	// Construct the Unit test context.
       
   487 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
   488 	iUTContext->ConstructL(WSP::EContentType);
       
   489 	iUTContext->iTestHeader->BeginRawDataL();
       
   490 	
       
   491 	TUint8 octet1F = 0x1F; // <Octet 31> for length quote
       
   492 	TUint8 octet82 = 0x82;
       
   493 	TUint8 octet2D = 0x2D;
       
   494 	TUint8 octet00 = 0x00; // NULL terminator
       
   495 	iUTContext->iTestHeader->WriteRawDataL(octet1F);
       
   496 	iUTContext->iTestHeader->WriteRawDataL(octet82);
       
   497 	iUTContext->iTestHeader->WriteRawDataL(octet2D);
       
   498 	_LIT8(KTxt10ByteData, "tenbyteapp");
       
   499 	for( TInt i=0; i<30; ++i )
       
   500 		{
       
   501 		iUTContext->iTestHeader->WriteRawDataL(KTxt10ByteData());
       
   502 		}
       
   503 	iUTContext->iTestHeader->WriteRawDataL(octet00);
       
   504 	iUTContext->iTestHeader->CommitRawData();
       
   505 
       
   506 	HBufC8* buf = HBufC8::NewL(300);
       
   507 	CleanupStack::PushL(buf);
       
   508 	TPtr8 appendBuf(buf->Des());
       
   509 	for( TInt i=0; i<30; ++i )
       
   510 		{
       
   511 		appendBuf.Append(KTxt10ByteData());
       
   512 		}
       
   513 	iUTContext->SetExpectedL(*buf);
       
   514 	CleanupStack::PopAndDestroy(buf);
       
   515 	// Add the Transitions in the order they are to run
       
   516 	// C'tor first, D'tor last...
       
   517 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
   518 		using constructor and destuctor validators */
       
   519 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
   520 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
   521 	iContentTypeMediaTypeExtensionValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
   522 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderL_Transition(*iUTContext,*iContentTypeMediaTypeExtensionValidator));
       
   523 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
   524 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
   525 	}
       
   526 
       
   527 // ______________________________________________________________________________
       
   528 //
       
   529 _LIT(KWspHeaderReaderContentTypeWith1ParamUnitTest,"CWspHeaderReader_ContentTypeWith1Param_UnitTest");
       
   530 
       
   531 CWspHeaderReader_ContentTypeWith1Param_UnitTest* CWspHeaderReader_ContentTypeWith1Param_UnitTest::NewL(CDataLogger& aDataLogger,
       
   532 											MUnitTestObserver& aObserver)
       
   533 	{
       
   534 	CWspHeaderReader_ContentTypeWith1Param_UnitTest* self = 
       
   535 					new(ELeave) CWspHeaderReader_ContentTypeWith1Param_UnitTest(aDataLogger,
       
   536 																aObserver);
       
   537 	CleanupStack::PushL(self);
       
   538 	self->ConstructL();
       
   539 	CleanupStack::Pop(self);
       
   540 	return self; 
       
   541 	}
       
   542 
       
   543 inline TInt CWspHeaderReader_ContentTypeWith1Param_UnitTest::RunError(TInt aError)
       
   544 	{
       
   545 	// The RunL left so chain to the base first and then cleanup
       
   546 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
   547 	delete iUTContext;
       
   548 	iUTContext = NULL;
       
   549 	delete iStateAccessor;
       
   550 	iStateAccessor = NULL;
       
   551 	/* delete any validators used */
       
   552 	delete iCtorValidator;
       
   553 	iCtorValidator = NULL;
       
   554 	delete iContentTypeWith1ParamValidator;
       
   555 	iContentTypeWith1ParamValidator = NULL;
       
   556 	delete iDtorValidator;
       
   557 	iDtorValidator = NULL;
       
   558 	return error;
       
   559 	}
       
   560 
       
   561 inline CWspHeaderReader_ContentTypeWith1Param_UnitTest::~CWspHeaderReader_ContentTypeWith1Param_UnitTest()
       
   562 	{
       
   563 	// Simply delete our test class instance
       
   564 	delete iUTContext;
       
   565 	delete iStateAccessor;
       
   566 	/* delete any validators used */
       
   567 	delete iCtorValidator;
       
   568 	delete iContentTypeWith1ParamValidator;
       
   569 	delete iDtorValidator;
       
   570 	}
       
   571 
       
   572 inline CWspHeaderReader_ContentTypeWith1Param_UnitTest::CWspHeaderReader_ContentTypeWith1Param_UnitTest(CDataLogger& aDataLogger,
       
   573 																	MUnitTestObserver& aObserver)
       
   574 : CUnitTest(KWspHeaderReaderContentTypeWith1ParamUnitTest, aDataLogger, aObserver)
       
   575 	{
       
   576 	//Do nothing
       
   577 	}
       
   578 
       
   579 // Now the Individual transitions need to be added.
       
   580 inline void CWspHeaderReader_ContentTypeWith1Param_UnitTest::ConstructL()
       
   581 	{
       
   582 	// Perform the base class initialization
       
   583 	UnitTestConstructL();
       
   584 
       
   585 	// Create the Unit test state accessor
       
   586 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
   587 	// Construct the Unit test context.
       
   588 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
   589 	iUTContext->ConstructL(WSP::EContentType);
       
   590 	iUTContext->iTestHeader->BeginRawDataL();
       
   591 	TUint8 octet11 = 0x11; // short int length of 17 bytes
       
   592 	TUint8 octetA3 = 0xA3; // token for content type
       
   593 	TUint8 octet97 = 0x97; // token for well-known param
       
   594 	_LIT8(KTxtParamVal, "testparamvalue\0"); // param value
       
   595 
       
   596 	iUTContext->iTestHeader->WriteRawDataL(octet11);
       
   597 	iUTContext->iTestHeader->WriteRawDataL(octetA3);
       
   598 	iUTContext->iTestHeader->WriteRawDataL(octet97);
       
   599 	iUTContext->iTestHeader->WriteRawDataL(KTxtParamVal());
       
   600 	iUTContext->iTestHeader->CommitRawData();
       
   601 
       
   602 	_LIT8(KTxtExpected, "application/vnd.wap.multipart.mixed;Name=testparamvalue");
       
   603 	iUTContext->SetExpectedL(KTxtExpected());
       
   604 	// Add the Transitions in the order they are to run
       
   605 	// C'tor first, D'tor last...
       
   606 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
   607 		using constructor and destuctor validators */
       
   608 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
   609 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
   610 	iContentTypeWith1ParamValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
   611 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderL_Transition(*iUTContext,*iContentTypeWith1ParamValidator));
       
   612 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
   613 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
   614 	}
       
   615 
       
   616 // ______________________________________________________________________________
       
   617 //
       
   618 _LIT(KWspHeaderReaderContentTypeWith2ParamsUnitTest,"CWspHeaderReader_ContentTypeWith2Params_UnitTest");
       
   619 
       
   620 CWspHeaderReader_ContentTypeWith2Params_UnitTest* CWspHeaderReader_ContentTypeWith2Params_UnitTest::NewL(CDataLogger& aDataLogger,
       
   621 											MUnitTestObserver& aObserver)
       
   622 	{
       
   623 	CWspHeaderReader_ContentTypeWith2Params_UnitTest* self = 
       
   624 					new(ELeave) CWspHeaderReader_ContentTypeWith2Params_UnitTest(aDataLogger,
       
   625 																aObserver);
       
   626 	CleanupStack::PushL(self);
       
   627 	self->ConstructL();
       
   628 	CleanupStack::Pop(self);
       
   629 	return self; 
       
   630 	}
       
   631 
       
   632 inline TInt CWspHeaderReader_ContentTypeWith2Params_UnitTest::RunError(TInt aError)
       
   633 	{
       
   634 	// The RunL left so chain to the base first and then cleanup
       
   635 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
   636 	delete iUTContext;
       
   637 	iUTContext = NULL;
       
   638 	delete iStateAccessor;
       
   639 	iStateAccessor = NULL;
       
   640 	/* delete any validators used */
       
   641 	delete iCtorValidator;
       
   642 	iCtorValidator = NULL;
       
   643 	delete iContentTypeWith2ParamsValidator;
       
   644 	iContentTypeWith2ParamsValidator = NULL;
       
   645 	delete iDtorValidator;
       
   646 	iDtorValidator = NULL;
       
   647 	return error;
       
   648 	}
       
   649 
       
   650 inline CWspHeaderReader_ContentTypeWith2Params_UnitTest::~CWspHeaderReader_ContentTypeWith2Params_UnitTest()
       
   651 	{
       
   652 	// Simply delete our test class instance
       
   653 	delete iUTContext;
       
   654 	delete iStateAccessor;
       
   655 	/* delete any validators used */
       
   656 	delete iCtorValidator;
       
   657 	delete iContentTypeWith2ParamsValidator;
       
   658 	delete iDtorValidator;
       
   659 	}
       
   660 
       
   661 inline CWspHeaderReader_ContentTypeWith2Params_UnitTest::CWspHeaderReader_ContentTypeWith2Params_UnitTest(CDataLogger& aDataLogger,
       
   662 																	MUnitTestObserver& aObserver)
       
   663 : CUnitTest(KWspHeaderReaderContentTypeWith2ParamsUnitTest, aDataLogger, aObserver)
       
   664 	{
       
   665 	//Do nothing
       
   666 	}
       
   667 
       
   668 // Now the Individual transitions need to be added.
       
   669 inline void CWspHeaderReader_ContentTypeWith2Params_UnitTest::ConstructL()
       
   670 	{
       
   671 	// Perform the base class initialization
       
   672 	UnitTestConstructL();
       
   673 
       
   674 	// Create the Unit test state accessor
       
   675 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
   676 	// Construct the Unit test context.
       
   677 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
   678 	iUTContext->ConstructL(WSP::EContentType);
       
   679 	iUTContext->iTestHeader->BeginRawDataL();
       
   680 	TUint8 octet11 = 0x11; // short int length of 17 bytes
       
   681 	TUint8 octetA3 = 0xA3; // token for content type
       
   682 	TUint8 octet97 = 0x97; // token for well-known param Name
       
   683 	TUint8 octet8E = 0x8E; // token for well-known param Max-age
       
   684 	TUint8 octet03 = 0x03; // short length of 3
       
   685 	TUint8 octet255 = 0xFF;
       
   686 	TUint8 octet254 = 0xFE;
       
   687 	
       
   688 	iUTContext->iTestHeader->CommitRawData();
       
   689 	_LIT8(KTxtParamVal, "testparamvalue\0"); // param value
       
   690 
       
   691 	iUTContext->iTestHeader->WriteRawDataL(octet11);
       
   692 	iUTContext->iTestHeader->WriteRawDataL(octetA3);
       
   693 	iUTContext->iTestHeader->WriteRawDataL(octet97);
       
   694 	iUTContext->iTestHeader->WriteRawDataL(KTxtParamVal());
       
   695 	iUTContext->iTestHeader->WriteRawDataL(octet8E);
       
   696 	iUTContext->iTestHeader->WriteRawDataL(octet03);
       
   697 	iUTContext->iTestHeader->WriteRawDataL(octet255);
       
   698 	iUTContext->iTestHeader->WriteRawDataL(octet255);
       
   699 	iUTContext->iTestHeader->WriteRawDataL(octet254);
       
   700 	iUTContext->iTestHeader->CommitRawData();
       
   701 
       
   702 	_LIT8(KTxtExpected, "application/vnd.wap.multipart.mixed;Name=testparamvalue;Max-age=16777214");
       
   703 	iUTContext->SetExpectedL(KTxtExpected());
       
   704 	// Add the Transitions in the order they are to run
       
   705 	// C'tor first, D'tor last...
       
   706 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
   707 		using constructor and destuctor validators */
       
   708 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
   709 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
   710 	iContentTypeWith2ParamsValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
   711 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderL_Transition(*iUTContext,*iContentTypeWith2ParamsValidator));
       
   712 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
   713 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
   714 	}
       
   715 
       
   716 // ______________________________________________________________________________
       
   717 //
       
   718 _LIT(KWspHeaderReaderDateUnitTest,"CWspHeaderReader_Date_UnitTest");
       
   719 
       
   720 CWspHeaderReader_Date_UnitTest* CWspHeaderReader_Date_UnitTest::NewL(CDataLogger& aDataLogger,
       
   721 											MUnitTestObserver& aObserver)
       
   722 	{
       
   723 	CWspHeaderReader_Date_UnitTest* self = 
       
   724 					new(ELeave) CWspHeaderReader_Date_UnitTest(aDataLogger,
       
   725 																aObserver);
       
   726 	CleanupStack::PushL(self);
       
   727 	self->ConstructL();
       
   728 	CleanupStack::Pop(self);
       
   729 	return self; 
       
   730 	}
       
   731 
       
   732 inline TInt CWspHeaderReader_Date_UnitTest::RunError(TInt aError)
       
   733 	{
       
   734 	// The RunL left so chain to the base first and then cleanup
       
   735 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
   736 	delete iUTContext;
       
   737 	iUTContext = NULL;
       
   738 	delete iStateAccessor;
       
   739 	iStateAccessor = NULL;
       
   740 	/* delete any validators used */
       
   741 	delete iCtorValidator;
       
   742 	iCtorValidator = NULL;
       
   743 	delete iDateValidator;
       
   744 	iDateValidator = NULL;
       
   745 	delete iDtorValidator;
       
   746 	iDtorValidator = NULL;
       
   747 	return error;
       
   748 	}
       
   749 
       
   750 inline CWspHeaderReader_Date_UnitTest::~CWspHeaderReader_Date_UnitTest()
       
   751 	{
       
   752 	// Simply delete our test class instance
       
   753 	delete iUTContext;
       
   754 	delete iStateAccessor;
       
   755 	/* delete any validators used */
       
   756 	delete iCtorValidator;
       
   757 	delete iDateValidator;
       
   758 	delete iDtorValidator;
       
   759 	}
       
   760 
       
   761 inline CWspHeaderReader_Date_UnitTest::CWspHeaderReader_Date_UnitTest(CDataLogger& aDataLogger,
       
   762 																	MUnitTestObserver& aObserver)
       
   763 : CUnitTest(KWspHeaderReaderDateUnitTest, aDataLogger, aObserver)
       
   764 	{
       
   765 	//Do nothing
       
   766 	}
       
   767 
       
   768 // Now the Individual transitions need to be added.
       
   769 inline void CWspHeaderReader_Date_UnitTest::ConstructL()
       
   770 	{
       
   771 	// Perform the base class initialization
       
   772 	UnitTestConstructL();
       
   773 
       
   774 	// Create the Unit test state accessor
       
   775 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
   776 	// Construct the Unit test context.
       
   777 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
   778 	iUTContext->ConstructL(WSP::EDate);
       
   779 	iUTContext->iTestHeader->BeginRawDataL();
       
   780 	TUint8 octet03 = 3;
       
   781 	TUint8 octet255 = 0xFF;
       
   782 	TUint8 octet254 = 0xFE;
       
   783 	iUTContext->iTestHeader->WriteRawDataL(octet03);
       
   784 	iUTContext->iTestHeader->WriteRawDataL(octet255);
       
   785 	iUTContext->iTestHeader->WriteRawDataL(octet255);
       
   786 	iUTContext->iTestHeader->WriteRawDataL(octet254);
       
   787 	iUTContext->iTestHeader->CommitRawData();
       
   788 	_LIT8(KTxtExpected, "Tue, 14 Jul 1970 04:20:14 GMT");
       
   789 	iUTContext->SetExpectedL(KTxtExpected());
       
   790 	// Add the Transitions in the order they are to run
       
   791 	// C'tor first, D'tor last...
       
   792 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
   793 		using constructor and destuctor validators */
       
   794 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
   795 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
   796 	iDateValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
   797 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderL_Transition(*iUTContext,*iDateValidator));
       
   798 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
   799 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
   800 	}
       
   801 
       
   802 
       
   803 
       
   804 
       
   805 // ______________________________________________________________________________
       
   806 //
       
   807 _LIT(KWspHeaderReaderLastModifiedUnitTest,"CWspHeaderReader_LastModified_UnitTest");
       
   808 
       
   809 CWspHeaderReader_LastModified_UnitTest* CWspHeaderReader_LastModified_UnitTest::NewL(CDataLogger& aDataLogger,
       
   810 											MUnitTestObserver& aObserver)
       
   811 	{
       
   812 	CWspHeaderReader_LastModified_UnitTest* self = 
       
   813 					new(ELeave) CWspHeaderReader_LastModified_UnitTest(aDataLogger,
       
   814 																aObserver);
       
   815 	CleanupStack::PushL(self);
       
   816 	self->ConstructL();
       
   817 	CleanupStack::Pop(self);
       
   818 	return self; 
       
   819 	}
       
   820 
       
   821 inline TInt CWspHeaderReader_LastModified_UnitTest::RunError(TInt aError)
       
   822 	{
       
   823 	// The RunL left so chain to the base first and then cleanup
       
   824 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
   825 	delete iUTContext;
       
   826 	iUTContext = NULL;
       
   827 	delete iStateAccessor;
       
   828 	iStateAccessor = NULL;
       
   829 	/* delete any validators used */
       
   830 	delete iCtorValidator;
       
   831 	iCtorValidator = NULL;
       
   832 	delete iLastModifiedValidator;
       
   833 	iLastModifiedValidator = NULL;
       
   834 	delete iDtorValidator;
       
   835 	iDtorValidator = NULL;
       
   836 	return error;
       
   837 	}
       
   838 
       
   839 inline CWspHeaderReader_LastModified_UnitTest::~CWspHeaderReader_LastModified_UnitTest()
       
   840 	{
       
   841 	// Simply delete our test class instance
       
   842 	delete iUTContext;
       
   843 	delete iStateAccessor;
       
   844 	/* delete any validators used */
       
   845 	delete iCtorValidator;
       
   846 	delete iLastModifiedValidator;
       
   847 	delete iDtorValidator;
       
   848 	}
       
   849 
       
   850 inline CWspHeaderReader_LastModified_UnitTest::CWspHeaderReader_LastModified_UnitTest(CDataLogger& aDataLogger,
       
   851 																	MUnitTestObserver& aObserver)
       
   852 : CUnitTest(KWspHeaderReaderLastModifiedUnitTest, aDataLogger, aObserver)
       
   853 	{
       
   854 	//Do nothing
       
   855 	}
       
   856 
       
   857 // Now the Individual transitions need to be added.
       
   858 inline void CWspHeaderReader_LastModified_UnitTest::ConstructL()
       
   859 	{
       
   860 	// Perform the base class initialization
       
   861 	UnitTestConstructL();
       
   862 
       
   863 	// Create the Unit test state accessor
       
   864 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
   865 	// Construct the Unit test context.
       
   866 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
   867 	iUTContext->ConstructL(WSP::ELastModified);
       
   868 	iUTContext->iTestHeader->BeginRawDataL();
       
   869 	TUint8 octet03 = 3;
       
   870 	TUint8 octet255 = 0xFF;
       
   871 	TUint8 octet254 = 0xFE;
       
   872 	iUTContext->iTestHeader->WriteRawDataL(octet03);
       
   873 	iUTContext->iTestHeader->WriteRawDataL(octet255);
       
   874 	iUTContext->iTestHeader->WriteRawDataL(octet255);
       
   875 	iUTContext->iTestHeader->WriteRawDataL(octet254);
       
   876 	iUTContext->iTestHeader->CommitRawData();
       
   877 	_LIT8(KTxtExpected, "Tue, 14 Jul 1970 04:20:14 GMT");
       
   878 	iUTContext->SetExpectedL(KTxtExpected());
       
   879 	// Add the Transitions in the order they are to run
       
   880 	// C'tor first, D'tor last...
       
   881 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
   882 		using constructor and destuctor validators */
       
   883 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
   884 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
   885 	iLastModifiedValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
   886 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderL_Transition(*iUTContext,*iLastModifiedValidator));
       
   887 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
   888 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
   889 	}
       
   890 
       
   891 // ______________________________________________________________________________
       
   892 //
       
   893 _LIT(KWspHeaderReaderPragmaNoCacheUnitTest,"CWspHeaderReader_PragmaNoCache_UnitTest");
       
   894 
       
   895 CWspHeaderReader_PragmaNoCache_UnitTest* CWspHeaderReader_PragmaNoCache_UnitTest::NewL(CDataLogger& aDataLogger,
       
   896 											MUnitTestObserver& aObserver)
       
   897 	{
       
   898 	CWspHeaderReader_PragmaNoCache_UnitTest* self = 
       
   899 					new(ELeave) CWspHeaderReader_PragmaNoCache_UnitTest(aDataLogger,
       
   900 																aObserver);
       
   901 	CleanupStack::PushL(self);
       
   902 	self->ConstructL();
       
   903 	CleanupStack::Pop(self);
       
   904 	return self; 
       
   905 	}
       
   906 
       
   907 inline TInt CWspHeaderReader_PragmaNoCache_UnitTest::RunError(TInt aError)
       
   908 	{
       
   909 	// The RunL left so chain to the base first and then cleanup
       
   910 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
   911 	delete iUTContext;
       
   912 	iUTContext = NULL;
       
   913 	delete iStateAccessor;
       
   914 	iStateAccessor = NULL;
       
   915 	/* delete any validators used */
       
   916 	delete iCtorValidator;
       
   917 	iCtorValidator = NULL;
       
   918 	delete iPragmaNoCacheValidator;
       
   919 	iPragmaNoCacheValidator = NULL;
       
   920 	delete iDtorValidator;
       
   921 	iDtorValidator = NULL;
       
   922 	return error;
       
   923 	}
       
   924 
       
   925 inline CWspHeaderReader_PragmaNoCache_UnitTest::~CWspHeaderReader_PragmaNoCache_UnitTest()
       
   926 	{
       
   927 	// Simply delete our test class instance
       
   928 	delete iUTContext;
       
   929 	delete iStateAccessor;
       
   930 	/* delete any validators used */
       
   931 	delete iCtorValidator;
       
   932 	delete iPragmaNoCacheValidator;
       
   933 	delete iDtorValidator;
       
   934 	}
       
   935 
       
   936 inline CWspHeaderReader_PragmaNoCache_UnitTest::CWspHeaderReader_PragmaNoCache_UnitTest(CDataLogger& aDataLogger,
       
   937 																	MUnitTestObserver& aObserver)
       
   938 : CUnitTest(KWspHeaderReaderPragmaNoCacheUnitTest, aDataLogger, aObserver)
       
   939 	{
       
   940 	//Do nothing
       
   941 	}
       
   942 
       
   943 // Now the Individual transitions need to be added.
       
   944 inline void CWspHeaderReader_PragmaNoCache_UnitTest::ConstructL()
       
   945 	{
       
   946 	// Perform the base class initialization
       
   947 	UnitTestConstructL();
       
   948 
       
   949 	// Create the Unit test state accessor
       
   950 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
   951 	// Construct the Unit test context.
       
   952 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
   953 	iUTContext->ConstructL(WSP::EPragma);
       
   954 	iUTContext->iTestHeader->BeginRawDataL();
       
   955 	TUint8 octet80 = 0x80;
       
   956 	iUTContext->iTestHeader->WriteRawDataL(octet80);
       
   957 	iUTContext->iTestHeader->CommitRawData();
       
   958 	_LIT8(KTxtExpected, "No-cache");
       
   959 	iUTContext->SetExpectedL(KTxtExpected());
       
   960 	// Add the Transitions in the order they are to run
       
   961 	// C'tor first, D'tor last...
       
   962 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
   963 		using constructor and destuctor validators */
       
   964 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
   965 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
   966 	iPragmaNoCacheValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
   967 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderL_Transition(*iUTContext,*iPragmaNoCacheValidator));
       
   968 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
   969 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
   970 	}
       
   971 
       
   972 // ______________________________________________________________________________
       
   973 //
       
   974 _LIT(KWspHeaderReaderPragmaTokenParamUnitTest,"CWspHeaderReader_PragmaTokenParam_UnitTest");
       
   975 
       
   976 CWspHeaderReader_PragmaTokenParam_UnitTest* CWspHeaderReader_PragmaTokenParam_UnitTest::NewL(CDataLogger& aDataLogger,
       
   977 											MUnitTestObserver& aObserver)
       
   978 	{
       
   979 	CWspHeaderReader_PragmaTokenParam_UnitTest* self = 
       
   980 					new(ELeave) CWspHeaderReader_PragmaTokenParam_UnitTest(aDataLogger,
       
   981 																aObserver);
       
   982 	CleanupStack::PushL(self);
       
   983 	self->ConstructL();
       
   984 	CleanupStack::Pop(self);
       
   985 	return self; 
       
   986 	}
       
   987 
       
   988 inline TInt CWspHeaderReader_PragmaTokenParam_UnitTest::RunError(TInt aError)
       
   989 	{
       
   990 	// The RunL left so chain to the base first and then cleanup
       
   991 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
   992 	delete iUTContext;
       
   993 	iUTContext = NULL;
       
   994 	delete iStateAccessor;
       
   995 	iStateAccessor = NULL;
       
   996 	/* delete any validators used */
       
   997 	delete iCtorValidator;
       
   998 	iCtorValidator = NULL;
       
   999 	delete iPragmaTokenParamValidator;
       
  1000 	iPragmaTokenParamValidator = NULL;
       
  1001 	delete iDtorValidator;
       
  1002 	iDtorValidator = NULL;
       
  1003 	return error;
       
  1004 	}
       
  1005 
       
  1006 inline CWspHeaderReader_PragmaTokenParam_UnitTest::~CWspHeaderReader_PragmaTokenParam_UnitTest()
       
  1007 	{
       
  1008 	// Simply delete our test class instance
       
  1009 	delete iUTContext;
       
  1010 	delete iStateAccessor;
       
  1011 	/* delete any validators used */
       
  1012 	delete iCtorValidator;
       
  1013 	delete iPragmaTokenParamValidator;
       
  1014 	delete iDtorValidator;
       
  1015 	}
       
  1016 
       
  1017 inline CWspHeaderReader_PragmaTokenParam_UnitTest::CWspHeaderReader_PragmaTokenParam_UnitTest(CDataLogger& aDataLogger,
       
  1018 																	MUnitTestObserver& aObserver)
       
  1019 : CUnitTest(KWspHeaderReaderPragmaTokenParamUnitTest, aDataLogger, aObserver)
       
  1020 	{
       
  1021 	//Do nothing
       
  1022 	}
       
  1023 
       
  1024 // Now the Individual transitions need to be added.
       
  1025 inline void CWspHeaderReader_PragmaTokenParam_UnitTest::ConstructL()
       
  1026 	{
       
  1027 	// Perform the base class initialization
       
  1028 	UnitTestConstructL();
       
  1029 
       
  1030 	// Create the Unit test state accessor
       
  1031 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
  1032 	// Construct the Unit test context.
       
  1033 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
  1034 	iUTContext->ConstructL(WSP::EPragma);
       
  1035 	iUTContext->iTestHeader->BeginRawDataL();
       
  1036 	TUint8 octet18 = 0x18; // short int for the length of the data
       
  1037 	_LIT8(KTxtParamName, "ExampleParam\0");
       
  1038 	_LIT8(KTxtParamValue, "paramvalue\0");
       
  1039 	iUTContext->iTestHeader->WriteRawDataL(octet18);
       
  1040 	iUTContext->iTestHeader->WriteRawDataL(KTxtParamName());
       
  1041 	iUTContext->iTestHeader->WriteRawDataL(KTxtParamValue());
       
  1042 	iUTContext->iTestHeader->CommitRawData();
       
  1043 	_LIT8(KTxtExpected, ";ExampleParam=paramvalue");
       
  1044 	iUTContext->SetExpectedL(KTxtExpected());
       
  1045 	// Add the Transitions in the order they are to run
       
  1046 	// C'tor first, D'tor last...
       
  1047 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
  1048 		using constructor and destuctor validators */
       
  1049 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
  1050 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
  1051 	iPragmaTokenParamValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
  1052 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderL_Transition(*iUTContext,*iPragmaTokenParamValidator));
       
  1053 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
  1054 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
  1055 	}
       
  1056 
       
  1057 // ______________________________________________________________________________
       
  1058 //
       
  1059 _LIT(KWspHeaderReaderPragmaTokenParamNoValueUnitTest,"CWspHeaderReader_PragmaTokenParamNoValue_UnitTest");
       
  1060 
       
  1061 CWspHeaderReader_PragmaTokenParamNoValue_UnitTest* CWspHeaderReader_PragmaTokenParamNoValue_UnitTest::NewL(CDataLogger& aDataLogger,
       
  1062 											MUnitTestObserver& aObserver)
       
  1063 	{
       
  1064 	CWspHeaderReader_PragmaTokenParamNoValue_UnitTest* self = 
       
  1065 					new(ELeave) CWspHeaderReader_PragmaTokenParamNoValue_UnitTest(aDataLogger,
       
  1066 																aObserver);
       
  1067 	CleanupStack::PushL(self);
       
  1068 	self->ConstructL();
       
  1069 	CleanupStack::Pop(self);
       
  1070 	return self; 
       
  1071 	}
       
  1072 
       
  1073 inline TInt CWspHeaderReader_PragmaTokenParamNoValue_UnitTest::RunError(TInt aError)
       
  1074 	{
       
  1075 	// The RunL left so chain to the base first and then cleanup
       
  1076 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
  1077 	delete iUTContext;
       
  1078 	iUTContext = NULL;
       
  1079 	delete iStateAccessor;
       
  1080 	iStateAccessor = NULL;
       
  1081 	/* delete any validators used */
       
  1082 	delete iCtorValidator;
       
  1083 	iCtorValidator = NULL;
       
  1084 	delete iPragmaTokenParamNoValueValidator;
       
  1085 	iPragmaTokenParamNoValueValidator = NULL;
       
  1086 	delete iDtorValidator;
       
  1087 	iDtorValidator = NULL;
       
  1088 	return error;
       
  1089 	}
       
  1090 
       
  1091 inline CWspHeaderReader_PragmaTokenParamNoValue_UnitTest::~CWspHeaderReader_PragmaTokenParamNoValue_UnitTest()
       
  1092 	{
       
  1093 	// Simply delete our test class instance
       
  1094 	delete iUTContext;
       
  1095 	delete iStateAccessor;
       
  1096 	/* delete any validators used */
       
  1097 	delete iCtorValidator;
       
  1098 	delete iPragmaTokenParamNoValueValidator;
       
  1099 	delete iDtorValidator;
       
  1100 	}
       
  1101 
       
  1102 inline CWspHeaderReader_PragmaTokenParamNoValue_UnitTest::CWspHeaderReader_PragmaTokenParamNoValue_UnitTest(CDataLogger& aDataLogger,
       
  1103 																	MUnitTestObserver& aObserver)
       
  1104 : CUnitTest(KWspHeaderReaderPragmaTokenParamNoValueUnitTest, aDataLogger, aObserver)
       
  1105 	{
       
  1106 	//Do nothing
       
  1107 	}
       
  1108 
       
  1109 // Now the Individual transitions need to be added.
       
  1110 inline void CWspHeaderReader_PragmaTokenParamNoValue_UnitTest::ConstructL()
       
  1111 	{
       
  1112 	// Perform the base class initialization
       
  1113 	UnitTestConstructL();
       
  1114 
       
  1115 	// Create the Unit test state accessor
       
  1116 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
  1117 	// Construct the Unit test context.
       
  1118 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
  1119 	iUTContext->ConstructL(WSP::EPragma);
       
  1120 	iUTContext->iTestHeader->BeginRawDataL();
       
  1121 	TUint8 octet0E = 0x0E; // short int for the length of the data
       
  1122 	_LIT8(KTxtParamName, "ExampleParam\0");
       
  1123 	TUint8 octet00 = 0x00; // null terminator
       
  1124 	iUTContext->iTestHeader->WriteRawDataL(octet0E);
       
  1125 	iUTContext->iTestHeader->WriteRawDataL(KTxtParamName());
       
  1126 	iUTContext->iTestHeader->WriteRawDataL(octet00);
       
  1127 	iUTContext->iTestHeader->CommitRawData();
       
  1128 	_LIT8(KTxtExpected, ";ExampleParam");
       
  1129 	iUTContext->SetExpectedL(KTxtExpected());
       
  1130 	// Add the Transitions in the order they are to run
       
  1131 	// C'tor first, D'tor last...
       
  1132 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
  1133 		using constructor and destuctor validators */
       
  1134 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
  1135 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
  1136 	iPragmaTokenParamNoValueValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
  1137 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderL_Transition(*iUTContext,*iPragmaTokenParamNoValueValidator));
       
  1138 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
  1139 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
  1140 	}
       
  1141 
       
  1142 
       
  1143 // ______________________________________________________________________________
       
  1144 //
       
  1145 _LIT(KWspHeaderReaderVaryShortIntTokenUnitTest,"CWspHeaderReader_VaryShortIntToken_UnitTest");
       
  1146 
       
  1147 CWspHeaderReader_VaryShortIntToken_UnitTest* CWspHeaderReader_VaryShortIntToken_UnitTest::NewL(CDataLogger& aDataLogger,
       
  1148 											MUnitTestObserver& aObserver)
       
  1149 	{
       
  1150 	CWspHeaderReader_VaryShortIntToken_UnitTest* self = 
       
  1151 					new(ELeave) CWspHeaderReader_VaryShortIntToken_UnitTest(aDataLogger,
       
  1152 																aObserver);
       
  1153 	CleanupStack::PushL(self);
       
  1154 	self->ConstructL();
       
  1155 	CleanupStack::Pop(self);
       
  1156 	return self; 
       
  1157 	}
       
  1158 
       
  1159 inline TInt CWspHeaderReader_VaryShortIntToken_UnitTest::RunError(TInt aError)
       
  1160 	{
       
  1161 	// The RunL left so chain to the base first and then cleanup
       
  1162 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
  1163 	delete iUTContext;
       
  1164 	iUTContext = NULL;
       
  1165 	delete iStateAccessor;
       
  1166 	iStateAccessor = NULL;
       
  1167 	/* delete any validators used */
       
  1168 	delete iCtorValidator;
       
  1169 	iCtorValidator = NULL;
       
  1170 	delete iVaryShortIntTokenValidator;
       
  1171 	iVaryShortIntTokenValidator = NULL;
       
  1172 	delete iDtorValidator;
       
  1173 	iDtorValidator = NULL;
       
  1174 	return error;
       
  1175 	}
       
  1176 
       
  1177 inline CWspHeaderReader_VaryShortIntToken_UnitTest::~CWspHeaderReader_VaryShortIntToken_UnitTest()
       
  1178 	{
       
  1179 	// Simply delete our test class instance
       
  1180 	delete iUTContext;
       
  1181 	delete iStateAccessor;
       
  1182 	/* delete any validators used */
       
  1183 	delete iCtorValidator;
       
  1184 	delete iVaryShortIntTokenValidator;
       
  1185 	delete iDtorValidator;
       
  1186 	}
       
  1187 
       
  1188 inline CWspHeaderReader_VaryShortIntToken_UnitTest::CWspHeaderReader_VaryShortIntToken_UnitTest(CDataLogger& aDataLogger,
       
  1189 																	MUnitTestObserver& aObserver)
       
  1190 : CUnitTest(KWspHeaderReaderVaryShortIntTokenUnitTest, aDataLogger, aObserver)
       
  1191 	{
       
  1192 	//Do nothing
       
  1193 	}
       
  1194 
       
  1195 // Now the Individual transitions need to be added.
       
  1196 inline void CWspHeaderReader_VaryShortIntToken_UnitTest::ConstructL()
       
  1197 	{
       
  1198 	// Perform the base class initialization
       
  1199 	UnitTestConstructL();
       
  1200 
       
  1201 	// Create the Unit test state accessor
       
  1202 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
  1203 	// Construct the Unit test context.
       
  1204 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
  1205 	iUTContext->ConstructL(WSP::EVary);
       
  1206 	iUTContext->iTestHeader->BeginRawDataL();
       
  1207 	TUint8 octet91 = 0x91;
       
  1208 	iUTContext->iTestHeader->WriteRawDataL(octet91);
       
  1209 	iUTContext->iTestHeader->CommitRawData();
       
  1210 	_LIT8(KTxtExpected, "Content-type");
       
  1211 	iUTContext->SetExpectedL(KTxtExpected());
       
  1212 	// Add the Transitions in the order they are to run
       
  1213 	// C'tor first, D'tor last...
       
  1214 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
  1215 		using constructor and destuctor validators */
       
  1216 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
  1217 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
  1218 	iVaryShortIntTokenValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
  1219 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderL_Transition(*iUTContext,*iVaryShortIntTokenValidator));
       
  1220 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
  1221 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
  1222 	}
       
  1223 
       
  1224 // ______________________________________________________________________________
       
  1225 //
       
  1226 _LIT(KWspHeaderReaderVaryTokenTextUnitTest,"CWspHeaderReader_VaryTokenText_UnitTest");
       
  1227 
       
  1228 CWspHeaderReader_VaryTokenText_UnitTest* CWspHeaderReader_VaryTokenText_UnitTest::NewL(CDataLogger& aDataLogger,
       
  1229 											MUnitTestObserver& aObserver)
       
  1230 	{
       
  1231 	CWspHeaderReader_VaryTokenText_UnitTest* self = 
       
  1232 					new(ELeave) CWspHeaderReader_VaryTokenText_UnitTest(aDataLogger,
       
  1233 																aObserver);
       
  1234 	CleanupStack::PushL(self);
       
  1235 	self->ConstructL();
       
  1236 	CleanupStack::Pop(self);
       
  1237 	return self; 
       
  1238 	}
       
  1239 
       
  1240 inline TInt CWspHeaderReader_VaryTokenText_UnitTest::RunError(TInt aError)
       
  1241 	{
       
  1242 	// The RunL left so chain to the base first and then cleanup
       
  1243 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
  1244 	delete iUTContext;
       
  1245 	iUTContext = NULL;
       
  1246 	delete iStateAccessor;
       
  1247 	iStateAccessor = NULL;
       
  1248 	/* delete any validators used */
       
  1249 	delete iCtorValidator;
       
  1250 	iCtorValidator = NULL;
       
  1251 	delete iVaryTokenTextValidator;
       
  1252 	iVaryTokenTextValidator = NULL;
       
  1253 	delete iDtorValidator;
       
  1254 	iDtorValidator = NULL;
       
  1255 	return error;
       
  1256 	}
       
  1257 
       
  1258 inline CWspHeaderReader_VaryTokenText_UnitTest::~CWspHeaderReader_VaryTokenText_UnitTest()
       
  1259 	{
       
  1260 	// Simply delete our test class instance
       
  1261 	delete iUTContext;
       
  1262 	delete iStateAccessor;
       
  1263 	/* delete any validators used */
       
  1264 	delete iCtorValidator;
       
  1265 	delete iVaryTokenTextValidator;
       
  1266 	delete iDtorValidator;
       
  1267 	}
       
  1268 
       
  1269 inline CWspHeaderReader_VaryTokenText_UnitTest::CWspHeaderReader_VaryTokenText_UnitTest(CDataLogger& aDataLogger,
       
  1270 																	MUnitTestObserver& aObserver)
       
  1271 : CUnitTest(KWspHeaderReaderVaryTokenTextUnitTest, aDataLogger, aObserver)
       
  1272 	{
       
  1273 	//Do nothing
       
  1274 	}
       
  1275 
       
  1276 // Now the Individual transitions need to be added.
       
  1277 inline void CWspHeaderReader_VaryTokenText_UnitTest::ConstructL()
       
  1278 	{
       
  1279 	// Perform the base class initialization
       
  1280 	UnitTestConstructL();
       
  1281 
       
  1282 	// Create the Unit test state accessor
       
  1283 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
  1284 	// Construct the Unit test context.
       
  1285 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
  1286 	iUTContext->ConstructL(WSP::EVary);
       
  1287 	iUTContext->iTestHeader->BeginRawDataL();
       
  1288 	_LIT8(KTxtTokenText, "Vary-Token-Text\0");
       
  1289 	iUTContext->iTestHeader->WriteRawDataL(KTxtTokenText());
       
  1290 	iUTContext->iTestHeader->CommitRawData();
       
  1291 	_LIT8(KTxtExpected, "Vary-Token-Text");
       
  1292 	iUTContext->SetExpectedL(KTxtExpected());
       
  1293 	// Add the Transitions in the order they are to run
       
  1294 	// C'tor first, D'tor last...
       
  1295 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
  1296 		using constructor and destuctor validators */
       
  1297 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
  1298 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
  1299 	iVaryTokenTextValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
  1300 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderL_Transition(*iUTContext,*iVaryTokenTextValidator));
       
  1301 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
  1302 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
  1303 	}
       
  1304 
       
  1305 // ______________________________________________________________________________
       
  1306 //
       
  1307 _LIT(KWspHeaderReaderWWWAuthenticateBasicUnitTest,"CWspHeaderReader_WWWAuthenticateBasic_UnitTest");
       
  1308 
       
  1309 CWspHeaderReader_WWWAuthenticateBasic_UnitTest* CWspHeaderReader_WWWAuthenticateBasic_UnitTest::NewL(CDataLogger& aDataLogger,
       
  1310 											MUnitTestObserver& aObserver)
       
  1311 	{
       
  1312 	CWspHeaderReader_WWWAuthenticateBasic_UnitTest* self = 
       
  1313 					new(ELeave) CWspHeaderReader_WWWAuthenticateBasic_UnitTest(aDataLogger,
       
  1314 																aObserver);
       
  1315 	CleanupStack::PushL(self);
       
  1316 	self->ConstructL();
       
  1317 	CleanupStack::Pop(self);
       
  1318 	return self; 
       
  1319 	}
       
  1320 
       
  1321 inline TInt CWspHeaderReader_WWWAuthenticateBasic_UnitTest::RunError(TInt aError)
       
  1322 	{
       
  1323 	// The RunL left so chain to the base first and then cleanup
       
  1324 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
  1325 	delete iUTContext;
       
  1326 	iUTContext = NULL;
       
  1327 	delete iStateAccessor;
       
  1328 	iStateAccessor = NULL;
       
  1329 	/* delete any validators used */
       
  1330 	delete iCtorValidator;
       
  1331 	iCtorValidator = NULL;
       
  1332 	delete iWWWAuthenticateBasicValidator;
       
  1333 	iWWWAuthenticateBasicValidator = NULL;
       
  1334 	delete iDtorValidator;
       
  1335 	iDtorValidator = NULL;
       
  1336 	return error;
       
  1337 	}
       
  1338 
       
  1339 inline CWspHeaderReader_WWWAuthenticateBasic_UnitTest::~CWspHeaderReader_WWWAuthenticateBasic_UnitTest()
       
  1340 	{
       
  1341 	// Simply delete our test class instance
       
  1342 	delete iUTContext;
       
  1343 	delete iStateAccessor;
       
  1344 	/* delete any validators used */
       
  1345 	delete iCtorValidator;
       
  1346 	delete iWWWAuthenticateBasicValidator;
       
  1347 	delete iDtorValidator;
       
  1348 	}
       
  1349 
       
  1350 inline CWspHeaderReader_WWWAuthenticateBasic_UnitTest::CWspHeaderReader_WWWAuthenticateBasic_UnitTest(CDataLogger& aDataLogger,
       
  1351 																	MUnitTestObserver& aObserver)
       
  1352 : CUnitTest(KWspHeaderReaderWWWAuthenticateBasicUnitTest, aDataLogger, aObserver)
       
  1353 	{
       
  1354 	//Do nothing
       
  1355 	}
       
  1356 
       
  1357 // Now the Individual transitions need to be added.
       
  1358 inline void CWspHeaderReader_WWWAuthenticateBasic_UnitTest::ConstructL()
       
  1359 	{
       
  1360 	// Perform the base class initialization
       
  1361 	UnitTestConstructL();
       
  1362 
       
  1363 	// Create the Unit test state accessor
       
  1364 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
  1365 	// Construct the Unit test context.
       
  1366 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
  1367 	iUTContext->ConstructL(WSP::EWWWAuthenticate);
       
  1368 	iUTContext->iTestHeader->BeginRawDataL();
       
  1369 	TUint8 octet0D = 0x0D; // short length octet for 13 bytes
       
  1370 	TUint8 octet80 = 0x80; // <octet 128> token for basic
       
  1371 	_LIT8(KTxtRealm, "Realm-value\0");
       
  1372 	iUTContext->iTestHeader->WriteRawDataL(octet0D);
       
  1373 	iUTContext->iTestHeader->WriteRawDataL(octet80);
       
  1374 	iUTContext->iTestHeader->WriteRawDataL(KTxtRealm());
       
  1375 	iUTContext->iTestHeader->CommitRawData();
       
  1376 	_LIT8(KTxtExpected, "Basic,Realm-value");
       
  1377 	iUTContext->SetExpectedL(KTxtExpected());
       
  1378 	// Add the Transitions in the order they are to run
       
  1379 	// C'tor first, D'tor last...
       
  1380 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
  1381 		using constructor and destuctor validators */
       
  1382 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
  1383 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
  1384 	iWWWAuthenticateBasicValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
  1385 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderL_Transition(*iUTContext,*iWWWAuthenticateBasicValidator));
       
  1386 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
  1387 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
  1388 	}
       
  1389 
       
  1390 // ______________________________________________________________________________
       
  1391 //
       
  1392 _LIT(KWspHeaderReaderWWWAuthenticateBasicWithoutRealmUnitTest,"CWspHeaderReader_WWWAuthenticateBasicWithoutRealm_UnitTest");
       
  1393 
       
  1394 CWspHeaderReader_WWWAuthenticateBasicWithoutRealm_UnitTest* CWspHeaderReader_WWWAuthenticateBasicWithoutRealm_UnitTest::NewL(CDataLogger& aDataLogger,
       
  1395 											MUnitTestObserver& aObserver)
       
  1396 	{
       
  1397 	CWspHeaderReader_WWWAuthenticateBasicWithoutRealm_UnitTest* self = 
       
  1398 					new(ELeave) CWspHeaderReader_WWWAuthenticateBasicWithoutRealm_UnitTest(aDataLogger,
       
  1399 																aObserver);
       
  1400 	CleanupStack::PushL(self);
       
  1401 	self->ConstructL();
       
  1402 	CleanupStack::Pop(self);
       
  1403 	return self; 
       
  1404 	}
       
  1405 
       
  1406 inline TInt CWspHeaderReader_WWWAuthenticateBasicWithoutRealm_UnitTest::RunError(TInt aError)
       
  1407 	{
       
  1408 	// The RunL left so chain to the base first and then cleanup
       
  1409 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
  1410 	delete iUTContext;
       
  1411 	iUTContext = NULL;
       
  1412 	delete iStateAccessor;
       
  1413 	iStateAccessor = NULL;
       
  1414 	/* delete any validators used */
       
  1415 	delete iCtorValidator;
       
  1416 	iCtorValidator = NULL;
       
  1417 	delete iWWWAuthenticateBasicWithoutRealmValidator;
       
  1418 	iWWWAuthenticateBasicWithoutRealmValidator = NULL;
       
  1419 	delete iDtorValidator;
       
  1420 	iDtorValidator = NULL;
       
  1421 	return error;
       
  1422 	}
       
  1423 
       
  1424 inline CWspHeaderReader_WWWAuthenticateBasicWithoutRealm_UnitTest::~CWspHeaderReader_WWWAuthenticateBasicWithoutRealm_UnitTest()
       
  1425 	{
       
  1426 	// Simply delete our test class instance
       
  1427 	delete iUTContext;
       
  1428 	delete iStateAccessor;
       
  1429 	/* delete any validators used */
       
  1430 	delete iCtorValidator;
       
  1431 	delete iWWWAuthenticateBasicWithoutRealmValidator;
       
  1432 	delete iDtorValidator;
       
  1433 	}
       
  1434 
       
  1435 inline CWspHeaderReader_WWWAuthenticateBasicWithoutRealm_UnitTest::CWspHeaderReader_WWWAuthenticateBasicWithoutRealm_UnitTest(CDataLogger& aDataLogger,
       
  1436 																	MUnitTestObserver& aObserver)
       
  1437 : CUnitTest(KWspHeaderReaderWWWAuthenticateBasicWithoutRealmUnitTest, aDataLogger, aObserver)
       
  1438 	{
       
  1439 	//Do nothing
       
  1440 	}
       
  1441 
       
  1442 // Now the Individual transitions need to be added.
       
  1443 inline void CWspHeaderReader_WWWAuthenticateBasicWithoutRealm_UnitTest::ConstructL()
       
  1444 	{
       
  1445 	// Perform the base class initialization
       
  1446 	UnitTestConstructL();
       
  1447 
       
  1448 	// Create the Unit test state accessor
       
  1449 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
  1450 	// Construct the Unit test context.
       
  1451 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
  1452 	iUTContext->ConstructL(WSP::EWWWAuthenticate);
       
  1453 	iUTContext->iTestHeader->BeginRawDataL();
       
  1454 	TUint8 octet02 = 0x02; // short length octet for 13 bytes
       
  1455 	TUint8 octet80 = 0x80; // <octet 128> token for basic
       
  1456 	TUint8 octet00 = 0x00; // <octet 0> for null terminate
       
  1457 	iUTContext->iTestHeader->WriteRawDataL(octet02);
       
  1458 	iUTContext->iTestHeader->WriteRawDataL(octet80);
       
  1459 	iUTContext->iTestHeader->WriteRawDataL(octet00);
       
  1460 	iUTContext->iTestHeader->CommitRawData();
       
  1461 	_LIT8(KTxtExpected, "Basic,");
       
  1462 	iUTContext->SetExpectedL(KTxtExpected());
       
  1463 	// Add the Transitions in the order they are to run
       
  1464 	// C'tor first, D'tor last...
       
  1465 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
  1466 		using constructor and destuctor validators */
       
  1467 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
  1468 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
  1469 	iWWWAuthenticateBasicWithoutRealmValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
  1470 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderL_Transition(*iUTContext,*iWWWAuthenticateBasicWithoutRealmValidator));
       
  1471 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
  1472 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
  1473 	}
       
  1474 
       
  1475 // ______________________________________________________________________________
       
  1476 //
       
  1477 _LIT(KWspHeaderReaderWWWAuthenticateAuthSchemeUnitTest,"CWspHeaderReader_WWWAuthenticateAuthScheme_UnitTest");
       
  1478 
       
  1479 CWspHeaderReader_WWWAuthenticateAuthScheme_UnitTest* CWspHeaderReader_WWWAuthenticateAuthScheme_UnitTest::NewL(CDataLogger& aDataLogger,
       
  1480 											MUnitTestObserver& aObserver)
       
  1481 	{
       
  1482 	CWspHeaderReader_WWWAuthenticateAuthScheme_UnitTest* self = 
       
  1483 					new(ELeave) CWspHeaderReader_WWWAuthenticateAuthScheme_UnitTest(aDataLogger,
       
  1484 																aObserver);
       
  1485 	CleanupStack::PushL(self);
       
  1486 	self->ConstructL();
       
  1487 	CleanupStack::Pop(self);
       
  1488 	return self; 
       
  1489 	}
       
  1490 
       
  1491 inline TInt CWspHeaderReader_WWWAuthenticateAuthScheme_UnitTest::RunError(TInt aError)
       
  1492 	{
       
  1493 	// The RunL left so chain to the base first and then cleanup
       
  1494 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
  1495 	delete iUTContext;
       
  1496 	iUTContext = NULL;
       
  1497 	delete iStateAccessor;
       
  1498 	iStateAccessor = NULL;
       
  1499 	/* delete any validators used */
       
  1500 	delete iCtorValidator;
       
  1501 	iCtorValidator = NULL;
       
  1502 	delete iWWWAuthenticateAuthSchemeValidator;
       
  1503 	iWWWAuthenticateAuthSchemeValidator = NULL;
       
  1504 	delete iDtorValidator;
       
  1505 	iDtorValidator = NULL;
       
  1506 	return error;
       
  1507 	}
       
  1508 
       
  1509 inline CWspHeaderReader_WWWAuthenticateAuthScheme_UnitTest::~CWspHeaderReader_WWWAuthenticateAuthScheme_UnitTest()
       
  1510 	{
       
  1511 	// Simply delete our test class instance
       
  1512 	delete iUTContext;
       
  1513 	delete iStateAccessor;
       
  1514 	/* delete any validators used */
       
  1515 	delete iCtorValidator;
       
  1516 	delete iWWWAuthenticateAuthSchemeValidator;
       
  1517 	delete iDtorValidator;
       
  1518 	}
       
  1519 
       
  1520 inline CWspHeaderReader_WWWAuthenticateAuthScheme_UnitTest::CWspHeaderReader_WWWAuthenticateAuthScheme_UnitTest(CDataLogger& aDataLogger,
       
  1521 																	MUnitTestObserver& aObserver)
       
  1522 : CUnitTest(KWspHeaderReaderWWWAuthenticateAuthSchemeUnitTest, aDataLogger, aObserver)
       
  1523 	{
       
  1524 	//Do nothing
       
  1525 	}
       
  1526 
       
  1527 // Now the Individual transitions need to be added.
       
  1528 inline void CWspHeaderReader_WWWAuthenticateAuthScheme_UnitTest::ConstructL()
       
  1529 	{
       
  1530 	// Perform the base class initialization
       
  1531 	UnitTestConstructL();
       
  1532 
       
  1533 	// Create the Unit test state accessor
       
  1534 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
  1535 	// Construct the Unit test context.
       
  1536 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
  1537 	iUTContext->ConstructL(WSP::EWWWAuthenticate);
       
  1538 	iUTContext->iTestHeader->BeginRawDataL();
       
  1539 	TUint8 octet1F = 0x1F; // length quote <octet 31>
       
  1540 	_LIT8(KTxtScheme, "Authenicate-scheme\0");
       
  1541 	_LIT8(KTxtRealm, "Realm-value\0");
       
  1542 	iUTContext->iTestHeader->WriteRawDataL(octet1F);
       
  1543 	iUTContext->iTestHeader->WriteRawDataL(octet1F); // 31 bytes uintvar-value
       
  1544 	iUTContext->iTestHeader->WriteRawDataL(KTxtScheme);
       
  1545 	iUTContext->iTestHeader->WriteRawDataL(KTxtRealm);
       
  1546 	iUTContext->iTestHeader->CommitRawData();
       
  1547 	_LIT8(KTxtExpected, "Authenicate-scheme,Realm-value");
       
  1548 	iUTContext->SetExpectedL(KTxtExpected());
       
  1549 	// Add the Transitions in the order they are to run
       
  1550 	// C'tor first, D'tor last...
       
  1551 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
  1552 		using constructor and destuctor validators */
       
  1553 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
  1554 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
  1555 	iWWWAuthenticateAuthSchemeValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
  1556 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderL_Transition(*iUTContext,*iWWWAuthenticateAuthSchemeValidator));
       
  1557 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
  1558 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
  1559 	}
       
  1560 
       
  1561 // ______________________________________________________________________________
       
  1562 //
       
  1563 _LIT(KWspHeaderReaderWWWAuthenticateAuthSchemeNoRealmUnitTest,"CWspHeaderReader_WWWAuthenticateAuthSchemeNoRealm_UnitTest");
       
  1564 
       
  1565 CWspHeaderReader_WWWAuthenticateAuthSchemeNoRealm_UnitTest* CWspHeaderReader_WWWAuthenticateAuthSchemeNoRealm_UnitTest::NewL(CDataLogger& aDataLogger,
       
  1566 											MUnitTestObserver& aObserver)
       
  1567 	{
       
  1568 	CWspHeaderReader_WWWAuthenticateAuthSchemeNoRealm_UnitTest* self = 
       
  1569 					new(ELeave) CWspHeaderReader_WWWAuthenticateAuthSchemeNoRealm_UnitTest(aDataLogger,
       
  1570 																aObserver);
       
  1571 	CleanupStack::PushL(self);
       
  1572 	self->ConstructL();
       
  1573 	CleanupStack::Pop(self);
       
  1574 	return self; 
       
  1575 	}
       
  1576 
       
  1577 inline TInt CWspHeaderReader_WWWAuthenticateAuthSchemeNoRealm_UnitTest::RunError(TInt aError)
       
  1578 	{
       
  1579 	// The RunL left so chain to the base first and then cleanup
       
  1580 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
  1581 	delete iUTContext;
       
  1582 	iUTContext = NULL;
       
  1583 	delete iStateAccessor;
       
  1584 	iStateAccessor = NULL;
       
  1585 	/* delete any validators used */
       
  1586 	delete iCtorValidator;
       
  1587 	iCtorValidator = NULL;
       
  1588 	delete iWWWAuthenticateAuthSchemeNoRealmValidator;
       
  1589 	iWWWAuthenticateAuthSchemeNoRealmValidator = NULL;
       
  1590 	delete iDtorValidator;
       
  1591 	iDtorValidator = NULL;
       
  1592 	return error;
       
  1593 	}
       
  1594 
       
  1595 inline CWspHeaderReader_WWWAuthenticateAuthSchemeNoRealm_UnitTest::~CWspHeaderReader_WWWAuthenticateAuthSchemeNoRealm_UnitTest()
       
  1596 	{
       
  1597 	// Simply delete our test class instance
       
  1598 	delete iUTContext;
       
  1599 	delete iStateAccessor;
       
  1600 	/* delete any validators used */
       
  1601 	delete iCtorValidator;
       
  1602 	delete iWWWAuthenticateAuthSchemeNoRealmValidator;
       
  1603 	delete iDtorValidator;
       
  1604 	}
       
  1605 
       
  1606 inline CWspHeaderReader_WWWAuthenticateAuthSchemeNoRealm_UnitTest::CWspHeaderReader_WWWAuthenticateAuthSchemeNoRealm_UnitTest(CDataLogger& aDataLogger,
       
  1607 																	MUnitTestObserver& aObserver)
       
  1608 : CUnitTest(KWspHeaderReaderWWWAuthenticateAuthSchemeNoRealmUnitTest, aDataLogger, aObserver)
       
  1609 	{
       
  1610 	//Do nothing
       
  1611 	}
       
  1612 
       
  1613 // Now the Individual transitions need to be added.
       
  1614 inline void CWspHeaderReader_WWWAuthenticateAuthSchemeNoRealm_UnitTest::ConstructL()
       
  1615 	{
       
  1616 	// Perform the base class initialization
       
  1617 	UnitTestConstructL();
       
  1618 
       
  1619 	// Create the Unit test state accessor
       
  1620 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
  1621 	// Construct the Unit test context.
       
  1622 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
  1623 	iUTContext->ConstructL(WSP::EWWWAuthenticate);
       
  1624 	iUTContext->iTestHeader->BeginRawDataL();
       
  1625 	TUint8 octet14 = 0x14; // short length of 20 bytes
       
  1626 	_LIT8(KTxtScheme, "Authenicate-scheme\0");
       
  1627 	TUint8 octet00 = 0x00; // null terminate <octet 0>
       
  1628 	iUTContext->iTestHeader->WriteRawDataL(octet14);
       
  1629 	iUTContext->iTestHeader->WriteRawDataL(KTxtScheme);
       
  1630 	iUTContext->iTestHeader->WriteRawDataL(octet00);
       
  1631 	iUTContext->iTestHeader->CommitRawData();
       
  1632 	_LIT8(KTxtExpected, "Authenicate-scheme,");
       
  1633 	iUTContext->SetExpectedL(KTxtExpected());
       
  1634 	// Add the Transitions in the order they are to run
       
  1635 	// C'tor first, D'tor last...
       
  1636 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
  1637 		using constructor and destuctor validators */
       
  1638 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
  1639 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
  1640 	iWWWAuthenticateAuthSchemeNoRealmValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
  1641 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderL_Transition(*iUTContext,*iWWWAuthenticateAuthSchemeNoRealmValidator));
       
  1642 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
  1643 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
  1644 	}
       
  1645 
       
  1646 // ______________________________________________________________________________
       
  1647 //
       
  1648 _LIT(KWspHeaderReaderWWWAuthenticateAuthScheme2ParamsUnitTest,"CWspHeaderReader_WWWAuthenticateAuthScheme2Params_UnitTest");
       
  1649 
       
  1650 CWspHeaderReader_WWWAuthenticateAuthScheme2Params_UnitTest* CWspHeaderReader_WWWAuthenticateAuthScheme2Params_UnitTest::NewL(CDataLogger& aDataLogger,
       
  1651 											MUnitTestObserver& aObserver)
       
  1652 	{
       
  1653 	CWspHeaderReader_WWWAuthenticateAuthScheme2Params_UnitTest* self = 
       
  1654 					new(ELeave) CWspHeaderReader_WWWAuthenticateAuthScheme2Params_UnitTest(aDataLogger,
       
  1655 																aObserver);
       
  1656 	CleanupStack::PushL(self);
       
  1657 	self->ConstructL();
       
  1658 	CleanupStack::Pop(self);
       
  1659 	return self; 
       
  1660 	}
       
  1661 
       
  1662 inline TInt CWspHeaderReader_WWWAuthenticateAuthScheme2Params_UnitTest::RunError(TInt aError)
       
  1663 	{
       
  1664 	// The RunL left so chain to the base first and then cleanup
       
  1665 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
  1666 	delete iUTContext;
       
  1667 	iUTContext = NULL;
       
  1668 	delete iStateAccessor;
       
  1669 	iStateAccessor = NULL;
       
  1670 	/* delete any validators used */
       
  1671 	delete iCtorValidator;
       
  1672 	iCtorValidator = NULL;
       
  1673 	delete iWWWAuthenticateAuthScheme2ParamsValidator;
       
  1674 	iWWWAuthenticateAuthScheme2ParamsValidator = NULL;
       
  1675 	delete iDtorValidator;
       
  1676 	iDtorValidator = NULL;
       
  1677 	return error;
       
  1678 	}
       
  1679 
       
  1680 inline CWspHeaderReader_WWWAuthenticateAuthScheme2Params_UnitTest::~CWspHeaderReader_WWWAuthenticateAuthScheme2Params_UnitTest()
       
  1681 	{
       
  1682 	// Simply delete our test class instance
       
  1683 	delete iUTContext;
       
  1684 	delete iStateAccessor;
       
  1685 	/* delete any validators used */
       
  1686 	delete iCtorValidator;
       
  1687 	delete iWWWAuthenticateAuthScheme2ParamsValidator;
       
  1688 	delete iDtorValidator;
       
  1689 	}
       
  1690 
       
  1691 inline CWspHeaderReader_WWWAuthenticateAuthScheme2Params_UnitTest::CWspHeaderReader_WWWAuthenticateAuthScheme2Params_UnitTest(CDataLogger& aDataLogger,
       
  1692 																	MUnitTestObserver& aObserver)
       
  1693 : CUnitTest(KWspHeaderReaderWWWAuthenticateAuthScheme2ParamsUnitTest, aDataLogger, aObserver)
       
  1694 	{
       
  1695 	//Do nothing
       
  1696 	}
       
  1697 
       
  1698 // Now the Individual transitions need to be added.
       
  1699 inline void CWspHeaderReader_WWWAuthenticateAuthScheme2Params_UnitTest::ConstructL()
       
  1700 	{
       
  1701 	// Perform the base class initialization
       
  1702 	UnitTestConstructL();
       
  1703 
       
  1704 	// Create the Unit test state accessor
       
  1705 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
  1706 	// Construct the Unit test context.
       
  1707 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
  1708 	iUTContext->ConstructL(WSP::EWWWAuthenticate);
       
  1709 	iUTContext->iTestHeader->BeginRawDataL();
       
  1710 	TUint8 octet1F = 0x1F; // length quote <octet 31>
       
  1711 	TUint8 octet3B = 0x3B; // uintvar of 59 bytes
       
  1712 	_LIT8(KTxtScheme, "Authenicate-scheme\0");
       
  1713 	_LIT8(KTxtRealm, "Realm-value\0");
       
  1714 	_LIT8(KTxtParam1Name, "Param1-name\0");
       
  1715 	_LIT8(KTxtParam1Val, "value\0");
       
  1716 	TUint8 octet9C = 0x9C;		// Token for domain
       
  1717 	_LIT8(KTxtDomain, "mydomain\0");
       
  1718 	iUTContext->iTestHeader->WriteRawDataL(octet1F);
       
  1719 	iUTContext->iTestHeader->WriteRawDataL(octet3B);
       
  1720 	iUTContext->iTestHeader->WriteRawDataL(KTxtScheme);
       
  1721 	iUTContext->iTestHeader->WriteRawDataL(KTxtRealm);
       
  1722 	iUTContext->iTestHeader->WriteRawDataL(KTxtParam1Name);
       
  1723 	iUTContext->iTestHeader->WriteRawDataL(KTxtParam1Val);
       
  1724 	iUTContext->iTestHeader->WriteRawDataL(octet9C);
       
  1725 	iUTContext->iTestHeader->WriteRawDataL(KTxtDomain);
       
  1726 	iUTContext->iTestHeader->CommitRawData();
       
  1727 	_LIT8(KTxtExpected, "Authenicate-scheme,Realm-value;Param1-name=value;Domain=mydomain");
       
  1728 	iUTContext->SetExpectedL(KTxtExpected());
       
  1729 	// Add the Transitions in the order they are to run
       
  1730 	// C'tor first, D'tor last...
       
  1731 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
  1732 		using constructor and destuctor validators */
       
  1733 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
  1734 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
  1735 	iWWWAuthenticateAuthScheme2ParamsValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
  1736 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderL_Transition(*iUTContext,*iWWWAuthenticateAuthScheme2ParamsValidator));
       
  1737 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
  1738 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
  1739 	}
       
  1740 
       
  1741 // ______________________________________________________________________________
       
  1742 //
       
  1743 _LIT(KWspHeaderReaderWWWAuthenticateAuthSchemeNoRealm2ParamsUnitTest,"CWspHeaderReader_WWWAuthenticateAuthSchemeNoRealm2Params_UnitTest");
       
  1744 
       
  1745 CWspHeaderReader_WWWAuthenticateAuthSchemeNoRealm2Params_UnitTest* CWspHeaderReader_WWWAuthenticateAuthSchemeNoRealm2Params_UnitTest::NewL(CDataLogger& aDataLogger,
       
  1746 											MUnitTestObserver& aObserver)
       
  1747 	{
       
  1748 	CWspHeaderReader_WWWAuthenticateAuthSchemeNoRealm2Params_UnitTest* self = 
       
  1749 					new(ELeave) CWspHeaderReader_WWWAuthenticateAuthSchemeNoRealm2Params_UnitTest(aDataLogger,
       
  1750 																aObserver);
       
  1751 	CleanupStack::PushL(self);
       
  1752 	self->ConstructL();
       
  1753 	CleanupStack::Pop(self);
       
  1754 	return self; 
       
  1755 	}
       
  1756 
       
  1757 inline TInt CWspHeaderReader_WWWAuthenticateAuthSchemeNoRealm2Params_UnitTest::RunError(TInt aError)
       
  1758 	{
       
  1759 	// The RunL left so chain to the base first and then cleanup
       
  1760 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
  1761 	delete iUTContext;
       
  1762 	iUTContext = NULL;
       
  1763 	delete iStateAccessor;
       
  1764 	iStateAccessor = NULL;
       
  1765 	/* delete any validators used */
       
  1766 	delete iCtorValidator;
       
  1767 	iCtorValidator = NULL;
       
  1768 	delete iWWWAuthenticateAuthSchemeNoRealm2ParamsValidator;
       
  1769 	iWWWAuthenticateAuthSchemeNoRealm2ParamsValidator = NULL;
       
  1770 	delete iDtorValidator;
       
  1771 	iDtorValidator = NULL;
       
  1772 	return error;
       
  1773 	}
       
  1774 
       
  1775 inline CWspHeaderReader_WWWAuthenticateAuthSchemeNoRealm2Params_UnitTest::~CWspHeaderReader_WWWAuthenticateAuthSchemeNoRealm2Params_UnitTest()
       
  1776 	{
       
  1777 	// Simply delete our test class instance
       
  1778 	delete iUTContext;
       
  1779 	delete iStateAccessor;
       
  1780 	/* delete any validators used */
       
  1781 	delete iCtorValidator;
       
  1782 	delete iWWWAuthenticateAuthSchemeNoRealm2ParamsValidator;
       
  1783 	delete iDtorValidator;
       
  1784 	}
       
  1785 
       
  1786 inline CWspHeaderReader_WWWAuthenticateAuthSchemeNoRealm2Params_UnitTest::CWspHeaderReader_WWWAuthenticateAuthSchemeNoRealm2Params_UnitTest(CDataLogger& aDataLogger,
       
  1787 																	MUnitTestObserver& aObserver)
       
  1788 : CUnitTest(KWspHeaderReaderWWWAuthenticateAuthSchemeNoRealm2ParamsUnitTest, aDataLogger, aObserver)
       
  1789 	{
       
  1790 	//Do nothing
       
  1791 	}
       
  1792 
       
  1793 // Now the Individual transitions need to be added.
       
  1794 inline void CWspHeaderReader_WWWAuthenticateAuthSchemeNoRealm2Params_UnitTest::ConstructL()
       
  1795 	{
       
  1796 	// Perform the base class initialization
       
  1797 	UnitTestConstructL();
       
  1798 
       
  1799 	// Create the Unit test state accessor
       
  1800 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
  1801 	// Construct the Unit test context.
       
  1802 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
  1803 	iUTContext->ConstructL(WSP::EWWWAuthenticate);
       
  1804 	iUTContext->iTestHeader->BeginRawDataL();
       
  1805 	TUint8 octet1F = 0x1F; // length quote <octet 31>
       
  1806 	TUint8 octet28 = 0x28; // uintvar of 40 bytes
       
  1807 	_LIT8(KTxtScheme, "Authenicate-scheme\0");
       
  1808 	TUint8 octet00 = 0x00; // null terminate
       
  1809 	_LIT8(KTxtParam1Name, "Param1-name\0");
       
  1810 	_LIT8(KTxtParam1Val, "value\0");
       
  1811 	TUint8 octet9C = 0x9C;		// Token for domain
       
  1812 	iUTContext->iTestHeader->WriteRawDataL(octet1F);
       
  1813 	iUTContext->iTestHeader->WriteRawDataL(octet28);
       
  1814 	iUTContext->iTestHeader->WriteRawDataL(KTxtScheme);
       
  1815 	iUTContext->iTestHeader->WriteRawDataL(octet00);
       
  1816 	iUTContext->iTestHeader->WriteRawDataL(KTxtParam1Name);
       
  1817 	iUTContext->iTestHeader->WriteRawDataL(KTxtParam1Val);
       
  1818 	iUTContext->iTestHeader->WriteRawDataL(octet9C);
       
  1819 	iUTContext->iTestHeader->WriteRawDataL(octet00);
       
  1820 	iUTContext->iTestHeader->CommitRawData();
       
  1821 	_LIT8(KTxtExpected, "Authenicate-scheme,;Param1-name=value;Domain");
       
  1822 	iUTContext->SetExpectedL(KTxtExpected());
       
  1823 	// Add the Transitions in the order they are to run
       
  1824 	// C'tor first, D'tor last...
       
  1825 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
  1826 		using constructor and destuctor validators */
       
  1827 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
  1828 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
  1829 	iWWWAuthenticateAuthSchemeNoRealm2ParamsValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
  1830 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderL_Transition(*iUTContext,*iWWWAuthenticateAuthSchemeNoRealm2ParamsValidator));
       
  1831 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
  1832 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
  1833 	}
       
  1834 
       
  1835 // ______________________________________________________________________________
       
  1836 //
       
  1837 _LIT(KWspHeaderReaderSetCookieShortIntVersionUnitTest,"CWspHeaderReader_SetCookieShortIntVersion_UnitTest");
       
  1838 
       
  1839 CWspHeaderReader_SetCookieShortIntVersion_UnitTest* CWspHeaderReader_SetCookieShortIntVersion_UnitTest::NewL(CDataLogger& aDataLogger,
       
  1840 											MUnitTestObserver& aObserver)
       
  1841 	{
       
  1842 	CWspHeaderReader_SetCookieShortIntVersion_UnitTest* self = 
       
  1843 					new(ELeave) CWspHeaderReader_SetCookieShortIntVersion_UnitTest(aDataLogger,
       
  1844 																aObserver);
       
  1845 	CleanupStack::PushL(self);
       
  1846 	self->ConstructL();
       
  1847 	CleanupStack::Pop(self);
       
  1848 	return self; 
       
  1849 	}
       
  1850 
       
  1851 inline TInt CWspHeaderReader_SetCookieShortIntVersion_UnitTest::RunError(TInt aError)
       
  1852 	{
       
  1853 	// The RunL left so chain to the base first and then cleanup
       
  1854 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
  1855 	delete iUTContext;
       
  1856 	iUTContext = NULL;
       
  1857 	delete iStateAccessor;
       
  1858 	iStateAccessor = NULL;
       
  1859 	/* delete any validators used */
       
  1860 	delete iCtorValidator;
       
  1861 	iCtorValidator = NULL;
       
  1862 	delete iSetCookieShortIntVersionValidator;
       
  1863 	iSetCookieShortIntVersionValidator = NULL;
       
  1864 	delete iDtorValidator;
       
  1865 	iDtorValidator = NULL;
       
  1866 	return error;
       
  1867 	}
       
  1868 
       
  1869 inline CWspHeaderReader_SetCookieShortIntVersion_UnitTest::~CWspHeaderReader_SetCookieShortIntVersion_UnitTest()
       
  1870 	{
       
  1871 	// Simply delete our test class instance
       
  1872 	delete iUTContext;
       
  1873 	delete iStateAccessor;
       
  1874 	/* delete any validators used */
       
  1875 	delete iCtorValidator;
       
  1876 	delete iSetCookieShortIntVersionValidator;
       
  1877 	delete iDtorValidator;
       
  1878 	}
       
  1879 
       
  1880 inline CWspHeaderReader_SetCookieShortIntVersion_UnitTest::CWspHeaderReader_SetCookieShortIntVersion_UnitTest(CDataLogger& aDataLogger,
       
  1881 																	MUnitTestObserver& aObserver)
       
  1882 : CUnitTest(KWspHeaderReaderSetCookieShortIntVersionUnitTest, aDataLogger, aObserver)
       
  1883 	{
       
  1884 	//Do nothing
       
  1885 	}
       
  1886 
       
  1887 // Now the Individual transitions need to be added.
       
  1888 inline void CWspHeaderReader_SetCookieShortIntVersion_UnitTest::ConstructL()
       
  1889 	{
       
  1890 	// Perform the base class initialization
       
  1891 	UnitTestConstructL();
       
  1892 
       
  1893 	// Create the Unit test state accessor
       
  1894 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
  1895 	// Construct the Unit test context.
       
  1896 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
  1897 	iUTContext->ConstructL(WSP::ESetCookie);
       
  1898 	iUTContext->iTestHeader->BeginRawDataL();
       
  1899 	TUint8 octet18 = 0x18; // short value for 24 bytes
       
  1900 	TUint8 version = 0x91; // version 1.1
       
  1901 	_LIT8(KTxtCookieName, "My-cookie\0");
       
  1902 	_LIT8(KTxtCookieVal, "Cookie-value\0");
       
  1903 	iUTContext->iTestHeader->WriteRawDataL(octet18);
       
  1904 	iUTContext->iTestHeader->WriteRawDataL(version);
       
  1905 	iUTContext->iTestHeader->WriteRawDataL(KTxtCookieName);
       
  1906 	iUTContext->iTestHeader->WriteRawDataL(KTxtCookieVal);
       
  1907 	iUTContext->iTestHeader->CommitRawData();
       
  1908 	_LIT8(KTxtExpected, "1.1,My-cookie,Cookie-value");
       
  1909 	iUTContext->SetExpectedL(KTxtExpected());
       
  1910 	// Add the Transitions in the order they are to run
       
  1911 	// C'tor first, D'tor last...
       
  1912 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
  1913 		using constructor and destuctor validators */
       
  1914 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
  1915 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
  1916 	iSetCookieShortIntVersionValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
  1917 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderL_Transition(*iUTContext,*iSetCookieShortIntVersionValidator));
       
  1918 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
  1919 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
  1920 	}
       
  1921 
       
  1922 // ______________________________________________________________________________
       
  1923 //
       
  1924 _LIT(KWspHeaderReaderSetCookieMajorVersionNullName1ParamUnitTest,"CWspHeaderReader_SetCookieMajorVersionNullName1Param_UnitTest");
       
  1925 
       
  1926 CWspHeaderReader_SetCookieMajorVersionNullName1Param_UnitTest* CWspHeaderReader_SetCookieMajorVersionNullName1Param_UnitTest::NewL(CDataLogger& aDataLogger,
       
  1927 											MUnitTestObserver& aObserver)
       
  1928 	{
       
  1929 	CWspHeaderReader_SetCookieMajorVersionNullName1Param_UnitTest* self = 
       
  1930 					new(ELeave) CWspHeaderReader_SetCookieMajorVersionNullName1Param_UnitTest(aDataLogger,
       
  1931 																aObserver);
       
  1932 	CleanupStack::PushL(self);
       
  1933 	self->ConstructL();
       
  1934 	CleanupStack::Pop(self);
       
  1935 	return self; 
       
  1936 	}
       
  1937 
       
  1938 inline TInt CWspHeaderReader_SetCookieMajorVersionNullName1Param_UnitTest::RunError(TInt aError)
       
  1939 	{
       
  1940 	// The RunL left so chain to the base first and then cleanup
       
  1941 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
  1942 	delete iUTContext;
       
  1943 	iUTContext = NULL;
       
  1944 	delete iStateAccessor;
       
  1945 	iStateAccessor = NULL;
       
  1946 	/* delete any validators used */
       
  1947 	delete iCtorValidator;
       
  1948 	iCtorValidator = NULL;
       
  1949 	delete iSetCookieMajorVersionNullName1ParamValidator;
       
  1950 	iSetCookieMajorVersionNullName1ParamValidator = NULL;
       
  1951 	delete iDtorValidator;
       
  1952 	iDtorValidator = NULL;
       
  1953 	return error;
       
  1954 	}
       
  1955 
       
  1956 inline CWspHeaderReader_SetCookieMajorVersionNullName1Param_UnitTest::~CWspHeaderReader_SetCookieMajorVersionNullName1Param_UnitTest()
       
  1957 	{
       
  1958 	// Simply delete our test class instance
       
  1959 	delete iUTContext;
       
  1960 	delete iStateAccessor;
       
  1961 	/* delete any validators used */
       
  1962 	delete iCtorValidator;
       
  1963 	delete iSetCookieMajorVersionNullName1ParamValidator;
       
  1964 	delete iDtorValidator;
       
  1965 	}
       
  1966 
       
  1967 inline CWspHeaderReader_SetCookieMajorVersionNullName1Param_UnitTest::CWspHeaderReader_SetCookieMajorVersionNullName1Param_UnitTest(CDataLogger& aDataLogger,
       
  1968 																	MUnitTestObserver& aObserver)
       
  1969 : CUnitTest(KWspHeaderReaderSetCookieMajorVersionNullName1ParamUnitTest, aDataLogger, aObserver)
       
  1970 	{
       
  1971 	//Do nothing
       
  1972 	}
       
  1973 
       
  1974 // Now the Individual transitions need to be added.
       
  1975 inline void CWspHeaderReader_SetCookieMajorVersionNullName1Param_UnitTest::ConstructL()
       
  1976 	{
       
  1977 	// Perform the base class initialization
       
  1978 	UnitTestConstructL();
       
  1979 
       
  1980 	// Create the Unit test state accessor
       
  1981 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
  1982 	// Construct the Unit test context.
       
  1983 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
  1984 	iUTContext->ConstructL(WSP::ESetCookie);
       
  1985 	iUTContext->iTestHeader->BeginRawDataL();
       
  1986 	TUint8 octet18 = 0x11; // short value for 17 bytes
       
  1987 	TUint8 version = 0x9F; // version 1
       
  1988 	TUint8 cookieName = 0x00;
       
  1989 	_LIT8(KTxtCookieVal, "Cookie-value\0");
       
  1990 	TUint8 paramToken = 0x87;
       
  1991 	TUint8 paramValue = 0xC7;
       
  1992 	iUTContext->iTestHeader->WriteRawDataL(octet18);
       
  1993 	iUTContext->iTestHeader->WriteRawDataL(version);
       
  1994 	iUTContext->iTestHeader->WriteRawDataL(cookieName);
       
  1995 	iUTContext->iTestHeader->WriteRawDataL(KTxtCookieVal);
       
  1996 	iUTContext->iTestHeader->WriteRawDataL(paramToken);
       
  1997 	iUTContext->iTestHeader->WriteRawDataL(paramValue);
       
  1998 	iUTContext->iTestHeader->CommitRawData();
       
  1999 	_LIT8(KTxtExpected, "1,,Cookie-value;Differences=Cache-control");
       
  2000 	iUTContext->SetExpectedL(KTxtExpected());
       
  2001 	// Add the Transitions in the order they are to run
       
  2002 	// C'tor first, D'tor last...
       
  2003 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
  2004 		using constructor and destuctor validators */
       
  2005 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
  2006 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
  2007 	iSetCookieMajorVersionNullName1ParamValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
  2008 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderL_Transition(*iUTContext,*iSetCookieMajorVersionNullName1ParamValidator));
       
  2009 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
  2010 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
  2011 	}
       
  2012 
       
  2013 // ______________________________________________________________________________
       
  2014 //
       
  2015 _LIT(KWspHeaderReaderSetCookieTextVersionNullValueUnitTest,"CWspHeaderReader_SetCookieTextVersionNullValue_UnitTest");
       
  2016 
       
  2017 CWspHeaderReader_SetCookieTextVersionNullValue_UnitTest* CWspHeaderReader_SetCookieTextVersionNullValue_UnitTest::NewL(CDataLogger& aDataLogger,
       
  2018 											MUnitTestObserver& aObserver)
       
  2019 	{
       
  2020 	CWspHeaderReader_SetCookieTextVersionNullValue_UnitTest* self = 
       
  2021 					new(ELeave) CWspHeaderReader_SetCookieTextVersionNullValue_UnitTest(aDataLogger,
       
  2022 																aObserver);
       
  2023 	CleanupStack::PushL(self);
       
  2024 	self->ConstructL();
       
  2025 	CleanupStack::Pop(self);
       
  2026 	return self; 
       
  2027 	}
       
  2028 
       
  2029 inline TInt CWspHeaderReader_SetCookieTextVersionNullValue_UnitTest::RunError(TInt aError)
       
  2030 	{
       
  2031 	// The RunL left so chain to the base first and then cleanup
       
  2032 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
  2033 	delete iUTContext;
       
  2034 	iUTContext = NULL;
       
  2035 	delete iStateAccessor;
       
  2036 	iStateAccessor = NULL;
       
  2037 	/* delete any validators used */
       
  2038 	delete iCtorValidator;
       
  2039 	iCtorValidator = NULL;
       
  2040 	delete iSetCookieTextVersionNullValueValidator;
       
  2041 	iSetCookieTextVersionNullValueValidator = NULL;
       
  2042 	delete iDtorValidator;
       
  2043 	iDtorValidator = NULL;
       
  2044 	return error;
       
  2045 	}
       
  2046 
       
  2047 inline CWspHeaderReader_SetCookieTextVersionNullValue_UnitTest::~CWspHeaderReader_SetCookieTextVersionNullValue_UnitTest()
       
  2048 	{
       
  2049 	// Simply delete our test class instance
       
  2050 	delete iUTContext;
       
  2051 	delete iStateAccessor;
       
  2052 	/* delete any validators used */
       
  2053 	delete iCtorValidator;
       
  2054 	delete iSetCookieTextVersionNullValueValidator;
       
  2055 	delete iDtorValidator;
       
  2056 	}
       
  2057 
       
  2058 inline CWspHeaderReader_SetCookieTextVersionNullValue_UnitTest::CWspHeaderReader_SetCookieTextVersionNullValue_UnitTest(CDataLogger& aDataLogger,
       
  2059 																	MUnitTestObserver& aObserver)
       
  2060 : CUnitTest(KWspHeaderReaderSetCookieTextVersionNullValueUnitTest, aDataLogger, aObserver)
       
  2061 	{
       
  2062 	//Do nothing
       
  2063 	}
       
  2064 
       
  2065 // Now the Individual transitions need to be added.
       
  2066 inline void CWspHeaderReader_SetCookieTextVersionNullValue_UnitTest::ConstructL()
       
  2067 	{
       
  2068 	// Perform the base class initialization
       
  2069 	UnitTestConstructL();
       
  2070 
       
  2071 	// Create the Unit test state accessor
       
  2072 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
  2073 	// Construct the Unit test context.
       
  2074 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
  2075 	iUTContext->ConstructL(WSP::ESetCookie);
       
  2076 	iUTContext->iTestHeader->BeginRawDataL();
       
  2077 	TUint8 length = 0x12; // short value for 18 bytes
       
  2078 	_LIT8(KTxtVersion, "13.6\0"); // version
       
  2079 	_LIT8(KTxtCookieName, "My-cookie\0");
       
  2080 	TUint8 cookieVal = 0x00;
       
  2081 	TUint8 paramValue1 = 0x83;
       
  2082 	TUint8 paramValue2 = 0x31;
       
  2083 	iUTContext->iTestHeader->WriteRawDataL(length);
       
  2084 	iUTContext->iTestHeader->WriteRawDataL(KTxtVersion);
       
  2085 	iUTContext->iTestHeader->WriteRawDataL(KTxtCookieName);
       
  2086 	iUTContext->iTestHeader->WriteRawDataL(cookieVal);
       
  2087 	iUTContext->iTestHeader->WriteRawDataL(cookieVal);
       
  2088 	iUTContext->iTestHeader->WriteRawDataL(paramValue1);
       
  2089 	iUTContext->iTestHeader->WriteRawDataL(paramValue2);
       
  2090 	iUTContext->iTestHeader->CommitRawData();
       
  2091 	_LIT8(KTxtExpected, "13.6,My-cookie,;Q=0.333");
       
  2092 	iUTContext->SetExpectedL(KTxtExpected());
       
  2093 	// Add the Transitions in the order they are to run
       
  2094 	// C'tor first, D'tor last...
       
  2095 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
  2096 		using constructor and destuctor validators */
       
  2097 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
  2098 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
  2099 	iSetCookieTextVersionNullValueValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
  2100 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderL_Transition(*iUTContext,*iSetCookieTextVersionNullValueValidator));
       
  2101 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
  2102 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
  2103 	}
       
  2104 
       
  2105 // ______________________________________________________________________________
       
  2106 //
       
  2107 _LIT(KWspHeaderReaderSetCookieNullVersionUnitTest,"CWspHeaderReader_SetCookieNullVersion_UnitTest");
       
  2108 
       
  2109 CWspHeaderReader_SetCookieNullVersion_UnitTest* CWspHeaderReader_SetCookieNullVersion_UnitTest::NewL(CDataLogger& aDataLogger,
       
  2110 											MUnitTestObserver& aObserver)
       
  2111 	{
       
  2112 	CWspHeaderReader_SetCookieNullVersion_UnitTest* self = 
       
  2113 					new(ELeave) CWspHeaderReader_SetCookieNullVersion_UnitTest(aDataLogger,
       
  2114 																aObserver);
       
  2115 	CleanupStack::PushL(self);
       
  2116 	self->ConstructL();
       
  2117 	CleanupStack::Pop(self);
       
  2118 	return self; 
       
  2119 	}
       
  2120 
       
  2121 inline TInt CWspHeaderReader_SetCookieNullVersion_UnitTest::RunError(TInt aError)
       
  2122 	{
       
  2123 	// The RunL left so chain to the base first and then cleanup
       
  2124 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
  2125 	delete iUTContext;
       
  2126 	iUTContext = NULL;
       
  2127 	delete iStateAccessor;
       
  2128 	iStateAccessor = NULL;
       
  2129 	/* delete any validators used */
       
  2130 	delete iCtorValidator;
       
  2131 	iCtorValidator = NULL;
       
  2132 	delete iSetCookieNullVersionValidator;
       
  2133 	iSetCookieNullVersionValidator = NULL;
       
  2134 	delete iDtorValidator;
       
  2135 	iDtorValidator = NULL;
       
  2136 	return error;
       
  2137 	}
       
  2138 
       
  2139 inline CWspHeaderReader_SetCookieNullVersion_UnitTest::~CWspHeaderReader_SetCookieNullVersion_UnitTest()
       
  2140 	{
       
  2141 	// Simply delete our test class instance
       
  2142 	delete iUTContext;
       
  2143 	delete iStateAccessor;
       
  2144 	/* delete any validators used */
       
  2145 	delete iCtorValidator;
       
  2146 	delete iSetCookieNullVersionValidator;
       
  2147 	delete iDtorValidator;
       
  2148 	}
       
  2149 
       
  2150 inline CWspHeaderReader_SetCookieNullVersion_UnitTest::CWspHeaderReader_SetCookieNullVersion_UnitTest(CDataLogger& aDataLogger,
       
  2151 																	MUnitTestObserver& aObserver)
       
  2152 : CUnitTest(KWspHeaderReaderSetCookieNullVersionUnitTest, aDataLogger, aObserver)
       
  2153 	{
       
  2154 	//Do nothing
       
  2155 	}
       
  2156 
       
  2157 // Now the Individual transitions need to be added.
       
  2158 inline void CWspHeaderReader_SetCookieNullVersion_UnitTest::ConstructL()
       
  2159 	{
       
  2160 	// Perform the base class initialization
       
  2161 	UnitTestConstructL();
       
  2162 
       
  2163 	// Create the Unit test state accessor
       
  2164 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
  2165 	// Construct the Unit test context.
       
  2166 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
  2167 	iUTContext->ConstructL(WSP::ESetCookie);
       
  2168 	iUTContext->iTestHeader->BeginRawDataL();
       
  2169 	TUint8 length = 0x1A; // short value for 26 bytes
       
  2170 	TUint8 version = 0x00;
       
  2171 	_LIT8(KTxtCookieName, "My-cookie\0");
       
  2172 	_LIT8(KTxtCookieValue, "cookie-value\0");
       
  2173 	TUint8 paramName = 0x82;
       
  2174 	TUint8 paramValue = 0x85;
       
  2175 	iUTContext->iTestHeader->WriteRawDataL(length);
       
  2176 	iUTContext->iTestHeader->WriteRawDataL(version);
       
  2177 	iUTContext->iTestHeader->WriteRawDataL(KTxtCookieName);
       
  2178 	iUTContext->iTestHeader->WriteRawDataL(KTxtCookieValue);
       
  2179 	iUTContext->iTestHeader->WriteRawDataL(paramName);
       
  2180 	iUTContext->iTestHeader->WriteRawDataL(paramValue);
       
  2181 	iUTContext->iTestHeader->CommitRawData();
       
  2182 	_LIT8(KTxtExpected, ",My-cookie,cookie-value;Level=0.5");
       
  2183 	iUTContext->SetExpectedL(KTxtExpected());
       
  2184 	// Add the Transitions in the order they are to run
       
  2185 	// C'tor first, D'tor last...
       
  2186 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
  2187 		using constructor and destuctor validators */
       
  2188 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
  2189 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
  2190 	iSetCookieNullVersionValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
  2191 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderL_Transition(*iUTContext,*iSetCookieNullVersionValidator));
       
  2192 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
  2193 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
  2194 	}
       
  2195 
       
  2196 // ______________________________________________________________________________
       
  2197 //
       
  2198 _LIT(KWspHeaderReaderContentLocationUnitTest,"CWspHeaderReader_ContentLocation_UnitTest");
       
  2199 
       
  2200 CWspHeaderReader_ContentLocation_UnitTest* CWspHeaderReader_ContentLocation_UnitTest::NewL(CDataLogger& aDataLogger,
       
  2201 											MUnitTestObserver& aObserver)
       
  2202 	{
       
  2203 	CWspHeaderReader_ContentLocation_UnitTest* self = 
       
  2204 					new(ELeave) CWspHeaderReader_ContentLocation_UnitTest(aDataLogger,
       
  2205 																aObserver);
       
  2206 	CleanupStack::PushL(self);
       
  2207 	self->ConstructL();
       
  2208 	CleanupStack::Pop(self);
       
  2209 	return self; 
       
  2210 	}
       
  2211 
       
  2212 inline TInt CWspHeaderReader_ContentLocation_UnitTest::RunError(TInt aError)
       
  2213 	{
       
  2214 	// The RunL left so chain to the base first and then cleanup
       
  2215 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
  2216 	delete iUTContext;
       
  2217 	iUTContext = NULL;
       
  2218 	delete iStateAccessor;
       
  2219 	iStateAccessor = NULL;
       
  2220 	/* delete any validators used */
       
  2221 	delete iCtorValidator;
       
  2222 	iCtorValidator = NULL;
       
  2223 	delete iContentLocationValidator;
       
  2224 	iContentLocationValidator = NULL;
       
  2225 	delete iDtorValidator;
       
  2226 	iDtorValidator = NULL;
       
  2227 	return error;
       
  2228 	}
       
  2229 
       
  2230 inline CWspHeaderReader_ContentLocation_UnitTest::~CWspHeaderReader_ContentLocation_UnitTest()
       
  2231 	{
       
  2232 	// Simply delete our test class instance
       
  2233 	delete iUTContext;
       
  2234 	delete iStateAccessor;
       
  2235 	/* delete any validators used */
       
  2236 	delete iCtorValidator;
       
  2237 	delete iContentLocationValidator;
       
  2238 	delete iDtorValidator;
       
  2239 	}
       
  2240 
       
  2241 inline CWspHeaderReader_ContentLocation_UnitTest::CWspHeaderReader_ContentLocation_UnitTest(CDataLogger& aDataLogger,
       
  2242 																	MUnitTestObserver& aObserver)
       
  2243 : CUnitTest(KWspHeaderReaderContentLocationUnitTest, aDataLogger, aObserver)
       
  2244 	{
       
  2245 	//Do nothing
       
  2246 	}
       
  2247 
       
  2248 // Now the Individual transitions need to be added.
       
  2249 inline void CWspHeaderReader_ContentLocation_UnitTest::ConstructL()
       
  2250 	{
       
  2251 	// Perform the base class initialization
       
  2252 	UnitTestConstructL();
       
  2253 
       
  2254 	// Create the Unit test state accessor
       
  2255 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
  2256 	// Construct the Unit test context.
       
  2257 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
  2258 	iUTContext->ConstructL(WSP::EContentLocation);
       
  2259 	iUTContext->iTestHeader->BeginRawDataL();
       
  2260 	TUint8 wspQuote = 0x7F; // WSP quote char
       
  2261 	_LIT8(KTxtString, "http://www.symbian.com\0");
       
  2262 	iUTContext->iTestHeader->WriteRawDataL(wspQuote);
       
  2263 	iUTContext->iTestHeader->WriteRawDataL(KTxtString);
       
  2264 	iUTContext->iTestHeader->CommitRawData();
       
  2265 	_LIT8(KTxtExpected, "http://www.symbian.com");
       
  2266 	iUTContext->SetExpectedL(KTxtExpected);
       
  2267 	// Add the Transitions in the order they are to run
       
  2268 	// C'tor first, D'tor last...
       
  2269 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
  2270 		using constructor and destuctor validators */
       
  2271 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
  2272 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
  2273 	iContentLocationValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
  2274 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderL_Transition(*iUTContext,*iContentLocationValidator));
       
  2275 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
  2276 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
  2277 	}
       
  2278 
       
  2279 // ______________________________________________________________________________
       
  2280 //
       
  2281 _LIT(KWspHeaderReaderLocationWithoutQuoteUnitTest,"CWspHeaderReader_LocationWithoutQuote_UnitTest");
       
  2282 
       
  2283 CWspHeaderReader_LocationWithoutQuote_UnitTest* CWspHeaderReader_LocationWithoutQuote_UnitTest::NewL(CDataLogger& aDataLogger,
       
  2284 											MUnitTestObserver& aObserver)
       
  2285 	{
       
  2286 	CWspHeaderReader_LocationWithoutQuote_UnitTest* self = 
       
  2287 					new(ELeave) CWspHeaderReader_LocationWithoutQuote_UnitTest(aDataLogger,
       
  2288 																aObserver);
       
  2289 	CleanupStack::PushL(self);
       
  2290 	self->ConstructL();
       
  2291 	CleanupStack::Pop(self);
       
  2292 	return self; 
       
  2293 	}
       
  2294 
       
  2295 inline TInt CWspHeaderReader_LocationWithoutQuote_UnitTest::RunError(TInt aError)
       
  2296 	{
       
  2297 	// The RunL left so chain to the base first and then cleanup
       
  2298 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
  2299 	delete iUTContext;
       
  2300 	iUTContext = NULL;
       
  2301 	delete iStateAccessor;
       
  2302 	iStateAccessor = NULL;
       
  2303 	/* delete any validators used */
       
  2304 	delete iCtorValidator;
       
  2305 	iCtorValidator = NULL;
       
  2306 	delete iLocationWithoutQuoteValidator;
       
  2307 	iLocationWithoutQuoteValidator = NULL;
       
  2308 	delete iDtorValidator;
       
  2309 	iDtorValidator = NULL;
       
  2310 	return error;
       
  2311 	}
       
  2312 
       
  2313 inline CWspHeaderReader_LocationWithoutQuote_UnitTest::~CWspHeaderReader_LocationWithoutQuote_UnitTest()
       
  2314 	{
       
  2315 	// Simply delete our test class instance
       
  2316 	delete iUTContext;
       
  2317 	delete iStateAccessor;
       
  2318 	/* delete any validators used */
       
  2319 	delete iCtorValidator;
       
  2320 	delete iLocationWithoutQuoteValidator;
       
  2321 	delete iDtorValidator;
       
  2322 	}
       
  2323 
       
  2324 inline CWspHeaderReader_LocationWithoutQuote_UnitTest::CWspHeaderReader_LocationWithoutQuote_UnitTest(CDataLogger& aDataLogger,
       
  2325 																	MUnitTestObserver& aObserver)
       
  2326 : CUnitTest(KWspHeaderReaderLocationWithoutQuoteUnitTest, aDataLogger, aObserver)
       
  2327 	{
       
  2328 	//Do nothing
       
  2329 	}
       
  2330 
       
  2331 // Now the Individual transitions need to be added.
       
  2332 inline void CWspHeaderReader_LocationWithoutQuote_UnitTest::ConstructL()
       
  2333 	{
       
  2334 	// Perform the base class initialization
       
  2335 	UnitTestConstructL();
       
  2336 
       
  2337 	// Create the Unit test state accessor
       
  2338 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
  2339 	// Construct the Unit test context.
       
  2340 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
  2341 	iUTContext->ConstructL(WSP::EContentLocation);
       
  2342 	iUTContext->iTestHeader->BeginRawDataL();
       
  2343 	_LIT8(KTxtString, "http://www.symbian.com\0");
       
  2344 	iUTContext->iTestHeader->WriteRawDataL(KTxtString);
       
  2345 	iUTContext->iTestHeader->CommitRawData();
       
  2346 	_LIT8(KTxtExpected, "http://www.symbian.com");
       
  2347 	iUTContext->SetExpectedL(KTxtExpected);
       
  2348 	// Add the Transitions in the order they are to run
       
  2349 	// C'tor first, D'tor last...
       
  2350 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
  2351 		using constructor and destuctor validators */
       
  2352 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
  2353 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
  2354 	iLocationWithoutQuoteValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
  2355 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderL_Transition(*iUTContext,*iLocationWithoutQuoteValidator));
       
  2356 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
  2357 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
  2358 	}
       
  2359 
       
  2360 // ______________________________________________________________________________
       
  2361 //
       
  2362 _LIT(KWspHeaderReaderEncodingVersionShortIntUnitTest,"CWspHeaderReader_EncodingVersionShortInt_UnitTest");
       
  2363 
       
  2364 CWspHeaderReader_EncodingVersionShortInt_UnitTest* CWspHeaderReader_EncodingVersionShortInt_UnitTest::NewL(CDataLogger& aDataLogger,
       
  2365 											MUnitTestObserver& aObserver)
       
  2366 	{
       
  2367 	CWspHeaderReader_EncodingVersionShortInt_UnitTest* self = 
       
  2368 					new(ELeave) CWspHeaderReader_EncodingVersionShortInt_UnitTest(aDataLogger,
       
  2369 																aObserver);
       
  2370 	CleanupStack::PushL(self);
       
  2371 	self->ConstructL();
       
  2372 	CleanupStack::Pop(self);
       
  2373 	return self; 
       
  2374 	}
       
  2375 
       
  2376 inline TInt CWspHeaderReader_EncodingVersionShortInt_UnitTest::RunError(TInt aError)
       
  2377 	{
       
  2378 	// The RunL left so chain to the base first and then cleanup
       
  2379 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
  2380 	delete iUTContext;
       
  2381 	iUTContext = NULL;
       
  2382 	delete iStateAccessor;
       
  2383 	iStateAccessor = NULL;
       
  2384 	/* delete any validators used */
       
  2385 	delete iCtorValidator;
       
  2386 	iCtorValidator = NULL;
       
  2387 	delete iEncodingVersionShortIntValidator;
       
  2388 	iEncodingVersionShortIntValidator = NULL;
       
  2389 	delete iDtorValidator;
       
  2390 	iDtorValidator = NULL;
       
  2391 	return error;
       
  2392 	}
       
  2393 
       
  2394 inline CWspHeaderReader_EncodingVersionShortInt_UnitTest::~CWspHeaderReader_EncodingVersionShortInt_UnitTest()
       
  2395 	{
       
  2396 	// Simply delete our test class instance
       
  2397 	delete iUTContext;
       
  2398 	delete iStateAccessor;
       
  2399 	/* delete any validators used */
       
  2400 	delete iCtorValidator;
       
  2401 	delete iEncodingVersionShortIntValidator;
       
  2402 	delete iDtorValidator;
       
  2403 	}
       
  2404 
       
  2405 inline CWspHeaderReader_EncodingVersionShortInt_UnitTest::CWspHeaderReader_EncodingVersionShortInt_UnitTest(CDataLogger& aDataLogger,
       
  2406 																	MUnitTestObserver& aObserver)
       
  2407 : CUnitTest(KWspHeaderReaderEncodingVersionShortIntUnitTest, aDataLogger, aObserver)
       
  2408 	{
       
  2409 	//Do nothing
       
  2410 	}
       
  2411 
       
  2412 // Now the Individual transitions need to be added.
       
  2413 inline void CWspHeaderReader_EncodingVersionShortInt_UnitTest::ConstructL()
       
  2414 	{
       
  2415 	// Perform the base class initialization
       
  2416 	UnitTestConstructL();
       
  2417 
       
  2418 	// Create the Unit test state accessor
       
  2419 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
  2420 	// Construct the Unit test context.
       
  2421 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
  2422 	iUTContext->ConstructL(WSP::EEncodingVersion);
       
  2423 	iUTContext->iTestHeader->BeginRawDataL();
       
  2424 	TUint8 version = 0x91;
       
  2425 	iUTContext->iTestHeader->WriteRawDataL(version);
       
  2426 	iUTContext->iTestHeader->CommitRawData();
       
  2427 	_LIT8(KTxtExpected, "1.1");
       
  2428 	iUTContext->SetExpectedL(KTxtExpected);
       
  2429 	// Add the Transitions in the order they are to run
       
  2430 	// C'tor first, D'tor last...
       
  2431 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
  2432 		using constructor and destuctor validators */
       
  2433 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
  2434 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
  2435 	iEncodingVersionShortIntValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
  2436 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderL_Transition(*iUTContext,*iEncodingVersionShortIntValidator));
       
  2437 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
  2438 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
  2439 	}
       
  2440 
       
  2441 // ______________________________________________________________________________
       
  2442 //
       
  2443 _LIT(KWspHeaderReaderEncodingVersionNullVersionUnitTest,"CWspHeaderReader_EncodingVersionNullVersion_UnitTest");
       
  2444 
       
  2445 CWspHeaderReader_EncodingVersionNullVersion_UnitTest* CWspHeaderReader_EncodingVersionNullVersion_UnitTest::NewL(CDataLogger& aDataLogger,
       
  2446 											MUnitTestObserver& aObserver)
       
  2447 	{
       
  2448 	CWspHeaderReader_EncodingVersionNullVersion_UnitTest* self = 
       
  2449 					new(ELeave) CWspHeaderReader_EncodingVersionNullVersion_UnitTest(aDataLogger,
       
  2450 																aObserver);
       
  2451 	CleanupStack::PushL(self);
       
  2452 	self->ConstructL();
       
  2453 	CleanupStack::Pop(self);
       
  2454 	return self; 
       
  2455 	}
       
  2456 
       
  2457 inline TInt CWspHeaderReader_EncodingVersionNullVersion_UnitTest::RunError(TInt aError)
       
  2458 	{
       
  2459 	// The RunL left so chain to the base first and then cleanup
       
  2460 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
  2461 	delete iUTContext;
       
  2462 	iUTContext = NULL;
       
  2463 	delete iStateAccessor;
       
  2464 	iStateAccessor = NULL;
       
  2465 	/* delete any validators used */
       
  2466 	delete iCtorValidator;
       
  2467 	iCtorValidator = NULL;
       
  2468 	delete iEncodingVersionNullVersionValidator;
       
  2469 	iEncodingVersionNullVersionValidator = NULL;
       
  2470 	delete iDtorValidator;
       
  2471 	iDtorValidator = NULL;
       
  2472 	return error;
       
  2473 	}
       
  2474 
       
  2475 inline CWspHeaderReader_EncodingVersionNullVersion_UnitTest::~CWspHeaderReader_EncodingVersionNullVersion_UnitTest()
       
  2476 	{
       
  2477 	// Simply delete our test class instance
       
  2478 	delete iUTContext;
       
  2479 	delete iStateAccessor;
       
  2480 	/* delete any validators used */
       
  2481 	delete iCtorValidator;
       
  2482 	delete iEncodingVersionNullVersionValidator;
       
  2483 	delete iDtorValidator;
       
  2484 	}
       
  2485 
       
  2486 inline CWspHeaderReader_EncodingVersionNullVersion_UnitTest::CWspHeaderReader_EncodingVersionNullVersion_UnitTest(CDataLogger& aDataLogger,
       
  2487 																	MUnitTestObserver& aObserver)
       
  2488 : CUnitTest(KWspHeaderReaderEncodingVersionNullVersionUnitTest, aDataLogger, aObserver)
       
  2489 	{
       
  2490 	//Do nothing
       
  2491 	}
       
  2492 
       
  2493 // Now the Individual transitions need to be added.
       
  2494 inline void CWspHeaderReader_EncodingVersionNullVersion_UnitTest::ConstructL()
       
  2495 	{
       
  2496 	// Perform the base class initialization
       
  2497 	UnitTestConstructL();
       
  2498 
       
  2499 	// Create the Unit test state accessor
       
  2500 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
  2501 	// Construct the Unit test context.
       
  2502 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
  2503 	iUTContext->ConstructL(WSP::EEncodingVersion);
       
  2504 	iUTContext->iTestHeader->BeginRawDataL();
       
  2505 	TUint8 version = 0x00;
       
  2506 	iUTContext->iTestHeader->WriteRawDataL(version);
       
  2507 	iUTContext->iTestHeader->CommitRawData();
       
  2508 	iUTContext->SetExpectedL(KNullDesC8());
       
  2509 	// Add the Transitions in the order they are to run
       
  2510 	// C'tor first, D'tor last...
       
  2511 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
  2512 		using constructor and destuctor validators */
       
  2513 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
  2514 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
  2515 	iEncodingVersionNullVersionValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
  2516 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderL_Transition(*iUTContext,*iEncodingVersionNullVersionValidator));
       
  2517 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
  2518 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
  2519 	}
       
  2520 
       
  2521 // ______________________________________________________________________________
       
  2522 //
       
  2523 _LIT(KWspHeaderReaderEncodingVersionTextVersionUnitTest,"CWspHeaderReader_EncodingVersionTextVersion_UnitTest");
       
  2524 
       
  2525 CWspHeaderReader_EncodingVersionTextVersion_UnitTest* CWspHeaderReader_EncodingVersionTextVersion_UnitTest::NewL(CDataLogger& aDataLogger,
       
  2526 											MUnitTestObserver& aObserver)
       
  2527 	{
       
  2528 	CWspHeaderReader_EncodingVersionTextVersion_UnitTest* self = 
       
  2529 					new(ELeave) CWspHeaderReader_EncodingVersionTextVersion_UnitTest(aDataLogger,
       
  2530 																aObserver);
       
  2531 	CleanupStack::PushL(self);
       
  2532 	self->ConstructL();
       
  2533 	CleanupStack::Pop(self);
       
  2534 	return self; 
       
  2535 	}
       
  2536 
       
  2537 inline TInt CWspHeaderReader_EncodingVersionTextVersion_UnitTest::RunError(TInt aError)
       
  2538 	{
       
  2539 	// The RunL left so chain to the base first and then cleanup
       
  2540 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
  2541 	delete iUTContext;
       
  2542 	iUTContext = NULL;
       
  2543 	delete iStateAccessor;
       
  2544 	iStateAccessor = NULL;
       
  2545 	/* delete any validators used */
       
  2546 	delete iCtorValidator;
       
  2547 	iCtorValidator = NULL;
       
  2548 	delete iEncodingVersionTextVersionValidator;
       
  2549 	iEncodingVersionTextVersionValidator = NULL;
       
  2550 	delete iDtorValidator;
       
  2551 	iDtorValidator = NULL;
       
  2552 	return error;
       
  2553 	}
       
  2554 
       
  2555 inline CWspHeaderReader_EncodingVersionTextVersion_UnitTest::~CWspHeaderReader_EncodingVersionTextVersion_UnitTest()
       
  2556 	{
       
  2557 	// Simply delete our test class instance
       
  2558 	delete iUTContext;
       
  2559 	delete iStateAccessor;
       
  2560 	/* delete any validators used */
       
  2561 	delete iCtorValidator;
       
  2562 	delete iEncodingVersionTextVersionValidator;
       
  2563 	delete iDtorValidator;
       
  2564 	}
       
  2565 
       
  2566 inline CWspHeaderReader_EncodingVersionTextVersion_UnitTest::CWspHeaderReader_EncodingVersionTextVersion_UnitTest(CDataLogger& aDataLogger,
       
  2567 																	MUnitTestObserver& aObserver)
       
  2568 : CUnitTest(KWspHeaderReaderEncodingVersionTextVersionUnitTest, aDataLogger, aObserver)
       
  2569 	{
       
  2570 	//Do nothing
       
  2571 	}
       
  2572 
       
  2573 // Now the Individual transitions need to be added.
       
  2574 inline void CWspHeaderReader_EncodingVersionTextVersion_UnitTest::ConstructL()
       
  2575 	{
       
  2576 	// Perform the base class initialization
       
  2577 	UnitTestConstructL();
       
  2578 
       
  2579 	// Create the Unit test state accessor
       
  2580 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
  2581 	// Construct the Unit test context.
       
  2582 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
  2583 	iUTContext->ConstructL(WSP::EEncodingVersion);
       
  2584 	iUTContext->iTestHeader->BeginRawDataL();
       
  2585 	_LIT8(KTxtVersion, "31.5\0");
       
  2586 	iUTContext->iTestHeader->WriteRawDataL(KTxtVersion);
       
  2587 	iUTContext->iTestHeader->CommitRawData();
       
  2588 	_LIT8(KTxtExpected, "31.5");
       
  2589 	iUTContext->SetExpectedL(KTxtExpected);
       
  2590 	// Add the Transitions in the order they are to run
       
  2591 	// C'tor first, D'tor last...
       
  2592 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
  2593 		using constructor and destuctor validators */
       
  2594 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
  2595 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
  2596 	iEncodingVersionTextVersionValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
  2597 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderL_Transition(*iUTContext,*iEncodingVersionTextVersionValidator));
       
  2598 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
  2599 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
  2600 	}
       
  2601 
       
  2602 // ______________________________________________________________________________
       
  2603 //
       
  2604 _LIT(KWspHeaderReaderEncodingVersionCodePageUnitTest,"CWspHeaderReader_EncodingVersionCodePage_UnitTest");
       
  2605 
       
  2606 CWspHeaderReader_EncodingVersionCodePage_UnitTest* CWspHeaderReader_EncodingVersionCodePage_UnitTest::NewL(CDataLogger& aDataLogger,
       
  2607 											MUnitTestObserver& aObserver)
       
  2608 	{
       
  2609 	CWspHeaderReader_EncodingVersionCodePage_UnitTest* self = 
       
  2610 					new(ELeave) CWspHeaderReader_EncodingVersionCodePage_UnitTest(aDataLogger,
       
  2611 																aObserver);
       
  2612 	CleanupStack::PushL(self);
       
  2613 	self->ConstructL();
       
  2614 	CleanupStack::Pop(self);
       
  2615 	return self; 
       
  2616 	}
       
  2617 
       
  2618 inline TInt CWspHeaderReader_EncodingVersionCodePage_UnitTest::RunError(TInt aError)
       
  2619 	{
       
  2620 	// The RunL left so chain to the base first and then cleanup
       
  2621 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
  2622 	delete iUTContext;
       
  2623 	iUTContext = NULL;
       
  2624 	delete iStateAccessor;
       
  2625 	iStateAccessor = NULL;
       
  2626 	/* delete any validators used */
       
  2627 	delete iCtorValidator;
       
  2628 	iCtorValidator = NULL;
       
  2629 	delete iEncodingVersionCodePageValidator;
       
  2630 	iEncodingVersionCodePageValidator = NULL;
       
  2631 	delete iDtorValidator;
       
  2632 	iDtorValidator = NULL;
       
  2633 	return error;
       
  2634 	}
       
  2635 
       
  2636 inline CWspHeaderReader_EncodingVersionCodePage_UnitTest::~CWspHeaderReader_EncodingVersionCodePage_UnitTest()
       
  2637 	{
       
  2638 	// Simply delete our test class instance
       
  2639 	delete iUTContext;
       
  2640 	delete iStateAccessor;
       
  2641 	/* delete any validators used */
       
  2642 	delete iCtorValidator;
       
  2643 	delete iEncodingVersionCodePageValidator;
       
  2644 	delete iDtorValidator;
       
  2645 	}
       
  2646 
       
  2647 inline CWspHeaderReader_EncodingVersionCodePage_UnitTest::CWspHeaderReader_EncodingVersionCodePage_UnitTest(CDataLogger& aDataLogger,
       
  2648 																	MUnitTestObserver& aObserver)
       
  2649 : CUnitTest(KWspHeaderReaderEncodingVersionCodePageUnitTest, aDataLogger, aObserver)
       
  2650 	{
       
  2651 	//Do nothing
       
  2652 	}
       
  2653 
       
  2654 // Now the Individual transitions need to be added.
       
  2655 inline void CWspHeaderReader_EncodingVersionCodePage_UnitTest::ConstructL()
       
  2656 	{
       
  2657 	// Perform the base class initialization
       
  2658 	UnitTestConstructL();
       
  2659 
       
  2660 	// Create the Unit test state accessor
       
  2661 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
  2662 	// Construct the Unit test context.
       
  2663 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
  2664 	iUTContext->ConstructL(WSP::EEncodingVersion);
       
  2665 	iUTContext->iTestHeader->BeginRawDataL();
       
  2666 	TUint8 valLength = 0x01;
       
  2667 	TUint8 codePage = 0x81;
       
  2668 	iUTContext->iTestHeader->WriteRawDataL(valLength);
       
  2669 	iUTContext->iTestHeader->WriteRawDataL(codePage);
       
  2670 	iUTContext->iTestHeader->CommitRawData();
       
  2671 	_LIT8(KTxtExpected, "1");
       
  2672 	iUTContext->SetExpectedL(KTxtExpected);
       
  2673 	// Add the Transitions in the order they are to run
       
  2674 	// C'tor first, D'tor last...
       
  2675 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
  2676 		using constructor and destuctor validators */
       
  2677 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
  2678 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
  2679 	iEncodingVersionCodePageValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
  2680 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderL_Transition(*iUTContext,*iEncodingVersionCodePageValidator));
       
  2681 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
  2682 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
  2683 	}
       
  2684 
       
  2685 // ______________________________________________________________________________
       
  2686 //
       
  2687 _LIT(KWspHeaderReaderEncodingVersionCodePageIntVersionUnitTest,"CWspHeaderReader_EncodingVersionCodePageIntVersion_UnitTest");
       
  2688 
       
  2689 CWspHeaderReader_EncodingVersionCodePageIntVersion_UnitTest* CWspHeaderReader_EncodingVersionCodePageIntVersion_UnitTest::NewL(CDataLogger& aDataLogger,
       
  2690 											MUnitTestObserver& aObserver)
       
  2691 	{
       
  2692 	CWspHeaderReader_EncodingVersionCodePageIntVersion_UnitTest* self = 
       
  2693 					new(ELeave) CWspHeaderReader_EncodingVersionCodePageIntVersion_UnitTest(aDataLogger,
       
  2694 																aObserver);
       
  2695 	CleanupStack::PushL(self);
       
  2696 	self->ConstructL();
       
  2697 	CleanupStack::Pop(self);
       
  2698 	return self; 
       
  2699 	}
       
  2700 
       
  2701 inline TInt CWspHeaderReader_EncodingVersionCodePageIntVersion_UnitTest::RunError(TInt aError)
       
  2702 	{
       
  2703 	// The RunL left so chain to the base first and then cleanup
       
  2704 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
  2705 	delete iUTContext;
       
  2706 	iUTContext = NULL;
       
  2707 	delete iStateAccessor;
       
  2708 	iStateAccessor = NULL;
       
  2709 	/* delete any validators used */
       
  2710 	delete iCtorValidator;
       
  2711 	iCtorValidator = NULL;
       
  2712 	delete iEncodingVersionCodePageIntVersionValidator;
       
  2713 	iEncodingVersionCodePageIntVersionValidator = NULL;
       
  2714 	delete iDtorValidator;
       
  2715 	iDtorValidator = NULL;
       
  2716 	return error;
       
  2717 	}
       
  2718 
       
  2719 inline CWspHeaderReader_EncodingVersionCodePageIntVersion_UnitTest::~CWspHeaderReader_EncodingVersionCodePageIntVersion_UnitTest()
       
  2720 	{
       
  2721 	// Simply delete our test class instance
       
  2722 	delete iUTContext;
       
  2723 	delete iStateAccessor;
       
  2724 	/* delete any validators used */
       
  2725 	delete iCtorValidator;
       
  2726 	delete iEncodingVersionCodePageIntVersionValidator;
       
  2727 	delete iDtorValidator;
       
  2728 	}
       
  2729 
       
  2730 inline CWspHeaderReader_EncodingVersionCodePageIntVersion_UnitTest::CWspHeaderReader_EncodingVersionCodePageIntVersion_UnitTest(CDataLogger& aDataLogger,
       
  2731 																	MUnitTestObserver& aObserver)
       
  2732 : CUnitTest(KWspHeaderReaderEncodingVersionCodePageIntVersionUnitTest, aDataLogger, aObserver)
       
  2733 	{
       
  2734 	//Do nothing
       
  2735 	}
       
  2736 
       
  2737 // Now the Individual transitions need to be added.
       
  2738 inline void CWspHeaderReader_EncodingVersionCodePageIntVersion_UnitTest::ConstructL()
       
  2739 	{
       
  2740 	// Perform the base class initialization
       
  2741 	UnitTestConstructL();
       
  2742 
       
  2743 	// Create the Unit test state accessor
       
  2744 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
  2745 	// Construct the Unit test context.
       
  2746 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
  2747 	iUTContext->ConstructL(WSP::EEncodingVersion);
       
  2748 	iUTContext->iTestHeader->BeginRawDataL();
       
  2749 	TUint8 valLength = 0x02;
       
  2750 	TUint8 codePage = 0x81;
       
  2751 	TUint8 version = 0x91;
       
  2752 	iUTContext->iTestHeader->WriteRawDataL(valLength);
       
  2753 	iUTContext->iTestHeader->WriteRawDataL(codePage);
       
  2754 	iUTContext->iTestHeader->WriteRawDataL(version);
       
  2755 	iUTContext->iTestHeader->CommitRawData();
       
  2756 	_LIT8(KTxtExpected, "1,1.1");
       
  2757 	iUTContext->SetExpectedL(KTxtExpected);
       
  2758 	// Add the Transitions in the order they are to run
       
  2759 	// C'tor first, D'tor last...
       
  2760 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
  2761 		using constructor and destuctor validators */
       
  2762 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
  2763 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
  2764 	iEncodingVersionCodePageIntVersionValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
  2765 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderL_Transition(*iUTContext,*iEncodingVersionCodePageIntVersionValidator));
       
  2766 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
  2767 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
  2768 	}
       
  2769 
       
  2770 // ______________________________________________________________________________
       
  2771 //
       
  2772 _LIT(KWspHeaderReaderEncodingVersionCodePageTextVersionUnitTest,"CWspHeaderReader_EncodingVersionCodePageTextVersion_UnitTest");
       
  2773 
       
  2774 CWspHeaderReader_EncodingVersionCodePageTextVersion_UnitTest* CWspHeaderReader_EncodingVersionCodePageTextVersion_UnitTest::NewL(CDataLogger& aDataLogger,
       
  2775 											MUnitTestObserver& aObserver)
       
  2776 	{
       
  2777 	CWspHeaderReader_EncodingVersionCodePageTextVersion_UnitTest* self = 
       
  2778 					new(ELeave) CWspHeaderReader_EncodingVersionCodePageTextVersion_UnitTest(aDataLogger,
       
  2779 																aObserver);
       
  2780 	CleanupStack::PushL(self);
       
  2781 	self->ConstructL();
       
  2782 	CleanupStack::Pop(self);
       
  2783 	return self; 
       
  2784 	}
       
  2785 
       
  2786 inline TInt CWspHeaderReader_EncodingVersionCodePageTextVersion_UnitTest::RunError(TInt aError)
       
  2787 	{
       
  2788 	// The RunL left so chain to the base first and then cleanup
       
  2789 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
  2790 	delete iUTContext;
       
  2791 	iUTContext = NULL;
       
  2792 	delete iStateAccessor;
       
  2793 	iStateAccessor = NULL;
       
  2794 	/* delete any validators used */
       
  2795 	delete iCtorValidator;
       
  2796 	iCtorValidator = NULL;
       
  2797 	delete iEncodingVersionCodePageTextVersionValidator;
       
  2798 	iEncodingVersionCodePageTextVersionValidator = NULL;
       
  2799 	delete iDtorValidator;
       
  2800 	iDtorValidator = NULL;
       
  2801 	return error;
       
  2802 	}
       
  2803 
       
  2804 inline CWspHeaderReader_EncodingVersionCodePageTextVersion_UnitTest::~CWspHeaderReader_EncodingVersionCodePageTextVersion_UnitTest()
       
  2805 	{
       
  2806 	// Simply delete our test class instance
       
  2807 	delete iUTContext;
       
  2808 	delete iStateAccessor;
       
  2809 	/* delete any validators used */
       
  2810 	delete iCtorValidator;
       
  2811 	delete iEncodingVersionCodePageTextVersionValidator;
       
  2812 	delete iDtorValidator;
       
  2813 	}
       
  2814 
       
  2815 inline CWspHeaderReader_EncodingVersionCodePageTextVersion_UnitTest::CWspHeaderReader_EncodingVersionCodePageTextVersion_UnitTest(CDataLogger& aDataLogger,
       
  2816 																	MUnitTestObserver& aObserver)
       
  2817 : CUnitTest(KWspHeaderReaderEncodingVersionCodePageTextVersionUnitTest, aDataLogger, aObserver)
       
  2818 	{
       
  2819 	//Do nothing
       
  2820 	}
       
  2821 
       
  2822 // Now the Individual transitions need to be added.
       
  2823 inline void CWspHeaderReader_EncodingVersionCodePageTextVersion_UnitTest::ConstructL()
       
  2824 	{
       
  2825 	// Perform the base class initialization
       
  2826 	UnitTestConstructL();
       
  2827 
       
  2828 	// Create the Unit test state accessor
       
  2829 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
  2830 	// Construct the Unit test context.
       
  2831 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
  2832 	iUTContext->ConstructL(WSP::EEncodingVersion);
       
  2833 	iUTContext->iTestHeader->BeginRawDataL();
       
  2834 	TUint8 valLength = 0x06;
       
  2835 	TUint8 codePage = 0x81;
       
  2836 	_LIT8(KTxtVersion, "31.5\0");
       
  2837 	iUTContext->iTestHeader->WriteRawDataL(valLength);
       
  2838 	iUTContext->iTestHeader->WriteRawDataL(codePage);
       
  2839 	iUTContext->iTestHeader->WriteRawDataL(KTxtVersion);
       
  2840 	iUTContext->iTestHeader->CommitRawData();
       
  2841 	_LIT8(KTxtExpected, "1,31.5");
       
  2842 	iUTContext->SetExpectedL(KTxtExpected);
       
  2843 	// Add the Transitions in the order they are to run
       
  2844 	// C'tor first, D'tor last...
       
  2845 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
  2846 		using constructor and destuctor validators */
       
  2847 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
  2848 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
  2849 	iEncodingVersionCodePageTextVersionValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
  2850 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderL_Transition(*iUTContext,*iEncodingVersionCodePageTextVersionValidator));
       
  2851 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
  2852 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
  2853 	}
       
  2854 
       
  2855 // ______________________________________________________________________________
       
  2856 //
       
  2857 _LIT(KWspHeaderReaderEncodingVersionCodePageNullVersionUnitTest,"CWspHeaderReader_EncodingVersionCodePageNullVersion_UnitTest");
       
  2858 
       
  2859 CWspHeaderReader_EncodingVersionCodePageNullVersion_UnitTest* CWspHeaderReader_EncodingVersionCodePageNullVersion_UnitTest::NewL(CDataLogger& aDataLogger,
       
  2860 											MUnitTestObserver& aObserver)
       
  2861 	{
       
  2862 	CWspHeaderReader_EncodingVersionCodePageNullVersion_UnitTest* self = 
       
  2863 					new(ELeave) CWspHeaderReader_EncodingVersionCodePageNullVersion_UnitTest(aDataLogger,
       
  2864 																aObserver);
       
  2865 	CleanupStack::PushL(self);
       
  2866 	self->ConstructL();
       
  2867 	CleanupStack::Pop(self);
       
  2868 	return self; 
       
  2869 	}
       
  2870 
       
  2871 inline TInt CWspHeaderReader_EncodingVersionCodePageNullVersion_UnitTest::RunError(TInt aError)
       
  2872 	{
       
  2873 	// The RunL left so chain to the base first and then cleanup
       
  2874 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
  2875 	delete iUTContext;
       
  2876 	iUTContext = NULL;
       
  2877 	delete iStateAccessor;
       
  2878 	iStateAccessor = NULL;
       
  2879 	/* delete any validators used */
       
  2880 	delete iCtorValidator;
       
  2881 	iCtorValidator = NULL;
       
  2882 	delete iEncodingVersionCodePageNullVersionValidator;
       
  2883 	iEncodingVersionCodePageNullVersionValidator = NULL;
       
  2884 	delete iDtorValidator;
       
  2885 	iDtorValidator = NULL;
       
  2886 	return error;
       
  2887 	}
       
  2888 
       
  2889 inline CWspHeaderReader_EncodingVersionCodePageNullVersion_UnitTest::~CWspHeaderReader_EncodingVersionCodePageNullVersion_UnitTest()
       
  2890 	{
       
  2891 	// Simply delete our test class instance
       
  2892 	delete iUTContext;
       
  2893 	delete iStateAccessor;
       
  2894 	/* delete any validators used */
       
  2895 	delete iCtorValidator;
       
  2896 	delete iEncodingVersionCodePageNullVersionValidator;
       
  2897 	delete iDtorValidator;
       
  2898 	}
       
  2899 
       
  2900 inline CWspHeaderReader_EncodingVersionCodePageNullVersion_UnitTest::CWspHeaderReader_EncodingVersionCodePageNullVersion_UnitTest(CDataLogger& aDataLogger,
       
  2901 																	MUnitTestObserver& aObserver)
       
  2902 : CUnitTest(KWspHeaderReaderEncodingVersionCodePageNullVersionUnitTest, aDataLogger, aObserver)
       
  2903 	{
       
  2904 	//Do nothing
       
  2905 	}
       
  2906 
       
  2907 // Now the Individual transitions need to be added.
       
  2908 inline void CWspHeaderReader_EncodingVersionCodePageNullVersion_UnitTest::ConstructL()
       
  2909 	{
       
  2910 	// Perform the base class initialization
       
  2911 	UnitTestConstructL();
       
  2912 
       
  2913 	// Create the Unit test state accessor
       
  2914 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
  2915 	// Construct the Unit test context.
       
  2916 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
  2917 	iUTContext->ConstructL(WSP::EEncodingVersion);
       
  2918 	iUTContext->iTestHeader->BeginRawDataL();
       
  2919 	TUint8 valLength = 0x06;
       
  2920 	TUint8 codePage = 0x81;
       
  2921 	TUint8 version = 0x00;
       
  2922 	iUTContext->iTestHeader->WriteRawDataL(valLength);
       
  2923 	iUTContext->iTestHeader->WriteRawDataL(codePage);
       
  2924 	iUTContext->iTestHeader->WriteRawDataL(version);
       
  2925 	iUTContext->iTestHeader->CommitRawData();
       
  2926 	_LIT8(KTxtExpected, "1,");
       
  2927 	iUTContext->SetExpectedL(KTxtExpected);
       
  2928 	// Add the Transitions in the order they are to run
       
  2929 	// C'tor first, D'tor last...
       
  2930 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
  2931 		using constructor and destuctor validators */
       
  2932 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
  2933 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
  2934 	iEncodingVersionCodePageNullVersionValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
  2935 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderL_Transition(*iUTContext,*iEncodingVersionCodePageNullVersionValidator));
       
  2936 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
  2937 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
  2938 	}
       
  2939 
       
  2940 // ______________________________________________________________________________
       
  2941 //
       
  2942 _LIT(KWspHeaderReaderAcceptRangesNoneUnitTest,"CWspHeaderReader_AcceptRangesNone_UnitTest");
       
  2943 
       
  2944 CWspHeaderReader_AcceptRangesNone_UnitTest* CWspHeaderReader_AcceptRangesNone_UnitTest::NewL(CDataLogger& aDataLogger,
       
  2945 											MUnitTestObserver& aObserver)
       
  2946 	{
       
  2947 	CWspHeaderReader_AcceptRangesNone_UnitTest* self = 
       
  2948 					new(ELeave) CWspHeaderReader_AcceptRangesNone_UnitTest(aDataLogger,
       
  2949 																aObserver);
       
  2950 	CleanupStack::PushL(self);
       
  2951 	self->ConstructL();
       
  2952 	CleanupStack::Pop(self);
       
  2953 	return self; 
       
  2954 	}
       
  2955 
       
  2956 inline TInt CWspHeaderReader_AcceptRangesNone_UnitTest::RunError(TInt aError)
       
  2957 	{
       
  2958 	// The RunL left so chain to the base first and then cleanup
       
  2959 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
  2960 	delete iUTContext;
       
  2961 	iUTContext = NULL;
       
  2962 	delete iStateAccessor;
       
  2963 	iStateAccessor = NULL;
       
  2964 	/* delete any validators used */
       
  2965 	delete iCtorValidator;
       
  2966 	iCtorValidator = NULL;
       
  2967 	delete iAcceptRangesNoneValidator;
       
  2968 	iAcceptRangesNoneValidator = NULL;
       
  2969 	delete iDtorValidator;
       
  2970 	iDtorValidator = NULL;
       
  2971 	return error;
       
  2972 	}
       
  2973 
       
  2974 inline CWspHeaderReader_AcceptRangesNone_UnitTest::~CWspHeaderReader_AcceptRangesNone_UnitTest()
       
  2975 	{
       
  2976 	// Simply delete our test class instance
       
  2977 	delete iUTContext;
       
  2978 	delete iStateAccessor;
       
  2979 	/* delete any validators used */
       
  2980 	delete iCtorValidator;
       
  2981 	delete iAcceptRangesNoneValidator;
       
  2982 	delete iDtorValidator;
       
  2983 	}
       
  2984 
       
  2985 inline CWspHeaderReader_AcceptRangesNone_UnitTest::CWspHeaderReader_AcceptRangesNone_UnitTest(CDataLogger& aDataLogger,
       
  2986 																	MUnitTestObserver& aObserver)
       
  2987 : CUnitTest(KWspHeaderReaderAcceptRangesNoneUnitTest, aDataLogger, aObserver)
       
  2988 	{
       
  2989 	//Do nothing
       
  2990 	}
       
  2991 
       
  2992 // Now the Individual transitions need to be added.
       
  2993 inline void CWspHeaderReader_AcceptRangesNone_UnitTest::ConstructL()
       
  2994 	{
       
  2995 	// Perform the base class initialization
       
  2996 	UnitTestConstructL();
       
  2997 
       
  2998 	// Create the Unit test state accessor
       
  2999 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
  3000 	// Construct the Unit test context.
       
  3001 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
  3002 	iUTContext->ConstructL(WSP::EAcceptRanges);
       
  3003 	iUTContext->iTestHeader->BeginRawDataL();
       
  3004 	TUint8 noneToken = 0x80; // token value for 'none'
       
  3005 	iUTContext->iTestHeader->WriteRawDataL(noneToken);
       
  3006 	iUTContext->iTestHeader->CommitRawData();
       
  3007 	_LIT8(KTxtExpected, "None");
       
  3008 	iUTContext->SetExpectedL(KTxtExpected);
       
  3009 	// Add the Transitions in the order they are to run
       
  3010 	// C'tor first, D'tor last...
       
  3011 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
  3012 		using constructor and destuctor validators */
       
  3013 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
  3014 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
  3015 	iAcceptRangesNoneValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
  3016 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderL_Transition(*iUTContext,*iAcceptRangesNoneValidator));
       
  3017 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
  3018 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
  3019 	}
       
  3020 
       
  3021 // ______________________________________________________________________________
       
  3022 //
       
  3023 _LIT(KWspHeaderReaderAcceptRangesBytesUnitTest,"CWspHeaderReader_AcceptRangesBytes_UnitTest");
       
  3024 
       
  3025 CWspHeaderReader_AcceptRangesBytes_UnitTest* CWspHeaderReader_AcceptRangesBytes_UnitTest::NewL(CDataLogger& aDataLogger,
       
  3026 											MUnitTestObserver& aObserver)
       
  3027 	{
       
  3028 	CWspHeaderReader_AcceptRangesBytes_UnitTest* self = 
       
  3029 					new(ELeave) CWspHeaderReader_AcceptRangesBytes_UnitTest(aDataLogger,
       
  3030 																aObserver);
       
  3031 	CleanupStack::PushL(self);
       
  3032 	self->ConstructL();
       
  3033 	CleanupStack::Pop(self);
       
  3034 	return self; 
       
  3035 	}
       
  3036 
       
  3037 inline TInt CWspHeaderReader_AcceptRangesBytes_UnitTest::RunError(TInt aError)
       
  3038 	{
       
  3039 	// The RunL left so chain to the base first and then cleanup
       
  3040 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
  3041 	delete iUTContext;
       
  3042 	iUTContext = NULL;
       
  3043 	delete iStateAccessor;
       
  3044 	iStateAccessor = NULL;
       
  3045 	/* delete any validators used */
       
  3046 	delete iCtorValidator;
       
  3047 	iCtorValidator = NULL;
       
  3048 	delete iAcceptRangesBytesValidator;
       
  3049 	iAcceptRangesBytesValidator = NULL;
       
  3050 	delete iDtorValidator;
       
  3051 	iDtorValidator = NULL;
       
  3052 	return error;
       
  3053 	}
       
  3054 
       
  3055 inline CWspHeaderReader_AcceptRangesBytes_UnitTest::~CWspHeaderReader_AcceptRangesBytes_UnitTest()
       
  3056 	{
       
  3057 	// Simply delete our test class instance
       
  3058 	delete iUTContext;
       
  3059 	delete iStateAccessor;
       
  3060 	/* delete any validators used */
       
  3061 	delete iCtorValidator;
       
  3062 	delete iAcceptRangesBytesValidator;
       
  3063 	delete iDtorValidator;
       
  3064 	}
       
  3065 
       
  3066 inline CWspHeaderReader_AcceptRangesBytes_UnitTest::CWspHeaderReader_AcceptRangesBytes_UnitTest(CDataLogger& aDataLogger,
       
  3067 																	MUnitTestObserver& aObserver)
       
  3068 : CUnitTest(KWspHeaderReaderAcceptRangesBytesUnitTest, aDataLogger, aObserver)
       
  3069 	{
       
  3070 	//Do nothing
       
  3071 	}
       
  3072 
       
  3073 // Now the Individual transitions need to be added.
       
  3074 inline void CWspHeaderReader_AcceptRangesBytes_UnitTest::ConstructL()
       
  3075 	{
       
  3076 	// Perform the base class initialization
       
  3077 	UnitTestConstructL();
       
  3078 
       
  3079 	// Create the Unit test state accessor
       
  3080 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
  3081 	// Construct the Unit test context.
       
  3082 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
  3083 	iUTContext->ConstructL(WSP::EAcceptRanges);
       
  3084 	iUTContext->iTestHeader->BeginRawDataL();
       
  3085 	TUint8 bytesToken = 0x81; // token value for 'bytes'
       
  3086 	iUTContext->iTestHeader->WriteRawDataL(bytesToken);
       
  3087 	iUTContext->iTestHeader->CommitRawData();
       
  3088 	_LIT8(KTxtExpected, "Bytes");
       
  3089 	iUTContext->SetExpectedL(KTxtExpected);
       
  3090 	// Add the Transitions in the order they are to run
       
  3091 	// C'tor first, D'tor last...
       
  3092 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
  3093 		using constructor and destuctor validators */
       
  3094 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
  3095 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
  3096 	iAcceptRangesBytesValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
  3097 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderL_Transition(*iUTContext,*iAcceptRangesBytesValidator));
       
  3098 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
  3099 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
  3100 	}
       
  3101 
       
  3102 // ______________________________________________________________________________
       
  3103 //
       
  3104 _LIT(KWspHeaderReaderAcceptRangesTokenTextUnitTest,"CWspHeaderReader_AcceptRangesTokenText_UnitTest");
       
  3105 
       
  3106 CWspHeaderReader_AcceptRangesTokenText_UnitTest* CWspHeaderReader_AcceptRangesTokenText_UnitTest::NewL(CDataLogger& aDataLogger,
       
  3107 											MUnitTestObserver& aObserver)
       
  3108 	{
       
  3109 	CWspHeaderReader_AcceptRangesTokenText_UnitTest* self = 
       
  3110 					new(ELeave) CWspHeaderReader_AcceptRangesTokenText_UnitTest(aDataLogger,
       
  3111 																aObserver);
       
  3112 	CleanupStack::PushL(self);
       
  3113 	self->ConstructL();
       
  3114 	CleanupStack::Pop(self);
       
  3115 	return self; 
       
  3116 	}
       
  3117 
       
  3118 inline TInt CWspHeaderReader_AcceptRangesTokenText_UnitTest::RunError(TInt aError)
       
  3119 	{
       
  3120 	// The RunL left so chain to the base first and then cleanup
       
  3121 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
  3122 	delete iUTContext;
       
  3123 	iUTContext = NULL;
       
  3124 	delete iStateAccessor;
       
  3125 	iStateAccessor = NULL;
       
  3126 	/* delete any validators used */
       
  3127 	delete iCtorValidator;
       
  3128 	iCtorValidator = NULL;
       
  3129 	delete iAcceptRangesTokenTextValidator;
       
  3130 	iAcceptRangesTokenTextValidator = NULL;
       
  3131 	delete iDtorValidator;
       
  3132 	iDtorValidator = NULL;
       
  3133 	return error;
       
  3134 	}
       
  3135 
       
  3136 inline CWspHeaderReader_AcceptRangesTokenText_UnitTest::~CWspHeaderReader_AcceptRangesTokenText_UnitTest()
       
  3137 	{
       
  3138 	// Simply delete our test class instance
       
  3139 	delete iUTContext;
       
  3140 	delete iStateAccessor;
       
  3141 	/* delete any validators used */
       
  3142 	delete iCtorValidator;
       
  3143 	delete iAcceptRangesTokenTextValidator;
       
  3144 	delete iDtorValidator;
       
  3145 	}
       
  3146 
       
  3147 inline CWspHeaderReader_AcceptRangesTokenText_UnitTest::CWspHeaderReader_AcceptRangesTokenText_UnitTest(CDataLogger& aDataLogger,
       
  3148 																	MUnitTestObserver& aObserver)
       
  3149 : CUnitTest(KWspHeaderReaderAcceptRangesTokenTextUnitTest, aDataLogger, aObserver)
       
  3150 	{
       
  3151 	//Do nothing
       
  3152 	}
       
  3153 
       
  3154 // Now the Individual transitions need to be added.
       
  3155 inline void CWspHeaderReader_AcceptRangesTokenText_UnitTest::ConstructL()
       
  3156 	{
       
  3157 	// Perform the base class initialization
       
  3158 	UnitTestConstructL();
       
  3159 
       
  3160 	// Create the Unit test state accessor
       
  3161 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
  3162 	// Construct the Unit test context.
       
  3163 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
  3164 	iUTContext->ConstructL(WSP::EAcceptRanges);
       
  3165 	iUTContext->iTestHeader->BeginRawDataL();
       
  3166 	_LIT8(KTxtToken, "accept-ranges-token-text\0"); // token text
       
  3167 	iUTContext->iTestHeader->WriteRawDataL(KTxtToken);
       
  3168 	iUTContext->iTestHeader->CommitRawData();
       
  3169 	_LIT8(KTxtExpected, "accept-ranges-token-text");
       
  3170 	iUTContext->SetExpectedL(KTxtExpected);
       
  3171 	// Add the Transitions in the order they are to run
       
  3172 	// C'tor first, D'tor last...
       
  3173 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
  3174 		using constructor and destuctor validators */
       
  3175 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
  3176 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
  3177 	iAcceptRangesTokenTextValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
  3178 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderL_Transition(*iUTContext,*iAcceptRangesTokenTextValidator));
       
  3179 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
  3180 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
  3181 	}
       
  3182 
       
  3183 // ______________________________________________________________________________
       
  3184 //
       
  3185 _LIT(KWspHeaderReaderContentEncodingGZipUnitTest,"CWspHeaderReader_ContentEncodingGZip_UnitTest");
       
  3186 
       
  3187 CWspHeaderReader_ContentEncodingGZip_UnitTest* CWspHeaderReader_ContentEncodingGZip_UnitTest::NewL(CDataLogger& aDataLogger,
       
  3188 											MUnitTestObserver& aObserver)
       
  3189 	{
       
  3190 	CWspHeaderReader_ContentEncodingGZip_UnitTest* self = 
       
  3191 					new(ELeave) CWspHeaderReader_ContentEncodingGZip_UnitTest(aDataLogger,
       
  3192 																aObserver);
       
  3193 	CleanupStack::PushL(self);
       
  3194 	self->ConstructL();
       
  3195 	CleanupStack::Pop(self);
       
  3196 	return self; 
       
  3197 	}
       
  3198 
       
  3199 inline TInt CWspHeaderReader_ContentEncodingGZip_UnitTest::RunError(TInt aError)
       
  3200 	{
       
  3201 	// The RunL left so chain to the base first and then cleanup
       
  3202 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
  3203 	delete iUTContext;
       
  3204 	iUTContext = NULL;
       
  3205 	delete iStateAccessor;
       
  3206 	iStateAccessor = NULL;
       
  3207 	/* delete any validators used */
       
  3208 	delete iCtorValidator;
       
  3209 	iCtorValidator = NULL;
       
  3210 	delete iContentEncodingGZipValidator;
       
  3211 	iContentEncodingGZipValidator = NULL;
       
  3212 	delete iDtorValidator;
       
  3213 	iDtorValidator = NULL;
       
  3214 	return error;
       
  3215 	}
       
  3216 
       
  3217 inline CWspHeaderReader_ContentEncodingGZip_UnitTest::~CWspHeaderReader_ContentEncodingGZip_UnitTest()
       
  3218 	{
       
  3219 	// Simply delete our test class instance
       
  3220 	delete iUTContext;
       
  3221 	delete iStateAccessor;
       
  3222 	/* delete any validators used */
       
  3223 	delete iCtorValidator;
       
  3224 	delete iContentEncodingGZipValidator;
       
  3225 	delete iDtorValidator;
       
  3226 	}
       
  3227 
       
  3228 inline CWspHeaderReader_ContentEncodingGZip_UnitTest::CWspHeaderReader_ContentEncodingGZip_UnitTest(CDataLogger& aDataLogger,
       
  3229 																	MUnitTestObserver& aObserver)
       
  3230 : CUnitTest(KWspHeaderReaderContentEncodingGZipUnitTest, aDataLogger, aObserver)
       
  3231 	{
       
  3232 	//Do nothing
       
  3233 	}
       
  3234 
       
  3235 // Now the Individual transitions need to be added.
       
  3236 inline void CWspHeaderReader_ContentEncodingGZip_UnitTest::ConstructL()
       
  3237 	{
       
  3238 	// Perform the base class initialization
       
  3239 	UnitTestConstructL();
       
  3240 
       
  3241 	// Create the Unit test state accessor
       
  3242 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
  3243 	// Construct the Unit test context.
       
  3244 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
  3245 	iUTContext->ConstructL(WSP::EContentEncoding);
       
  3246 	iUTContext->iTestHeader->BeginRawDataL();
       
  3247 	TUint8 gzipToken = 0x80;
       
  3248 	iUTContext->iTestHeader->WriteRawDataL(gzipToken);
       
  3249 	iUTContext->iTestHeader->CommitRawData();
       
  3250 	_LIT8(KTxtExpected, "GZip");
       
  3251 	iUTContext->SetExpectedL(KTxtExpected);
       
  3252 	// Add the Transitions in the order they are to run
       
  3253 	// C'tor first, D'tor last...
       
  3254 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
  3255 		using constructor and destuctor validators */
       
  3256 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
  3257 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
  3258 	iContentEncodingGZipValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
  3259 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderL_Transition(*iUTContext,*iContentEncodingGZipValidator));
       
  3260 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
  3261 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
  3262 	}
       
  3263 
       
  3264 // ______________________________________________________________________________
       
  3265 //
       
  3266 _LIT(KWspHeaderReaderContentEncodingCompressUnitTest,"CWspHeaderReader_ContentEncodingCompress_UnitTest");
       
  3267 
       
  3268 CWspHeaderReader_ContentEncodingCompress_UnitTest* CWspHeaderReader_ContentEncodingCompress_UnitTest::NewL(CDataLogger& aDataLogger,
       
  3269 											MUnitTestObserver& aObserver)
       
  3270 	{
       
  3271 	CWspHeaderReader_ContentEncodingCompress_UnitTest* self = 
       
  3272 					new(ELeave) CWspHeaderReader_ContentEncodingCompress_UnitTest(aDataLogger,
       
  3273 																aObserver);
       
  3274 	CleanupStack::PushL(self);
       
  3275 	self->ConstructL();
       
  3276 	CleanupStack::Pop(self);
       
  3277 	return self; 
       
  3278 	}
       
  3279 
       
  3280 inline TInt CWspHeaderReader_ContentEncodingCompress_UnitTest::RunError(TInt aError)
       
  3281 	{
       
  3282 	// The RunL left so chain to the base first and then cleanup
       
  3283 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
  3284 	delete iUTContext;
       
  3285 	iUTContext = NULL;
       
  3286 	delete iStateAccessor;
       
  3287 	iStateAccessor = NULL;
       
  3288 	/* delete any validators used */
       
  3289 	delete iCtorValidator;
       
  3290 	iCtorValidator = NULL;
       
  3291 	delete iContentEncodingCompressValidator;
       
  3292 	iContentEncodingCompressValidator = NULL;
       
  3293 	delete iDtorValidator;
       
  3294 	iDtorValidator = NULL;
       
  3295 	return error;
       
  3296 	}
       
  3297 
       
  3298 inline CWspHeaderReader_ContentEncodingCompress_UnitTest::~CWspHeaderReader_ContentEncodingCompress_UnitTest()
       
  3299 	{
       
  3300 	// Simply delete our test class instance
       
  3301 	delete iUTContext;
       
  3302 	delete iStateAccessor;
       
  3303 	/* delete any validators used */
       
  3304 	delete iCtorValidator;
       
  3305 	delete iContentEncodingCompressValidator;
       
  3306 	delete iDtorValidator;
       
  3307 	}
       
  3308 
       
  3309 inline CWspHeaderReader_ContentEncodingCompress_UnitTest::CWspHeaderReader_ContentEncodingCompress_UnitTest(CDataLogger& aDataLogger,
       
  3310 																	MUnitTestObserver& aObserver)
       
  3311 : CUnitTest(KWspHeaderReaderContentEncodingCompressUnitTest, aDataLogger, aObserver)
       
  3312 	{
       
  3313 	//Do nothing
       
  3314 	}
       
  3315 
       
  3316 // Now the Individual transitions need to be added.
       
  3317 inline void CWspHeaderReader_ContentEncodingCompress_UnitTest::ConstructL()
       
  3318 	{
       
  3319 	// Perform the base class initialization
       
  3320 	UnitTestConstructL();
       
  3321 
       
  3322 	// Create the Unit test state accessor
       
  3323 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
  3324 	// Construct the Unit test context.
       
  3325 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
  3326 	iUTContext->ConstructL(WSP::EContentEncoding);
       
  3327 	iUTContext->iTestHeader->BeginRawDataL();
       
  3328 	TUint8 compressToken = 0x81;
       
  3329 	iUTContext->iTestHeader->WriteRawDataL(compressToken);
       
  3330 	iUTContext->iTestHeader->CommitRawData();
       
  3331 	_LIT8(KTxtExpected, "Compress");
       
  3332 	iUTContext->SetExpectedL(KTxtExpected);
       
  3333 	// Add the Transitions in the order they are to run
       
  3334 	// C'tor first, D'tor last...
       
  3335 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
  3336 		using constructor and destuctor validators */
       
  3337 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
  3338 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
  3339 	iContentEncodingCompressValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
  3340 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderL_Transition(*iUTContext,*iContentEncodingCompressValidator));
       
  3341 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
  3342 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
  3343 	}
       
  3344 
       
  3345 // ______________________________________________________________________________
       
  3346 //
       
  3347 _LIT(KWspHeaderReaderContentEncodingDeflateUnitTest,"CWspHeaderReader_ContentEncodingDeflate_UnitTest");
       
  3348 
       
  3349 CWspHeaderReader_ContentEncodingDeflate_UnitTest* CWspHeaderReader_ContentEncodingDeflate_UnitTest::NewL(CDataLogger& aDataLogger,
       
  3350 											MUnitTestObserver& aObserver)
       
  3351 	{
       
  3352 	CWspHeaderReader_ContentEncodingDeflate_UnitTest* self = 
       
  3353 					new(ELeave) CWspHeaderReader_ContentEncodingDeflate_UnitTest(aDataLogger,
       
  3354 																aObserver);
       
  3355 	CleanupStack::PushL(self);
       
  3356 	self->ConstructL();
       
  3357 	CleanupStack::Pop(self);
       
  3358 	return self; 
       
  3359 	}
       
  3360 
       
  3361 inline TInt CWspHeaderReader_ContentEncodingDeflate_UnitTest::RunError(TInt aError)
       
  3362 	{
       
  3363 	// The RunL left so chain to the base first and then cleanup
       
  3364 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
  3365 	delete iUTContext;
       
  3366 	iUTContext = NULL;
       
  3367 	delete iStateAccessor;
       
  3368 	iStateAccessor = NULL;
       
  3369 	/* delete any validators used */
       
  3370 	delete iCtorValidator;
       
  3371 	iCtorValidator = NULL;
       
  3372 	delete iContentEncodingDeflateValidator;
       
  3373 	iContentEncodingDeflateValidator = NULL;
       
  3374 	delete iDtorValidator;
       
  3375 	iDtorValidator = NULL;
       
  3376 	return error;
       
  3377 	}
       
  3378 
       
  3379 inline CWspHeaderReader_ContentEncodingDeflate_UnitTest::~CWspHeaderReader_ContentEncodingDeflate_UnitTest()
       
  3380 	{
       
  3381 	// Simply delete our test class instance
       
  3382 	delete iUTContext;
       
  3383 	delete iStateAccessor;
       
  3384 	/* delete any validators used */
       
  3385 	delete iCtorValidator;
       
  3386 	delete iContentEncodingDeflateValidator;
       
  3387 	delete iDtorValidator;
       
  3388 	}
       
  3389 
       
  3390 inline CWspHeaderReader_ContentEncodingDeflate_UnitTest::CWspHeaderReader_ContentEncodingDeflate_UnitTest(CDataLogger& aDataLogger,
       
  3391 																	MUnitTestObserver& aObserver)
       
  3392 : CUnitTest(KWspHeaderReaderContentEncodingDeflateUnitTest, aDataLogger, aObserver)
       
  3393 	{
       
  3394 	//Do nothing
       
  3395 	}
       
  3396 
       
  3397 // Now the Individual transitions need to be added.
       
  3398 inline void CWspHeaderReader_ContentEncodingDeflate_UnitTest::ConstructL()
       
  3399 	{
       
  3400 	// Perform the base class initialization
       
  3401 	UnitTestConstructL();
       
  3402 
       
  3403 	// Create the Unit test state accessor
       
  3404 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
  3405 	// Construct the Unit test context.
       
  3406 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
  3407 	iUTContext->ConstructL(WSP::EContentEncoding);
       
  3408 	iUTContext->iTestHeader->BeginRawDataL();
       
  3409 	TUint8 deflateToken = 0x82;
       
  3410 	iUTContext->iTestHeader->WriteRawDataL(deflateToken);
       
  3411 	iUTContext->iTestHeader->CommitRawData();
       
  3412 	_LIT8(KTxtExpected, "Deflate");
       
  3413 	iUTContext->SetExpectedL(KTxtExpected);
       
  3414 	// Add the Transitions in the order they are to run
       
  3415 	// C'tor first, D'tor last...
       
  3416 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
  3417 		using constructor and destuctor validators */
       
  3418 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
  3419 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
  3420 	iContentEncodingDeflateValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
  3421 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderL_Transition(*iUTContext,*iContentEncodingDeflateValidator));
       
  3422 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
  3423 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
  3424 	}
       
  3425 
       
  3426 // ______________________________________________________________________________
       
  3427 //
       
  3428 _LIT(KWspHeaderReaderContentEncodingTokenTextUnitTest,"CWspHeaderReader_ContentEncodingTokenText_UnitTest");
       
  3429 
       
  3430 CWspHeaderReader_ContentEncodingTokenText_UnitTest* CWspHeaderReader_ContentEncodingTokenText_UnitTest::NewL(CDataLogger& aDataLogger,
       
  3431 											MUnitTestObserver& aObserver)
       
  3432 	{
       
  3433 	CWspHeaderReader_ContentEncodingTokenText_UnitTest* self = 
       
  3434 					new(ELeave) CWspHeaderReader_ContentEncodingTokenText_UnitTest(aDataLogger,
       
  3435 																aObserver);
       
  3436 	CleanupStack::PushL(self);
       
  3437 	self->ConstructL();
       
  3438 	CleanupStack::Pop(self);
       
  3439 	return self; 
       
  3440 	}
       
  3441 
       
  3442 inline TInt CWspHeaderReader_ContentEncodingTokenText_UnitTest::RunError(TInt aError)
       
  3443 	{
       
  3444 	// The RunL left so chain to the base first and then cleanup
       
  3445 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
  3446 	delete iUTContext;
       
  3447 	iUTContext = NULL;
       
  3448 	delete iStateAccessor;
       
  3449 	iStateAccessor = NULL;
       
  3450 	/* delete any validators used */
       
  3451 	delete iCtorValidator;
       
  3452 	iCtorValidator = NULL;
       
  3453 	delete iContentEncodingTokenTextValidator;
       
  3454 	iContentEncodingTokenTextValidator = NULL;
       
  3455 	delete iDtorValidator;
       
  3456 	iDtorValidator = NULL;
       
  3457 	return error;
       
  3458 	}
       
  3459 
       
  3460 inline CWspHeaderReader_ContentEncodingTokenText_UnitTest::~CWspHeaderReader_ContentEncodingTokenText_UnitTest()
       
  3461 	{
       
  3462 	// Simply delete our test class instance
       
  3463 	delete iUTContext;
       
  3464 	delete iStateAccessor;
       
  3465 	/* delete any validators used */
       
  3466 	delete iCtorValidator;
       
  3467 	delete iContentEncodingTokenTextValidator;
       
  3468 	delete iDtorValidator;
       
  3469 	}
       
  3470 
       
  3471 inline CWspHeaderReader_ContentEncodingTokenText_UnitTest::CWspHeaderReader_ContentEncodingTokenText_UnitTest(CDataLogger& aDataLogger,
       
  3472 																	MUnitTestObserver& aObserver)
       
  3473 : CUnitTest(KWspHeaderReaderContentEncodingTokenTextUnitTest, aDataLogger, aObserver)
       
  3474 	{
       
  3475 	//Do nothing
       
  3476 	}
       
  3477 
       
  3478 // Now the Individual transitions need to be added.
       
  3479 inline void CWspHeaderReader_ContentEncodingTokenText_UnitTest::ConstructL()
       
  3480 	{
       
  3481 	// Perform the base class initialization
       
  3482 	UnitTestConstructL();
       
  3483 
       
  3484 	// Create the Unit test state accessor
       
  3485 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
  3486 	// Construct the Unit test context.
       
  3487 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
  3488 	iUTContext->ConstructL(WSP::EContentEncoding);
       
  3489 	iUTContext->iTestHeader->BeginRawDataL();
       
  3490 	_LIT8(KTxtTokenText, "token-text\0");
       
  3491 	iUTContext->iTestHeader->WriteRawDataL(KTxtTokenText);
       
  3492 	iUTContext->iTestHeader->CommitRawData();
       
  3493 	_LIT8(KTxtExpected, "Token-text");
       
  3494 	iUTContext->SetExpectedL(KTxtExpected);
       
  3495 	// Add the Transitions in the order they are to run
       
  3496 	// C'tor first, D'tor last...
       
  3497 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
  3498 		using constructor and destuctor validators */
       
  3499 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
  3500 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
  3501 	iContentEncodingTokenTextValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
  3502 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderL_Transition(*iUTContext,*iContentEncodingTokenTextValidator));
       
  3503 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
  3504 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
  3505 	}
       
  3506 
       
  3507 // ______________________________________________________________________________
       
  3508 //
       
  3509 _LIT(KWspHeaderReaderContentLanguageAnyLangUnitTest,"CWspHeaderReader_ContentLanguageAnyLang_UnitTest");
       
  3510 
       
  3511 CWspHeaderReader_ContentLanguageAnyLang_UnitTest* CWspHeaderReader_ContentLanguageAnyLang_UnitTest::NewL(CDataLogger& aDataLogger,
       
  3512 											MUnitTestObserver& aObserver)
       
  3513 	{
       
  3514 	CWspHeaderReader_ContentLanguageAnyLang_UnitTest* self = 
       
  3515 					new(ELeave) CWspHeaderReader_ContentLanguageAnyLang_UnitTest(aDataLogger,
       
  3516 																aObserver);
       
  3517 	CleanupStack::PushL(self);
       
  3518 	self->ConstructL();
       
  3519 	CleanupStack::Pop(self);
       
  3520 	return self; 
       
  3521 	}
       
  3522 
       
  3523 inline TInt CWspHeaderReader_ContentLanguageAnyLang_UnitTest::RunError(TInt aError)
       
  3524 	{
       
  3525 	// The RunL left so chain to the base first and then cleanup
       
  3526 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
  3527 	delete iUTContext;
       
  3528 	iUTContext = NULL;
       
  3529 	delete iStateAccessor;
       
  3530 	iStateAccessor = NULL;
       
  3531 	/* delete any validators used */
       
  3532 	delete iCtorValidator;
       
  3533 	iCtorValidator = NULL;
       
  3534 	delete iContentLanguageAnyLangValidator;
       
  3535 	iContentLanguageAnyLangValidator = NULL;
       
  3536 	delete iDtorValidator;
       
  3537 	iDtorValidator = NULL;
       
  3538 	return error;
       
  3539 	}
       
  3540 
       
  3541 inline CWspHeaderReader_ContentLanguageAnyLang_UnitTest::~CWspHeaderReader_ContentLanguageAnyLang_UnitTest()
       
  3542 	{
       
  3543 	// Simply delete our test class instance
       
  3544 	delete iUTContext;
       
  3545 	delete iStateAccessor;
       
  3546 	/* delete any validators used */
       
  3547 	delete iCtorValidator;
       
  3548 	delete iContentLanguageAnyLangValidator;
       
  3549 	delete iDtorValidator;
       
  3550 	}
       
  3551 
       
  3552 inline CWspHeaderReader_ContentLanguageAnyLang_UnitTest::CWspHeaderReader_ContentLanguageAnyLang_UnitTest(CDataLogger& aDataLogger,
       
  3553 																	MUnitTestObserver& aObserver)
       
  3554 : CUnitTest(KWspHeaderReaderContentLanguageAnyLangUnitTest, aDataLogger, aObserver)
       
  3555 	{
       
  3556 	//Do nothing
       
  3557 	}
       
  3558 
       
  3559 // Now the Individual transitions need to be added.
       
  3560 inline void CWspHeaderReader_ContentLanguageAnyLang_UnitTest::ConstructL()
       
  3561 	{
       
  3562 	// Perform the base class initialization
       
  3563 	UnitTestConstructL();
       
  3564 
       
  3565 	// Create the Unit test state accessor
       
  3566 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
  3567 	// Construct the Unit test context.
       
  3568 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
  3569 	iUTContext->ConstructL(WSP::EContentLanguage);
       
  3570 	iUTContext->iTestHeader->BeginRawDataL();
       
  3571 	TUint8 anyLang = 0x80;
       
  3572 	iUTContext->iTestHeader->WriteRawDataL(anyLang);
       
  3573 	iUTContext->iTestHeader->CommitRawData();
       
  3574 	_LIT8(KTxtExpected, "*");
       
  3575 	iUTContext->SetExpectedL(KTxtExpected);
       
  3576 	// Add the Transitions in the order they are to run
       
  3577 	// C'tor first, D'tor last...
       
  3578 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
  3579 		using constructor and destuctor validators */
       
  3580 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
  3581 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
  3582 	iContentLanguageAnyLangValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
  3583 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderL_Transition(*iUTContext,*iContentLanguageAnyLangValidator));
       
  3584 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
  3585 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
  3586 	}
       
  3587 
       
  3588 // ______________________________________________________________________________
       
  3589 //
       
  3590 _LIT(KWspHeaderReaderContentLanguageShortIntUnitTest,"CWspHeaderReader_ContentLanguageShortInt_UnitTest");
       
  3591 
       
  3592 CWspHeaderReader_ContentLanguageShortInt_UnitTest* CWspHeaderReader_ContentLanguageShortInt_UnitTest::NewL(CDataLogger& aDataLogger,
       
  3593 											MUnitTestObserver& aObserver)
       
  3594 	{
       
  3595 	CWspHeaderReader_ContentLanguageShortInt_UnitTest* self = 
       
  3596 					new(ELeave) CWspHeaderReader_ContentLanguageShortInt_UnitTest(aDataLogger,
       
  3597 																aObserver);
       
  3598 	CleanupStack::PushL(self);
       
  3599 	self->ConstructL();
       
  3600 	CleanupStack::Pop(self);
       
  3601 	return self; 
       
  3602 	}
       
  3603 
       
  3604 inline TInt CWspHeaderReader_ContentLanguageShortInt_UnitTest::RunError(TInt aError)
       
  3605 	{
       
  3606 	// The RunL left so chain to the base first and then cleanup
       
  3607 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
  3608 	delete iUTContext;
       
  3609 	iUTContext = NULL;
       
  3610 	delete iStateAccessor;
       
  3611 	iStateAccessor = NULL;
       
  3612 	/* delete any validators used */
       
  3613 	delete iCtorValidator;
       
  3614 	iCtorValidator = NULL;
       
  3615 	delete iContentLanguageShortIntValidator;
       
  3616 	iContentLanguageShortIntValidator = NULL;
       
  3617 	delete iDtorValidator;
       
  3618 	iDtorValidator = NULL;
       
  3619 	return error;
       
  3620 	}
       
  3621 
       
  3622 inline CWspHeaderReader_ContentLanguageShortInt_UnitTest::~CWspHeaderReader_ContentLanguageShortInt_UnitTest()
       
  3623 	{
       
  3624 	// Simply delete our test class instance
       
  3625 	delete iUTContext;
       
  3626 	delete iStateAccessor;
       
  3627 	/* delete any validators used */
       
  3628 	delete iCtorValidator;
       
  3629 	delete iContentLanguageShortIntValidator;
       
  3630 	delete iDtorValidator;
       
  3631 	}
       
  3632 
       
  3633 inline CWspHeaderReader_ContentLanguageShortInt_UnitTest::CWspHeaderReader_ContentLanguageShortInt_UnitTest(CDataLogger& aDataLogger,
       
  3634 																	MUnitTestObserver& aObserver)
       
  3635 : CUnitTest(KWspHeaderReaderContentLanguageShortIntUnitTest, aDataLogger, aObserver)
       
  3636 	{
       
  3637 	//Do nothing
       
  3638 	}
       
  3639 
       
  3640 // Now the Individual transitions need to be added.
       
  3641 inline void CWspHeaderReader_ContentLanguageShortInt_UnitTest::ConstructL()
       
  3642 	{
       
  3643 	// Perform the base class initialization
       
  3644 	UnitTestConstructL();
       
  3645 
       
  3646 	// Create the Unit test state accessor
       
  3647 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
  3648 	// Construct the Unit test context.
       
  3649 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
  3650 	iUTContext->ConstructL(WSP::EContentLanguage);
       
  3651 	iUTContext->iTestHeader->BeginRawDataL();
       
  3652 	TUint8 spanish = 0x9B;	// token for spanish 'es' language with top bit set
       
  3653 	iUTContext->iTestHeader->WriteRawDataL(spanish);
       
  3654 	iUTContext->iTestHeader->CommitRawData();
       
  3655 	_LIT8(KTxtExpected, "es");
       
  3656 	iUTContext->SetExpectedL(KTxtExpected);
       
  3657 	// Add the Transitions in the order they are to run
       
  3658 	// C'tor first, D'tor last...
       
  3659 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
  3660 		using constructor and destuctor validators */
       
  3661 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
  3662 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
  3663 	iContentLanguageShortIntValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
  3664 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderL_Transition(*iUTContext,*iContentLanguageShortIntValidator));
       
  3665 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
  3666 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
  3667 	}
       
  3668 
       
  3669 // ______________________________________________________________________________
       
  3670 //
       
  3671 _LIT(KWspHeaderReaderContentLanguageLongIntUnitTest,"CWspHeaderReader_ContentLanguageLongInt_UnitTest");
       
  3672 
       
  3673 CWspHeaderReader_ContentLanguageLongInt_UnitTest* CWspHeaderReader_ContentLanguageLongInt_UnitTest::NewL(CDataLogger& aDataLogger,
       
  3674 											MUnitTestObserver& aObserver)
       
  3675 	{
       
  3676 	CWspHeaderReader_ContentLanguageLongInt_UnitTest* self = 
       
  3677 					new(ELeave) CWspHeaderReader_ContentLanguageLongInt_UnitTest(aDataLogger,
       
  3678 																aObserver);
       
  3679 	CleanupStack::PushL(self);
       
  3680 	self->ConstructL();
       
  3681 	CleanupStack::Pop(self);
       
  3682 	return self; 
       
  3683 	}
       
  3684 
       
  3685 inline TInt CWspHeaderReader_ContentLanguageLongInt_UnitTest::RunError(TInt aError)
       
  3686 	{
       
  3687 	// The RunL left so chain to the base first and then cleanup
       
  3688 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
  3689 	delete iUTContext;
       
  3690 	iUTContext = NULL;
       
  3691 	delete iStateAccessor;
       
  3692 	iStateAccessor = NULL;
       
  3693 	/* delete any validators used */
       
  3694 	delete iCtorValidator;
       
  3695 	iCtorValidator = NULL;
       
  3696 	delete iContentLanguageLongIntValidator;
       
  3697 	iContentLanguageLongIntValidator = NULL;
       
  3698 	delete iDtorValidator;
       
  3699 	iDtorValidator = NULL;
       
  3700 	return error;
       
  3701 	}
       
  3702 
       
  3703 inline CWspHeaderReader_ContentLanguageLongInt_UnitTest::~CWspHeaderReader_ContentLanguageLongInt_UnitTest()
       
  3704 	{
       
  3705 	// Simply delete our test class instance
       
  3706 	delete iUTContext;
       
  3707 	delete iStateAccessor;
       
  3708 	/* delete any validators used */
       
  3709 	delete iCtorValidator;
       
  3710 	delete iContentLanguageLongIntValidator;
       
  3711 	delete iDtorValidator;
       
  3712 	}
       
  3713 
       
  3714 inline CWspHeaderReader_ContentLanguageLongInt_UnitTest::CWspHeaderReader_ContentLanguageLongInt_UnitTest(CDataLogger& aDataLogger,
       
  3715 																	MUnitTestObserver& aObserver)
       
  3716 : CUnitTest(KWspHeaderReaderContentLanguageLongIntUnitTest, aDataLogger, aObserver)
       
  3717 	{
       
  3718 	//Do nothing
       
  3719 	}
       
  3720 
       
  3721 // Now the Individual transitions need to be added.
       
  3722 inline void CWspHeaderReader_ContentLanguageLongInt_UnitTest::ConstructL()
       
  3723 	{
       
  3724 	// Perform the base class initialization
       
  3725 	UnitTestConstructL();
       
  3726 
       
  3727 	// Create the Unit test state accessor
       
  3728 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
  3729 	// Construct the Unit test context.
       
  3730 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
  3731 	iUTContext->ConstructL(WSP::EContentLanguage);
       
  3732 	iUTContext->iTestHeader->BeginRawDataL();
       
  3733 	TUint8 length = 0x01;
       
  3734 	TUint8 greenlandic = 0x8A; // token for grrenlanic 'kl'
       
  3735 	iUTContext->iTestHeader->WriteRawDataL(length);
       
  3736 	iUTContext->iTestHeader->WriteRawDataL(greenlandic);
       
  3737 	iUTContext->iTestHeader->CommitRawData();
       
  3738 	_LIT8(KTxtExpected, "kl");
       
  3739 	iUTContext->SetExpectedL(KTxtExpected);
       
  3740 	// Add the Transitions in the order they are to run
       
  3741 	// C'tor first, D'tor last...
       
  3742 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
  3743 		using constructor and destuctor validators */
       
  3744 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
  3745 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
  3746 	iContentLanguageLongIntValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
  3747 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderL_Transition(*iUTContext,*iContentLanguageLongIntValidator));
       
  3748 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
  3749 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
  3750 	}
       
  3751 
       
  3752 // ______________________________________________________________________________
       
  3753 //
       
  3754 _LIT(KWspHeaderReaderContentLanguageTokenTextUnitTest,"CWspHeaderReader_ContentLanguageTokenText_UnitTest");
       
  3755 
       
  3756 CWspHeaderReader_ContentLanguageTokenText_UnitTest* CWspHeaderReader_ContentLanguageTokenText_UnitTest::NewL(CDataLogger& aDataLogger,
       
  3757 											MUnitTestObserver& aObserver)
       
  3758 	{
       
  3759 	CWspHeaderReader_ContentLanguageTokenText_UnitTest* self = 
       
  3760 					new(ELeave) CWspHeaderReader_ContentLanguageTokenText_UnitTest(aDataLogger,
       
  3761 																aObserver);
       
  3762 	CleanupStack::PushL(self);
       
  3763 	self->ConstructL();
       
  3764 	CleanupStack::Pop(self);
       
  3765 	return self; 
       
  3766 	}
       
  3767 
       
  3768 inline TInt CWspHeaderReader_ContentLanguageTokenText_UnitTest::RunError(TInt aError)
       
  3769 	{
       
  3770 	// The RunL left so chain to the base first and then cleanup
       
  3771 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
  3772 	delete iUTContext;
       
  3773 	iUTContext = NULL;
       
  3774 	delete iStateAccessor;
       
  3775 	iStateAccessor = NULL;
       
  3776 	/* delete any validators used */
       
  3777 	delete iCtorValidator;
       
  3778 	iCtorValidator = NULL;
       
  3779 	delete iContentLanguageTokenTextValidator;
       
  3780 	iContentLanguageTokenTextValidator = NULL;
       
  3781 	delete iDtorValidator;
       
  3782 	iDtorValidator = NULL;
       
  3783 	return error;
       
  3784 	}
       
  3785 
       
  3786 inline CWspHeaderReader_ContentLanguageTokenText_UnitTest::~CWspHeaderReader_ContentLanguageTokenText_UnitTest()
       
  3787 	{
       
  3788 	// Simply delete our test class instance
       
  3789 	delete iUTContext;
       
  3790 	delete iStateAccessor;
       
  3791 	/* delete any validators used */
       
  3792 	delete iCtorValidator;
       
  3793 	delete iContentLanguageTokenTextValidator;
       
  3794 	delete iDtorValidator;
       
  3795 	}
       
  3796 
       
  3797 inline CWspHeaderReader_ContentLanguageTokenText_UnitTest::CWspHeaderReader_ContentLanguageTokenText_UnitTest(CDataLogger& aDataLogger,
       
  3798 																	MUnitTestObserver& aObserver)
       
  3799 : CUnitTest(KWspHeaderReaderContentLanguageTokenTextUnitTest, aDataLogger, aObserver)
       
  3800 	{
       
  3801 	//Do nothing
       
  3802 	}
       
  3803 
       
  3804 // Now the Individual transitions need to be added.
       
  3805 inline void CWspHeaderReader_ContentLanguageTokenText_UnitTest::ConstructL()
       
  3806 	{
       
  3807 	// Perform the base class initialization
       
  3808 	UnitTestConstructL();
       
  3809 
       
  3810 	// Create the Unit test state accessor
       
  3811 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
  3812 	// Construct the Unit test context.
       
  3813 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
  3814 	iUTContext->ConstructL(WSP::EContentLanguage);
       
  3815 	iUTContext->iTestHeader->BeginRawDataL();
       
  3816 	_LIT8(KTxtTokenText, "language-in-text\0");
       
  3817 	iUTContext->iTestHeader->WriteRawDataL(KTxtTokenText);
       
  3818 	iUTContext->iTestHeader->CommitRawData();
       
  3819 	_LIT8(KTxtExpected, "language-in-text");
       
  3820 	iUTContext->SetExpectedL(KTxtExpected);
       
  3821 	// Add the Transitions in the order they are to run
       
  3822 	// C'tor first, D'tor last...
       
  3823 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
  3824 		using constructor and destuctor validators */
       
  3825 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
  3826 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
  3827 	iContentLanguageTokenTextValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
  3828 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderL_Transition(*iUTContext,*iContentLanguageTokenTextValidator));
       
  3829 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
  3830 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
  3831 	}
       
  3832 
       
  3833 // ______________________________________________________________________________
       
  3834 //
       
  3835 _LIT(KWspHeaderReaderContentLanguageNotExistUnitTest,"CWspHeaderReader_ContentLanguageNotExist_UnitTest");
       
  3836 
       
  3837 CWspHeaderReader_ContentLanguageNotExist_UnitTest* CWspHeaderReader_ContentLanguageNotExist_UnitTest::NewL(CDataLogger& aDataLogger,
       
  3838 											MUnitTestObserver& aObserver)
       
  3839 	{
       
  3840 	CWspHeaderReader_ContentLanguageNotExist_UnitTest* self = 
       
  3841 					new(ELeave) CWspHeaderReader_ContentLanguageNotExist_UnitTest(aDataLogger,
       
  3842 																aObserver);
       
  3843 	CleanupStack::PushL(self);
       
  3844 	self->ConstructL();
       
  3845 	CleanupStack::Pop(self);
       
  3846 	return self; 
       
  3847 	}
       
  3848 
       
  3849 inline TInt CWspHeaderReader_ContentLanguageNotExist_UnitTest::RunError(TInt aError)
       
  3850 	{
       
  3851 	// The RunL left so chain to the base first and then cleanup
       
  3852 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
  3853 	delete iUTContext;
       
  3854 	iUTContext = NULL;
       
  3855 	delete iStateAccessor;
       
  3856 	iStateAccessor = NULL;
       
  3857 	/* delete any validators used */
       
  3858 	delete iCtorValidator;
       
  3859 	iCtorValidator = NULL;
       
  3860 	delete iContentLanguageNotExistValidator;
       
  3861 	iContentLanguageNotExistValidator = NULL;
       
  3862 	delete iDtorValidator;
       
  3863 	iDtorValidator = NULL;
       
  3864 	return error;
       
  3865 	}
       
  3866 
       
  3867 inline CWspHeaderReader_ContentLanguageNotExist_UnitTest::~CWspHeaderReader_ContentLanguageNotExist_UnitTest()
       
  3868 	{
       
  3869 	// Simply delete our test class instance
       
  3870 	delete iUTContext;
       
  3871 	delete iStateAccessor;
       
  3872 	/* delete any validators used */
       
  3873 	delete iCtorValidator;
       
  3874 	delete iContentLanguageNotExistValidator;
       
  3875 	delete iDtorValidator;
       
  3876 	}
       
  3877 
       
  3878 inline CWspHeaderReader_ContentLanguageNotExist_UnitTest::CWspHeaderReader_ContentLanguageNotExist_UnitTest(CDataLogger& aDataLogger,
       
  3879 																	MUnitTestObserver& aObserver)
       
  3880 : CUnitTest(KWspHeaderReaderContentLanguageNotExistUnitTest, aDataLogger, aObserver)
       
  3881 	{
       
  3882 	//Do nothing
       
  3883 	}
       
  3884 
       
  3885 // Now the Individual transitions need to be added.
       
  3886 inline void CWspHeaderReader_ContentLanguageNotExist_UnitTest::ConstructL()
       
  3887 	{
       
  3888 	// Perform the base class initialization
       
  3889 	UnitTestConstructL();
       
  3890 
       
  3891 	// Create the Unit test state accessor
       
  3892 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
  3893 	// Construct the Unit test context.
       
  3894 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
  3895 	iUTContext->ConstructL(WSP::EContentLanguage);
       
  3896 	TUint8 length = 0x02;
       
  3897 	TUint8 notExist1 = 0x8A;
       
  3898 	TUint8 notExist2 = 0x81;
       
  3899 	iUTContext->iTestHeader->BeginRawDataL();
       
  3900 	iUTContext->iTestHeader->WriteRawDataL(length);
       
  3901 	iUTContext->iTestHeader->WriteRawDataL(notExist1);
       
  3902 	iUTContext->iTestHeader->WriteRawDataL(notExist2);
       
  3903 	iUTContext->iTestHeader->CommitRawData();
       
  3904 	_LIT8(KTxtExpected, "-20");
       
  3905 	iUTContext->SetExpectedL(KTxtExpected);
       
  3906 	// Add the Transitions in the order they are to run
       
  3907 	// C'tor first, D'tor last...
       
  3908 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
  3909 		using constructor and destuctor validators */
       
  3910 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
  3911 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
  3912 	iContentLanguageNotExistValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
  3913 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderLTrap_Transition(*iUTContext,*iContentLanguageNotExistValidator));
       
  3914 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
  3915 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
  3916 	}
       
  3917 
       
  3918 // ______________________________________________________________________________
       
  3919 //
       
  3920 _LIT(KWspHeaderReaderContentMD5UnitTest,"CWspHeaderReader_ContentMD5_UnitTest");
       
  3921 
       
  3922 CWspHeaderReader_ContentMD5_UnitTest* CWspHeaderReader_ContentMD5_UnitTest::NewL(CDataLogger& aDataLogger,
       
  3923 											MUnitTestObserver& aObserver)
       
  3924 	{
       
  3925 	CWspHeaderReader_ContentMD5_UnitTest* self = 
       
  3926 					new(ELeave) CWspHeaderReader_ContentMD5_UnitTest(aDataLogger,
       
  3927 																aObserver);
       
  3928 	CleanupStack::PushL(self);
       
  3929 	self->ConstructL();
       
  3930 	CleanupStack::Pop(self);
       
  3931 	return self; 
       
  3932 	}
       
  3933 
       
  3934 inline TInt CWspHeaderReader_ContentMD5_UnitTest::RunError(TInt aError)
       
  3935 	{
       
  3936 	// The RunL left so chain to the base first and then cleanup
       
  3937 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
  3938 	delete iUTContext;
       
  3939 	iUTContext = NULL;
       
  3940 	delete iStateAccessor;
       
  3941 	iStateAccessor = NULL;
       
  3942 	/* delete any validators used */
       
  3943 	delete iCtorValidator;
       
  3944 	iCtorValidator = NULL;
       
  3945 	delete iContentMD5Validator;
       
  3946 	iContentMD5Validator = NULL;
       
  3947 	delete iDtorValidator;
       
  3948 	iDtorValidator = NULL;
       
  3949 	return error;
       
  3950 	}
       
  3951 
       
  3952 inline CWspHeaderReader_ContentMD5_UnitTest::~CWspHeaderReader_ContentMD5_UnitTest()
       
  3953 	{
       
  3954 	// Simply delete our test class instance
       
  3955 	delete iUTContext;
       
  3956 	delete iStateAccessor;
       
  3957 	/* delete any validators used */
       
  3958 	delete iCtorValidator;
       
  3959 	delete iContentMD5Validator;
       
  3960 	delete iDtorValidator;
       
  3961 	}
       
  3962 
       
  3963 inline CWspHeaderReader_ContentMD5_UnitTest::CWspHeaderReader_ContentMD5_UnitTest(CDataLogger& aDataLogger,
       
  3964 																	MUnitTestObserver& aObserver)
       
  3965 : CUnitTest(KWspHeaderReaderContentMD5UnitTest, aDataLogger, aObserver)
       
  3966 	{
       
  3967 	//Do nothing
       
  3968 	}
       
  3969 
       
  3970 // Now the Individual transitions need to be added.
       
  3971 inline void CWspHeaderReader_ContentMD5_UnitTest::ConstructL()
       
  3972 	{
       
  3973 	// Perform the base class initialization
       
  3974 	UnitTestConstructL();
       
  3975 
       
  3976 	// Create the Unit test state accessor
       
  3977 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
  3978 	// Construct the Unit test context.
       
  3979 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
  3980 	iUTContext->ConstructL(WSP::EContentMD5);
       
  3981 	TUint8 length = 0x10;
       
  3982 	iUTContext->iTestHeader->BeginRawDataL();
       
  3983 	_LIT8(KTxtMD5Data, "ThisIsContentMD5");
       
  3984 	iUTContext->iTestHeader->WriteRawDataL(length);
       
  3985 	iUTContext->iTestHeader->WriteRawDataL(KTxtMD5Data);
       
  3986 	iUTContext->iTestHeader->CommitRawData();
       
  3987 	_LIT8(KTxtExpected, "ThisIsContentMD5");
       
  3988 	iUTContext->SetExpectedL(KTxtExpected);
       
  3989 	// Add the Transitions in the order they are to run
       
  3990 	// C'tor first, D'tor last...
       
  3991 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
  3992 		using constructor and destuctor validators */
       
  3993 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
  3994 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
  3995 	iContentMD5Validator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
  3996 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderL_Transition(*iUTContext,*iContentMD5Validator));
       
  3997 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
  3998 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
  3999 	}
       
  4000 
       
  4001 // ______________________________________________________________________________
       
  4002 //
       
  4003 _LIT(KWspHeaderReaderContentMD5TooShortUnitTest,"CWspHeaderReader_ContentMD5TooShort_UnitTest");
       
  4004 
       
  4005 CWspHeaderReader_ContentMD5TooShort_UnitTest* CWspHeaderReader_ContentMD5TooShort_UnitTest::NewL(CDataLogger& aDataLogger,
       
  4006 											MUnitTestObserver& aObserver)
       
  4007 	{
       
  4008 	CWspHeaderReader_ContentMD5TooShort_UnitTest* self = 
       
  4009 					new(ELeave) CWspHeaderReader_ContentMD5TooShort_UnitTest(aDataLogger,
       
  4010 																aObserver);
       
  4011 	CleanupStack::PushL(self);
       
  4012 	self->ConstructL();
       
  4013 	CleanupStack::Pop(self);
       
  4014 	return self; 
       
  4015 	}
       
  4016 
       
  4017 inline TInt CWspHeaderReader_ContentMD5TooShort_UnitTest::RunError(TInt aError)
       
  4018 	{
       
  4019 	// The RunL left so chain to the base first and then cleanup
       
  4020 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
  4021 	delete iUTContext;
       
  4022 	iUTContext = NULL;
       
  4023 	delete iStateAccessor;
       
  4024 	iStateAccessor = NULL;
       
  4025 	/* delete any validators used */
       
  4026 	delete iCtorValidator;
       
  4027 	iCtorValidator = NULL;
       
  4028 	delete iContentMD5TooShortValidator;
       
  4029 	iContentMD5TooShortValidator = NULL;
       
  4030 	delete iDtorValidator;
       
  4031 	iDtorValidator = NULL;
       
  4032 	return error;
       
  4033 	}
       
  4034 
       
  4035 inline CWspHeaderReader_ContentMD5TooShort_UnitTest::~CWspHeaderReader_ContentMD5TooShort_UnitTest()
       
  4036 	{
       
  4037 	// Simply delete our test class instance
       
  4038 	delete iUTContext;
       
  4039 	delete iStateAccessor;
       
  4040 	/* delete any validators used */
       
  4041 	delete iCtorValidator;
       
  4042 	delete iContentMD5TooShortValidator;
       
  4043 	delete iDtorValidator;
       
  4044 	}
       
  4045 
       
  4046 inline CWspHeaderReader_ContentMD5TooShort_UnitTest::CWspHeaderReader_ContentMD5TooShort_UnitTest(CDataLogger& aDataLogger,
       
  4047 																	MUnitTestObserver& aObserver)
       
  4048 : CUnitTest(KWspHeaderReaderContentMD5TooShortUnitTest, aDataLogger, aObserver)
       
  4049 	{
       
  4050 	//Do nothing
       
  4051 	}
       
  4052 
       
  4053 // Now the Individual transitions need to be added.
       
  4054 inline void CWspHeaderReader_ContentMD5TooShort_UnitTest::ConstructL()
       
  4055 	{
       
  4056 	// Perform the base class initialization
       
  4057 	UnitTestConstructL();
       
  4058 
       
  4059 	// Create the Unit test state accessor
       
  4060 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
  4061 	// Construct the Unit test context.
       
  4062 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
  4063 	iUTContext->ConstructL(WSP::EContentMD5);
       
  4064 	TUint8 length = 0x10; // length of 16, but actual data is less
       
  4065 	iUTContext->iTestHeader->BeginRawDataL();
       
  4066 	_LIT8(KTxtMD5Data, "ThisIsTooShort");
       
  4067 	iUTContext->iTestHeader->WriteRawDataL(length);
       
  4068 	iUTContext->iTestHeader->WriteRawDataL(KTxtMD5Data);
       
  4069 	iUTContext->iTestHeader->CommitRawData();
       
  4070 	_LIT8(KTxtExpected, "-20");
       
  4071 	iUTContext->SetExpectedL(KTxtExpected);
       
  4072 	// Add the Transitions in the order they are to run
       
  4073 	// C'tor first, D'tor last...
       
  4074 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
  4075 		using constructor and destuctor validators */
       
  4076 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
  4077 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
  4078 	iContentMD5TooShortValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
  4079 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderLTrap_Transition(*iUTContext,*iContentMD5TooShortValidator));
       
  4080 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
  4081 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
  4082 	}
       
  4083 
       
  4084 // ______________________________________________________________________________
       
  4085 //
       
  4086 _LIT(KWspHeaderReaderProxyAuthenticateBasicUnitTest,"CWspHeaderReader_ProxyAuthenticateBasic_UnitTest");
       
  4087 
       
  4088 CWspHeaderReader_ProxyAuthenticateBasic_UnitTest* CWspHeaderReader_ProxyAuthenticateBasic_UnitTest::NewL(CDataLogger& aDataLogger,
       
  4089 											MUnitTestObserver& aObserver)
       
  4090 	{
       
  4091 	CWspHeaderReader_ProxyAuthenticateBasic_UnitTest* self = 
       
  4092 					new(ELeave) CWspHeaderReader_ProxyAuthenticateBasic_UnitTest(aDataLogger,
       
  4093 																aObserver);
       
  4094 	CleanupStack::PushL(self);
       
  4095 	self->ConstructL();
       
  4096 	CleanupStack::Pop(self);
       
  4097 	return self; 
       
  4098 	}
       
  4099 
       
  4100 inline TInt CWspHeaderReader_ProxyAuthenticateBasic_UnitTest::RunError(TInt aError)
       
  4101 	{
       
  4102 	// The RunL left so chain to the base first and then cleanup
       
  4103 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
  4104 	delete iUTContext;
       
  4105 	iUTContext = NULL;
       
  4106 	delete iStateAccessor;
       
  4107 	iStateAccessor = NULL;
       
  4108 	/* delete any validators used */
       
  4109 	delete iCtorValidator;
       
  4110 	iCtorValidator = NULL;
       
  4111 	delete iProxyAuthenticateBasicValidator;
       
  4112 	iProxyAuthenticateBasicValidator = NULL;
       
  4113 	delete iDtorValidator;
       
  4114 	iDtorValidator = NULL;
       
  4115 	return error;
       
  4116 	}
       
  4117 
       
  4118 inline CWspHeaderReader_ProxyAuthenticateBasic_UnitTest::~CWspHeaderReader_ProxyAuthenticateBasic_UnitTest()
       
  4119 	{
       
  4120 	// Simply delete our test class instance
       
  4121 	delete iUTContext;
       
  4122 	delete iStateAccessor;
       
  4123 	/* delete any validators used */
       
  4124 	delete iCtorValidator;
       
  4125 	delete iProxyAuthenticateBasicValidator;
       
  4126 	delete iDtorValidator;
       
  4127 	}
       
  4128 
       
  4129 inline CWspHeaderReader_ProxyAuthenticateBasic_UnitTest::CWspHeaderReader_ProxyAuthenticateBasic_UnitTest(CDataLogger& aDataLogger,
       
  4130 																	MUnitTestObserver& aObserver)
       
  4131 : CUnitTest(KWspHeaderReaderProxyAuthenticateBasicUnitTest, aDataLogger, aObserver)
       
  4132 	{
       
  4133 	//Do nothing
       
  4134 	}
       
  4135 
       
  4136 // Now the Individual transitions need to be added.
       
  4137 inline void CWspHeaderReader_ProxyAuthenticateBasic_UnitTest::ConstructL()
       
  4138 	{
       
  4139 	// Perform the base class initialization
       
  4140 	UnitTestConstructL();
       
  4141 
       
  4142 	// Create the Unit test state accessor
       
  4143 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
  4144 	// Construct the Unit test context.
       
  4145 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
  4146 	iUTContext->ConstructL(WSP::EProxyAuthenticate);
       
  4147 	iUTContext->iTestHeader->BeginRawDataL();
       
  4148 	TUint8 octet0D = 0x0D; // short length octet for 13 bytes
       
  4149 	TUint8 octet80 = 0x80; // <octet 128> token for basic
       
  4150 	_LIT8(KTxtRealm, "Realm-value\0");
       
  4151 	iUTContext->iTestHeader->WriteRawDataL(octet0D);
       
  4152 	iUTContext->iTestHeader->WriteRawDataL(octet80);
       
  4153 	iUTContext->iTestHeader->WriteRawDataL(KTxtRealm());
       
  4154 	iUTContext->iTestHeader->CommitRawData();
       
  4155 	_LIT8(KTxtExpected, "Basic,Realm-value");
       
  4156 	iUTContext->SetExpectedL(KTxtExpected());
       
  4157 	// Add the Transitions in the order they are to run
       
  4158 	// C'tor first, D'tor last...
       
  4159 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
  4160 		using constructor and destuctor validators */
       
  4161 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
  4162 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
  4163 	iProxyAuthenticateBasicValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
  4164 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderL_Transition(*iUTContext,*iProxyAuthenticateBasicValidator));
       
  4165 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
  4166 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
  4167 	}
       
  4168 
       
  4169 // ______________________________________________________________________________
       
  4170 //
       
  4171 _LIT(KWspHeaderReaderServerTextUnitTest,"CWspHeaderReader_ServerText_UnitTest");
       
  4172 
       
  4173 CWspHeaderReader_ServerText_UnitTest* CWspHeaderReader_ServerText_UnitTest::NewL(CDataLogger& aDataLogger,
       
  4174 											MUnitTestObserver& aObserver)
       
  4175 	{
       
  4176 	CWspHeaderReader_ServerText_UnitTest* self = 
       
  4177 					new(ELeave) CWspHeaderReader_ServerText_UnitTest(aDataLogger,
       
  4178 																aObserver);
       
  4179 	CleanupStack::PushL(self);
       
  4180 	self->ConstructL();
       
  4181 	CleanupStack::Pop(self);
       
  4182 	return self; 
       
  4183 	}
       
  4184 
       
  4185 inline TInt CWspHeaderReader_ServerText_UnitTest::RunError(TInt aError)
       
  4186 	{
       
  4187 	// The RunL left so chain to the base first and then cleanup
       
  4188 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
  4189 	delete iUTContext;
       
  4190 	iUTContext = NULL;
       
  4191 	delete iStateAccessor;
       
  4192 	iStateAccessor = NULL;
       
  4193 	/* delete any validators used */
       
  4194 	delete iCtorValidator;
       
  4195 	iCtorValidator = NULL;
       
  4196 	delete iServerTextValidator;
       
  4197 	iServerTextValidator = NULL;
       
  4198 	delete iDtorValidator;
       
  4199 	iDtorValidator = NULL;
       
  4200 	return error;
       
  4201 	}
       
  4202 
       
  4203 inline CWspHeaderReader_ServerText_UnitTest::~CWspHeaderReader_ServerText_UnitTest()
       
  4204 	{
       
  4205 	// Simply delete our test class instance
       
  4206 	delete iUTContext;
       
  4207 	delete iStateAccessor;
       
  4208 	/* delete any validators used */
       
  4209 	delete iCtorValidator;
       
  4210 	delete iServerTextValidator;
       
  4211 	delete iDtorValidator;
       
  4212 	}
       
  4213 
       
  4214 inline CWspHeaderReader_ServerText_UnitTest::CWspHeaderReader_ServerText_UnitTest(CDataLogger& aDataLogger,
       
  4215 																	MUnitTestObserver& aObserver)
       
  4216 : CUnitTest(KWspHeaderReaderServerTextUnitTest, aDataLogger, aObserver)
       
  4217 	{
       
  4218 	//Do nothing
       
  4219 	}
       
  4220 
       
  4221 // Now the Individual transitions need to be added.
       
  4222 inline void CWspHeaderReader_ServerText_UnitTest::ConstructL()
       
  4223 	{
       
  4224 	// Perform the base class initialization
       
  4225 	UnitTestConstructL();
       
  4226 
       
  4227 	// Create the Unit test state accessor
       
  4228 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
  4229 	// Construct the Unit test context.
       
  4230 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
  4231 	iUTContext->ConstructL(WSP::EServer);
       
  4232 	iUTContext->iTestHeader->BeginRawDataL();
       
  4233 	_LIT8(KTxtText, "www.myservervalue.com\0");
       
  4234 	iUTContext->iTestHeader->WriteRawDataL(KTxtText);
       
  4235 	iUTContext->iTestHeader->CommitRawData();
       
  4236 	_LIT8(KTxtExpected, "www.myservervalue.com");
       
  4237 	iUTContext->SetExpectedL(KTxtExpected());
       
  4238 	// Add the Transitions in the order they are to run
       
  4239 	// C'tor first, D'tor last...
       
  4240 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
  4241 		using constructor and destuctor validators */
       
  4242 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
  4243 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
  4244 	iServerTextValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
  4245 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderL_Transition(*iUTContext,*iServerTextValidator));
       
  4246 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
  4247 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
  4248 	}
       
  4249 
       
  4250 // ______________________________________________________________________________
       
  4251 //
       
  4252 _LIT(KWspHeaderReaderServerNullTextUnitTest,"CWspHeaderReader_ServerNullText_UnitTest");
       
  4253 
       
  4254 CWspHeaderReader_ServerNullText_UnitTest* CWspHeaderReader_ServerNullText_UnitTest::NewL(CDataLogger& aDataLogger,
       
  4255 											MUnitTestObserver& aObserver)
       
  4256 	{
       
  4257 	CWspHeaderReader_ServerNullText_UnitTest* self = 
       
  4258 					new(ELeave) CWspHeaderReader_ServerNullText_UnitTest(aDataLogger,
       
  4259 																aObserver);
       
  4260 	CleanupStack::PushL(self);
       
  4261 	self->ConstructL();
       
  4262 	CleanupStack::Pop(self);
       
  4263 	return self; 
       
  4264 	}
       
  4265 
       
  4266 inline TInt CWspHeaderReader_ServerNullText_UnitTest::RunError(TInt aError)
       
  4267 	{
       
  4268 	// The RunL left so chain to the base first and then cleanup
       
  4269 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
  4270 	delete iUTContext;
       
  4271 	iUTContext = NULL;
       
  4272 	delete iStateAccessor;
       
  4273 	iStateAccessor = NULL;
       
  4274 	/* delete any validators used */
       
  4275 	delete iCtorValidator;
       
  4276 	iCtorValidator = NULL;
       
  4277 	delete iServerNullTextValidator;
       
  4278 	iServerNullTextValidator = NULL;
       
  4279 	delete iDtorValidator;
       
  4280 	iDtorValidator = NULL;
       
  4281 	return error;
       
  4282 	}
       
  4283 
       
  4284 inline CWspHeaderReader_ServerNullText_UnitTest::~CWspHeaderReader_ServerNullText_UnitTest()
       
  4285 	{
       
  4286 	// Simply delete our test class instance
       
  4287 	delete iUTContext;
       
  4288 	delete iStateAccessor;
       
  4289 	/* delete any validators used */
       
  4290 	delete iCtorValidator;
       
  4291 	delete iServerNullTextValidator;
       
  4292 	delete iDtorValidator;
       
  4293 	}
       
  4294 
       
  4295 inline CWspHeaderReader_ServerNullText_UnitTest::CWspHeaderReader_ServerNullText_UnitTest(CDataLogger& aDataLogger,
       
  4296 																	MUnitTestObserver& aObserver)
       
  4297 : CUnitTest(KWspHeaderReaderServerNullTextUnitTest, aDataLogger, aObserver)
       
  4298 	{
       
  4299 	//Do nothing
       
  4300 	}
       
  4301 
       
  4302 // Now the Individual transitions need to be added.
       
  4303 inline void CWspHeaderReader_ServerNullText_UnitTest::ConstructL()
       
  4304 	{
       
  4305 	// Perform the base class initialization
       
  4306 	UnitTestConstructL();
       
  4307 
       
  4308 	// Create the Unit test state accessor
       
  4309 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
  4310 	// Construct the Unit test context.
       
  4311 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
  4312 	iUTContext->ConstructL(WSP::EServer);
       
  4313 	iUTContext->iTestHeader->BeginRawDataL();
       
  4314 	TUint8 nullString = 0x00;
       
  4315 	iUTContext->iTestHeader->WriteRawDataL(nullString);
       
  4316 	iUTContext->iTestHeader->CommitRawData();
       
  4317 	iUTContext->SetExpectedL(KNullDesC8());
       
  4318 	// Add the Transitions in the order they are to run
       
  4319 	// C'tor first, D'tor last...
       
  4320 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
  4321 		using constructor and destuctor validators */
       
  4322 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
  4323 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
  4324 	iServerNullTextValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
  4325 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderL_Transition(*iUTContext,*iServerNullTextValidator));
       
  4326 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
  4327 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
  4328 	}
       
  4329 
       
  4330 // ______________________________________________________________________________
       
  4331 //
       
  4332 _LIT(KWspHeaderReaderRetryAfterAbsoluteDateUnitTest,"CWspHeaderReader_RetryAfterAbsoluteDate_UnitTest");
       
  4333 
       
  4334 CWspHeaderReader_RetryAfterAbsoluteDate_UnitTest* CWspHeaderReader_RetryAfterAbsoluteDate_UnitTest::NewL(CDataLogger& aDataLogger,
       
  4335 											MUnitTestObserver& aObserver)
       
  4336 	{
       
  4337 	CWspHeaderReader_RetryAfterAbsoluteDate_UnitTest* self = 
       
  4338 					new(ELeave) CWspHeaderReader_RetryAfterAbsoluteDate_UnitTest(aDataLogger,
       
  4339 																aObserver);
       
  4340 	CleanupStack::PushL(self);
       
  4341 	self->ConstructL();
       
  4342 	CleanupStack::Pop(self);
       
  4343 	return self; 
       
  4344 	}
       
  4345 
       
  4346 inline TInt CWspHeaderReader_RetryAfterAbsoluteDate_UnitTest::RunError(TInt aError)
       
  4347 	{
       
  4348 	// The RunL left so chain to the base first and then cleanup
       
  4349 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
  4350 	delete iUTContext;
       
  4351 	iUTContext = NULL;
       
  4352 	delete iStateAccessor;
       
  4353 	iStateAccessor = NULL;
       
  4354 	/* delete any validators used */
       
  4355 	delete iCtorValidator;
       
  4356 	iCtorValidator = NULL;
       
  4357 	delete iRetryAfterAbsoluteDateValidator;
       
  4358 	iRetryAfterAbsoluteDateValidator = NULL;
       
  4359 	delete iDtorValidator;
       
  4360 	iDtorValidator = NULL;
       
  4361 	return error;
       
  4362 	}
       
  4363 
       
  4364 inline CWspHeaderReader_RetryAfterAbsoluteDate_UnitTest::~CWspHeaderReader_RetryAfterAbsoluteDate_UnitTest()
       
  4365 	{
       
  4366 	// Simply delete our test class instance
       
  4367 	delete iUTContext;
       
  4368 	delete iStateAccessor;
       
  4369 	/* delete any validators used */
       
  4370 	delete iCtorValidator;
       
  4371 	delete iRetryAfterAbsoluteDateValidator;
       
  4372 	delete iDtorValidator;
       
  4373 	}
       
  4374 
       
  4375 inline CWspHeaderReader_RetryAfterAbsoluteDate_UnitTest::CWspHeaderReader_RetryAfterAbsoluteDate_UnitTest(CDataLogger& aDataLogger,
       
  4376 																	MUnitTestObserver& aObserver)
       
  4377 : CUnitTest(KWspHeaderReaderRetryAfterAbsoluteDateUnitTest, aDataLogger, aObserver)
       
  4378 	{
       
  4379 	//Do nothing
       
  4380 	}
       
  4381 
       
  4382 // Now the Individual transitions need to be added.
       
  4383 inline void CWspHeaderReader_RetryAfterAbsoluteDate_UnitTest::ConstructL()
       
  4384 	{
       
  4385 	// Perform the base class initialization
       
  4386 	UnitTestConstructL();
       
  4387 
       
  4388 	// Create the Unit test state accessor
       
  4389 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
  4390 	// Construct the Unit test context.
       
  4391 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
  4392 	iUTContext->ConstructL(WSP::ERetryAfter);
       
  4393 	iUTContext->iTestHeader->BeginRawDataL();
       
  4394 	TUint8 valueLength = 0x05; // short int value length
       
  4395 	TUint8 absoluteToken = 0x80; // token for absolute value
       
  4396 	TUint8 length = 0x03; // short int length for date
       
  4397 	TUint8 octet255 = 0xFF; // example date value
       
  4398 	TUint8 octet254 = 0xFE; // example date value
       
  4399 	iUTContext->iTestHeader->WriteRawDataL(valueLength);
       
  4400 	iUTContext->iTestHeader->WriteRawDataL(absoluteToken);
       
  4401 	iUTContext->iTestHeader->WriteRawDataL(length);
       
  4402 	iUTContext->iTestHeader->WriteRawDataL(octet255);
       
  4403 	iUTContext->iTestHeader->WriteRawDataL(octet255);
       
  4404 	iUTContext->iTestHeader->WriteRawDataL(octet254);
       
  4405 	iUTContext->iTestHeader->CommitRawData();
       
  4406 	_LIT8(KTxtExpected, "Tue, 14 Jul 1970 04:20:14 GMT");
       
  4407 	iUTContext->SetExpectedL(KTxtExpected);
       
  4408 	// Add the Transitions in the order they are to run
       
  4409 	// C'tor first, D'tor last...
       
  4410 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
  4411 		using constructor and destuctor validators */
       
  4412 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
  4413 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
  4414 	iRetryAfterAbsoluteDateValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
  4415 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderL_Transition(*iUTContext,*iRetryAfterAbsoluteDateValidator));
       
  4416 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
  4417 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
  4418 	}
       
  4419 
       
  4420 // ______________________________________________________________________________
       
  4421 //
       
  4422 _LIT(KWspHeaderReaderRetryAfterRelativeTimeUnitTest,"CWspHeaderReader_RetryAfterRelativeTime_UnitTest");
       
  4423 
       
  4424 CWspHeaderReader_RetryAfterRelativeTime_UnitTest* CWspHeaderReader_RetryAfterRelativeTime_UnitTest::NewL(CDataLogger& aDataLogger,
       
  4425 											MUnitTestObserver& aObserver)
       
  4426 	{
       
  4427 	CWspHeaderReader_RetryAfterRelativeTime_UnitTest* self = 
       
  4428 					new(ELeave) CWspHeaderReader_RetryAfterRelativeTime_UnitTest(aDataLogger,
       
  4429 																aObserver);
       
  4430 	CleanupStack::PushL(self);
       
  4431 	self->ConstructL();
       
  4432 	CleanupStack::Pop(self);
       
  4433 	return self; 
       
  4434 	}
       
  4435 
       
  4436 inline TInt CWspHeaderReader_RetryAfterRelativeTime_UnitTest::RunError(TInt aError)
       
  4437 	{
       
  4438 	// The RunL left so chain to the base first and then cleanup
       
  4439 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
  4440 	delete iUTContext;
       
  4441 	iUTContext = NULL;
       
  4442 	delete iStateAccessor;
       
  4443 	iStateAccessor = NULL;
       
  4444 	/* delete any validators used */
       
  4445 	delete iCtorValidator;
       
  4446 	iCtorValidator = NULL;
       
  4447 	delete iRetryAfterRelativeTimeValidator;
       
  4448 	iRetryAfterRelativeTimeValidator = NULL;
       
  4449 	delete iDtorValidator;
       
  4450 	iDtorValidator = NULL;
       
  4451 	return error;
       
  4452 	}
       
  4453 
       
  4454 inline CWspHeaderReader_RetryAfterRelativeTime_UnitTest::~CWspHeaderReader_RetryAfterRelativeTime_UnitTest()
       
  4455 	{
       
  4456 	// Simply delete our test class instance
       
  4457 	delete iUTContext;
       
  4458 	delete iStateAccessor;
       
  4459 	/* delete any validators used */
       
  4460 	delete iCtorValidator;
       
  4461 	delete iRetryAfterRelativeTimeValidator;
       
  4462 	delete iDtorValidator;
       
  4463 	}
       
  4464 
       
  4465 inline CWspHeaderReader_RetryAfterRelativeTime_UnitTest::CWspHeaderReader_RetryAfterRelativeTime_UnitTest(CDataLogger& aDataLogger,
       
  4466 																	MUnitTestObserver& aObserver)
       
  4467 : CUnitTest(KWspHeaderReaderRetryAfterRelativeTimeUnitTest, aDataLogger, aObserver)
       
  4468 	{
       
  4469 	//Do nothing
       
  4470 	}
       
  4471 
       
  4472 // Now the Individual transitions need to be added.
       
  4473 inline void CWspHeaderReader_RetryAfterRelativeTime_UnitTest::ConstructL()
       
  4474 	{
       
  4475 	// Perform the base class initialization
       
  4476 	UnitTestConstructL();
       
  4477 
       
  4478 	// Create the Unit test state accessor
       
  4479 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
  4480 	// Construct the Unit test context.
       
  4481 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
  4482 	iUTContext->ConstructL(WSP::ERetryAfter);
       
  4483 	iUTContext->iTestHeader->BeginRawDataL();
       
  4484 	TUint8 valueLength = 0x05; // short int value length
       
  4485 	TUint8 relativeToken = 0x81; // token for relative value
       
  4486 	TUint8 length = 0x03; // short int length for date
       
  4487 	TUint8 octet255 = 0xFF; // example date value
       
  4488 	TUint8 octet254 = 0xFE; // example date value
       
  4489 	iUTContext->iTestHeader->WriteRawDataL(valueLength);
       
  4490 	iUTContext->iTestHeader->WriteRawDataL(relativeToken);
       
  4491 	iUTContext->iTestHeader->WriteRawDataL(length);
       
  4492 	iUTContext->iTestHeader->WriteRawDataL(octet255);
       
  4493 	iUTContext->iTestHeader->WriteRawDataL(octet255);
       
  4494 	iUTContext->iTestHeader->WriteRawDataL(octet254);
       
  4495 	iUTContext->iTestHeader->CommitRawData();
       
  4496 	_LIT8(KTxtExpected, "16777214");
       
  4497 	iUTContext->SetExpectedL(KTxtExpected);
       
  4498 	// Add the Transitions in the order they are to run
       
  4499 	// C'tor first, D'tor last...
       
  4500 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
  4501 		using constructor and destuctor validators */
       
  4502 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
  4503 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
  4504 	iRetryAfterRelativeTimeValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
  4505 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderL_Transition(*iUTContext,*iRetryAfterRelativeTimeValidator));
       
  4506 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
  4507 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
  4508 	}
       
  4509 
       
  4510 // ______________________________________________________________________________
       
  4511 //
       
  4512 _LIT(KWspHeaderReaderViaTextUnitTest,"CWspHeaderReader_ViaText_UnitTest");
       
  4513 
       
  4514 CWspHeaderReader_ViaText_UnitTest* CWspHeaderReader_ViaText_UnitTest::NewL(CDataLogger& aDataLogger,
       
  4515 											MUnitTestObserver& aObserver)
       
  4516 	{
       
  4517 	CWspHeaderReader_ViaText_UnitTest* self = 
       
  4518 					new(ELeave) CWspHeaderReader_ViaText_UnitTest(aDataLogger,
       
  4519 																aObserver);
       
  4520 	CleanupStack::PushL(self);
       
  4521 	self->ConstructL();
       
  4522 	CleanupStack::Pop(self);
       
  4523 	return self; 
       
  4524 	}
       
  4525 
       
  4526 inline TInt CWspHeaderReader_ViaText_UnitTest::RunError(TInt aError)
       
  4527 	{
       
  4528 	// The RunL left so chain to the base first and then cleanup
       
  4529 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
  4530 	delete iUTContext;
       
  4531 	iUTContext = NULL;
       
  4532 	delete iStateAccessor;
       
  4533 	iStateAccessor = NULL;
       
  4534 	/* delete any validators used */
       
  4535 	delete iCtorValidator;
       
  4536 	iCtorValidator = NULL;
       
  4537 	delete iViaTextValidator;
       
  4538 	iViaTextValidator = NULL;
       
  4539 	delete iDtorValidator;
       
  4540 	iDtorValidator = NULL;
       
  4541 	return error;
       
  4542 	}
       
  4543 
       
  4544 inline CWspHeaderReader_ViaText_UnitTest::~CWspHeaderReader_ViaText_UnitTest()
       
  4545 	{
       
  4546 	// Simply delete our test class instance
       
  4547 	delete iUTContext;
       
  4548 	delete iStateAccessor;
       
  4549 	/* delete any validators used */
       
  4550 	delete iCtorValidator;
       
  4551 	delete iViaTextValidator;
       
  4552 	delete iDtorValidator;
       
  4553 	}
       
  4554 
       
  4555 inline CWspHeaderReader_ViaText_UnitTest::CWspHeaderReader_ViaText_UnitTest(CDataLogger& aDataLogger,
       
  4556 																	MUnitTestObserver& aObserver)
       
  4557 : CUnitTest(KWspHeaderReaderViaTextUnitTest, aDataLogger, aObserver)
       
  4558 	{
       
  4559 	//Do nothing
       
  4560 	}
       
  4561 
       
  4562 // Now the Individual transitions need to be added.
       
  4563 inline void CWspHeaderReader_ViaText_UnitTest::ConstructL()
       
  4564 	{
       
  4565 	// Perform the base class initialization
       
  4566 	UnitTestConstructL();
       
  4567 
       
  4568 	// Create the Unit test state accessor
       
  4569 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
  4570 	// Construct the Unit test context.
       
  4571 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
  4572 	iUTContext->ConstructL(WSP::EVia);
       
  4573 	iUTContext->iTestHeader->BeginRawDataL();
       
  4574 	_LIT8(KTxtString, "Via-text\0");
       
  4575 	iUTContext->iTestHeader->WriteRawDataL(KTxtString);
       
  4576 	iUTContext->iTestHeader->CommitRawData();
       
  4577 	_LIT8(KTxtExpected, "Via-text");
       
  4578 	iUTContext->SetExpectedL(KTxtExpected);
       
  4579 	// Add the Transitions in the order they are to run
       
  4580 	// C'tor first, D'tor last...
       
  4581 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
  4582 		using constructor and destuctor validators */
       
  4583 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
  4584 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
  4585 	iViaTextValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
  4586 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderL_Transition(*iUTContext,*iViaTextValidator));
       
  4587 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
  4588 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
  4589 	}
       
  4590 
       
  4591 // ______________________________________________________________________________
       
  4592 //
       
  4593 _LIT(KWspHeaderReaderViaNullTextUnitTest,"CWspHeaderReader_ViaNullText_UnitTest");
       
  4594 
       
  4595 CWspHeaderReader_ViaNullText_UnitTest* CWspHeaderReader_ViaNullText_UnitTest::NewL(CDataLogger& aDataLogger,
       
  4596 											MUnitTestObserver& aObserver)
       
  4597 	{
       
  4598 	CWspHeaderReader_ViaNullText_UnitTest* self = 
       
  4599 					new(ELeave) CWspHeaderReader_ViaNullText_UnitTest(aDataLogger,
       
  4600 																aObserver);
       
  4601 	CleanupStack::PushL(self);
       
  4602 	self->ConstructL();
       
  4603 	CleanupStack::Pop(self);
       
  4604 	return self; 
       
  4605 	}
       
  4606 
       
  4607 inline TInt CWspHeaderReader_ViaNullText_UnitTest::RunError(TInt aError)
       
  4608 	{
       
  4609 	// The RunL left so chain to the base first and then cleanup
       
  4610 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
  4611 	delete iUTContext;
       
  4612 	iUTContext = NULL;
       
  4613 	delete iStateAccessor;
       
  4614 	iStateAccessor = NULL;
       
  4615 	/* delete any validators used */
       
  4616 	delete iCtorValidator;
       
  4617 	iCtorValidator = NULL;
       
  4618 	delete iViaNullTextValidator;
       
  4619 	iViaNullTextValidator = NULL;
       
  4620 	delete iDtorValidator;
       
  4621 	iDtorValidator = NULL;
       
  4622 	return error;
       
  4623 	}
       
  4624 
       
  4625 inline CWspHeaderReader_ViaNullText_UnitTest::~CWspHeaderReader_ViaNullText_UnitTest()
       
  4626 	{
       
  4627 	// Simply delete our test class instance
       
  4628 	delete iUTContext;
       
  4629 	delete iStateAccessor;
       
  4630 	/* delete any validators used */
       
  4631 	delete iCtorValidator;
       
  4632 	delete iViaNullTextValidator;
       
  4633 	delete iDtorValidator;
       
  4634 	}
       
  4635 
       
  4636 inline CWspHeaderReader_ViaNullText_UnitTest::CWspHeaderReader_ViaNullText_UnitTest(CDataLogger& aDataLogger,
       
  4637 																	MUnitTestObserver& aObserver)
       
  4638 : CUnitTest(KWspHeaderReaderViaNullTextUnitTest, aDataLogger, aObserver)
       
  4639 	{
       
  4640 	//Do nothing
       
  4641 	}
       
  4642 
       
  4643 // Now the Individual transitions need to be added.
       
  4644 inline void CWspHeaderReader_ViaNullText_UnitTest::ConstructL()
       
  4645 	{
       
  4646 	// Perform the base class initialization
       
  4647 	UnitTestConstructL();
       
  4648 
       
  4649 	// Create the Unit test state accessor
       
  4650 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
  4651 	// Construct the Unit test context.
       
  4652 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
  4653 	iUTContext->ConstructL(WSP::EVia);
       
  4654 	iUTContext->iTestHeader->BeginRawDataL();
       
  4655 	TUint8 nullTerminate = 0x00;
       
  4656 	iUTContext->iTestHeader->WriteRawDataL(nullTerminate);
       
  4657 	iUTContext->iTestHeader->CommitRawData();
       
  4658 	iUTContext->SetExpectedL(KNullDesC8());
       
  4659 	// Add the Transitions in the order they are to run
       
  4660 	// C'tor first, D'tor last...
       
  4661 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
  4662 		using constructor and destuctor validators */
       
  4663 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
  4664 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
  4665 	iViaNullTextValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
  4666 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderL_Transition(*iUTContext,*iViaNullTextValidator));
       
  4667 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
  4668 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
  4669 	}
       
  4670 
       
  4671 // ______________________________________________________________________________
       
  4672 //
       
  4673 _LIT(KWspHeaderReaderViaTextWithoutTerminatorUnitTest,"CWspHeaderReader_ViaTextWithoutTerminator_UnitTest");
       
  4674 
       
  4675 CWspHeaderReader_ViaTextWithoutTerminator_UnitTest* CWspHeaderReader_ViaTextWithoutTerminator_UnitTest::NewL(CDataLogger& aDataLogger,
       
  4676 											MUnitTestObserver& aObserver)
       
  4677 	{
       
  4678 	CWspHeaderReader_ViaTextWithoutTerminator_UnitTest* self = 
       
  4679 					new(ELeave) CWspHeaderReader_ViaTextWithoutTerminator_UnitTest(aDataLogger,
       
  4680 																aObserver);
       
  4681 	CleanupStack::PushL(self);
       
  4682 	self->ConstructL();
       
  4683 	CleanupStack::Pop(self);
       
  4684 	return self; 
       
  4685 	}
       
  4686 
       
  4687 inline TInt CWspHeaderReader_ViaTextWithoutTerminator_UnitTest::RunError(TInt aError)
       
  4688 	{
       
  4689 	// The RunL left so chain to the base first and then cleanup
       
  4690 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
  4691 	delete iUTContext;
       
  4692 	iUTContext = NULL;
       
  4693 	delete iStateAccessor;
       
  4694 	iStateAccessor = NULL;
       
  4695 	/* delete any validators used */
       
  4696 	delete iCtorValidator;
       
  4697 	iCtorValidator = NULL;
       
  4698 	delete iViaTextWithoutTerminatorValidator;
       
  4699 	iViaTextWithoutTerminatorValidator = NULL;
       
  4700 	delete iDtorValidator;
       
  4701 	iDtorValidator = NULL;
       
  4702 	return error;
       
  4703 	}
       
  4704 
       
  4705 inline CWspHeaderReader_ViaTextWithoutTerminator_UnitTest::~CWspHeaderReader_ViaTextWithoutTerminator_UnitTest()
       
  4706 	{
       
  4707 	// Simply delete our test class instance
       
  4708 	delete iUTContext;
       
  4709 	delete iStateAccessor;
       
  4710 	/* delete any validators used */
       
  4711 	delete iCtorValidator;
       
  4712 	delete iViaTextWithoutTerminatorValidator;
       
  4713 	delete iDtorValidator;
       
  4714 	}
       
  4715 
       
  4716 inline CWspHeaderReader_ViaTextWithoutTerminator_UnitTest::CWspHeaderReader_ViaTextWithoutTerminator_UnitTest(CDataLogger& aDataLogger,
       
  4717 																	MUnitTestObserver& aObserver)
       
  4718 : CUnitTest(KWspHeaderReaderViaTextWithoutTerminatorUnitTest, aDataLogger, aObserver)
       
  4719 	{
       
  4720 	//Do nothing
       
  4721 	}
       
  4722 
       
  4723 // Now the Individual transitions need to be added.
       
  4724 inline void CWspHeaderReader_ViaTextWithoutTerminator_UnitTest::ConstructL()
       
  4725 	{
       
  4726 	// Perform the base class initialization
       
  4727 	UnitTestConstructL();
       
  4728 
       
  4729 	// Create the Unit test state accessor
       
  4730 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
  4731 	// Construct the Unit test context.
       
  4732 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
  4733 	iUTContext->ConstructL(WSP::EVia);
       
  4734 	iUTContext->iTestHeader->BeginRawDataL();
       
  4735 	_LIT8(KTxtStringNoNull, "Via-text");
       
  4736 	iUTContext->iTestHeader->WriteRawDataL(KTxtStringNoNull);
       
  4737 	iUTContext->iTestHeader->CommitRawData();
       
  4738 	_LIT8(KTxtExpected, "-20");
       
  4739 	iUTContext->SetExpectedL(KTxtExpected);
       
  4740 	// Add the Transitions in the order they are to run
       
  4741 	// C'tor first, D'tor last...
       
  4742 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
  4743 		using constructor and destuctor validators */
       
  4744 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
  4745 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
  4746 	iViaTextWithoutTerminatorValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
  4747 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderLTrap_Transition(*iUTContext,*iViaTextWithoutTerminatorValidator));
       
  4748 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
  4749 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
  4750 	}
       
  4751 
       
  4752 // ______________________________________________________________________________
       
  4753 //
       
  4754 _LIT(KWspHeaderReaderTrailerShortIntUnitTest,"CWspHeaderReader_TrailerShortInt_UnitTest");
       
  4755 
       
  4756 CWspHeaderReader_TrailerShortInt_UnitTest* CWspHeaderReader_TrailerShortInt_UnitTest::NewL(CDataLogger& aDataLogger,
       
  4757 											MUnitTestObserver& aObserver)
       
  4758 	{
       
  4759 	CWspHeaderReader_TrailerShortInt_UnitTest* self = 
       
  4760 					new(ELeave) CWspHeaderReader_TrailerShortInt_UnitTest(aDataLogger,
       
  4761 																aObserver);
       
  4762 	CleanupStack::PushL(self);
       
  4763 	self->ConstructL();
       
  4764 	CleanupStack::Pop(self);
       
  4765 	return self; 
       
  4766 	}
       
  4767 
       
  4768 inline TInt CWspHeaderReader_TrailerShortInt_UnitTest::RunError(TInt aError)
       
  4769 	{
       
  4770 	// The RunL left so chain to the base first and then cleanup
       
  4771 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
  4772 	delete iUTContext;
       
  4773 	iUTContext = NULL;
       
  4774 	delete iStateAccessor;
       
  4775 	iStateAccessor = NULL;
       
  4776 	/* delete any validators used */
       
  4777 	delete iCtorValidator;
       
  4778 	iCtorValidator = NULL;
       
  4779 	delete iTrailerShortIntValidator;
       
  4780 	iTrailerShortIntValidator = NULL;
       
  4781 	delete iDtorValidator;
       
  4782 	iDtorValidator = NULL;
       
  4783 	return error;
       
  4784 	}
       
  4785 
       
  4786 inline CWspHeaderReader_TrailerShortInt_UnitTest::~CWspHeaderReader_TrailerShortInt_UnitTest()
       
  4787 	{
       
  4788 	// Simply delete our test class instance
       
  4789 	delete iUTContext;
       
  4790 	delete iStateAccessor;
       
  4791 	/* delete any validators used */
       
  4792 	delete iCtorValidator;
       
  4793 	delete iTrailerShortIntValidator;
       
  4794 	delete iDtorValidator;
       
  4795 	}
       
  4796 
       
  4797 inline CWspHeaderReader_TrailerShortInt_UnitTest::CWspHeaderReader_TrailerShortInt_UnitTest(CDataLogger& aDataLogger,
       
  4798 																	MUnitTestObserver& aObserver)
       
  4799 : CUnitTest(KWspHeaderReaderTrailerShortIntUnitTest, aDataLogger, aObserver)
       
  4800 	{
       
  4801 	//Do nothing
       
  4802 	}
       
  4803 
       
  4804 // Now the Individual transitions need to be added.
       
  4805 inline void CWspHeaderReader_TrailerShortInt_UnitTest::ConstructL()
       
  4806 	{
       
  4807 	// Perform the base class initialization
       
  4808 	UnitTestConstructL();
       
  4809 
       
  4810 	// Create the Unit test state accessor
       
  4811 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
  4812 	// Construct the Unit test context.
       
  4813 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
  4814 	iUTContext->ConstructL(WSP::ETrailer);
       
  4815 	iUTContext->iTestHeader->BeginRawDataL();
       
  4816 	TUint8 headerToken = 0xA7; // with top bit set
       
  4817 	iUTContext->iTestHeader->WriteRawDataL(headerToken);
       
  4818 	iUTContext->iTestHeader->CommitRawData();
       
  4819 	_LIT8(KTxtExpected, "Transfer-Encoding");
       
  4820 	iUTContext->SetExpectedL(KTxtExpected);
       
  4821 	// Add the Transitions in the order they are to run
       
  4822 	// C'tor first, D'tor last...
       
  4823 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
  4824 		using constructor and destuctor validators */
       
  4825 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
  4826 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
  4827 	iTrailerShortIntValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
  4828 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderL_Transition(*iUTContext,*iTrailerShortIntValidator));
       
  4829 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
  4830 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
  4831 	}
       
  4832 
       
  4833 // ______________________________________________________________________________
       
  4834 //
       
  4835 _LIT(KWspHeaderReaderTrailerNotExistTokenUnitTest,"CWspHeaderReader_TrailerNotExistToken_UnitTest");
       
  4836 
       
  4837 CWspHeaderReader_TrailerNotExistToken_UnitTest* CWspHeaderReader_TrailerNotExistToken_UnitTest::NewL(CDataLogger& aDataLogger,
       
  4838 											MUnitTestObserver& aObserver)
       
  4839 	{
       
  4840 	CWspHeaderReader_TrailerNotExistToken_UnitTest* self = 
       
  4841 					new(ELeave) CWspHeaderReader_TrailerNotExistToken_UnitTest(aDataLogger,
       
  4842 																aObserver);
       
  4843 	CleanupStack::PushL(self);
       
  4844 	self->ConstructL();
       
  4845 	CleanupStack::Pop(self);
       
  4846 	return self; 
       
  4847 	}
       
  4848 
       
  4849 inline TInt CWspHeaderReader_TrailerNotExistToken_UnitTest::RunError(TInt aError)
       
  4850 	{
       
  4851 	// The RunL left so chain to the base first and then cleanup
       
  4852 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
  4853 	delete iUTContext;
       
  4854 	iUTContext = NULL;
       
  4855 	delete iStateAccessor;
       
  4856 	iStateAccessor = NULL;
       
  4857 	/* delete any validators used */
       
  4858 	delete iCtorValidator;
       
  4859 	iCtorValidator = NULL;
       
  4860 	delete iTrailerNotExistTokenValidator;
       
  4861 	iTrailerNotExistTokenValidator = NULL;
       
  4862 	delete iDtorValidator;
       
  4863 	iDtorValidator = NULL;
       
  4864 	return error;
       
  4865 	}
       
  4866 
       
  4867 inline CWspHeaderReader_TrailerNotExistToken_UnitTest::~CWspHeaderReader_TrailerNotExistToken_UnitTest()
       
  4868 	{
       
  4869 	// Simply delete our test class instance
       
  4870 	delete iUTContext;
       
  4871 	delete iStateAccessor;
       
  4872 	/* delete any validators used */
       
  4873 	delete iCtorValidator;
       
  4874 	delete iTrailerNotExistTokenValidator;
       
  4875 	delete iDtorValidator;
       
  4876 	}
       
  4877 
       
  4878 inline CWspHeaderReader_TrailerNotExistToken_UnitTest::CWspHeaderReader_TrailerNotExistToken_UnitTest(CDataLogger& aDataLogger,
       
  4879 																	MUnitTestObserver& aObserver)
       
  4880 : CUnitTest(KWspHeaderReaderTrailerNotExistTokenUnitTest, aDataLogger, aObserver)
       
  4881 	{
       
  4882 	//Do nothing
       
  4883 	}
       
  4884 
       
  4885 // Now the Individual transitions need to be added.
       
  4886 inline void CWspHeaderReader_TrailerNotExistToken_UnitTest::ConstructL()
       
  4887 	{
       
  4888 	// Perform the base class initialization
       
  4889 	UnitTestConstructL();
       
  4890 
       
  4891 	// Create the Unit test state accessor
       
  4892 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
  4893 	// Construct the Unit test context.
       
  4894 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
  4895 	iUTContext->ConstructL(WSP::ETrailer);
       
  4896 	iUTContext->iTestHeader->BeginRawDataL();
       
  4897 	TUint8 headerToken = 0x50;
       
  4898 	iUTContext->iTestHeader->WriteRawDataL(headerToken);
       
  4899 	iUTContext->iTestHeader->CommitRawData();
       
  4900 	_LIT8(KTxtExpected, "-20");
       
  4901 	iUTContext->SetExpectedL(KTxtExpected);
       
  4902 	// Add the Transitions in the order they are to run
       
  4903 	// C'tor first, D'tor last...
       
  4904 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
  4905 		using constructor and destuctor validators */
       
  4906 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
  4907 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
  4908 	iTrailerNotExistTokenValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
  4909 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderLTrap_Transition(*iUTContext,*iTrailerNotExistTokenValidator));
       
  4910 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
  4911 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
  4912 	}
       
  4913 
       
  4914 // ______________________________________________________________________________
       
  4915 //
       
  4916 _LIT(KWspHeaderReaderTrailerTokenTextUnitTest,"CWspHeaderReader_TrailerTokenText_UnitTest");
       
  4917 
       
  4918 CWspHeaderReader_TrailerTokenText_UnitTest* CWspHeaderReader_TrailerTokenText_UnitTest::NewL(CDataLogger& aDataLogger,
       
  4919 											MUnitTestObserver& aObserver)
       
  4920 	{
       
  4921 	CWspHeaderReader_TrailerTokenText_UnitTest* self = 
       
  4922 					new(ELeave) CWspHeaderReader_TrailerTokenText_UnitTest(aDataLogger,
       
  4923 																aObserver);
       
  4924 	CleanupStack::PushL(self);
       
  4925 	self->ConstructL();
       
  4926 	CleanupStack::Pop(self);
       
  4927 	return self; 
       
  4928 	}
       
  4929 
       
  4930 inline TInt CWspHeaderReader_TrailerTokenText_UnitTest::RunError(TInt aError)
       
  4931 	{
       
  4932 	// The RunL left so chain to the base first and then cleanup
       
  4933 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
  4934 	delete iUTContext;
       
  4935 	iUTContext = NULL;
       
  4936 	delete iStateAccessor;
       
  4937 	iStateAccessor = NULL;
       
  4938 	/* delete any validators used */
       
  4939 	delete iCtorValidator;
       
  4940 	iCtorValidator = NULL;
       
  4941 	delete iTrailerTokenTextValidator;
       
  4942 	iTrailerTokenTextValidator = NULL;
       
  4943 	delete iDtorValidator;
       
  4944 	iDtorValidator = NULL;
       
  4945 	return error;
       
  4946 	}
       
  4947 
       
  4948 inline CWspHeaderReader_TrailerTokenText_UnitTest::~CWspHeaderReader_TrailerTokenText_UnitTest()
       
  4949 	{
       
  4950 	// Simply delete our test class instance
       
  4951 	delete iUTContext;
       
  4952 	delete iStateAccessor;
       
  4953 	/* delete any validators used */
       
  4954 	delete iCtorValidator;
       
  4955 	delete iTrailerTokenTextValidator;
       
  4956 	delete iDtorValidator;
       
  4957 	}
       
  4958 
       
  4959 inline CWspHeaderReader_TrailerTokenText_UnitTest::CWspHeaderReader_TrailerTokenText_UnitTest(CDataLogger& aDataLogger,
       
  4960 																	MUnitTestObserver& aObserver)
       
  4961 : CUnitTest(KWspHeaderReaderTrailerTokenTextUnitTest, aDataLogger, aObserver)
       
  4962 	{
       
  4963 	//Do nothing
       
  4964 	}
       
  4965 
       
  4966 // Now the Individual transitions need to be added.
       
  4967 inline void CWspHeaderReader_TrailerTokenText_UnitTest::ConstructL()
       
  4968 	{
       
  4969 	// Perform the base class initialization
       
  4970 	UnitTestConstructL();
       
  4971 
       
  4972 	// Create the Unit test state accessor
       
  4973 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
  4974 	// Construct the Unit test context.
       
  4975 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
  4976 	iUTContext->ConstructL(WSP::ETrailer);
       
  4977 	iUTContext->iTestHeader->BeginRawDataL();
       
  4978 	_LIT8(KTxtTokenText, "text-header-name\0");
       
  4979 	iUTContext->iTestHeader->WriteRawDataL(KTxtTokenText);
       
  4980 	iUTContext->iTestHeader->CommitRawData();
       
  4981 	_LIT8(KTxtExpected, "text-header-name");
       
  4982 	iUTContext->SetExpectedL(KTxtExpected);
       
  4983 	// Add the Transitions in the order they are to run
       
  4984 	// C'tor first, D'tor last...
       
  4985 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
  4986 		using constructor and destuctor validators */
       
  4987 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
  4988 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
  4989 	iTrailerTokenTextValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
  4990 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderL_Transition(*iUTContext,*iTrailerTokenTextValidator));
       
  4991 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
  4992 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
  4993 	}
       
  4994 
       
  4995 // ______________________________________________________________________________
       
  4996 //
       
  4997 _LIT(KWspHeaderReaderContentRangeUnknownLengthUnitTest,"CWspHeaderReader_ContentRangeUnknownLength_UnitTest");
       
  4998 
       
  4999 CWspHeaderReader_ContentRangeUnknownLength_UnitTest* CWspHeaderReader_ContentRangeUnknownLength_UnitTest::NewL(CDataLogger& aDataLogger,
       
  5000 											MUnitTestObserver& aObserver)
       
  5001 	{
       
  5002 	CWspHeaderReader_ContentRangeUnknownLength_UnitTest* self = 
       
  5003 					new(ELeave) CWspHeaderReader_ContentRangeUnknownLength_UnitTest(aDataLogger,
       
  5004 																aObserver);
       
  5005 	CleanupStack::PushL(self);
       
  5006 	self->ConstructL();
       
  5007 	CleanupStack::Pop(self);
       
  5008 	return self; 
       
  5009 	}
       
  5010 
       
  5011 inline TInt CWspHeaderReader_ContentRangeUnknownLength_UnitTest::RunError(TInt aError)
       
  5012 	{
       
  5013 	// The RunL left so chain to the base first and then cleanup
       
  5014 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
  5015 	delete iUTContext;
       
  5016 	iUTContext = NULL;
       
  5017 	delete iStateAccessor;
       
  5018 	iStateAccessor = NULL;
       
  5019 	/* delete any validators used */
       
  5020 	delete iCtorValidator;
       
  5021 	iCtorValidator = NULL;
       
  5022 	delete iContentRangeUnknownLengthValidator;
       
  5023 	iContentRangeUnknownLengthValidator = NULL;
       
  5024 	delete iDtorValidator;
       
  5025 	iDtorValidator = NULL;
       
  5026 	return error;
       
  5027 	}
       
  5028 
       
  5029 inline CWspHeaderReader_ContentRangeUnknownLength_UnitTest::~CWspHeaderReader_ContentRangeUnknownLength_UnitTest()
       
  5030 	{
       
  5031 	// Simply delete our test class instance
       
  5032 	delete iUTContext;
       
  5033 	delete iStateAccessor;
       
  5034 	/* delete any validators used */
       
  5035 	delete iCtorValidator;
       
  5036 	delete iContentRangeUnknownLengthValidator;
       
  5037 	delete iDtorValidator;
       
  5038 	}
       
  5039 
       
  5040 inline CWspHeaderReader_ContentRangeUnknownLength_UnitTest::CWspHeaderReader_ContentRangeUnknownLength_UnitTest(CDataLogger& aDataLogger,
       
  5041 																	MUnitTestObserver& aObserver)
       
  5042 : CUnitTest(KWspHeaderReaderContentRangeUnknownLengthUnitTest, aDataLogger, aObserver)
       
  5043 	{
       
  5044 	//Do nothing
       
  5045 	}
       
  5046 
       
  5047 // Now the Individual transitions need to be added.
       
  5048 inline void CWspHeaderReader_ContentRangeUnknownLength_UnitTest::ConstructL()
       
  5049 	{
       
  5050 	// Perform the base class initialization
       
  5051 	UnitTestConstructL();
       
  5052 
       
  5053 	// Create the Unit test state accessor
       
  5054 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
  5055 	// Construct the Unit test context.
       
  5056 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
  5057 	iUTContext->ConstructL(WSP::EContentRange);
       
  5058 	iUTContext->iTestHeader->BeginRawDataL();
       
  5059 	TUint8 length = 0x03; // length
       
  5060 	TUint8 firstBytePos1 = 0x82; // UIntVar pt1
       
  5061 	TUint8 firstBytePos2 = 0x05; // UIntVar pt2
       
  5062 	TUint8 unknownToken = 0x80; // Token for '*'
       
  5063 	iUTContext->iTestHeader->WriteRawDataL(length);
       
  5064 	iUTContext->iTestHeader->WriteRawDataL(firstBytePos1);
       
  5065 	iUTContext->iTestHeader->WriteRawDataL(firstBytePos2);
       
  5066 	iUTContext->iTestHeader->WriteRawDataL(unknownToken);
       
  5067 	iUTContext->iTestHeader->CommitRawData();
       
  5068 	_LIT8(KTxtExpected, "261,*");
       
  5069 	iUTContext->SetExpectedL(KTxtExpected);
       
  5070 	// Add the Transitions in the order they are to run
       
  5071 	// C'tor first, D'tor last...
       
  5072 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
  5073 		using constructor and destuctor validators */
       
  5074 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
  5075 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
  5076 	iContentRangeUnknownLengthValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
  5077 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderL_Transition(*iUTContext,*iContentRangeUnknownLengthValidator));
       
  5078 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
  5079 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
  5080 	}
       
  5081 
       
  5082 // ______________________________________________________________________________
       
  5083 //
       
  5084 _LIT(KWspHeaderReaderContentRangeKnownLengthUnitTest,"CWspHeaderReader_ContentRangeKnownLength_UnitTest");
       
  5085 
       
  5086 CWspHeaderReader_ContentRangeKnownLength_UnitTest* CWspHeaderReader_ContentRangeKnownLength_UnitTest::NewL(CDataLogger& aDataLogger,
       
  5087 											MUnitTestObserver& aObserver)
       
  5088 	{
       
  5089 	CWspHeaderReader_ContentRangeKnownLength_UnitTest* self = 
       
  5090 					new(ELeave) CWspHeaderReader_ContentRangeKnownLength_UnitTest(aDataLogger,
       
  5091 																aObserver);
       
  5092 	CleanupStack::PushL(self);
       
  5093 	self->ConstructL();
       
  5094 	CleanupStack::Pop(self);
       
  5095 	return self; 
       
  5096 	}
       
  5097 
       
  5098 inline TInt CWspHeaderReader_ContentRangeKnownLength_UnitTest::RunError(TInt aError)
       
  5099 	{
       
  5100 	// The RunL left so chain to the base first and then cleanup
       
  5101 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
  5102 	delete iUTContext;
       
  5103 	iUTContext = NULL;
       
  5104 	delete iStateAccessor;
       
  5105 	iStateAccessor = NULL;
       
  5106 	/* delete any validators used */
       
  5107 	delete iCtorValidator;
       
  5108 	iCtorValidator = NULL;
       
  5109 	delete iContentRangeKnownLengthValidator;
       
  5110 	iContentRangeKnownLengthValidator = NULL;
       
  5111 	delete iDtorValidator;
       
  5112 	iDtorValidator = NULL;
       
  5113 	return error;
       
  5114 	}
       
  5115 
       
  5116 inline CWspHeaderReader_ContentRangeKnownLength_UnitTest::~CWspHeaderReader_ContentRangeKnownLength_UnitTest()
       
  5117 	{
       
  5118 	// Simply delete our test class instance
       
  5119 	delete iUTContext;
       
  5120 	delete iStateAccessor;
       
  5121 	/* delete any validators used */
       
  5122 	delete iCtorValidator;
       
  5123 	delete iContentRangeKnownLengthValidator;
       
  5124 	delete iDtorValidator;
       
  5125 	}
       
  5126 
       
  5127 inline CWspHeaderReader_ContentRangeKnownLength_UnitTest::CWspHeaderReader_ContentRangeKnownLength_UnitTest(CDataLogger& aDataLogger,
       
  5128 																	MUnitTestObserver& aObserver)
       
  5129 : CUnitTest(KWspHeaderReaderContentRangeKnownLengthUnitTest, aDataLogger, aObserver)
       
  5130 	{
       
  5131 	//Do nothing
       
  5132 	}
       
  5133 
       
  5134 // Now the Individual transitions need to be added.
       
  5135 inline void CWspHeaderReader_ContentRangeKnownLength_UnitTest::ConstructL()
       
  5136 	{
       
  5137 	// Perform the base class initialization
       
  5138 	UnitTestConstructL();
       
  5139 
       
  5140 	// Create the Unit test state accessor
       
  5141 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
  5142 	// Construct the Unit test context.
       
  5143 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
  5144 	iUTContext->ConstructL(WSP::EContentRange);
       
  5145 	iUTContext->iTestHeader->BeginRawDataL();
       
  5146 	TUint8 length = 0x05; // length
       
  5147 	TUint8 firstBytePos1 = 0x82; // UIntVar1 pt1
       
  5148 	TUint8 firstBytePos2 = 0x05; // UIntVar1 pt2
       
  5149 	TUint8 entityLen1 = 0x83; // UIntVar2 pt1
       
  5150 	TUint8 entityLen2 = 0xA5; // UIntVar2 pt2
       
  5151 	TUint8 entityLen3 = 0x01; // UIntVar2 pt3
       
  5152 	iUTContext->iTestHeader->WriteRawDataL(length);
       
  5153 	iUTContext->iTestHeader->WriteRawDataL(firstBytePos1);
       
  5154 	iUTContext->iTestHeader->WriteRawDataL(firstBytePos2);
       
  5155 	iUTContext->iTestHeader->WriteRawDataL(entityLen1);
       
  5156 	iUTContext->iTestHeader->WriteRawDataL(entityLen2);
       
  5157 	iUTContext->iTestHeader->WriteRawDataL(entityLen3);
       
  5158 	iUTContext->iTestHeader->CommitRawData();
       
  5159 	_LIT8(KTxtExpected, "261,53889");
       
  5160 	iUTContext->SetExpectedL(KTxtExpected);
       
  5161 	// Add the Transitions in the order they are to run
       
  5162 	// C'tor first, D'tor last...
       
  5163 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
  5164 		using constructor and destuctor validators */
       
  5165 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
  5166 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
  5167 	iContentRangeKnownLengthValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
  5168 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderL_Transition(*iUTContext,*iContentRangeKnownLengthValidator));
       
  5169 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
  5170 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
  5171 	}
       
  5172 
       
  5173 // ______________________________________________________________________________
       
  5174 //
       
  5175 _LIT(KWspHeaderReaderContentRangeV1_2UnitTest,"CWspHeaderReader_ContentRangeV1_2_UnitTest");
       
  5176 
       
  5177 CWspHeaderReader_ContentRangeV1_2_UnitTest* CWspHeaderReader_ContentRangeV1_2_UnitTest::NewL(CDataLogger& aDataLogger,
       
  5178 											MUnitTestObserver& aObserver)
       
  5179 	{
       
  5180 	CWspHeaderReader_ContentRangeV1_2_UnitTest* self = 
       
  5181 					new(ELeave) CWspHeaderReader_ContentRangeV1_2_UnitTest(aDataLogger,
       
  5182 																aObserver);
       
  5183 	CleanupStack::PushL(self);
       
  5184 	self->ConstructL();
       
  5185 	CleanupStack::Pop(self);
       
  5186 	return self; 
       
  5187 	}
       
  5188 
       
  5189 inline TInt CWspHeaderReader_ContentRangeV1_2_UnitTest::RunError(TInt aError)
       
  5190 	{
       
  5191 	// The RunL left so chain to the base first and then cleanup
       
  5192 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
  5193 	delete iUTContext;
       
  5194 	iUTContext = NULL;
       
  5195 	delete iStateAccessor;
       
  5196 	iStateAccessor = NULL;
       
  5197 	/* delete any validators used */
       
  5198 	delete iCtorValidator;
       
  5199 	iCtorValidator = NULL;
       
  5200 	delete iContentRangeV1_2Validator;
       
  5201 	iContentRangeV1_2Validator = NULL;
       
  5202 	delete iDtorValidator;
       
  5203 	iDtorValidator = NULL;
       
  5204 	return error;
       
  5205 	}
       
  5206 
       
  5207 inline CWspHeaderReader_ContentRangeV1_2_UnitTest::~CWspHeaderReader_ContentRangeV1_2_UnitTest()
       
  5208 	{
       
  5209 	// Simply delete our test class instance
       
  5210 	delete iUTContext;
       
  5211 	delete iStateAccessor;
       
  5212 	/* delete any validators used */
       
  5213 	delete iCtorValidator;
       
  5214 	delete iContentRangeV1_2Validator;
       
  5215 	delete iDtorValidator;
       
  5216 	}
       
  5217 
       
  5218 inline CWspHeaderReader_ContentRangeV1_2_UnitTest::CWspHeaderReader_ContentRangeV1_2_UnitTest(CDataLogger& aDataLogger,
       
  5219 																	MUnitTestObserver& aObserver)
       
  5220 : CUnitTest(KWspHeaderReaderContentRangeV1_2UnitTest, aDataLogger, aObserver)
       
  5221 	{
       
  5222 	//Do nothing
       
  5223 	}
       
  5224 
       
  5225 // Now the Individual transitions need to be added.
       
  5226 inline void CWspHeaderReader_ContentRangeV1_2_UnitTest::ConstructL()
       
  5227 	{
       
  5228 	// Perform the base class initialization
       
  5229 	UnitTestConstructL();
       
  5230 
       
  5231 	// Create the Unit test state accessor
       
  5232 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
  5233 	// Construct the Unit test context.
       
  5234 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
  5235 	iUTContext->ConstructL(WSP::EContentRange);
       
  5236 	(REINTERPRET_CAST(CWspHeaderCodec*, iUTContext->iCodec))->SetWspVersion(CWspHeaderCodec::EVersion1_2);
       
  5237 	iUTContext->iTestHeader->BeginRawDataL();
       
  5238 	TUint8 length = 0x05; // length
       
  5239 	TUint8 firstBytePos1 = 0x82; // UIntVar1 pt1
       
  5240 	TUint8 firstBytePos2 = 0x05; // UIntVar1 pt2
       
  5241 	TUint8 entityLen1 = 0x83; // UIntVar2 pt1
       
  5242 	TUint8 entityLen2 = 0xA5; // UIntVar2 pt2
       
  5243 	TUint8 entityLen3 = 0x01; // UIntVar2 pt3
       
  5244 	iUTContext->iTestHeader->WriteRawDataL(length);
       
  5245 	iUTContext->iTestHeader->WriteRawDataL(firstBytePos1);
       
  5246 	iUTContext->iTestHeader->WriteRawDataL(firstBytePos2);
       
  5247 	iUTContext->iTestHeader->WriteRawDataL(entityLen1);
       
  5248 	iUTContext->iTestHeader->WriteRawDataL(entityLen2);
       
  5249 	iUTContext->iTestHeader->WriteRawDataL(entityLen3);
       
  5250 	iUTContext->iTestHeader->CommitRawData();
       
  5251 	_LIT8(KTxtExpected, "261,53889");
       
  5252 	iUTContext->SetExpectedL(KTxtExpected);
       
  5253 	// Add the Transitions in the order they are to run
       
  5254 	// C'tor first, D'tor last...
       
  5255 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
  5256 		using constructor and destuctor validators */
       
  5257 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
  5258 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
  5259 	iContentRangeV1_2Validator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
  5260 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderL_Transition(*iUTContext,*iContentRangeV1_2Validator));
       
  5261 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
  5262 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
  5263 	}
       
  5264 
       
  5265 // ______________________________________________________________________________
       
  5266 //
       
  5267 _LIT(KWspHeaderReaderXWapAppIdUriValueUnitTest,"CWspHeaderReader_XWapAppIdUriValue_UnitTest");
       
  5268 
       
  5269 CWspHeaderReader_XWapAppIdUriValue_UnitTest* CWspHeaderReader_XWapAppIdUriValue_UnitTest::NewL(CDataLogger& aDataLogger,
       
  5270 											MUnitTestObserver& aObserver)
       
  5271 	{
       
  5272 	CWspHeaderReader_XWapAppIdUriValue_UnitTest* self = 
       
  5273 					new(ELeave) CWspHeaderReader_XWapAppIdUriValue_UnitTest(aDataLogger,
       
  5274 																aObserver);
       
  5275 	CleanupStack::PushL(self);
       
  5276 	self->ConstructL();
       
  5277 	CleanupStack::Pop(self);
       
  5278 	return self; 
       
  5279 	}
       
  5280 
       
  5281 inline TInt CWspHeaderReader_XWapAppIdUriValue_UnitTest::RunError(TInt aError)
       
  5282 	{
       
  5283 	// The RunL left so chain to the base first and then cleanup
       
  5284 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
  5285 	delete iUTContext;
       
  5286 	iUTContext = NULL;
       
  5287 	delete iStateAccessor;
       
  5288 	iStateAccessor = NULL;
       
  5289 	/* delete any validators used */
       
  5290 	delete iCtorValidator;
       
  5291 	iCtorValidator = NULL;
       
  5292 	delete iXWapAppIdUriValueValidator;
       
  5293 	iXWapAppIdUriValueValidator = NULL;
       
  5294 	delete iDtorValidator;
       
  5295 	iDtorValidator = NULL;
       
  5296 	return error;
       
  5297 	}
       
  5298 
       
  5299 inline CWspHeaderReader_XWapAppIdUriValue_UnitTest::~CWspHeaderReader_XWapAppIdUriValue_UnitTest()
       
  5300 	{
       
  5301 	// Simply delete our test class instance
       
  5302 	delete iUTContext;
       
  5303 	delete iStateAccessor;
       
  5304 	/* delete any validators used */
       
  5305 	delete iCtorValidator;
       
  5306 	delete iXWapAppIdUriValueValidator;
       
  5307 	delete iDtorValidator;
       
  5308 	}
       
  5309 
       
  5310 inline CWspHeaderReader_XWapAppIdUriValue_UnitTest::CWspHeaderReader_XWapAppIdUriValue_UnitTest(CDataLogger& aDataLogger,
       
  5311 																	MUnitTestObserver& aObserver)
       
  5312 : CUnitTest(KWspHeaderReaderXWapAppIdUriValueUnitTest, aDataLogger, aObserver)
       
  5313 	{
       
  5314 	//Do nothing
       
  5315 	}
       
  5316 
       
  5317 // Now the Individual transitions need to be added.
       
  5318 inline void CWspHeaderReader_XWapAppIdUriValue_UnitTest::ConstructL()
       
  5319 	{
       
  5320 	// Perform the base class initialization
       
  5321 	UnitTestConstructL();
       
  5322 
       
  5323 	// Create the Unit test state accessor
       
  5324 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
  5325 	// Construct the Unit test context.
       
  5326 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
  5327 	iUTContext->ConstructL(WSP::EXWapApplicationId);
       
  5328 	iUTContext->iTestHeader->BeginRawDataL();
       
  5329 	_LIT8(KTxtUri, "http://www.symbian.com\0");
       
  5330 	iUTContext->iTestHeader->WriteRawDataL(KTxtUri);
       
  5331 	iUTContext->iTestHeader->CommitRawData();
       
  5332 	_LIT8(KTxtExpected, "http://www.symbian.com");
       
  5333 	iUTContext->SetExpectedL(KTxtExpected);
       
  5334 	// Add the Transitions in the order they are to run
       
  5335 	// C'tor first, D'tor last...
       
  5336 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
  5337 		using constructor and destuctor validators */
       
  5338 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
  5339 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
  5340 	iXWapAppIdUriValueValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
  5341 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderL_Transition(*iUTContext,*iXWapAppIdUriValueValidator));
       
  5342 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
  5343 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
  5344 	}
       
  5345 
       
  5346 // ______________________________________________________________________________
       
  5347 //
       
  5348 _LIT(KWspHeaderReaderXWapAppIdNullUriUnitTest,"CWspHeaderReader_XWapAppIdNullUri_UnitTest");
       
  5349 
       
  5350 CWspHeaderReader_XWapAppIdNullUri_UnitTest* CWspHeaderReader_XWapAppIdNullUri_UnitTest::NewL(CDataLogger& aDataLogger,
       
  5351 											MUnitTestObserver& aObserver)
       
  5352 	{
       
  5353 	CWspHeaderReader_XWapAppIdNullUri_UnitTest* self = 
       
  5354 					new(ELeave) CWspHeaderReader_XWapAppIdNullUri_UnitTest(aDataLogger,
       
  5355 																aObserver);
       
  5356 	CleanupStack::PushL(self);
       
  5357 	self->ConstructL();
       
  5358 	CleanupStack::Pop(self);
       
  5359 	return self; 
       
  5360 	}
       
  5361 
       
  5362 inline TInt CWspHeaderReader_XWapAppIdNullUri_UnitTest::RunError(TInt aError)
       
  5363 	{
       
  5364 	// The RunL left so chain to the base first and then cleanup
       
  5365 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
  5366 	delete iUTContext;
       
  5367 	iUTContext = NULL;
       
  5368 	delete iStateAccessor;
       
  5369 	iStateAccessor = NULL;
       
  5370 	/* delete any validators used */
       
  5371 	delete iCtorValidator;
       
  5372 	iCtorValidator = NULL;
       
  5373 	delete iXWapAppIdNullUriValidator;
       
  5374 	iXWapAppIdNullUriValidator = NULL;
       
  5375 	delete iDtorValidator;
       
  5376 	iDtorValidator = NULL;
       
  5377 	return error;
       
  5378 	}
       
  5379 
       
  5380 inline CWspHeaderReader_XWapAppIdNullUri_UnitTest::~CWspHeaderReader_XWapAppIdNullUri_UnitTest()
       
  5381 	{
       
  5382 	// Simply delete our test class instance
       
  5383 	delete iUTContext;
       
  5384 	delete iStateAccessor;
       
  5385 	/* delete any validators used */
       
  5386 	delete iCtorValidator;
       
  5387 	delete iXWapAppIdNullUriValidator;
       
  5388 	delete iDtorValidator;
       
  5389 	}
       
  5390 
       
  5391 inline CWspHeaderReader_XWapAppIdNullUri_UnitTest::CWspHeaderReader_XWapAppIdNullUri_UnitTest(CDataLogger& aDataLogger,
       
  5392 																	MUnitTestObserver& aObserver)
       
  5393 : CUnitTest(KWspHeaderReaderXWapAppIdNullUriUnitTest, aDataLogger, aObserver)
       
  5394 	{
       
  5395 	//Do nothing
       
  5396 	}
       
  5397 
       
  5398 // Now the Individual transitions need to be added.
       
  5399 inline void CWspHeaderReader_XWapAppIdNullUri_UnitTest::ConstructL()
       
  5400 	{
       
  5401 	// Perform the base class initialization
       
  5402 	UnitTestConstructL();
       
  5403 
       
  5404 	// Create the Unit test state accessor
       
  5405 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
  5406 	// Construct the Unit test context.
       
  5407 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
  5408 	iUTContext->ConstructL(WSP::EXWapApplicationId);
       
  5409 	iUTContext->iTestHeader->BeginRawDataL();
       
  5410 	TUint8 nullTerminate = 0x00;
       
  5411 	iUTContext->iTestHeader->WriteRawDataL(nullTerminate);
       
  5412 	iUTContext->iTestHeader->CommitRawData();
       
  5413 	iUTContext->SetExpectedL(KNullDesC8());
       
  5414 	// Add the Transitions in the order they are to run
       
  5415 	// C'tor first, D'tor last...
       
  5416 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
  5417 		using constructor and destuctor validators */
       
  5418 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
  5419 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
  5420 	iXWapAppIdNullUriValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
  5421 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderL_Transition(*iUTContext,*iXWapAppIdNullUriValidator));
       
  5422 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
  5423 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
  5424 	}
       
  5425 
       
  5426 // ______________________________________________________________________________
       
  5427 //
       
  5428 _LIT(KWspHeaderReaderXWapAppIdShortIntUnitTest,"CWspHeaderReader_XWapAppIdShortInt_UnitTest");
       
  5429 
       
  5430 CWspHeaderReader_XWapAppIdShortInt_UnitTest* CWspHeaderReader_XWapAppIdShortInt_UnitTest::NewL(CDataLogger& aDataLogger,
       
  5431 											MUnitTestObserver& aObserver)
       
  5432 	{
       
  5433 	CWspHeaderReader_XWapAppIdShortInt_UnitTest* self = 
       
  5434 					new(ELeave) CWspHeaderReader_XWapAppIdShortInt_UnitTest(aDataLogger,
       
  5435 																aObserver);
       
  5436 	CleanupStack::PushL(self);
       
  5437 	self->ConstructL();
       
  5438 	CleanupStack::Pop(self);
       
  5439 	return self; 
       
  5440 	}
       
  5441 
       
  5442 inline TInt CWspHeaderReader_XWapAppIdShortInt_UnitTest::RunError(TInt aError)
       
  5443 	{
       
  5444 	// The RunL left so chain to the base first and then cleanup
       
  5445 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
  5446 	delete iUTContext;
       
  5447 	iUTContext = NULL;
       
  5448 	delete iStateAccessor;
       
  5449 	iStateAccessor = NULL;
       
  5450 	/* delete any validators used */
       
  5451 	delete iCtorValidator;
       
  5452 	iCtorValidator = NULL;
       
  5453 	delete iXWapAppIdShortIntValidator;
       
  5454 	iXWapAppIdShortIntValidator = NULL;
       
  5455 	delete iDtorValidator;
       
  5456 	iDtorValidator = NULL;
       
  5457 	return error;
       
  5458 	}
       
  5459 
       
  5460 inline CWspHeaderReader_XWapAppIdShortInt_UnitTest::~CWspHeaderReader_XWapAppIdShortInt_UnitTest()
       
  5461 	{
       
  5462 	// Simply delete our test class instance
       
  5463 	delete iUTContext;
       
  5464 	delete iStateAccessor;
       
  5465 	/* delete any validators used */
       
  5466 	delete iCtorValidator;
       
  5467 	delete iXWapAppIdShortIntValidator;
       
  5468 	delete iDtorValidator;
       
  5469 	}
       
  5470 
       
  5471 inline CWspHeaderReader_XWapAppIdShortInt_UnitTest::CWspHeaderReader_XWapAppIdShortInt_UnitTest(CDataLogger& aDataLogger,
       
  5472 																	MUnitTestObserver& aObserver)
       
  5473 : CUnitTest(KWspHeaderReaderXWapAppIdShortIntUnitTest, aDataLogger, aObserver)
       
  5474 	{
       
  5475 	//Do nothing
       
  5476 	}
       
  5477 
       
  5478 // Now the Individual transitions need to be added.
       
  5479 inline void CWspHeaderReader_XWapAppIdShortInt_UnitTest::ConstructL()
       
  5480 	{
       
  5481 	// Perform the base class initialization
       
  5482 	UnitTestConstructL();
       
  5483 
       
  5484 	// Create the Unit test state accessor
       
  5485 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
  5486 	// Construct the Unit test context.
       
  5487 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
  5488 	iUTContext->ConstructL(WSP::EXWapApplicationId);
       
  5489 	iUTContext->iTestHeader->BeginRawDataL();
       
  5490 	TUint8 shortInt = 0x87; // Short int with top bit set
       
  5491 	iUTContext->iTestHeader->WriteRawDataL(shortInt);
       
  5492 	iUTContext->iTestHeader->CommitRawData();
       
  5493 	_LIT8(KTxtExpected, "7");
       
  5494 	iUTContext->SetExpectedL(KTxtExpected);
       
  5495 	// Add the Transitions in the order they are to run
       
  5496 	// C'tor first, D'tor last...
       
  5497 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
  5498 		using constructor and destuctor validators */
       
  5499 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
  5500 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
  5501 	iXWapAppIdShortIntValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
  5502 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderL_Transition(*iUTContext,*iXWapAppIdShortIntValidator));
       
  5503 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
  5504 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
  5505 	}
       
  5506 
       
  5507 // ______________________________________________________________________________
       
  5508 //
       
  5509 _LIT(KWspHeaderReaderXWapAppIdLongIntUnitTest,"CWspHeaderReader_XWapAppIdLongInt_UnitTest");
       
  5510 
       
  5511 CWspHeaderReader_XWapAppIdLongInt_UnitTest* CWspHeaderReader_XWapAppIdLongInt_UnitTest::NewL(CDataLogger& aDataLogger,
       
  5512 											MUnitTestObserver& aObserver)
       
  5513 	{
       
  5514 	CWspHeaderReader_XWapAppIdLongInt_UnitTest* self = 
       
  5515 					new(ELeave) CWspHeaderReader_XWapAppIdLongInt_UnitTest(aDataLogger,
       
  5516 																aObserver);
       
  5517 	CleanupStack::PushL(self);
       
  5518 	self->ConstructL();
       
  5519 	CleanupStack::Pop(self);
       
  5520 	return self; 
       
  5521 	}
       
  5522 
       
  5523 inline TInt CWspHeaderReader_XWapAppIdLongInt_UnitTest::RunError(TInt aError)
       
  5524 	{
       
  5525 	// The RunL left so chain to the base first and then cleanup
       
  5526 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
  5527 	delete iUTContext;
       
  5528 	iUTContext = NULL;
       
  5529 	delete iStateAccessor;
       
  5530 	iStateAccessor = NULL;
       
  5531 	/* delete any validators used */
       
  5532 	delete iCtorValidator;
       
  5533 	iCtorValidator = NULL;
       
  5534 	delete iXWapAppIdLongIntValidator;
       
  5535 	iXWapAppIdLongIntValidator = NULL;
       
  5536 	delete iDtorValidator;
       
  5537 	iDtorValidator = NULL;
       
  5538 	return error;
       
  5539 	}
       
  5540 
       
  5541 inline CWspHeaderReader_XWapAppIdLongInt_UnitTest::~CWspHeaderReader_XWapAppIdLongInt_UnitTest()
       
  5542 	{
       
  5543 	// Simply delete our test class instance
       
  5544 	delete iUTContext;
       
  5545 	delete iStateAccessor;
       
  5546 	/* delete any validators used */
       
  5547 	delete iCtorValidator;
       
  5548 	delete iXWapAppIdLongIntValidator;
       
  5549 	delete iDtorValidator;
       
  5550 	}
       
  5551 
       
  5552 inline CWspHeaderReader_XWapAppIdLongInt_UnitTest::CWspHeaderReader_XWapAppIdLongInt_UnitTest(CDataLogger& aDataLogger,
       
  5553 																	MUnitTestObserver& aObserver)
       
  5554 : CUnitTest(KWspHeaderReaderXWapAppIdLongIntUnitTest, aDataLogger, aObserver)
       
  5555 	{
       
  5556 	//Do nothing
       
  5557 	}
       
  5558 
       
  5559 // Now the Individual transitions need to be added.
       
  5560 inline void CWspHeaderReader_XWapAppIdLongInt_UnitTest::ConstructL()
       
  5561 	{
       
  5562 	// Perform the base class initialization
       
  5563 	UnitTestConstructL();
       
  5564 
       
  5565 	// Create the Unit test state accessor
       
  5566 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
  5567 	// Construct the Unit test context.
       
  5568 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
  5569 	iUTContext->ConstructL(WSP::EXWapApplicationId);
       
  5570 	iUTContext->iTestHeader->BeginRawDataL();
       
  5571 	TUint8 shortlength = 0x02; // length
       
  5572 	TUint8 longInt1 = 0x4A;
       
  5573 	TUint8 longInt2 = 0x80;
       
  5574 	iUTContext->iTestHeader->WriteRawDataL(shortlength);
       
  5575 	iUTContext->iTestHeader->WriteRawDataL(longInt1);
       
  5576 	iUTContext->iTestHeader->WriteRawDataL(longInt2);
       
  5577 	iUTContext->iTestHeader->CommitRawData();
       
  5578 	_LIT8(KTxtExpected, "19072");
       
  5579 	iUTContext->SetExpectedL(KTxtExpected);
       
  5580 	// Add the Transitions in the order they are to run
       
  5581 	// C'tor first, D'tor last...
       
  5582 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
  5583 		using constructor and destuctor validators */
       
  5584 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
  5585 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
  5586 	iXWapAppIdLongIntValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
  5587 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderL_Transition(*iUTContext,*iXWapAppIdLongIntValidator));
       
  5588 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
  5589 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
  5590 	}
       
  5591 
       
  5592 // ______________________________________________________________________________
       
  5593 //
       
  5594 _LIT(KWspHeaderReaderXWapInitUriTextValueUnitTest,"CWspHeaderReader_XWapInitUriTextValue_UnitTest");
       
  5595 
       
  5596 CWspHeaderReader_XWapInitUriTextValue_UnitTest* CWspHeaderReader_XWapInitUriTextValue_UnitTest::NewL(CDataLogger& aDataLogger,
       
  5597 											MUnitTestObserver& aObserver)
       
  5598 	{
       
  5599 	CWspHeaderReader_XWapInitUriTextValue_UnitTest* self = 
       
  5600 					new(ELeave) CWspHeaderReader_XWapInitUriTextValue_UnitTest(aDataLogger,
       
  5601 																aObserver);
       
  5602 	CleanupStack::PushL(self);
       
  5603 	self->ConstructL();
       
  5604 	CleanupStack::Pop(self);
       
  5605 	return self; 
       
  5606 	}
       
  5607 
       
  5608 inline TInt CWspHeaderReader_XWapInitUriTextValue_UnitTest::RunError(TInt aError)
       
  5609 	{
       
  5610 	// The RunL left so chain to the base first and then cleanup
       
  5611 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
  5612 	delete iUTContext;
       
  5613 	iUTContext = NULL;
       
  5614 	delete iStateAccessor;
       
  5615 	iStateAccessor = NULL;
       
  5616 	/* delete any validators used */
       
  5617 	delete iCtorValidator;
       
  5618 	iCtorValidator = NULL;
       
  5619 	delete iXWapInitUriTextValueValidator;
       
  5620 	iXWapInitUriTextValueValidator = NULL;
       
  5621 	delete iDtorValidator;
       
  5622 	iDtorValidator = NULL;
       
  5623 	return error;
       
  5624 	}
       
  5625 
       
  5626 inline CWspHeaderReader_XWapInitUriTextValue_UnitTest::~CWspHeaderReader_XWapInitUriTextValue_UnitTest()
       
  5627 	{
       
  5628 	// Simply delete our test class instance
       
  5629 	delete iUTContext;
       
  5630 	delete iStateAccessor;
       
  5631 	/* delete any validators used */
       
  5632 	delete iCtorValidator;
       
  5633 	delete iXWapInitUriTextValueValidator;
       
  5634 	delete iDtorValidator;
       
  5635 	}
       
  5636 
       
  5637 inline CWspHeaderReader_XWapInitUriTextValue_UnitTest::CWspHeaderReader_XWapInitUriTextValue_UnitTest(CDataLogger& aDataLogger,
       
  5638 																	MUnitTestObserver& aObserver)
       
  5639 : CUnitTest(KWspHeaderReaderXWapInitUriTextValueUnitTest, aDataLogger, aObserver)
       
  5640 	{
       
  5641 	//Do nothing
       
  5642 	}
       
  5643 
       
  5644 // Now the Individual transitions need to be added.
       
  5645 inline void CWspHeaderReader_XWapInitUriTextValue_UnitTest::ConstructL()
       
  5646 	{
       
  5647 	// Perform the base class initialization
       
  5648 	UnitTestConstructL();
       
  5649 
       
  5650 	// Create the Unit test state accessor
       
  5651 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
  5652 	// Construct the Unit test context.
       
  5653 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
  5654 	iUTContext->ConstructL(WSP::EXWapInitiatorURI);
       
  5655 	iUTContext->iTestHeader->BeginRawDataL();
       
  5656 	_LIT8(KTxtUri, "http://www.symbian.com\0");
       
  5657 	iUTContext->iTestHeader->WriteRawDataL(KTxtUri);
       
  5658 	iUTContext->iTestHeader->CommitRawData();
       
  5659 	_LIT8(KTxtExpected, "http://www.symbian.com");
       
  5660 	iUTContext->SetExpectedL(KTxtExpected);
       
  5661 	// Add the Transitions in the order they are to run
       
  5662 	// C'tor first, D'tor last...
       
  5663 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
  5664 		using constructor and destuctor validators */
       
  5665 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
  5666 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
  5667 	iXWapInitUriTextValueValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
  5668 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderL_Transition(*iUTContext,*iXWapInitUriTextValueValidator));
       
  5669 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
  5670 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
  5671 	}
       
  5672 
       
  5673 // ______________________________________________________________________________
       
  5674 //
       
  5675 _LIT(KWspHeaderReaderXWapInitUriNullValueUnitTest,"CWspHeaderReader_XWapInitUriNullValue_UnitTest");
       
  5676 
       
  5677 CWspHeaderReader_XWapInitUriNullValue_UnitTest* CWspHeaderReader_XWapInitUriNullValue_UnitTest::NewL(CDataLogger& aDataLogger,
       
  5678 											MUnitTestObserver& aObserver)
       
  5679 	{
       
  5680 	CWspHeaderReader_XWapInitUriNullValue_UnitTest* self = 
       
  5681 					new(ELeave) CWspHeaderReader_XWapInitUriNullValue_UnitTest(aDataLogger,
       
  5682 																aObserver);
       
  5683 	CleanupStack::PushL(self);
       
  5684 	self->ConstructL();
       
  5685 	CleanupStack::Pop(self);
       
  5686 	return self; 
       
  5687 	}
       
  5688 
       
  5689 inline TInt CWspHeaderReader_XWapInitUriNullValue_UnitTest::RunError(TInt aError)
       
  5690 	{
       
  5691 	// The RunL left so chain to the base first and then cleanup
       
  5692 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
  5693 	delete iUTContext;
       
  5694 	iUTContext = NULL;
       
  5695 	delete iStateAccessor;
       
  5696 	iStateAccessor = NULL;
       
  5697 	/* delete any validators used */
       
  5698 	delete iCtorValidator;
       
  5699 	iCtorValidator = NULL;
       
  5700 	delete iXWapInitUriNullValueValidator;
       
  5701 	iXWapInitUriNullValueValidator = NULL;
       
  5702 	delete iDtorValidator;
       
  5703 	iDtorValidator = NULL;
       
  5704 	return error;
       
  5705 	}
       
  5706 
       
  5707 inline CWspHeaderReader_XWapInitUriNullValue_UnitTest::~CWspHeaderReader_XWapInitUriNullValue_UnitTest()
       
  5708 	{
       
  5709 	// Simply delete our test class instance
       
  5710 	delete iUTContext;
       
  5711 	delete iStateAccessor;
       
  5712 	/* delete any validators used */
       
  5713 	delete iCtorValidator;
       
  5714 	delete iXWapInitUriNullValueValidator;
       
  5715 	delete iDtorValidator;
       
  5716 	}
       
  5717 
       
  5718 inline CWspHeaderReader_XWapInitUriNullValue_UnitTest::CWspHeaderReader_XWapInitUriNullValue_UnitTest(CDataLogger& aDataLogger,
       
  5719 																	MUnitTestObserver& aObserver)
       
  5720 : CUnitTest(KWspHeaderReaderXWapInitUriNullValueUnitTest, aDataLogger, aObserver)
       
  5721 	{
       
  5722 	//Do nothing
       
  5723 	}
       
  5724 
       
  5725 // Now the Individual transitions need to be added.
       
  5726 inline void CWspHeaderReader_XWapInitUriNullValue_UnitTest::ConstructL()
       
  5727 	{
       
  5728 	// Perform the base class initialization
       
  5729 	UnitTestConstructL();
       
  5730 
       
  5731 	// Create the Unit test state accessor
       
  5732 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
  5733 	// Construct the Unit test context.
       
  5734 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
  5735 	iUTContext->ConstructL(WSP::EXWapInitiatorURI);
       
  5736 	iUTContext->iTestHeader->BeginRawDataL();
       
  5737 	TUint8 nullTerminate = 0x00;
       
  5738 	iUTContext->iTestHeader->WriteRawDataL(nullTerminate);
       
  5739 	iUTContext->iTestHeader->CommitRawData();
       
  5740 	iUTContext->SetExpectedL(KNullDesC8());
       
  5741 	// Add the Transitions in the order they are to run
       
  5742 	// C'tor first, D'tor last...
       
  5743 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
  5744 		using constructor and destuctor validators */
       
  5745 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
  5746 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
  5747 	iXWapInitUriNullValueValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
  5748 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderL_Transition(*iUTContext,*iXWapInitUriNullValueValidator));
       
  5749 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
  5750 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
  5751 	}
       
  5752 
       
  5753 // ______________________________________________________________________________
       
  5754 //
       
  5755 _LIT(KWspHeaderReaderPushFlagShortIntUnitTest,"CWspHeaderReader_PushFlagShortInt_UnitTest");
       
  5756 
       
  5757 CWspHeaderReader_PushFlagShortInt_UnitTest* CWspHeaderReader_PushFlagShortInt_UnitTest::NewL(CDataLogger& aDataLogger,
       
  5758 											MUnitTestObserver& aObserver)
       
  5759 	{
       
  5760 	CWspHeaderReader_PushFlagShortInt_UnitTest* self = 
       
  5761 					new(ELeave) CWspHeaderReader_PushFlagShortInt_UnitTest(aDataLogger,
       
  5762 																aObserver);
       
  5763 	CleanupStack::PushL(self);
       
  5764 	self->ConstructL();
       
  5765 	CleanupStack::Pop(self);
       
  5766 	return self; 
       
  5767 	}
       
  5768 
       
  5769 inline TInt CWspHeaderReader_PushFlagShortInt_UnitTest::RunError(TInt aError)
       
  5770 	{
       
  5771 	// The RunL left so chain to the base first and then cleanup
       
  5772 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
  5773 	delete iUTContext;
       
  5774 	iUTContext = NULL;
       
  5775 	delete iStateAccessor;
       
  5776 	iStateAccessor = NULL;
       
  5777 	/* delete any validators used */
       
  5778 	delete iCtorValidator;
       
  5779 	iCtorValidator = NULL;
       
  5780 	delete iPushFlagShortIntValidator;
       
  5781 	iPushFlagShortIntValidator = NULL;
       
  5782 	delete iDtorValidator;
       
  5783 	iDtorValidator = NULL;
       
  5784 	return error;
       
  5785 	}
       
  5786 
       
  5787 inline CWspHeaderReader_PushFlagShortInt_UnitTest::~CWspHeaderReader_PushFlagShortInt_UnitTest()
       
  5788 	{
       
  5789 	// Simply delete our test class instance
       
  5790 	delete iUTContext;
       
  5791 	delete iStateAccessor;
       
  5792 	/* delete any validators used */
       
  5793 	delete iCtorValidator;
       
  5794 	delete iPushFlagShortIntValidator;
       
  5795 	delete iDtorValidator;
       
  5796 	}
       
  5797 
       
  5798 inline CWspHeaderReader_PushFlagShortInt_UnitTest::CWspHeaderReader_PushFlagShortInt_UnitTest(CDataLogger& aDataLogger,
       
  5799 																	MUnitTestObserver& aObserver)
       
  5800 : CUnitTest(KWspHeaderReaderPushFlagShortIntUnitTest, aDataLogger, aObserver)
       
  5801 	{
       
  5802 	//Do nothing
       
  5803 	}
       
  5804 
       
  5805 // Now the Individual transitions need to be added.
       
  5806 inline void CWspHeaderReader_PushFlagShortInt_UnitTest::ConstructL()
       
  5807 	{
       
  5808 	// Perform the base class initialization
       
  5809 	UnitTestConstructL();
       
  5810 
       
  5811 	// Create the Unit test state accessor
       
  5812 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
  5813 	// Construct the Unit test context.
       
  5814 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
  5815 	iUTContext->ConstructL(WSP::EPushFlag);
       
  5816 	iUTContext->iTestHeader->BeginRawDataL();
       
  5817 	TUint8 shortInt = 0xA9; // short int with top bit set
       
  5818 	iUTContext->iTestHeader->WriteRawDataL(shortInt);
       
  5819 	iUTContext->iTestHeader->CommitRawData();
       
  5820 	_LIT8(KTxtExpected, "41");
       
  5821 	iUTContext->SetExpectedL(KTxtExpected);
       
  5822 	// Add the Transitions in the order they are to run
       
  5823 	// C'tor first, D'tor last...
       
  5824 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
  5825 		using constructor and destuctor validators */
       
  5826 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
  5827 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
  5828 	iPushFlagShortIntValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
  5829 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderL_Transition(*iUTContext,*iPushFlagShortIntValidator));
       
  5830 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
  5831 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
  5832 	}
       
  5833 
       
  5834 // ______________________________________________________________________________
       
  5835 //
       
  5836 _LIT(KWspHeaderReaderPushFlagLongIntUnitTest,"CWspHeaderReader_PushFlagLongInt_UnitTest");
       
  5837 
       
  5838 CWspHeaderReader_PushFlagLongInt_UnitTest* CWspHeaderReader_PushFlagLongInt_UnitTest::NewL(CDataLogger& aDataLogger,
       
  5839 											MUnitTestObserver& aObserver)
       
  5840 	{
       
  5841 	CWspHeaderReader_PushFlagLongInt_UnitTest* self = 
       
  5842 					new(ELeave) CWspHeaderReader_PushFlagLongInt_UnitTest(aDataLogger,
       
  5843 																aObserver);
       
  5844 	CleanupStack::PushL(self);
       
  5845 	self->ConstructL();
       
  5846 	CleanupStack::Pop(self);
       
  5847 	return self; 
       
  5848 	}
       
  5849 
       
  5850 inline TInt CWspHeaderReader_PushFlagLongInt_UnitTest::RunError(TInt aError)
       
  5851 	{
       
  5852 	// The RunL left so chain to the base first and then cleanup
       
  5853 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
  5854 	delete iUTContext;
       
  5855 	iUTContext = NULL;
       
  5856 	delete iStateAccessor;
       
  5857 	iStateAccessor = NULL;
       
  5858 	/* delete any validators used */
       
  5859 	delete iCtorValidator;
       
  5860 	iCtorValidator = NULL;
       
  5861 	delete iPushFlagLongIntValidator;
       
  5862 	iPushFlagLongIntValidator = NULL;
       
  5863 	delete iDtorValidator;
       
  5864 	iDtorValidator = NULL;
       
  5865 	return error;
       
  5866 	}
       
  5867 
       
  5868 inline CWspHeaderReader_PushFlagLongInt_UnitTest::~CWspHeaderReader_PushFlagLongInt_UnitTest()
       
  5869 	{
       
  5870 	// Simply delete our test class instance
       
  5871 	delete iUTContext;
       
  5872 	delete iStateAccessor;
       
  5873 	/* delete any validators used */
       
  5874 	delete iCtorValidator;
       
  5875 	delete iPushFlagLongIntValidator;
       
  5876 	delete iDtorValidator;
       
  5877 	}
       
  5878 
       
  5879 inline CWspHeaderReader_PushFlagLongInt_UnitTest::CWspHeaderReader_PushFlagLongInt_UnitTest(CDataLogger& aDataLogger,
       
  5880 																	MUnitTestObserver& aObserver)
       
  5881 : CUnitTest(KWspHeaderReaderPushFlagLongIntUnitTest, aDataLogger, aObserver)
       
  5882 	{
       
  5883 	//Do nothing
       
  5884 	}
       
  5885 
       
  5886 // Now the Individual transitions need to be added.
       
  5887 inline void CWspHeaderReader_PushFlagLongInt_UnitTest::ConstructL()
       
  5888 	{
       
  5889 	// Perform the base class initialization
       
  5890 	UnitTestConstructL();
       
  5891 
       
  5892 	// Create the Unit test state accessor
       
  5893 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
  5894 	// Construct the Unit test context.
       
  5895 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
  5896 	iUTContext->ConstructL(WSP::EPushFlag);
       
  5897 	iUTContext->iTestHeader->BeginRawDataL();
       
  5898 	TUint8 length = 0x02;
       
  5899 	TUint8 longInt1 = 0xA8;
       
  5900 	TUint8 longInt2 = 0x05;
       
  5901 	iUTContext->iTestHeader->WriteRawDataL(length);
       
  5902 	iUTContext->iTestHeader->WriteRawDataL(longInt1);
       
  5903 	iUTContext->iTestHeader->WriteRawDataL(longInt2);
       
  5904 	iUTContext->iTestHeader->CommitRawData();
       
  5905 	_LIT8(KTxtExpected, "-20");
       
  5906 	iUTContext->SetExpectedL(KTxtExpected);
       
  5907 	// Add the Transitions in the order they are to run
       
  5908 	// C'tor first, D'tor last...
       
  5909 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
  5910 		using constructor and destuctor validators */
       
  5911 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
  5912 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
  5913 	iPushFlagLongIntValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
  5914 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderLTrap_Transition(*iUTContext,*iPushFlagLongIntValidator));
       
  5915 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
  5916 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
  5917 	}
       
  5918 
       
  5919 // ______________________________________________________________________________
       
  5920 //
       
  5921 _LIT(KWspHeaderReaderPushFlagTextValueUnitTest,"CWspHeaderReader_PushFlagTextValue_UnitTest");
       
  5922 
       
  5923 CWspHeaderReader_PushFlagTextValue_UnitTest* CWspHeaderReader_PushFlagTextValue_UnitTest::NewL(CDataLogger& aDataLogger,
       
  5924 											MUnitTestObserver& aObserver)
       
  5925 	{
       
  5926 	CWspHeaderReader_PushFlagTextValue_UnitTest* self = 
       
  5927 					new(ELeave) CWspHeaderReader_PushFlagTextValue_UnitTest(aDataLogger,
       
  5928 																aObserver);
       
  5929 	CleanupStack::PushL(self);
       
  5930 	self->ConstructL();
       
  5931 	CleanupStack::Pop(self);
       
  5932 	return self; 
       
  5933 	}
       
  5934 
       
  5935 inline TInt CWspHeaderReader_PushFlagTextValue_UnitTest::RunError(TInt aError)
       
  5936 	{
       
  5937 	// The RunL left so chain to the base first and then cleanup
       
  5938 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
  5939 	delete iUTContext;
       
  5940 	iUTContext = NULL;
       
  5941 	delete iStateAccessor;
       
  5942 	iStateAccessor = NULL;
       
  5943 	/* delete any validators used */
       
  5944 	delete iCtorValidator;
       
  5945 	iCtorValidator = NULL;
       
  5946 	delete iPushFlagTextValueValidator;
       
  5947 	iPushFlagTextValueValidator = NULL;
       
  5948 	delete iDtorValidator;
       
  5949 	iDtorValidator = NULL;
       
  5950 	return error;
       
  5951 	}
       
  5952 
       
  5953 inline CWspHeaderReader_PushFlagTextValue_UnitTest::~CWspHeaderReader_PushFlagTextValue_UnitTest()
       
  5954 	{
       
  5955 	// Simply delete our test class instance
       
  5956 	delete iUTContext;
       
  5957 	delete iStateAccessor;
       
  5958 	/* delete any validators used */
       
  5959 	delete iCtorValidator;
       
  5960 	delete iPushFlagTextValueValidator;
       
  5961 	delete iDtorValidator;
       
  5962 	}
       
  5963 
       
  5964 inline CWspHeaderReader_PushFlagTextValue_UnitTest::CWspHeaderReader_PushFlagTextValue_UnitTest(CDataLogger& aDataLogger,
       
  5965 																	MUnitTestObserver& aObserver)
       
  5966 : CUnitTest(KWspHeaderReaderPushFlagTextValueUnitTest, aDataLogger, aObserver)
       
  5967 	{
       
  5968 	//Do nothing
       
  5969 	}
       
  5970 
       
  5971 // Now the Individual transitions need to be added.
       
  5972 inline void CWspHeaderReader_PushFlagTextValue_UnitTest::ConstructL()
       
  5973 	{
       
  5974 	// Perform the base class initialization
       
  5975 	UnitTestConstructL();
       
  5976 
       
  5977 	// Create the Unit test state accessor
       
  5978 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
  5979 	// Construct the Unit test context.
       
  5980 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
  5981 	iUTContext->ConstructL(WSP::EPushFlag);
       
  5982 	iUTContext->iTestHeader->BeginRawDataL();
       
  5983 	_LIT8(KTxtValue, "test-text-value\0");
       
  5984 	iUTContext->iTestHeader->WriteRawDataL(KTxtValue);
       
  5985 	iUTContext->iTestHeader->CommitRawData();
       
  5986 	_LIT8(KTxtExpected, "-20");
       
  5987 	iUTContext->SetExpectedL(KTxtExpected);
       
  5988 	// Add the Transitions in the order they are to run
       
  5989 	// C'tor first, D'tor last...
       
  5990 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
  5991 		using constructor and destuctor validators */
       
  5992 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
  5993 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
  5994 	iPushFlagTextValueValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
  5995 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderLTrap_Transition(*iUTContext,*iPushFlagTextValueValidator));
       
  5996 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
  5997 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
  5998 	}
       
  5999 
       
  6000 // ______________________________________________________________________________
       
  6001 //
       
  6002 _LIT(KWspHeaderReaderAllowGetUnitTest,"CWspHeaderReader_AllowGet_UnitTest");
       
  6003 
       
  6004 CWspHeaderReader_AllowGet_UnitTest* CWspHeaderReader_AllowGet_UnitTest::NewL(CDataLogger& aDataLogger,
       
  6005 											MUnitTestObserver& aObserver)
       
  6006 	{
       
  6007 	CWspHeaderReader_AllowGet_UnitTest* self = 
       
  6008 					new(ELeave) CWspHeaderReader_AllowGet_UnitTest(aDataLogger,
       
  6009 																aObserver);
       
  6010 	CleanupStack::PushL(self);
       
  6011 	self->ConstructL();
       
  6012 	CleanupStack::Pop(self);
       
  6013 	return self; 
       
  6014 	}
       
  6015 
       
  6016 inline TInt CWspHeaderReader_AllowGet_UnitTest::RunError(TInt aError)
       
  6017 	{
       
  6018 	// The RunL left so chain to the base first and then cleanup
       
  6019 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
  6020 	delete iUTContext;
       
  6021 	iUTContext = NULL;
       
  6022 	delete iStateAccessor;
       
  6023 	iStateAccessor = NULL;
       
  6024 	/* delete any validators used */
       
  6025 	delete iCtorValidator;
       
  6026 	iCtorValidator = NULL;
       
  6027 	delete iAllowGetValidator;
       
  6028 	iAllowGetValidator = NULL;
       
  6029 	delete iDtorValidator;
       
  6030 	iDtorValidator = NULL;
       
  6031 	return error;
       
  6032 	}
       
  6033 
       
  6034 inline CWspHeaderReader_AllowGet_UnitTest::~CWspHeaderReader_AllowGet_UnitTest()
       
  6035 	{
       
  6036 	// Simply delete our test class instance
       
  6037 	delete iUTContext;
       
  6038 	delete iStateAccessor;
       
  6039 	/* delete any validators used */
       
  6040 	delete iCtorValidator;
       
  6041 	delete iAllowGetValidator;
       
  6042 	delete iDtorValidator;
       
  6043 	}
       
  6044 
       
  6045 inline CWspHeaderReader_AllowGet_UnitTest::CWspHeaderReader_AllowGet_UnitTest(CDataLogger& aDataLogger,
       
  6046 																	MUnitTestObserver& aObserver)
       
  6047 : CUnitTest(KWspHeaderReaderAllowGetUnitTest, aDataLogger, aObserver)
       
  6048 	{
       
  6049 	//Do nothing
       
  6050 	}
       
  6051 
       
  6052 // Now the Individual transitions need to be added.
       
  6053 inline void CWspHeaderReader_AllowGet_UnitTest::ConstructL()
       
  6054 	{
       
  6055 	// Perform the base class initialization
       
  6056 	UnitTestConstructL();
       
  6057 
       
  6058 	// Create the Unit test state accessor
       
  6059 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
  6060 	// Construct the Unit test context.
       
  6061 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
  6062 	iUTContext->ConstructL(WSP::EAllow);
       
  6063 	iUTContext->iTestHeader->BeginRawDataL();
       
  6064 	TUint8 getToken = 0xC0; // short int Get token with top bit set
       
  6065 	iUTContext->iTestHeader->WriteRawDataL(getToken);
       
  6066 	iUTContext->iTestHeader->CommitRawData();
       
  6067 	_LIT8(KTxtExpected, "Get");
       
  6068 	iUTContext->SetExpectedL(KTxtExpected);
       
  6069 	// Add the Transitions in the order they are to run
       
  6070 	// C'tor first, D'tor last...
       
  6071 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
  6072 		using constructor and destuctor validators */
       
  6073 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
  6074 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
  6075 	iAllowGetValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
  6076 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderL_Transition(*iUTContext,*iAllowGetValidator));
       
  6077 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
  6078 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
  6079 	}
       
  6080 
       
  6081 // ______________________________________________________________________________
       
  6082 //
       
  6083 _LIT(KWspHeaderReaderAllowTraceUnitTest,"CWspHeaderReader_AllowTrace_UnitTest");
       
  6084 
       
  6085 CWspHeaderReader_AllowTrace_UnitTest* CWspHeaderReader_AllowTrace_UnitTest::NewL(CDataLogger& aDataLogger,
       
  6086 											MUnitTestObserver& aObserver)
       
  6087 	{
       
  6088 	CWspHeaderReader_AllowTrace_UnitTest* self = 
       
  6089 					new(ELeave) CWspHeaderReader_AllowTrace_UnitTest(aDataLogger,
       
  6090 																aObserver);
       
  6091 	CleanupStack::PushL(self);
       
  6092 	self->ConstructL();
       
  6093 	CleanupStack::Pop(self);
       
  6094 	return self; 
       
  6095 	}
       
  6096 
       
  6097 inline TInt CWspHeaderReader_AllowTrace_UnitTest::RunError(TInt aError)
       
  6098 	{
       
  6099 	// The RunL left so chain to the base first and then cleanup
       
  6100 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
  6101 	delete iUTContext;
       
  6102 	iUTContext = NULL;
       
  6103 	delete iStateAccessor;
       
  6104 	iStateAccessor = NULL;
       
  6105 	/* delete any validators used */
       
  6106 	delete iCtorValidator;
       
  6107 	iCtorValidator = NULL;
       
  6108 	delete iAllowTraceValidator;
       
  6109 	iAllowTraceValidator = NULL;
       
  6110 	delete iDtorValidator;
       
  6111 	iDtorValidator = NULL;
       
  6112 	return error;
       
  6113 	}
       
  6114 
       
  6115 inline CWspHeaderReader_AllowTrace_UnitTest::~CWspHeaderReader_AllowTrace_UnitTest()
       
  6116 	{
       
  6117 	// Simply delete our test class instance
       
  6118 	delete iUTContext;
       
  6119 	delete iStateAccessor;
       
  6120 	/* delete any validators used */
       
  6121 	delete iCtorValidator;
       
  6122 	delete iAllowTraceValidator;
       
  6123 	delete iDtorValidator;
       
  6124 	}
       
  6125 
       
  6126 inline CWspHeaderReader_AllowTrace_UnitTest::CWspHeaderReader_AllowTrace_UnitTest(CDataLogger& aDataLogger,
       
  6127 																	MUnitTestObserver& aObserver)
       
  6128 : CUnitTest(KWspHeaderReaderAllowTraceUnitTest, aDataLogger, aObserver)
       
  6129 	{
       
  6130 	//Do nothing
       
  6131 	}
       
  6132 
       
  6133 // Now the Individual transitions need to be added.
       
  6134 inline void CWspHeaderReader_AllowTrace_UnitTest::ConstructL()
       
  6135 	{
       
  6136 	// Perform the base class initialization
       
  6137 	UnitTestConstructL();
       
  6138 
       
  6139 	// Create the Unit test state accessor
       
  6140 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
  6141 	// Construct the Unit test context.
       
  6142 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
  6143 	iUTContext->ConstructL(WSP::EAllow);
       
  6144 	iUTContext->iTestHeader->BeginRawDataL();
       
  6145 	TUint8 traceToken = 0xC4; // short int Trace token with top bit set
       
  6146 	iUTContext->iTestHeader->WriteRawDataL(traceToken);
       
  6147 	iUTContext->iTestHeader->CommitRawData();
       
  6148 	_LIT8(KTxtExpected, "Trace");
       
  6149 	iUTContext->SetExpectedL(KTxtExpected);
       
  6150 	// Add the Transitions in the order they are to run
       
  6151 	// C'tor first, D'tor last...
       
  6152 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
  6153 		using constructor and destuctor validators */
       
  6154 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
  6155 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
  6156 	iAllowTraceValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
  6157 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderL_Transition(*iUTContext,*iAllowTraceValidator));
       
  6158 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
  6159 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
  6160 	}
       
  6161 
       
  6162 // ______________________________________________________________________________
       
  6163 //
       
  6164 _LIT(KWspHeaderReaderAllowLongIntUnitTest,"CWspHeaderReader_AllowLongInt_UnitTest");
       
  6165 
       
  6166 CWspHeaderReader_AllowLongInt_UnitTest* CWspHeaderReader_AllowLongInt_UnitTest::NewL(CDataLogger& aDataLogger,
       
  6167 											MUnitTestObserver& aObserver)
       
  6168 	{
       
  6169 	CWspHeaderReader_AllowLongInt_UnitTest* self = 
       
  6170 					new(ELeave) CWspHeaderReader_AllowLongInt_UnitTest(aDataLogger,
       
  6171 																aObserver);
       
  6172 	CleanupStack::PushL(self);
       
  6173 	self->ConstructL();
       
  6174 	CleanupStack::Pop(self);
       
  6175 	return self; 
       
  6176 	}
       
  6177 
       
  6178 inline TInt CWspHeaderReader_AllowLongInt_UnitTest::RunError(TInt aError)
       
  6179 	{
       
  6180 	// The RunL left so chain to the base first and then cleanup
       
  6181 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
  6182 	delete iUTContext;
       
  6183 	iUTContext = NULL;
       
  6184 	delete iStateAccessor;
       
  6185 	iStateAccessor = NULL;
       
  6186 	/* delete any validators used */
       
  6187 	delete iCtorValidator;
       
  6188 	iCtorValidator = NULL;
       
  6189 	delete iAllowLongIntValidator;
       
  6190 	iAllowLongIntValidator = NULL;
       
  6191 	delete iDtorValidator;
       
  6192 	iDtorValidator = NULL;
       
  6193 	return error;
       
  6194 	}
       
  6195 
       
  6196 inline CWspHeaderReader_AllowLongInt_UnitTest::~CWspHeaderReader_AllowLongInt_UnitTest()
       
  6197 	{
       
  6198 	// Simply delete our test class instance
       
  6199 	delete iUTContext;
       
  6200 	delete iStateAccessor;
       
  6201 	/* delete any validators used */
       
  6202 	delete iCtorValidator;
       
  6203 	delete iAllowLongIntValidator;
       
  6204 	delete iDtorValidator;
       
  6205 	}
       
  6206 
       
  6207 inline CWspHeaderReader_AllowLongInt_UnitTest::CWspHeaderReader_AllowLongInt_UnitTest(CDataLogger& aDataLogger,
       
  6208 																	MUnitTestObserver& aObserver)
       
  6209 : CUnitTest(KWspHeaderReaderAllowLongIntUnitTest, aDataLogger, aObserver)
       
  6210 	{
       
  6211 	//Do nothing
       
  6212 	}
       
  6213 
       
  6214 // Now the Individual transitions need to be added.
       
  6215 inline void CWspHeaderReader_AllowLongInt_UnitTest::ConstructL()
       
  6216 	{
       
  6217 	// Perform the base class initialization
       
  6218 	UnitTestConstructL();
       
  6219 
       
  6220 	// Create the Unit test state accessor
       
  6221 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
  6222 	// Construct the Unit test context.
       
  6223 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
  6224 	iUTContext->ConstructL(WSP::EAllow);
       
  6225 	iUTContext->iTestHeader->BeginRawDataL();
       
  6226 	TUint8 length = 0x02; // long int length
       
  6227 	TUint8 longInt1 = 0x45;
       
  6228 	TUint8 longInt2 = 0xA1;
       
  6229 	iUTContext->iTestHeader->WriteRawDataL(length);
       
  6230 	iUTContext->iTestHeader->WriteRawDataL(longInt1);
       
  6231 	iUTContext->iTestHeader->WriteRawDataL(longInt2);
       
  6232 	iUTContext->iTestHeader->CommitRawData();
       
  6233 	_LIT8(KTxtExpected, "-20");
       
  6234 	iUTContext->SetExpectedL(KTxtExpected);
       
  6235 	// Add the Transitions in the order they are to run
       
  6236 	// C'tor first, D'tor last...
       
  6237 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
  6238 		using constructor and destuctor validators */
       
  6239 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
  6240 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
  6241 	iAllowLongIntValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
  6242 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderLTrap_Transition(*iUTContext,*iAllowLongIntValidator));
       
  6243 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
  6244 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
  6245 	}
       
  6246 
       
  6247 // ______________________________________________________________________________
       
  6248 //
       
  6249 _LIT(KWspHeaderReaderAllowInvalidShortIntUnitTest,"CWspHeaderReader_AllowInvalidShortInt_UnitTest");
       
  6250 
       
  6251 CWspHeaderReader_AllowInvalidShortInt_UnitTest* CWspHeaderReader_AllowInvalidShortInt_UnitTest::NewL(CDataLogger& aDataLogger,
       
  6252 											MUnitTestObserver& aObserver)
       
  6253 	{
       
  6254 	CWspHeaderReader_AllowInvalidShortInt_UnitTest* self = 
       
  6255 					new(ELeave) CWspHeaderReader_AllowInvalidShortInt_UnitTest(aDataLogger,
       
  6256 																aObserver);
       
  6257 	CleanupStack::PushL(self);
       
  6258 	self->ConstructL();
       
  6259 	CleanupStack::Pop(self);
       
  6260 	return self; 
       
  6261 	}
       
  6262 
       
  6263 inline TInt CWspHeaderReader_AllowInvalidShortInt_UnitTest::RunError(TInt aError)
       
  6264 	{
       
  6265 	// The RunL left so chain to the base first and then cleanup
       
  6266 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
  6267 	delete iUTContext;
       
  6268 	iUTContext = NULL;
       
  6269 	delete iStateAccessor;
       
  6270 	iStateAccessor = NULL;
       
  6271 	/* delete any validators used */
       
  6272 	delete iCtorValidator;
       
  6273 	iCtorValidator = NULL;
       
  6274 	delete iAllowInvalidShortIntValidator;
       
  6275 	// iAllowInvalidShortIntValidator = NULL;
       
  6276 	delete iDtorValidator;
       
  6277 	iDtorValidator = NULL;
       
  6278 	return error;
       
  6279 	}
       
  6280 
       
  6281 inline CWspHeaderReader_AllowInvalidShortInt_UnitTest::~CWspHeaderReader_AllowInvalidShortInt_UnitTest()
       
  6282 	{
       
  6283 	// Simply delete our test class instance
       
  6284 	delete iUTContext;
       
  6285 	delete iStateAccessor;
       
  6286 	/* delete any validators used */
       
  6287 	delete iCtorValidator;
       
  6288 	delete iAllowInvalidShortIntValidator;
       
  6289 	delete iDtorValidator;
       
  6290 	}
       
  6291 
       
  6292 inline CWspHeaderReader_AllowInvalidShortInt_UnitTest::CWspHeaderReader_AllowInvalidShortInt_UnitTest(CDataLogger& aDataLogger,
       
  6293 																	MUnitTestObserver& aObserver)
       
  6294 : CUnitTest(KWspHeaderReaderAllowInvalidShortIntUnitTest, aDataLogger, aObserver)
       
  6295 	{
       
  6296 	//Do nothing
       
  6297 	}
       
  6298 
       
  6299 // Now the Individual transitions need to be added.
       
  6300 inline void CWspHeaderReader_AllowInvalidShortInt_UnitTest::ConstructL()
       
  6301 	{
       
  6302 	// Perform the base class initialization
       
  6303 	UnitTestConstructL();
       
  6304 
       
  6305 	// Create the Unit test state accessor
       
  6306 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
  6307 	// Construct the Unit test context.
       
  6308 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
  6309 	iUTContext->ConstructL(WSP::EAllow);
       
  6310 	iUTContext->iTestHeader->BeginRawDataL();
       
  6311 	TUint8 shortInt = 0xF0; // invalid short int token
       
  6312 	iUTContext->iTestHeader->WriteRawDataL(shortInt);
       
  6313 	iUTContext->iTestHeader->CommitRawData();
       
  6314 	_LIT8(KTxtExpected, "-5");
       
  6315 	iUTContext->SetExpectedL(KTxtExpected);
       
  6316 	// Add the Transitions in the order they are to run
       
  6317 	// C'tor first, D'tor last...
       
  6318 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
  6319 		using constructor and destuctor validators */
       
  6320 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
  6321 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
  6322 	iAllowInvalidShortIntValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
  6323 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderLTrap_Transition(*iUTContext,*iAllowInvalidShortIntValidator));
       
  6324 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
  6325 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
  6326 	}
       
  6327 
       
  6328 // ______________________________________________________________________________
       
  6329 //
       
  6330 _LIT(KWspHeaderReaderUpgradeTextUnitTest,"CWspHeaderReader_UpgradeText_UnitTest");
       
  6331 
       
  6332 CWspHeaderReader_UpgradeText_UnitTest* CWspHeaderReader_UpgradeText_UnitTest::NewL(CDataLogger& aDataLogger,
       
  6333 											MUnitTestObserver& aObserver)
       
  6334 	{
       
  6335 	CWspHeaderReader_UpgradeText_UnitTest* self = 
       
  6336 					new(ELeave) CWspHeaderReader_UpgradeText_UnitTest(aDataLogger,
       
  6337 																aObserver);
       
  6338 	CleanupStack::PushL(self);
       
  6339 	self->ConstructL();
       
  6340 	CleanupStack::Pop(self);
       
  6341 	return self; 
       
  6342 	}
       
  6343 
       
  6344 inline TInt CWspHeaderReader_UpgradeText_UnitTest::RunError(TInt aError)
       
  6345 	{
       
  6346 	// The RunL left so chain to the base first and then cleanup
       
  6347 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
  6348 	delete iUTContext;
       
  6349 	iUTContext = NULL;
       
  6350 	delete iStateAccessor;
       
  6351 	iStateAccessor = NULL;
       
  6352 	/* delete any validators used */
       
  6353 	delete iCtorValidator;
       
  6354 	iCtorValidator = NULL;
       
  6355 	delete iUpgradeTextValidator;
       
  6356 	iUpgradeTextValidator = NULL;
       
  6357 	delete iDtorValidator;
       
  6358 	iDtorValidator = NULL;
       
  6359 	return error;
       
  6360 	}
       
  6361 
       
  6362 inline CWspHeaderReader_UpgradeText_UnitTest::~CWspHeaderReader_UpgradeText_UnitTest()
       
  6363 	{
       
  6364 	// Simply delete our test class instance
       
  6365 	delete iUTContext;
       
  6366 	delete iStateAccessor;
       
  6367 	/* delete any validators used */
       
  6368 	delete iCtorValidator;
       
  6369 	delete iUpgradeTextValidator;
       
  6370 	delete iDtorValidator;
       
  6371 	}
       
  6372 
       
  6373 inline CWspHeaderReader_UpgradeText_UnitTest::CWspHeaderReader_UpgradeText_UnitTest(CDataLogger& aDataLogger,
       
  6374 																	MUnitTestObserver& aObserver)
       
  6375 : CUnitTest(KWspHeaderReaderUpgradeTextUnitTest, aDataLogger, aObserver)
       
  6376 	{
       
  6377 	//Do nothing
       
  6378 	}
       
  6379 
       
  6380 // Now the Individual transitions need to be added.
       
  6381 inline void CWspHeaderReader_UpgradeText_UnitTest::ConstructL()
       
  6382 	{
       
  6383 	// Perform the base class initialization
       
  6384 	UnitTestConstructL();
       
  6385 
       
  6386 	// Create the Unit test state accessor
       
  6387 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
  6388 	// Construct the Unit test context.
       
  6389 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
  6390 	iUTContext->ConstructL(WSP::EUpgrade);
       
  6391 	iUTContext->iTestHeader->BeginRawDataL();
       
  6392 	_LIT8(KTxtUpgrade, "HTTP/1.2\0");
       
  6393 	iUTContext->iTestHeader->WriteRawDataL(KTxtUpgrade);
       
  6394 	iUTContext->iTestHeader->CommitRawData();
       
  6395 	_LIT8(KTxtExpected, "HTTP/1.2");
       
  6396 	iUTContext->SetExpectedL(KTxtExpected);
       
  6397 	// Add the Transitions in the order they are to run
       
  6398 	// C'tor first, D'tor last...
       
  6399 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
  6400 		using constructor and destuctor validators */
       
  6401 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
  6402 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
  6403 	iUpgradeTextValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
  6404 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderL_Transition(*iUTContext,*iUpgradeTextValidator));
       
  6405 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
  6406 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
  6407 	}
       
  6408 
       
  6409 // ______________________________________________________________________________
       
  6410 //
       
  6411 _LIT(KWspHeaderReaderUpgradeNullTextUnitTest,"CWspHeaderReader_UpgradeNullText_UnitTest");
       
  6412 
       
  6413 CWspHeaderReader_UpgradeNullText_UnitTest* CWspHeaderReader_UpgradeNullText_UnitTest::NewL(CDataLogger& aDataLogger,
       
  6414 											MUnitTestObserver& aObserver)
       
  6415 	{
       
  6416 	CWspHeaderReader_UpgradeNullText_UnitTest* self = 
       
  6417 					new(ELeave) CWspHeaderReader_UpgradeNullText_UnitTest(aDataLogger,
       
  6418 																aObserver);
       
  6419 	CleanupStack::PushL(self);
       
  6420 	self->ConstructL();
       
  6421 	CleanupStack::Pop(self);
       
  6422 	return self; 
       
  6423 	}
       
  6424 
       
  6425 inline TInt CWspHeaderReader_UpgradeNullText_UnitTest::RunError(TInt aError)
       
  6426 	{
       
  6427 	// The RunL left so chain to the base first and then cleanup
       
  6428 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
  6429 	delete iUTContext;
       
  6430 	iUTContext = NULL;
       
  6431 	delete iStateAccessor;
       
  6432 	iStateAccessor = NULL;
       
  6433 	/* delete any validators used */
       
  6434 	delete iCtorValidator;
       
  6435 	iCtorValidator = NULL;
       
  6436 	delete iUpgradeNullTextValidator;
       
  6437 	iUpgradeNullTextValidator = NULL;
       
  6438 	delete iDtorValidator;
       
  6439 	iDtorValidator = NULL;
       
  6440 	return error;
       
  6441 	}
       
  6442 
       
  6443 inline CWspHeaderReader_UpgradeNullText_UnitTest::~CWspHeaderReader_UpgradeNullText_UnitTest()
       
  6444 	{
       
  6445 	// Simply delete our test class instance
       
  6446 	delete iUTContext;
       
  6447 	delete iStateAccessor;
       
  6448 	/* delete any validators used */
       
  6449 	delete iCtorValidator;
       
  6450 	delete iUpgradeNullTextValidator;
       
  6451 	delete iDtorValidator;
       
  6452 	}
       
  6453 
       
  6454 inline CWspHeaderReader_UpgradeNullText_UnitTest::CWspHeaderReader_UpgradeNullText_UnitTest(CDataLogger& aDataLogger,
       
  6455 																	MUnitTestObserver& aObserver)
       
  6456 : CUnitTest(KWspHeaderReaderUpgradeNullTextUnitTest, aDataLogger, aObserver)
       
  6457 	{
       
  6458 	//Do nothing
       
  6459 	}
       
  6460 
       
  6461 // Now the Individual transitions need to be added.
       
  6462 inline void CWspHeaderReader_UpgradeNullText_UnitTest::ConstructL()
       
  6463 	{
       
  6464 	// Perform the base class initialization
       
  6465 	UnitTestConstructL();
       
  6466 
       
  6467 	// Create the Unit test state accessor
       
  6468 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
  6469 	// Construct the Unit test context.
       
  6470 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
  6471 	iUTContext->ConstructL(WSP::EUpgrade);
       
  6472 	iUTContext->iTestHeader->BeginRawDataL();
       
  6473 	TUint8 nullTerminate = 0x00;
       
  6474 	iUTContext->iTestHeader->WriteRawDataL(nullTerminate);
       
  6475 	iUTContext->iTestHeader->CommitRawData();
       
  6476 	iUTContext->SetExpectedL(KNullDesC8());
       
  6477 	// Add the Transitions in the order they are to run
       
  6478 	// C'tor first, D'tor last...
       
  6479 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
  6480 		using constructor and destuctor validators */
       
  6481 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
  6482 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
  6483 	iUpgradeNullTextValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
  6484 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderL_Transition(*iUTContext,*iUpgradeNullTextValidator));
       
  6485 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
  6486 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
  6487 	}
       
  6488 
       
  6489 // ______________________________________________________________________________
       
  6490 //
       
  6491 _LIT(KWspHeaderReaderWarningShortIntUnitTest,"CWspHeaderReader_WarningShortInt_UnitTest");
       
  6492 
       
  6493 CWspHeaderReader_WarningShortInt_UnitTest* CWspHeaderReader_WarningShortInt_UnitTest::NewL(CDataLogger& aDataLogger,
       
  6494 											MUnitTestObserver& aObserver)
       
  6495 	{
       
  6496 	CWspHeaderReader_WarningShortInt_UnitTest* self = 
       
  6497 					new(ELeave) CWspHeaderReader_WarningShortInt_UnitTest(aDataLogger,
       
  6498 																aObserver);
       
  6499 	CleanupStack::PushL(self);
       
  6500 	self->ConstructL();
       
  6501 	CleanupStack::Pop(self);
       
  6502 	return self; 
       
  6503 	}
       
  6504 
       
  6505 inline TInt CWspHeaderReader_WarningShortInt_UnitTest::RunError(TInt aError)
       
  6506 	{
       
  6507 	// The RunL left so chain to the base first and then cleanup
       
  6508 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
  6509 	delete iUTContext;
       
  6510 	iUTContext = NULL;
       
  6511 	delete iStateAccessor;
       
  6512 	iStateAccessor = NULL;
       
  6513 	/* delete any validators used */
       
  6514 	delete iCtorValidator;
       
  6515 	iCtorValidator = NULL;
       
  6516 	delete iWarningShortIntValidator;
       
  6517 	iWarningShortIntValidator = NULL;
       
  6518 	delete iDtorValidator;
       
  6519 	iDtorValidator = NULL;
       
  6520 	return error;
       
  6521 	}
       
  6522 
       
  6523 inline CWspHeaderReader_WarningShortInt_UnitTest::~CWspHeaderReader_WarningShortInt_UnitTest()
       
  6524 	{
       
  6525 	// Simply delete our test class instance
       
  6526 	delete iUTContext;
       
  6527 	delete iStateAccessor;
       
  6528 	/* delete any validators used */
       
  6529 	delete iCtorValidator;
       
  6530 	delete iWarningShortIntValidator;
       
  6531 	delete iDtorValidator;
       
  6532 	}
       
  6533 
       
  6534 inline CWspHeaderReader_WarningShortInt_UnitTest::CWspHeaderReader_WarningShortInt_UnitTest(CDataLogger& aDataLogger,
       
  6535 																	MUnitTestObserver& aObserver)
       
  6536 : CUnitTest(KWspHeaderReaderWarningShortIntUnitTest, aDataLogger, aObserver)
       
  6537 	{
       
  6538 	//Do nothing
       
  6539 	}
       
  6540 
       
  6541 // Now the Individual transitions need to be added.
       
  6542 inline void CWspHeaderReader_WarningShortInt_UnitTest::ConstructL()
       
  6543 	{
       
  6544 	// Perform the base class initialization
       
  6545 	UnitTestConstructL();
       
  6546 
       
  6547 	// Create the Unit test state accessor
       
  6548 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
  6549 	// Construct the Unit test context.
       
  6550 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
  6551 	iUTContext->ConstructL(WSP::EWarning);
       
  6552 	iUTContext->iTestHeader->BeginRawDataL();
       
  6553 	TUint8 warning = 0x8D; // Short int token for 13 (113)
       
  6554 	iUTContext->iTestHeader->WriteRawDataL(warning);
       
  6555 	iUTContext->iTestHeader->CommitRawData();
       
  6556 	_LIT8(KTxtExpected, "113");
       
  6557 	iUTContext->SetExpectedL(KTxtExpected);
       
  6558 	// Add the Transitions in the order they are to run
       
  6559 	// C'tor first, D'tor last...
       
  6560 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
  6561 		using constructor and destuctor validators */
       
  6562 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
  6563 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
  6564 	iWarningShortIntValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
  6565 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderL_Transition(*iUTContext,*iWarningShortIntValidator));
       
  6566 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
  6567 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
  6568 	}
       
  6569 
       
  6570 // ______________________________________________________________________________
       
  6571 //
       
  6572 _LIT(KWspHeaderReaderWarningFullValueUnitTest,"CWspHeaderReader_WarningFullValue_UnitTest");
       
  6573 
       
  6574 CWspHeaderReader_WarningFullValue_UnitTest* CWspHeaderReader_WarningFullValue_UnitTest::NewL(CDataLogger& aDataLogger,
       
  6575 											MUnitTestObserver& aObserver)
       
  6576 	{
       
  6577 	CWspHeaderReader_WarningFullValue_UnitTest* self = 
       
  6578 					new(ELeave) CWspHeaderReader_WarningFullValue_UnitTest(aDataLogger,
       
  6579 																aObserver);
       
  6580 	CleanupStack::PushL(self);
       
  6581 	self->ConstructL();
       
  6582 	CleanupStack::Pop(self);
       
  6583 	return self; 
       
  6584 	}
       
  6585 
       
  6586 inline TInt CWspHeaderReader_WarningFullValue_UnitTest::RunError(TInt aError)
       
  6587 	{
       
  6588 	// The RunL left so chain to the base first and then cleanup
       
  6589 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
  6590 	delete iUTContext;
       
  6591 	iUTContext = NULL;
       
  6592 	delete iStateAccessor;
       
  6593 	iStateAccessor = NULL;
       
  6594 	/* delete any validators used */
       
  6595 	delete iCtorValidator;
       
  6596 	iCtorValidator = NULL;
       
  6597 	delete iWarningFullValueValidator;
       
  6598 	iWarningFullValueValidator = NULL;
       
  6599 	delete iDtorValidator;
       
  6600 	iDtorValidator = NULL;
       
  6601 	return error;
       
  6602 	}
       
  6603 
       
  6604 inline CWspHeaderReader_WarningFullValue_UnitTest::~CWspHeaderReader_WarningFullValue_UnitTest()
       
  6605 	{
       
  6606 	// Simply delete our test class instance
       
  6607 	delete iUTContext;
       
  6608 	delete iStateAccessor;
       
  6609 	/* delete any validators used */
       
  6610 	delete iCtorValidator;
       
  6611 	delete iWarningFullValueValidator;
       
  6612 	delete iDtorValidator;
       
  6613 	}
       
  6614 
       
  6615 inline CWspHeaderReader_WarningFullValue_UnitTest::CWspHeaderReader_WarningFullValue_UnitTest(CDataLogger& aDataLogger,
       
  6616 																	MUnitTestObserver& aObserver)
       
  6617 : CUnitTest(KWspHeaderReaderWarningFullValueUnitTest, aDataLogger, aObserver)
       
  6618 	{
       
  6619 	//Do nothing
       
  6620 	}
       
  6621 
       
  6622 // Now the Individual transitions need to be added.
       
  6623 inline void CWspHeaderReader_WarningFullValue_UnitTest::ConstructL()
       
  6624 	{
       
  6625 	// Perform the base class initialization
       
  6626 	UnitTestConstructL();
       
  6627 
       
  6628 	// Create the Unit test state accessor
       
  6629 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
  6630 	// Construct the Unit test context.
       
  6631 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
  6632 	iUTContext->ConstructL(WSP::EWarning);
       
  6633 	iUTContext->iTestHeader->BeginRawDataL();
       
  6634 	TUint8 length = 0x1D; // length for 29 bytes
       
  6635 	TUint8 warning = 0x8A; // Short int token for 10 (110)
       
  6636 	_LIT8(KTxtWarnAgent, "my-warn-agent\0");
       
  6637 	_LIT8(KTxtWarnText, "my-warn-value\0");
       
  6638 	iUTContext->iTestHeader->WriteRawDataL(length);
       
  6639 	iUTContext->iTestHeader->WriteRawDataL(warning);
       
  6640 	iUTContext->iTestHeader->WriteRawDataL(KTxtWarnAgent);
       
  6641 	iUTContext->iTestHeader->WriteRawDataL(KTxtWarnText);
       
  6642 	iUTContext->iTestHeader->CommitRawData();
       
  6643 	_LIT8(KTxtExpected, "110,my-warn-agent,my-warn-value");
       
  6644 	iUTContext->SetExpectedL(KTxtExpected);
       
  6645 	// Add the Transitions in the order they are to run
       
  6646 	// C'tor first, D'tor last...
       
  6647 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
  6648 		using constructor and destuctor validators */
       
  6649 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
  6650 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
  6651 	iWarningFullValueValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
  6652 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderL_Transition(*iUTContext,*iWarningFullValueValidator));
       
  6653 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
  6654 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
  6655 	}
       
  6656 
       
  6657 // ______________________________________________________________________________
       
  6658 //
       
  6659 _LIT(KWspHeaderReaderWarningShortWarnNullAgentUnitTest,"CWspHeaderReader_WarningShortWarnNullAgent_UnitTest");
       
  6660 
       
  6661 CWspHeaderReader_WarningShortWarnNullAgent_UnitTest* CWspHeaderReader_WarningShortWarnNullAgent_UnitTest::NewL(CDataLogger& aDataLogger,
       
  6662 											MUnitTestObserver& aObserver)
       
  6663 	{
       
  6664 	CWspHeaderReader_WarningShortWarnNullAgent_UnitTest* self = 
       
  6665 					new(ELeave) CWspHeaderReader_WarningShortWarnNullAgent_UnitTest(aDataLogger,
       
  6666 																aObserver);
       
  6667 	CleanupStack::PushL(self);
       
  6668 	self->ConstructL();
       
  6669 	CleanupStack::Pop(self);
       
  6670 	return self; 
       
  6671 	}
       
  6672 
       
  6673 inline TInt CWspHeaderReader_WarningShortWarnNullAgent_UnitTest::RunError(TInt aError)
       
  6674 	{
       
  6675 	// The RunL left so chain to the base first and then cleanup
       
  6676 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
  6677 	delete iUTContext;
       
  6678 	iUTContext = NULL;
       
  6679 	delete iStateAccessor;
       
  6680 	iStateAccessor = NULL;
       
  6681 	/* delete any validators used */
       
  6682 	delete iCtorValidator;
       
  6683 	iCtorValidator = NULL;
       
  6684 	delete iWarningShortWarnNullAgentValidator;
       
  6685 	iWarningShortWarnNullAgentValidator = NULL;
       
  6686 	delete iDtorValidator;
       
  6687 	iDtorValidator = NULL;
       
  6688 	return error;
       
  6689 	}
       
  6690 
       
  6691 inline CWspHeaderReader_WarningShortWarnNullAgent_UnitTest::~CWspHeaderReader_WarningShortWarnNullAgent_UnitTest()
       
  6692 	{
       
  6693 	// Simply delete our test class instance
       
  6694 	delete iUTContext;
       
  6695 	delete iStateAccessor;
       
  6696 	/* delete any validators used */
       
  6697 	delete iCtorValidator;
       
  6698 	delete iWarningShortWarnNullAgentValidator;
       
  6699 	delete iDtorValidator;
       
  6700 	}
       
  6701 
       
  6702 inline CWspHeaderReader_WarningShortWarnNullAgent_UnitTest::CWspHeaderReader_WarningShortWarnNullAgent_UnitTest(CDataLogger& aDataLogger,
       
  6703 																	MUnitTestObserver& aObserver)
       
  6704 : CUnitTest(KWspHeaderReaderWarningShortWarnNullAgentUnitTest, aDataLogger, aObserver)
       
  6705 	{
       
  6706 	//Do nothing
       
  6707 	}
       
  6708 
       
  6709 // Now the Individual transitions need to be added.
       
  6710 inline void CWspHeaderReader_WarningShortWarnNullAgent_UnitTest::ConstructL()
       
  6711 	{
       
  6712 	// Perform the base class initialization
       
  6713 	UnitTestConstructL();
       
  6714 
       
  6715 	// Create the Unit test state accessor
       
  6716 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
  6717 	// Construct the Unit test context.
       
  6718 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
  6719 	iUTContext->ConstructL(WSP::EWarning);
       
  6720 	iUTContext->iTestHeader->BeginRawDataL();
       
  6721 	TUint8 length = 0x10; // length for 16 bytes
       
  6722 	TUint8 warning = 0xA5; // Short int token for 10 (110)
       
  6723 	TUint8 KTxtWarnAgent = 0x00;
       
  6724 	_LIT8(KTxtWarnText, "my-warn-value\0");
       
  6725 	iUTContext->iTestHeader->WriteRawDataL(length);
       
  6726 	iUTContext->iTestHeader->WriteRawDataL(warning);
       
  6727 	iUTContext->iTestHeader->WriteRawDataL(KTxtWarnAgent);
       
  6728 	iUTContext->iTestHeader->WriteRawDataL(KTxtWarnText);
       
  6729 	iUTContext->iTestHeader->CommitRawData();
       
  6730 	_LIT8(KTxtExpected, "37,,my-warn-value");
       
  6731 	iUTContext->SetExpectedL(KTxtExpected);
       
  6732 	// Add the Transitions in the order they are to run
       
  6733 	// C'tor first, D'tor last...
       
  6734 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
  6735 		using constructor and destuctor validators */
       
  6736 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
  6737 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
  6738 	iWarningShortWarnNullAgentValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
  6739 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderL_Transition(*iUTContext,*iWarningShortWarnNullAgentValidator));
       
  6740 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
  6741 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
  6742 	}
       
  6743 
       
  6744 // ______________________________________________________________________________
       
  6745 //
       
  6746 _LIT(KWspHeaderReaderWarningShortIntNullTextUnitTest,"CWspHeaderReader_WarningShortIntNullText_UnitTest");
       
  6747 
       
  6748 CWspHeaderReader_WarningShortIntNullText_UnitTest* CWspHeaderReader_WarningShortIntNullText_UnitTest::NewL(CDataLogger& aDataLogger,
       
  6749 											MUnitTestObserver& aObserver)
       
  6750 	{
       
  6751 	CWspHeaderReader_WarningShortIntNullText_UnitTest* self = 
       
  6752 					new(ELeave) CWspHeaderReader_WarningShortIntNullText_UnitTest(aDataLogger,
       
  6753 																aObserver);
       
  6754 	CleanupStack::PushL(self);
       
  6755 	self->ConstructL();
       
  6756 	CleanupStack::Pop(self);
       
  6757 	return self; 
       
  6758 	}
       
  6759 
       
  6760 inline TInt CWspHeaderReader_WarningShortIntNullText_UnitTest::RunError(TInt aError)
       
  6761 	{
       
  6762 	// The RunL left so chain to the base first and then cleanup
       
  6763 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
  6764 	delete iUTContext;
       
  6765 	iUTContext = NULL;
       
  6766 	delete iStateAccessor;
       
  6767 	iStateAccessor = NULL;
       
  6768 	/* delete any validators used */
       
  6769 	delete iCtorValidator;
       
  6770 	iCtorValidator = NULL;
       
  6771 	delete iWarningShortIntNullTextValidator;
       
  6772 	iWarningShortIntNullTextValidator = NULL;
       
  6773 	delete iDtorValidator;
       
  6774 	iDtorValidator = NULL;
       
  6775 	return error;
       
  6776 	}
       
  6777 
       
  6778 inline CWspHeaderReader_WarningShortIntNullText_UnitTest::~CWspHeaderReader_WarningShortIntNullText_UnitTest()
       
  6779 	{
       
  6780 	// Simply delete our test class instance
       
  6781 	delete iUTContext;
       
  6782 	delete iStateAccessor;
       
  6783 	/* delete any validators used */
       
  6784 	delete iCtorValidator;
       
  6785 	delete iWarningShortIntNullTextValidator;
       
  6786 	delete iDtorValidator;
       
  6787 	}
       
  6788 
       
  6789 inline CWspHeaderReader_WarningShortIntNullText_UnitTest::CWspHeaderReader_WarningShortIntNullText_UnitTest(CDataLogger& aDataLogger,
       
  6790 																	MUnitTestObserver& aObserver)
       
  6791 : CUnitTest(KWspHeaderReaderWarningShortIntNullTextUnitTest, aDataLogger, aObserver)
       
  6792 	{
       
  6793 	//Do nothing
       
  6794 	}
       
  6795 
       
  6796 // Now the Individual transitions need to be added.
       
  6797 inline void CWspHeaderReader_WarningShortIntNullText_UnitTest::ConstructL()
       
  6798 	{
       
  6799 	// Perform the base class initialization
       
  6800 	UnitTestConstructL();
       
  6801 
       
  6802 	// Create the Unit test state accessor
       
  6803 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
  6804 	// Construct the Unit test context.
       
  6805 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
  6806 	iUTContext->ConstructL(WSP::EWarning);
       
  6807 	iUTContext->iTestHeader->BeginRawDataL();
       
  6808 	TUint8 length = 0x10; // length for 16 bytes
       
  6809 	TUint8 warning = 0xE3; // Short int token for 99 (199)
       
  6810 	_LIT8(KTxtWarnAgent, "my-warn-agent\0");
       
  6811 	TUint8 KTxtWarnText = 0x00;
       
  6812 	iUTContext->iTestHeader->WriteRawDataL(length);
       
  6813 	iUTContext->iTestHeader->WriteRawDataL(warning);
       
  6814 	iUTContext->iTestHeader->WriteRawDataL(KTxtWarnAgent);
       
  6815 	iUTContext->iTestHeader->WriteRawDataL(KTxtWarnText);
       
  6816 	iUTContext->iTestHeader->CommitRawData();
       
  6817 	_LIT8(KTxtExpected, "199,my-warn-agent,");
       
  6818 	iUTContext->SetExpectedL(KTxtExpected);
       
  6819 	// Add the Transitions in the order they are to run
       
  6820 	// C'tor first, D'tor last...
       
  6821 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
  6822 		using constructor and destuctor validators */
       
  6823 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
  6824 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
  6825 	iWarningShortIntNullTextValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
  6826 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderL_Transition(*iUTContext,*iWarningShortIntNullTextValidator));
       
  6827 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
  6828 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
  6829 	}
       
  6830 
       
  6831 // ______________________________________________________________________________
       
  6832 //
       
  6833 _LIT(KWspHeaderReaderWarningShortIntNullAgentNullTextUnitTest,"CWspHeaderReader_WarningShortIntNullAgentNullText_UnitTest");
       
  6834 
       
  6835 CWspHeaderReader_WarningShortIntNullAgentNullText_UnitTest* CWspHeaderReader_WarningShortIntNullAgentNullText_UnitTest::NewL(CDataLogger& aDataLogger,
       
  6836 											MUnitTestObserver& aObserver)
       
  6837 	{
       
  6838 	CWspHeaderReader_WarningShortIntNullAgentNullText_UnitTest* self = 
       
  6839 					new(ELeave) CWspHeaderReader_WarningShortIntNullAgentNullText_UnitTest(aDataLogger,
       
  6840 																aObserver);
       
  6841 	CleanupStack::PushL(self);
       
  6842 	self->ConstructL();
       
  6843 	CleanupStack::Pop(self);
       
  6844 	return self; 
       
  6845 	}
       
  6846 
       
  6847 inline TInt CWspHeaderReader_WarningShortIntNullAgentNullText_UnitTest::RunError(TInt aError)
       
  6848 	{
       
  6849 	// The RunL left so chain to the base first and then cleanup
       
  6850 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
  6851 	delete iUTContext;
       
  6852 	iUTContext = NULL;
       
  6853 	delete iStateAccessor;
       
  6854 	iStateAccessor = NULL;
       
  6855 	/* delete any validators used */
       
  6856 	delete iCtorValidator;
       
  6857 	iCtorValidator = NULL;
       
  6858 	delete iWarningShortIntNullAgentNullTextValidator;
       
  6859 	iWarningShortIntNullAgentNullTextValidator = NULL;
       
  6860 	delete iDtorValidator;
       
  6861 	iDtorValidator = NULL;
       
  6862 	return error;
       
  6863 	}
       
  6864 
       
  6865 inline CWspHeaderReader_WarningShortIntNullAgentNullText_UnitTest::~CWspHeaderReader_WarningShortIntNullAgentNullText_UnitTest()
       
  6866 	{
       
  6867 	// Simply delete our test class instance
       
  6868 	delete iUTContext;
       
  6869 	delete iStateAccessor;
       
  6870 	/* delete any validators used */
       
  6871 	delete iCtorValidator;
       
  6872 	delete iWarningShortIntNullAgentNullTextValidator;
       
  6873 	delete iDtorValidator;
       
  6874 	}
       
  6875 
       
  6876 inline CWspHeaderReader_WarningShortIntNullAgentNullText_UnitTest::CWspHeaderReader_WarningShortIntNullAgentNullText_UnitTest(CDataLogger& aDataLogger,
       
  6877 																	MUnitTestObserver& aObserver)
       
  6878 : CUnitTest(KWspHeaderReaderWarningShortIntNullAgentNullTextUnitTest, aDataLogger, aObserver)
       
  6879 	{
       
  6880 	//Do nothing
       
  6881 	}
       
  6882 
       
  6883 // Now the Individual transitions need to be added.
       
  6884 inline void CWspHeaderReader_WarningShortIntNullAgentNullText_UnitTest::ConstructL()
       
  6885 	{
       
  6886 	// Perform the base class initialization
       
  6887 	UnitTestConstructL();
       
  6888 
       
  6889 	// Create the Unit test state accessor
       
  6890 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
  6891 	// Construct the Unit test context.
       
  6892 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
  6893 	iUTContext->ConstructL(WSP::EWarning);
       
  6894 	iUTContext->iTestHeader->BeginRawDataL();
       
  6895 	TUint8 length = 0x03; // length for 3 bytes
       
  6896 	TUint8 warning = 0x8E; // Short int token for 14 (214)
       
  6897 	TUint8 KTxtWarnAgent = 0x00;
       
  6898 	TUint8 KTxtWarnText = 0x00;
       
  6899 	iUTContext->iTestHeader->WriteRawDataL(length);
       
  6900 	iUTContext->iTestHeader->WriteRawDataL(warning);
       
  6901 	iUTContext->iTestHeader->WriteRawDataL(KTxtWarnAgent);
       
  6902 	iUTContext->iTestHeader->WriteRawDataL(KTxtWarnText);
       
  6903 	iUTContext->iTestHeader->CommitRawData();
       
  6904 	_LIT8(KTxtExpected, "214,,");
       
  6905 	iUTContext->SetExpectedL(KTxtExpected);
       
  6906 	// Add the Transitions in the order they are to run
       
  6907 	// C'tor first, D'tor last...
       
  6908 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
  6909 		using constructor and destuctor validators */
       
  6910 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
  6911 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
  6912 	iWarningShortIntNullAgentNullTextValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
  6913 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderL_Transition(*iUTContext,*iWarningShortIntNullAgentNullTextValidator));
       
  6914 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
  6915 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
  6916 	}
       
  6917 
       
  6918 // ______________________________________________________________________________
       
  6919 //
       
  6920 _LIT(KWspHeaderReaderContentEncodingMultiHeaderUnitTest,"CWspHeaderReader_ContentEncodingMultiHeader_UnitTest");
       
  6921 
       
  6922 CWspHeaderReader_ContentEncodingMultiHeader_UnitTest* CWspHeaderReader_ContentEncodingMultiHeader_UnitTest::NewL(CDataLogger& aDataLogger,
       
  6923 											MUnitTestObserver& aObserver)
       
  6924 	{
       
  6925 	CWspHeaderReader_ContentEncodingMultiHeader_UnitTest* self = 
       
  6926 					new(ELeave) CWspHeaderReader_ContentEncodingMultiHeader_UnitTest(aDataLogger,
       
  6927 																aObserver);
       
  6928 	CleanupStack::PushL(self);
       
  6929 	self->ConstructL();
       
  6930 	CleanupStack::Pop(self);
       
  6931 	return self; 
       
  6932 	}
       
  6933 
       
  6934 inline TInt CWspHeaderReader_ContentEncodingMultiHeader_UnitTest::RunError(TInt aError)
       
  6935 	{
       
  6936 	// The RunL left so chain to the base first and then cleanup
       
  6937 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
  6938 	delete iUTContext;
       
  6939 	iUTContext = NULL;
       
  6940 	delete iStateAccessor;
       
  6941 	iStateAccessor = NULL;
       
  6942 	/* delete any validators used */
       
  6943 	delete iCtorValidator;
       
  6944 	iCtorValidator = NULL;
       
  6945 	delete iContentEncodingMultiHeaderValidator;
       
  6946 	iContentEncodingMultiHeaderValidator = NULL;
       
  6947 	delete iDtorValidator;
       
  6948 	iDtorValidator = NULL;
       
  6949 	return error;
       
  6950 	}
       
  6951 
       
  6952 inline CWspHeaderReader_ContentEncodingMultiHeader_UnitTest::~CWspHeaderReader_ContentEncodingMultiHeader_UnitTest()
       
  6953 	{
       
  6954 	// Simply delete our test class instance
       
  6955 	delete iUTContext;
       
  6956 	delete iStateAccessor;
       
  6957 	/* delete any validators used */
       
  6958 	delete iCtorValidator;
       
  6959 	delete iContentEncodingMultiHeaderValidator;
       
  6960 	delete iDtorValidator;
       
  6961 	}
       
  6962 
       
  6963 inline CWspHeaderReader_ContentEncodingMultiHeader_UnitTest::CWspHeaderReader_ContentEncodingMultiHeader_UnitTest(CDataLogger& aDataLogger,
       
  6964 																	MUnitTestObserver& aObserver)
       
  6965 : CUnitTest(KWspHeaderReaderContentEncodingMultiHeaderUnitTest, aDataLogger, aObserver)
       
  6966 	{
       
  6967 	//Do nothing
       
  6968 	}
       
  6969 
       
  6970 // Now the Individual transitions need to be added.
       
  6971 inline void CWspHeaderReader_ContentEncodingMultiHeader_UnitTest::ConstructL()
       
  6972 	{
       
  6973 	// Perform the base class initialization
       
  6974 	UnitTestConstructL();
       
  6975 
       
  6976 	// Create the Unit test state accessor
       
  6977 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
  6978 	// Construct the Unit test context.
       
  6979 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
  6980 	iUTContext->ConstructL(WSP::EContentEncoding);
       
  6981 	iUTContext->iTestHeader->BeginRawDataL();
       
  6982 	iUTContext->iTestHeader->WriteRawDataL(0x80); // token for Gzip
       
  6983 	iUTContext->iTestHeader->WriteRawDataL(0x8B); // separator
       
  6984 	iUTContext->iTestHeader->WriteRawDataL(0x81); // token for Compress
       
  6985 	iUTContext->iTestHeader->WriteRawDataL(0x8B); // separator
       
  6986 	_LIT8(KTxtToken, "my-encoding\0");
       
  6987 	iUTContext->iTestHeader->WriteRawDataL(KTxtToken);
       
  6988 	iUTContext->iTestHeader->CommitRawData();
       
  6989 	
       
  6990 	_LIT8(KTxtExpected, "GZip,Compress,my-encoding");
       
  6991 	iUTContext->SetExpectedL(KTxtExpected);
       
  6992 	// Add the Transitions in the order they are to run
       
  6993 	// C'tor first, D'tor last...
       
  6994 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
  6995 		using constructor and destuctor validators */
       
  6996 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
  6997 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
  6998 	iContentEncodingMultiHeaderValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
  6999 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderL_Transition(*iUTContext,*iContentEncodingMultiHeaderValidator));
       
  7000 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
  7001 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
  7002 	}
       
  7003 
       
  7004 // ______________________________________________________________________________
       
  7005 //
       
  7006 _LIT(KWspHeaderReaderContentLanguageMultiHeaderUnitTest,"CWspHeaderReader_ContentLanguageMultiHeader_UnitTest");
       
  7007 
       
  7008 CWspHeaderReader_ContentLanguageMultiHeader_UnitTest* CWspHeaderReader_ContentLanguageMultiHeader_UnitTest::NewL(CDataLogger& aDataLogger,
       
  7009 											MUnitTestObserver& aObserver)
       
  7010 	{
       
  7011 	CWspHeaderReader_ContentLanguageMultiHeader_UnitTest* self = 
       
  7012 					new(ELeave) CWspHeaderReader_ContentLanguageMultiHeader_UnitTest(aDataLogger,
       
  7013 																aObserver);
       
  7014 	CleanupStack::PushL(self);
       
  7015 	self->ConstructL();
       
  7016 	CleanupStack::Pop(self);
       
  7017 	return self; 
       
  7018 	}
       
  7019 
       
  7020 inline TInt CWspHeaderReader_ContentLanguageMultiHeader_UnitTest::RunError(TInt aError)
       
  7021 	{
       
  7022 	// The RunL left so chain to the base first and then cleanup
       
  7023 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
  7024 	delete iUTContext;
       
  7025 	iUTContext = NULL;
       
  7026 	delete iStateAccessor;
       
  7027 	iStateAccessor = NULL;
       
  7028 	/* delete any validators used */
       
  7029 	delete iCtorValidator;
       
  7030 	iCtorValidator = NULL;
       
  7031 	delete iContentLanguageMultiHeaderValidator;
       
  7032 	iContentLanguageMultiHeaderValidator = NULL;
       
  7033 	delete iDtorValidator;
       
  7034 	iDtorValidator = NULL;
       
  7035 	return error;
       
  7036 	}
       
  7037 
       
  7038 inline CWspHeaderReader_ContentLanguageMultiHeader_UnitTest::~CWspHeaderReader_ContentLanguageMultiHeader_UnitTest()
       
  7039 	{
       
  7040 	// Simply delete our test class instance
       
  7041 	delete iUTContext;
       
  7042 	delete iStateAccessor;
       
  7043 	/* delete any validators used */
       
  7044 	delete iCtorValidator;
       
  7045 	delete iContentLanguageMultiHeaderValidator;
       
  7046 	delete iDtorValidator;
       
  7047 	}
       
  7048 
       
  7049 inline CWspHeaderReader_ContentLanguageMultiHeader_UnitTest::CWspHeaderReader_ContentLanguageMultiHeader_UnitTest(CDataLogger& aDataLogger,
       
  7050 																	MUnitTestObserver& aObserver)
       
  7051 : CUnitTest(KWspHeaderReaderContentLanguageMultiHeaderUnitTest, aDataLogger, aObserver)
       
  7052 	{
       
  7053 	//Do nothing
       
  7054 	}
       
  7055 
       
  7056 // Now the Individual transitions need to be added.
       
  7057 inline void CWspHeaderReader_ContentLanguageMultiHeader_UnitTest::ConstructL()
       
  7058 	{
       
  7059 	// Perform the base class initialization
       
  7060 	UnitTestConstructL();
       
  7061 
       
  7062 	// Create the Unit test state accessor
       
  7063 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
  7064 	// Construct the Unit test context.
       
  7065 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
  7066 	iUTContext->ConstructL(WSP::EContentLanguage);
       
  7067 	iUTContext->iTestHeader->BeginRawDataL();
       
  7068 	iUTContext->iTestHeader->WriteRawDataL(0x80); // token '*' any
       
  7069 	iUTContext->iTestHeader->WriteRawDataL(0x8C); // separator
       
  7070 	_LIT8(KTxtToken, "my-language\0");
       
  7071 	iUTContext->iTestHeader->WriteRawDataL(KTxtToken);
       
  7072 	iUTContext->iTestHeader->WriteRawDataL(0x8C); // separator
       
  7073 	iUTContext->iTestHeader->WriteRawDataL(0x99); // token 'en'
       
  7074 	iUTContext->iTestHeader->CommitRawData();
       
  7075 	_LIT8(KTxtExpected, "*,my-language,en");
       
  7076 	iUTContext->SetExpectedL(KTxtExpected);
       
  7077 	// Add the Transitions in the order they are to run
       
  7078 	// C'tor first, D'tor last...
       
  7079 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
  7080 		using constructor and destuctor validators */
       
  7081 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
  7082 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
  7083 	iContentLanguageMultiHeaderValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
  7084 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderL_Transition(*iUTContext,*iContentLanguageMultiHeaderValidator));
       
  7085 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
  7086 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
  7087 	}
       
  7088 
       
  7089 // ______________________________________________________________________________
       
  7090 //
       
  7091 _LIT(KWspHeaderReaderViaMultiHeaderUnitTest,"CWspHeaderReader_ViaMultiHeader_UnitTest");
       
  7092 
       
  7093 CWspHeaderReader_ViaMultiHeader_UnitTest* CWspHeaderReader_ViaMultiHeader_UnitTest::NewL(CDataLogger& aDataLogger,
       
  7094 											MUnitTestObserver& aObserver)
       
  7095 	{
       
  7096 	CWspHeaderReader_ViaMultiHeader_UnitTest* self = 
       
  7097 					new(ELeave) CWspHeaderReader_ViaMultiHeader_UnitTest(aDataLogger,
       
  7098 																aObserver);
       
  7099 	CleanupStack::PushL(self);
       
  7100 	self->ConstructL();
       
  7101 	CleanupStack::Pop(self);
       
  7102 	return self; 
       
  7103 	}
       
  7104 
       
  7105 inline TInt CWspHeaderReader_ViaMultiHeader_UnitTest::RunError(TInt aError)
       
  7106 	{
       
  7107 	// The RunL left so chain to the base first and then cleanup
       
  7108 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
  7109 	delete iUTContext;
       
  7110 	iUTContext = NULL;
       
  7111 	delete iStateAccessor;
       
  7112 	iStateAccessor = NULL;
       
  7113 	/* delete any validators used */
       
  7114 	delete iCtorValidator;
       
  7115 	iCtorValidator = NULL;
       
  7116 	delete iViaMultiHeaderValidator;
       
  7117 	iViaMultiHeaderValidator = NULL;
       
  7118 	delete iDtorValidator;
       
  7119 	iDtorValidator = NULL;
       
  7120 	return error;
       
  7121 	}
       
  7122 
       
  7123 inline CWspHeaderReader_ViaMultiHeader_UnitTest::~CWspHeaderReader_ViaMultiHeader_UnitTest()
       
  7124 	{
       
  7125 	// Simply delete our test class instance
       
  7126 	delete iUTContext;
       
  7127 	delete iStateAccessor;
       
  7128 	/* delete any validators used */
       
  7129 	delete iCtorValidator;
       
  7130 	delete iViaMultiHeaderValidator;
       
  7131 	delete iDtorValidator;
       
  7132 	}
       
  7133 
       
  7134 inline CWspHeaderReader_ViaMultiHeader_UnitTest::CWspHeaderReader_ViaMultiHeader_UnitTest(CDataLogger& aDataLogger,
       
  7135 																	MUnitTestObserver& aObserver)
       
  7136 : CUnitTest(KWspHeaderReaderViaMultiHeaderUnitTest, aDataLogger, aObserver)
       
  7137 	{
       
  7138 	//Do nothing
       
  7139 	}
       
  7140 
       
  7141 // Now the Individual transitions need to be added.
       
  7142 inline void CWspHeaderReader_ViaMultiHeader_UnitTest::ConstructL()
       
  7143 	{
       
  7144 	// Perform the base class initialization
       
  7145 	UnitTestConstructL();
       
  7146 
       
  7147 	// Create the Unit test state accessor
       
  7148 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
  7149 	// Construct the Unit test context.
       
  7150 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
  7151 	iUTContext->ConstructL(WSP::EVia);
       
  7152 	iUTContext->iTestHeader->BeginRawDataL();
       
  7153 	_LIT8(KTxtVia1, "symbian.com\0");
       
  7154 	iUTContext->iTestHeader->WriteRawDataL(KTxtVia1);
       
  7155 	iUTContext->iTestHeader->WriteRawDataL(0xAB); // separator
       
  7156 	iUTContext->iTestHeader->WriteRawDataL(0x00);
       
  7157 	iUTContext->iTestHeader->WriteRawDataL(0xAB); // separator
       
  7158 	_LIT8(KTxtVia2, "1.1 devnet.org.uk\0");
       
  7159 	iUTContext->iTestHeader->WriteRawDataL(KTxtVia2);
       
  7160 	iUTContext->iTestHeader->CommitRawData();
       
  7161 	_LIT8(KTxtExpected, "symbian.com,,1.1 devnet.org.uk");
       
  7162 	iUTContext->SetExpectedL(KTxtExpected);
       
  7163 	// Add the Transitions in the order they are to run
       
  7164 	// C'tor first, D'tor last...
       
  7165 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
  7166 		using constructor and destuctor validators */
       
  7167 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
  7168 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
  7169 	iViaMultiHeaderValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
  7170 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderL_Transition(*iUTContext,*iViaMultiHeaderValidator));
       
  7171 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
  7172 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
  7173 	}
       
  7174 
       
  7175 // ______________________________________________________________________________
       
  7176 //
       
  7177 _LIT(KWspHeaderReaderTrailerMultiHeaderUnitTest,"CWspHeaderReader_TrailerMultiHeader_UnitTest");
       
  7178 
       
  7179 CWspHeaderReader_TrailerMultiHeader_UnitTest* CWspHeaderReader_TrailerMultiHeader_UnitTest::NewL(CDataLogger& aDataLogger,
       
  7180 											MUnitTestObserver& aObserver)
       
  7181 	{
       
  7182 	CWspHeaderReader_TrailerMultiHeader_UnitTest* self = 
       
  7183 					new(ELeave) CWspHeaderReader_TrailerMultiHeader_UnitTest(aDataLogger,
       
  7184 																aObserver);
       
  7185 	CleanupStack::PushL(self);
       
  7186 	self->ConstructL();
       
  7187 	CleanupStack::Pop(self);
       
  7188 	return self; 
       
  7189 	}
       
  7190 
       
  7191 inline TInt CWspHeaderReader_TrailerMultiHeader_UnitTest::RunError(TInt aError)
       
  7192 	{
       
  7193 	// The RunL left so chain to the base first and then cleanup
       
  7194 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
  7195 	delete iUTContext;
       
  7196 	iUTContext = NULL;
       
  7197 	delete iStateAccessor;
       
  7198 	iStateAccessor = NULL;
       
  7199 	/* delete any validators used */
       
  7200 	delete iCtorValidator;
       
  7201 	iCtorValidator = NULL;
       
  7202 	delete iTrailerMultiHeaderValidator;
       
  7203 	iTrailerMultiHeaderValidator = NULL;
       
  7204 	delete iDtorValidator;
       
  7205 	iDtorValidator = NULL;
       
  7206 	return error;
       
  7207 	}
       
  7208 
       
  7209 inline CWspHeaderReader_TrailerMultiHeader_UnitTest::~CWspHeaderReader_TrailerMultiHeader_UnitTest()
       
  7210 	{
       
  7211 	// Simply delete our test class instance
       
  7212 	delete iUTContext;
       
  7213 	delete iStateAccessor;
       
  7214 	/* delete any validators used */
       
  7215 	delete iCtorValidator;
       
  7216 	delete iTrailerMultiHeaderValidator;
       
  7217 	delete iDtorValidator;
       
  7218 	}
       
  7219 
       
  7220 inline CWspHeaderReader_TrailerMultiHeader_UnitTest::CWspHeaderReader_TrailerMultiHeader_UnitTest(CDataLogger& aDataLogger,
       
  7221 																	MUnitTestObserver& aObserver)
       
  7222 : CUnitTest(KWspHeaderReaderTrailerMultiHeaderUnitTest, aDataLogger, aObserver)
       
  7223 	{
       
  7224 	//Do nothing
       
  7225 	}
       
  7226 
       
  7227 // Now the Individual transitions need to be added.
       
  7228 inline void CWspHeaderReader_TrailerMultiHeader_UnitTest::ConstructL()
       
  7229 	{
       
  7230 	// Perform the base class initialization
       
  7231 	UnitTestConstructL();
       
  7232 
       
  7233 	// Create the Unit test state accessor
       
  7234 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
  7235 	// Construct the Unit test context.
       
  7236 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
  7237 	iUTContext->ConstructL(WSP::ETrailer);
       
  7238 	iUTContext->iTestHeader->BeginRawDataL();
       
  7239 	iUTContext->iTestHeader->WriteRawDataL(0x95); // 'From' token
       
  7240 	iUTContext->iTestHeader->WriteRawDataL(0xBA); // separator
       
  7241 	iUTContext->iTestHeader->WriteRawDataL(0xC3); // 'Encoding-version' token
       
  7242 	iUTContext->iTestHeader->WriteRawDataL(0xBA); // separator
       
  7243 	_LIT8(KTxtTrailer, "my-header\0");
       
  7244 	iUTContext->iTestHeader->WriteRawDataL(KTxtTrailer);
       
  7245 	iUTContext->iTestHeader->CommitRawData();
       
  7246 	_LIT8(KTxtExpected, "From,Encoding-version,my-header");
       
  7247 	iUTContext->SetExpectedL(KTxtExpected);
       
  7248 	// Add the Transitions in the order they are to run
       
  7249 	// C'tor first, D'tor last...
       
  7250 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
  7251 		using constructor and destuctor validators */
       
  7252 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
  7253 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
  7254 	iTrailerMultiHeaderValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
  7255 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderL_Transition(*iUTContext,*iTrailerMultiHeaderValidator));
       
  7256 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
  7257 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
  7258 	}
       
  7259 
       
  7260 // ______________________________________________________________________________
       
  7261 //
       
  7262 _LIT(KWspHeaderReaderUpgradeMultiHeaderUnitTest,"CWspHeaderReader_UpgradeMultiHeader_UnitTest");
       
  7263 
       
  7264 CWspHeaderReader_UpgradeMultiHeader_UnitTest* CWspHeaderReader_UpgradeMultiHeader_UnitTest::NewL(CDataLogger& aDataLogger,
       
  7265 											MUnitTestObserver& aObserver)
       
  7266 	{
       
  7267 	CWspHeaderReader_UpgradeMultiHeader_UnitTest* self = 
       
  7268 					new(ELeave) CWspHeaderReader_UpgradeMultiHeader_UnitTest(aDataLogger,
       
  7269 																aObserver);
       
  7270 	CleanupStack::PushL(self);
       
  7271 	self->ConstructL();
       
  7272 	CleanupStack::Pop(self);
       
  7273 	return self; 
       
  7274 	}
       
  7275 
       
  7276 inline TInt CWspHeaderReader_UpgradeMultiHeader_UnitTest::RunError(TInt aError)
       
  7277 	{
       
  7278 	// The RunL left so chain to the base first and then cleanup
       
  7279 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
  7280 	delete iUTContext;
       
  7281 	iUTContext = NULL;
       
  7282 	delete iStateAccessor;
       
  7283 	iStateAccessor = NULL;
       
  7284 	/* delete any validators used */
       
  7285 	delete iCtorValidator;
       
  7286 	iCtorValidator = NULL;
       
  7287 	delete iUpgradeMultiHeaderValidator;
       
  7288 	iUpgradeMultiHeaderValidator = NULL;
       
  7289 	delete iDtorValidator;
       
  7290 	iDtorValidator = NULL;
       
  7291 	return error;
       
  7292 	}
       
  7293 
       
  7294 inline CWspHeaderReader_UpgradeMultiHeader_UnitTest::~CWspHeaderReader_UpgradeMultiHeader_UnitTest()
       
  7295 	{
       
  7296 	// Simply delete our test class instance
       
  7297 	delete iUTContext;
       
  7298 	delete iStateAccessor;
       
  7299 	/* delete any validators used */
       
  7300 	delete iCtorValidator;
       
  7301 	delete iUpgradeMultiHeaderValidator;
       
  7302 	delete iDtorValidator;
       
  7303 	}
       
  7304 
       
  7305 inline CWspHeaderReader_UpgradeMultiHeader_UnitTest::CWspHeaderReader_UpgradeMultiHeader_UnitTest(CDataLogger& aDataLogger,
       
  7306 																	MUnitTestObserver& aObserver)
       
  7307 : CUnitTest(KWspHeaderReaderUpgradeMultiHeaderUnitTest, aDataLogger, aObserver)
       
  7308 	{
       
  7309 	//Do nothing
       
  7310 	}
       
  7311 
       
  7312 // Now the Individual transitions need to be added.
       
  7313 inline void CWspHeaderReader_UpgradeMultiHeader_UnitTest::ConstructL()
       
  7314 	{
       
  7315 	// Perform the base class initialization
       
  7316 	UnitTestConstructL();
       
  7317 
       
  7318 	// Create the Unit test state accessor
       
  7319 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
  7320 	// Construct the Unit test context.
       
  7321 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
  7322 	iUTContext->ConstructL(WSP::EUpgrade);
       
  7323 	iUTContext->iTestHeader->BeginRawDataL();
       
  7324 	_LIT8(KTxtUpgrade1, "symbian.com\0");
       
  7325 	iUTContext->iTestHeader->WriteRawDataL(KTxtUpgrade1);
       
  7326 	iUTContext->iTestHeader->WriteRawDataL(0xA8); // separator
       
  7327 	iUTContext->iTestHeader->WriteRawDataL(0x00);
       
  7328 	iUTContext->iTestHeader->WriteRawDataL(0xA8); // separator
       
  7329 	_LIT8(KTxtUpgrade2, "devnet.org.uk\0");
       
  7330 	iUTContext->iTestHeader->WriteRawDataL(KTxtUpgrade2);
       
  7331 	iUTContext->iTestHeader->CommitRawData();
       
  7332 	_LIT8(KTxtExpected, "symbian.com,,devnet.org.uk");
       
  7333 	iUTContext->SetExpectedL(KTxtExpected);
       
  7334 	// Add the Transitions in the order they are to run
       
  7335 	// C'tor first, D'tor last...
       
  7336 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
  7337 		using constructor and destuctor validators */
       
  7338 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
  7339 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
  7340 	iUpgradeMultiHeaderValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
  7341 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderL_Transition(*iUTContext,*iUpgradeMultiHeaderValidator));
       
  7342 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
  7343 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
  7344 	}
       
  7345 
       
  7346 // ______________________________________________________________________________
       
  7347 //
       
  7348 _LIT(KWspHeaderReaderAllowMultiHeaderUnitTest,"CWspHeaderReader_AllowMultiHeader_UnitTest");
       
  7349 
       
  7350 CWspHeaderReader_AllowMultiHeader_UnitTest* CWspHeaderReader_AllowMultiHeader_UnitTest::NewL(CDataLogger& aDataLogger,
       
  7351 											MUnitTestObserver& aObserver)
       
  7352 	{
       
  7353 	CWspHeaderReader_AllowMultiHeader_UnitTest* self = 
       
  7354 					new(ELeave) CWspHeaderReader_AllowMultiHeader_UnitTest(aDataLogger,
       
  7355 																aObserver);
       
  7356 	CleanupStack::PushL(self);
       
  7357 	self->ConstructL();
       
  7358 	CleanupStack::Pop(self);
       
  7359 	return self; 
       
  7360 	}
       
  7361 
       
  7362 inline TInt CWspHeaderReader_AllowMultiHeader_UnitTest::RunError(TInt aError)
       
  7363 	{
       
  7364 	// The RunL left so chain to the base first and then cleanup
       
  7365 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
  7366 	delete iUTContext;
       
  7367 	iUTContext = NULL;
       
  7368 	delete iStateAccessor;
       
  7369 	iStateAccessor = NULL;
       
  7370 	/* delete any validators used */
       
  7371 	delete iCtorValidator;
       
  7372 	iCtorValidator = NULL;
       
  7373 	delete iAllowMultiHeaderValidator;
       
  7374 	iAllowMultiHeaderValidator = NULL;
       
  7375 	delete iDtorValidator;
       
  7376 	iDtorValidator = NULL;
       
  7377 	return error;
       
  7378 	}
       
  7379 
       
  7380 inline CWspHeaderReader_AllowMultiHeader_UnitTest::~CWspHeaderReader_AllowMultiHeader_UnitTest()
       
  7381 	{
       
  7382 	// Simply delete our test class instance
       
  7383 	delete iUTContext;
       
  7384 	delete iStateAccessor;
       
  7385 	/* delete any validators used */
       
  7386 	delete iCtorValidator;
       
  7387 	delete iAllowMultiHeaderValidator;
       
  7388 	delete iDtorValidator;
       
  7389 	}
       
  7390 
       
  7391 inline CWspHeaderReader_AllowMultiHeader_UnitTest::CWspHeaderReader_AllowMultiHeader_UnitTest(CDataLogger& aDataLogger,
       
  7392 																	MUnitTestObserver& aObserver)
       
  7393 : CUnitTest(KWspHeaderReaderAllowMultiHeaderUnitTest, aDataLogger, aObserver)
       
  7394 	{
       
  7395 	//Do nothing
       
  7396 	}
       
  7397 
       
  7398 // Now the Individual transitions need to be added.
       
  7399 inline void CWspHeaderReader_AllowMultiHeader_UnitTest::ConstructL()
       
  7400 	{
       
  7401 	// Perform the base class initialization
       
  7402 	UnitTestConstructL();
       
  7403 
       
  7404 	// Create the Unit test state accessor
       
  7405 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
  7406 	// Construct the Unit test context.
       
  7407 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
  7408 	iUTContext->ConstructL(WSP::EAllow);
       
  7409 	iUTContext->iTestHeader->BeginRawDataL();
       
  7410 	iUTContext->iTestHeader->WriteRawDataL(0xC0);
       
  7411 	iUTContext->iTestHeader->WriteRawDataL(0x86); // separator
       
  7412 	iUTContext->iTestHeader->WriteRawDataL(0xE0);
       
  7413 	iUTContext->iTestHeader->WriteRawDataL(0x86); // separator
       
  7414 	iUTContext->iTestHeader->WriteRawDataL(0xC4);
       
  7415 	iUTContext->iTestHeader->CommitRawData();
       
  7416 
       
  7417 	_LIT8(KTxtExpected, "Get,Post,Trace");
       
  7418 	iUTContext->SetExpectedL(KTxtExpected);
       
  7419 	// Add the Transitions in the order they are to run
       
  7420 	// C'tor first, D'tor last...
       
  7421 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
  7422 		using constructor and destuctor validators */
       
  7423 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
  7424 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
  7425 	iAllowMultiHeaderValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
  7426 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderL_Transition(*iUTContext,*iAllowMultiHeaderValidator));
       
  7427 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
  7428 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
  7429 	}
       
  7430 
       
  7431 // ______________________________________________________________________________
       
  7432 //
       
  7433 _LIT(KWspHeaderReaderUnknownHeaderUnitTest,"CWspHeaderReader_UnknownHeader_UnitTest");
       
  7434 
       
  7435 CWspHeaderReader_UnknownHeader_UnitTest* CWspHeaderReader_UnknownHeader_UnitTest::NewL(CDataLogger& aDataLogger,
       
  7436 											MUnitTestObserver& aObserver)
       
  7437 	{
       
  7438 	CWspHeaderReader_UnknownHeader_UnitTest* self = 
       
  7439 					new(ELeave) CWspHeaderReader_UnknownHeader_UnitTest(aDataLogger,
       
  7440 																aObserver);
       
  7441 	CleanupStack::PushL(self);
       
  7442 	self->ConstructL();
       
  7443 	CleanupStack::Pop(self);
       
  7444 	return self; 
       
  7445 	}
       
  7446 
       
  7447 inline TInt CWspHeaderReader_UnknownHeader_UnitTest::RunError(TInt aError)
       
  7448 	{
       
  7449 	// The RunL left so chain to the base first and then cleanup
       
  7450 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
  7451 	delete iUTContext;
       
  7452 	iUTContext = NULL;
       
  7453 	delete iStateAccessor;
       
  7454 	iStateAccessor = NULL;
       
  7455 	/* delete any validators used */
       
  7456 	delete iCtorValidator;
       
  7457 	iCtorValidator = NULL;
       
  7458 	delete iUnknownHeaderValidator;
       
  7459 	iUnknownHeaderValidator = NULL;
       
  7460 	delete iDtorValidator;
       
  7461 	iDtorValidator = NULL;
       
  7462 	return error;
       
  7463 	}
       
  7464 
       
  7465 inline CWspHeaderReader_UnknownHeader_UnitTest::~CWspHeaderReader_UnknownHeader_UnitTest()
       
  7466 	{
       
  7467 	// Simply delete our test class instance
       
  7468 	delete iUTContext;
       
  7469 	delete iStateAccessor;
       
  7470 	/* delete any validators used */
       
  7471 	delete iCtorValidator;
       
  7472 	delete iUnknownHeaderValidator;
       
  7473 	delete iDtorValidator;
       
  7474 	}
       
  7475 
       
  7476 inline CWspHeaderReader_UnknownHeader_UnitTest::CWspHeaderReader_UnknownHeader_UnitTest(CDataLogger& aDataLogger,
       
  7477 																	MUnitTestObserver& aObserver)
       
  7478 : CUnitTest(KWspHeaderReaderUnknownHeaderUnitTest, aDataLogger, aObserver)
       
  7479 	{
       
  7480 	//Do nothing
       
  7481 	}
       
  7482 
       
  7483 // Now the Individual transitions need to be added.
       
  7484 inline void CWspHeaderReader_UnknownHeader_UnitTest::ConstructL()
       
  7485 	{
       
  7486 	// Perform the base class initialization
       
  7487 	UnitTestConstructL();
       
  7488 
       
  7489 	// Create the Unit test state accessor
       
  7490 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
  7491 	// Construct the Unit test context.
       
  7492 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
  7493 	// Passing KErrNotFound will create a header field called TestHeader which is not recognised by the
       
  7494 	// WSP header codec and the default WSP header codec will be used instead
       
  7495 	iUTContext->ConstructL(KErrNotFound);
       
  7496 	_LIT8(KTxtSampleData, "This is some sample header field data\0");
       
  7497 	iUTContext->iTestHeader->BeginRawDataL();
       
  7498 	iUTContext->iTestHeader->WriteRawDataL(KTxtSampleData());
       
  7499 	iUTContext->iTestHeader->CommitRawData();
       
  7500 
       
  7501 	_LIT8(KTxtExpected, "This is some sample header field data");
       
  7502 	iUTContext->SetExpectedL(KTxtExpected);
       
  7503 	// Add the Transitions in the order they are to run
       
  7504 	// C'tor first, D'tor last...
       
  7505 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
  7506 		using constructor and destuctor validators */
       
  7507 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
  7508 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
  7509 	iUnknownHeaderValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
  7510 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderL_Transition(*iUTContext,*iUnknownHeaderValidator));
       
  7511 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
  7512 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
  7513 	}
       
  7514 
       
  7515 // ______________________________________________________________________________
       
  7516 //
       
  7517 _LIT(KWspHeaderReaderUnknownHeaderNullUnitTest,"CWspHeaderReader_UnknownHeaderNull_UnitTest");
       
  7518 
       
  7519 CWspHeaderReader_UnknownHeaderNull_UnitTest* CWspHeaderReader_UnknownHeaderNull_UnitTest::NewL(CDataLogger& aDataLogger,
       
  7520 											MUnitTestObserver& aObserver)
       
  7521 	{
       
  7522 	CWspHeaderReader_UnknownHeaderNull_UnitTest* self = 
       
  7523 					new(ELeave) CWspHeaderReader_UnknownHeaderNull_UnitTest(aDataLogger,
       
  7524 																aObserver);
       
  7525 	CleanupStack::PushL(self);
       
  7526 	self->ConstructL();
       
  7527 	CleanupStack::Pop(self);
       
  7528 	return self; 
       
  7529 	}
       
  7530 
       
  7531 inline TInt CWspHeaderReader_UnknownHeaderNull_UnitTest::RunError(TInt aError)
       
  7532 	{
       
  7533 	// The RunL left so chain to the base first and then cleanup
       
  7534 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
  7535 	delete iUTContext;
       
  7536 	iUTContext = NULL;
       
  7537 	delete iStateAccessor;
       
  7538 	iStateAccessor = NULL;
       
  7539 	/* delete any validators used */
       
  7540 	delete iCtorValidator;
       
  7541 	iCtorValidator = NULL;
       
  7542 	delete iUnknownHeaderNullValidator;
       
  7543 	iUnknownHeaderNullValidator = NULL;
       
  7544 	delete iDtorValidator;
       
  7545 	iDtorValidator = NULL;
       
  7546 	return error;
       
  7547 	}
       
  7548 
       
  7549 inline CWspHeaderReader_UnknownHeaderNull_UnitTest::~CWspHeaderReader_UnknownHeaderNull_UnitTest()
       
  7550 	{
       
  7551 	// Simply delete our test class instance
       
  7552 	delete iUTContext;
       
  7553 	delete iStateAccessor;
       
  7554 	/* delete any validators used */
       
  7555 	delete iCtorValidator;
       
  7556 	delete iUnknownHeaderNullValidator;
       
  7557 	delete iDtorValidator;
       
  7558 	}
       
  7559 
       
  7560 inline CWspHeaderReader_UnknownHeaderNull_UnitTest::CWspHeaderReader_UnknownHeaderNull_UnitTest(CDataLogger& aDataLogger,
       
  7561 																	MUnitTestObserver& aObserver)
       
  7562 : CUnitTest(KWspHeaderReaderUnknownHeaderNullUnitTest, aDataLogger, aObserver)
       
  7563 	{
       
  7564 	//Do nothing
       
  7565 	}
       
  7566 
       
  7567 // Now the Individual transitions need to be added.
       
  7568 inline void CWspHeaderReader_UnknownHeaderNull_UnitTest::ConstructL()
       
  7569 	{
       
  7570 	// Perform the base class initialization
       
  7571 	UnitTestConstructL();
       
  7572 
       
  7573 	// Create the Unit test state accessor
       
  7574 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
  7575 	// Construct the Unit test context.
       
  7576 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
  7577 	iUTContext->ConstructL(KErrNotFound);
       
  7578 	iUTContext->iTestHeader->BeginRawDataL();
       
  7579 	TUint8 octet00 = 0x00;
       
  7580 	iUTContext->iTestHeader->WriteRawDataL(octet00);
       
  7581 	iUTContext->iTestHeader->CommitRawData();
       
  7582 	iUTContext->SetExpectedL(KNullDesC8());
       
  7583 	// Add the Transitions in the order they are to run
       
  7584 	// C'tor first, D'tor last...
       
  7585 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
  7586 		using constructor and destuctor validators */
       
  7587 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
  7588 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
  7589 	iUnknownHeaderNullValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
  7590 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderL_Transition(*iUTContext,*iUnknownHeaderNullValidator));
       
  7591 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
  7592 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
  7593 	}
       
  7594 
       
  7595 // ______________________________________________________________________________
       
  7596 //
       
  7597 _LIT(KWspHeaderReaderMultiUnknownHeaderUnitTest,"CWspHeaderReader_MultiUnknownHeader_UnitTest");
       
  7598 
       
  7599 CWspHeaderReader_MultiUnknownHeader_UnitTest* CWspHeaderReader_MultiUnknownHeader_UnitTest::NewL(CDataLogger& aDataLogger,
       
  7600 											MUnitTestObserver& aObserver)
       
  7601 	{
       
  7602 	CWspHeaderReader_MultiUnknownHeader_UnitTest* self = 
       
  7603 					new(ELeave) CWspHeaderReader_MultiUnknownHeader_UnitTest(aDataLogger,
       
  7604 																aObserver);
       
  7605 	CleanupStack::PushL(self);
       
  7606 	self->ConstructL();
       
  7607 	CleanupStack::Pop(self);
       
  7608 	return self; 
       
  7609 	}
       
  7610 
       
  7611 inline TInt CWspHeaderReader_MultiUnknownHeader_UnitTest::RunError(TInt aError)
       
  7612 	{
       
  7613 	// The RunL left so chain to the base first and then cleanup
       
  7614 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
  7615 	delete iUTContext;
       
  7616 	iUTContext = NULL;
       
  7617 	delete iStateAccessor;
       
  7618 	iStateAccessor = NULL;
       
  7619 	/* delete any validators used */
       
  7620 	delete iCtorValidator;
       
  7621 	iCtorValidator = NULL;
       
  7622 	delete iMultiUnknownHeaderValidator;
       
  7623 	iMultiUnknownHeaderValidator = NULL;
       
  7624 	delete iDtorValidator;
       
  7625 	iDtorValidator = NULL;
       
  7626 	return error;
       
  7627 	}
       
  7628 
       
  7629 inline CWspHeaderReader_MultiUnknownHeader_UnitTest::~CWspHeaderReader_MultiUnknownHeader_UnitTest()
       
  7630 	{
       
  7631 	// Simply delete our test class instance
       
  7632 	delete iUTContext;
       
  7633 	delete iStateAccessor;
       
  7634 	/* delete any validators used */
       
  7635 	delete iCtorValidator;
       
  7636 	delete iMultiUnknownHeaderValidator;
       
  7637 	delete iDtorValidator;
       
  7638 	}
       
  7639 
       
  7640 inline CWspHeaderReader_MultiUnknownHeader_UnitTest::CWspHeaderReader_MultiUnknownHeader_UnitTest(CDataLogger& aDataLogger,
       
  7641 																	MUnitTestObserver& aObserver)
       
  7642 : CUnitTest(KWspHeaderReaderMultiUnknownHeaderUnitTest, aDataLogger, aObserver)
       
  7643 	{
       
  7644 	//Do nothing
       
  7645 	}
       
  7646 
       
  7647 // Now the Individual transitions need to be added.
       
  7648 inline void CWspHeaderReader_MultiUnknownHeader_UnitTest::ConstructL()
       
  7649 	{
       
  7650 	// Perform the base class initialization
       
  7651 	UnitTestConstructL();
       
  7652 
       
  7653 	// Create the Unit test state accessor
       
  7654 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
  7655 	// Construct the Unit test context.
       
  7656 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
  7657 	iUTContext->ConstructL(KErrNotFound);
       
  7658 	_LIT8(KTxtTestData1, "First test data\0");
       
  7659 	_LIT8(KTxtTestData2, "Second test data\0");
       
  7660 	_LIT8(KTxtTestData3, "Third test data\0");
       
  7661 	_LIT8(KTxtHeaderField, "TestHeader\0");
       
  7662 	iUTContext->iTestHeader->BeginRawDataL();
       
  7663 	iUTContext->iTestHeader->WriteRawDataL(KTxtTestData1());
       
  7664 	iUTContext->iTestHeader->WriteRawDataL(KTxtHeaderField()); // separator
       
  7665 	iUTContext->iTestHeader->WriteRawDataL(KTxtTestData2());
       
  7666 	iUTContext->iTestHeader->WriteRawDataL(KTxtHeaderField()); // separator
       
  7667 	iUTContext->iTestHeader->WriteRawDataL(KTxtTestData3());
       
  7668 	iUTContext->iTestHeader->CommitRawData();
       
  7669 
       
  7670 	_LIT8(KTxtExpected, "First test data,Second test data,Third test data");
       
  7671 	iUTContext->SetExpectedL(KTxtExpected);
       
  7672 	// Add the Transitions in the order they are to run
       
  7673 	// C'tor first, D'tor last...
       
  7674 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
  7675 		using constructor and destuctor validators */
       
  7676 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
  7677 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
  7678 	iMultiUnknownHeaderValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
  7679 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderL_Transition(*iUTContext,*iMultiUnknownHeaderValidator));
       
  7680 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
  7681 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
  7682 	}
       
  7683 
       
  7684 // ______________________________________________________________________________
       
  7685 //
       
  7686 _LIT(KWspHeaderReaderProfileWarningWarnCodeUnitTest,"CWspHeaderReader_ProfileWarningWarnCode_UnitTest");
       
  7687 
       
  7688 CWspHeaderReader_ProfileWarningWarnCode_UnitTest* CWspHeaderReader_ProfileWarningWarnCode_UnitTest::NewL(CDataLogger& aDataLogger,
       
  7689 											MUnitTestObserver& aObserver)
       
  7690 	{
       
  7691 	CWspHeaderReader_ProfileWarningWarnCode_UnitTest* self = 
       
  7692 					new(ELeave) CWspHeaderReader_ProfileWarningWarnCode_UnitTest(aDataLogger,
       
  7693 																aObserver);
       
  7694 	CleanupStack::PushL(self);
       
  7695 	self->ConstructL();
       
  7696 	CleanupStack::Pop(self);
       
  7697 	return self; 
       
  7698 	}
       
  7699 
       
  7700 inline TInt CWspHeaderReader_ProfileWarningWarnCode_UnitTest::RunError(TInt aError)
       
  7701 	{
       
  7702 	// The RunL left so chain to the base first and then cleanup
       
  7703 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
  7704 	delete iUTContext;
       
  7705 	iUTContext = NULL;
       
  7706 	delete iStateAccessor;
       
  7707 	iStateAccessor = NULL;
       
  7708 	/* delete any validators used */
       
  7709 	delete iCtorValidator;
       
  7710 	iCtorValidator = NULL;
       
  7711 	delete iProfileWarningWarnCodeValidator;
       
  7712 	iProfileWarningWarnCodeValidator = NULL;
       
  7713 	delete iDtorValidator;
       
  7714 	iDtorValidator = NULL;
       
  7715 	return error;
       
  7716 	}
       
  7717 
       
  7718 inline CWspHeaderReader_ProfileWarningWarnCode_UnitTest::~CWspHeaderReader_ProfileWarningWarnCode_UnitTest()
       
  7719 	{
       
  7720 	// Simply delete our test class instance
       
  7721 	delete iUTContext;
       
  7722 	delete iStateAccessor;
       
  7723 	/* delete any validators used */
       
  7724 	delete iCtorValidator;
       
  7725 	delete iProfileWarningWarnCodeValidator;
       
  7726 	delete iDtorValidator;
       
  7727 	}
       
  7728 
       
  7729 inline CWspHeaderReader_ProfileWarningWarnCode_UnitTest::CWspHeaderReader_ProfileWarningWarnCode_UnitTest(CDataLogger& aDataLogger,
       
  7730 																	MUnitTestObserver& aObserver)
       
  7731 : CUnitTest(KWspHeaderReaderProfileWarningWarnCodeUnitTest, aDataLogger, aObserver)
       
  7732 	{
       
  7733 	//Do nothing
       
  7734 	}
       
  7735 
       
  7736 // Now the Individual transitions need to be added.
       
  7737 inline void CWspHeaderReader_ProfileWarningWarnCode_UnitTest::ConstructL()
       
  7738 	{
       
  7739 	// Perform the base class initialization
       
  7740 	UnitTestConstructL();
       
  7741 
       
  7742 	// Create the Unit test state accessor
       
  7743 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
  7744 	// Construct the Unit test context.
       
  7745 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
  7746 	iUTContext->ConstructL(WSP::EProfileWarning);
       
  7747 	
       
  7748 	TUint8 warnCode = 0x90; // Short int token for 16 (100)
       
  7749 	iUTContext->iTestHeader->BeginRawDataL();
       
  7750 	iUTContext->iTestHeader->WriteRawDataL(warnCode);
       
  7751 	iUTContext->iTestHeader->CommitRawData();
       
  7752 	_LIT8(KTxtExpected, "100");
       
  7753 	iUTContext->SetExpectedL(KTxtExpected);
       
  7754 
       
  7755 	// Add the Transitions in the order they are to run
       
  7756 	// C'tor first, D'tor last...
       
  7757 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
  7758 		using constructor and destuctor validators */
       
  7759 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
  7760 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
  7761 	iProfileWarningWarnCodeValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
  7762 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderL_Transition(*iUTContext,*iProfileWarningWarnCodeValidator));
       
  7763 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
  7764 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
  7765 	}
       
  7766 
       
  7767 // ______________________________________________________________________________
       
  7768 //
       
  7769 _LIT(KWspHeaderReaderProfileWarningWarnCodeTextWarnTargetUnitTest,"CWspHeaderReader_ProfileWarningWarnCodeTextWarnTarget_UnitTest");
       
  7770 
       
  7771 CWspHeaderReader_ProfileWarningWarnCodeTextWarnTarget_UnitTest* CWspHeaderReader_ProfileWarningWarnCodeTextWarnTarget_UnitTest::NewL(CDataLogger& aDataLogger,
       
  7772 											MUnitTestObserver& aObserver)
       
  7773 	{
       
  7774 	CWspHeaderReader_ProfileWarningWarnCodeTextWarnTarget_UnitTest* self = 
       
  7775 					new(ELeave) CWspHeaderReader_ProfileWarningWarnCodeTextWarnTarget_UnitTest(aDataLogger,
       
  7776 																aObserver);
       
  7777 	CleanupStack::PushL(self);
       
  7778 	self->ConstructL();
       
  7779 	CleanupStack::Pop(self);
       
  7780 	return self; 
       
  7781 	}
       
  7782 
       
  7783 inline TInt CWspHeaderReader_ProfileWarningWarnCodeTextWarnTarget_UnitTest::RunError(TInt aError)
       
  7784 	{
       
  7785 	// The RunL left so chain to the base first and then cleanup
       
  7786 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
  7787 	delete iUTContext;
       
  7788 	iUTContext = NULL;
       
  7789 	delete iStateAccessor;
       
  7790 	iStateAccessor = NULL;
       
  7791 	/* delete any validators used */
       
  7792 	delete iCtorValidator;
       
  7793 	iCtorValidator = NULL;
       
  7794 	delete iProfileWarningWarnCodeTextWarnTargetValidator;
       
  7795 	iProfileWarningWarnCodeTextWarnTargetValidator = NULL;
       
  7796 	delete iDtorValidator;
       
  7797 	iDtorValidator = NULL;
       
  7798 	return error;
       
  7799 	}
       
  7800 
       
  7801 inline CWspHeaderReader_ProfileWarningWarnCodeTextWarnTarget_UnitTest::~CWspHeaderReader_ProfileWarningWarnCodeTextWarnTarget_UnitTest()
       
  7802 	{
       
  7803 	// Simply delete our test class instance
       
  7804 	delete iUTContext;
       
  7805 	delete iStateAccessor;
       
  7806 	/* delete any validators used */
       
  7807 	delete iCtorValidator;
       
  7808 	delete iProfileWarningWarnCodeTextWarnTargetValidator;
       
  7809 	delete iDtorValidator;
       
  7810 	}
       
  7811 
       
  7812 inline CWspHeaderReader_ProfileWarningWarnCodeTextWarnTarget_UnitTest::CWspHeaderReader_ProfileWarningWarnCodeTextWarnTarget_UnitTest(CDataLogger& aDataLogger,
       
  7813 																	MUnitTestObserver& aObserver)
       
  7814 : CUnitTest(KWspHeaderReaderProfileWarningWarnCodeTextWarnTargetUnitTest, aDataLogger, aObserver)
       
  7815 	{
       
  7816 	//Do nothing
       
  7817 	}
       
  7818 
       
  7819 // Now the Individual transitions need to be added.
       
  7820 inline void CWspHeaderReader_ProfileWarningWarnCodeTextWarnTarget_UnitTest::ConstructL()
       
  7821 	{
       
  7822 	// Perform the base class initialization
       
  7823 	UnitTestConstructL();
       
  7824 
       
  7825 	// Create the Unit test state accessor
       
  7826 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
  7827 	// Construct the Unit test context.
       
  7828 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
  7829 	iUTContext->ConstructL(WSP::EProfileWarning);
       
  7830 	
       
  7831 	TUint8 valueLength = 0x18; // length for 24 bytes
       
  7832 	TUint8 warnCode = 0x92; // Short int token for 18 (102)
       
  7833 	_LIT8(KTxtWarnTarget, "http://www.symbian.com\0");
       
  7834 	iUTContext->iTestHeader->BeginRawDataL();
       
  7835 	iUTContext->iTestHeader->WriteRawDataL(valueLength);
       
  7836 	iUTContext->iTestHeader->WriteRawDataL(warnCode);
       
  7837 	iUTContext->iTestHeader->WriteRawDataL(KTxtWarnTarget());
       
  7838 	iUTContext->iTestHeader->CommitRawData();
       
  7839 	_LIT8(KTxtExpected, "102,http://www.symbian.com");
       
  7840 	iUTContext->SetExpectedL(KTxtExpected);
       
  7841 
       
  7842 	// Add the Transitions in the order they are to run
       
  7843 	// C'tor first, D'tor last...
       
  7844 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
  7845 		using constructor and destuctor validators */
       
  7846 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
  7847 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
  7848 	iProfileWarningWarnCodeTextWarnTargetValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
  7849 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderL_Transition(*iUTContext,*iProfileWarningWarnCodeTextWarnTargetValidator));
       
  7850 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
  7851 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
  7852 	}
       
  7853 
       
  7854 // ______________________________________________________________________________
       
  7855 //
       
  7856 _LIT(KWspHeaderReaderProfileWarningWarnCodeHostWarnTargetUnitTest,"CWspHeaderReader_ProfileWarningWarnCodeHostWarnTarget_UnitTest");
       
  7857 
       
  7858 CWspHeaderReader_ProfileWarningWarnCodeHostWarnTarget_UnitTest* CWspHeaderReader_ProfileWarningWarnCodeHostWarnTarget_UnitTest::NewL(CDataLogger& aDataLogger,
       
  7859 											MUnitTestObserver& aObserver)
       
  7860 	{
       
  7861 	CWspHeaderReader_ProfileWarningWarnCodeHostWarnTarget_UnitTest* self = 
       
  7862 					new(ELeave) CWspHeaderReader_ProfileWarningWarnCodeHostWarnTarget_UnitTest(aDataLogger,
       
  7863 																aObserver);
       
  7864 	CleanupStack::PushL(self);
       
  7865 	self->ConstructL();
       
  7866 	CleanupStack::Pop(self);
       
  7867 	return self; 
       
  7868 	}
       
  7869 
       
  7870 inline TInt CWspHeaderReader_ProfileWarningWarnCodeHostWarnTarget_UnitTest::RunError(TInt aError)
       
  7871 	{
       
  7872 	// The RunL left so chain to the base first and then cleanup
       
  7873 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
  7874 	delete iUTContext;
       
  7875 	iUTContext = NULL;
       
  7876 	delete iStateAccessor;
       
  7877 	iStateAccessor = NULL;
       
  7878 	/* delete any validators used */
       
  7879 	delete iCtorValidator;
       
  7880 	iCtorValidator = NULL;
       
  7881 	delete iProfileWarningWarnCodeHostWarnTargetValidator;
       
  7882 	iProfileWarningWarnCodeHostWarnTargetValidator = NULL;
       
  7883 	delete iDtorValidator;
       
  7884 	iDtorValidator = NULL;
       
  7885 	return error;
       
  7886 	}
       
  7887 
       
  7888 inline CWspHeaderReader_ProfileWarningWarnCodeHostWarnTarget_UnitTest::~CWspHeaderReader_ProfileWarningWarnCodeHostWarnTarget_UnitTest()
       
  7889 	{
       
  7890 	// Simply delete our test class instance
       
  7891 	delete iUTContext;
       
  7892 	delete iStateAccessor;
       
  7893 	/* delete any validators used */
       
  7894 	delete iCtorValidator;
       
  7895 	delete iProfileWarningWarnCodeHostWarnTargetValidator;
       
  7896 	delete iDtorValidator;
       
  7897 	}
       
  7898 
       
  7899 inline CWspHeaderReader_ProfileWarningWarnCodeHostWarnTarget_UnitTest::CWspHeaderReader_ProfileWarningWarnCodeHostWarnTarget_UnitTest(CDataLogger& aDataLogger,
       
  7900 																	MUnitTestObserver& aObserver)
       
  7901 : CUnitTest(KWspHeaderReaderProfileWarningWarnCodeHostWarnTargetUnitTest, aDataLogger, aObserver)
       
  7902 	{
       
  7903 	//Do nothing
       
  7904 	}
       
  7905 
       
  7906 // Now the Individual transitions need to be added.
       
  7907 inline void CWspHeaderReader_ProfileWarningWarnCodeHostWarnTarget_UnitTest::ConstructL()
       
  7908 	{
       
  7909 	// Perform the base class initialization
       
  7910 	UnitTestConstructL();
       
  7911 
       
  7912 	// Create the Unit test state accessor
       
  7913 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
  7914 	// Construct the Unit test context.
       
  7915 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
  7916 	iUTContext->ConstructL(WSP::EProfileWarning);
       
  7917 
       
  7918 	TUint8 valueLength = 0x17; // length for 23 bytes
       
  7919 	TUint8 warnCode = 0x91; // Short int token for 17 (101)
       
  7920 	_LIT8(KTxtHostWarnTarget, "http://www.symbian.com\0");
       
  7921 
       
  7922 	iUTContext->iTestHeader->BeginRawDataL();
       
  7923 	iUTContext->iTestHeader->WriteRawDataL(valueLength);
       
  7924 	iUTContext->iTestHeader->WriteRawDataL(warnCode);
       
  7925 	iUTContext->iTestHeader->WriteRawDataL(KTxtHostWarnTarget());
       
  7926 	iUTContext->iTestHeader->CommitRawData();
       
  7927 	_LIT8(KTxtExpected, "101,http://www.symbian.com");
       
  7928 	iUTContext->SetExpectedL(KTxtExpected);
       
  7929 	
       
  7930 	// Add the Transitions in the order they are to run
       
  7931 	// C'tor first, D'tor last...
       
  7932 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
  7933 		using constructor and destuctor validators */
       
  7934 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
  7935 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
  7936 	iProfileWarningWarnCodeHostWarnTargetValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
  7937 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderL_Transition(*iUTContext,*iProfileWarningWarnCodeHostWarnTargetValidator));
       
  7938 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
  7939 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
  7940 	}
       
  7941 
       
  7942 // ______________________________________________________________________________
       
  7943 //
       
  7944 _LIT(KWspHeaderReaderProfileWarningLongFullValueUnitTest,"CWspHeaderReader_ProfileWarningLongFullValue_UnitTest");
       
  7945 
       
  7946 CWspHeaderReader_ProfileWarningLongFullValue_UnitTest* CWspHeaderReader_ProfileWarningLongFullValue_UnitTest::NewL(CDataLogger& aDataLogger,
       
  7947 											MUnitTestObserver& aObserver)
       
  7948 	{
       
  7949 	CWspHeaderReader_ProfileWarningLongFullValue_UnitTest* self = 
       
  7950 					new(ELeave) CWspHeaderReader_ProfileWarningLongFullValue_UnitTest(aDataLogger,
       
  7951 																aObserver);
       
  7952 	CleanupStack::PushL(self);
       
  7953 	self->ConstructL();
       
  7954 	CleanupStack::Pop(self);
       
  7955 	return self; 
       
  7956 	}
       
  7957 
       
  7958 inline TInt CWspHeaderReader_ProfileWarningLongFullValue_UnitTest::RunError(TInt aError)
       
  7959 	{
       
  7960 	// The RunL left so chain to the base first and then cleanup
       
  7961 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
  7962 	delete iUTContext;
       
  7963 	iUTContext = NULL;
       
  7964 	delete iStateAccessor;
       
  7965 	iStateAccessor = NULL;
       
  7966 	/* delete any validators used */
       
  7967 	delete iCtorValidator;
       
  7968 	iCtorValidator = NULL;
       
  7969 	delete iProfileWarningLongFullValueValidator;
       
  7970 	iProfileWarningLongFullValueValidator = NULL;
       
  7971 	delete iDtorValidator;
       
  7972 	iDtorValidator = NULL;
       
  7973 	return error;
       
  7974 	}
       
  7975 
       
  7976 inline CWspHeaderReader_ProfileWarningLongFullValue_UnitTest::~CWspHeaderReader_ProfileWarningLongFullValue_UnitTest()
       
  7977 	{
       
  7978 	// Simply delete our test class instance
       
  7979 	delete iUTContext;
       
  7980 	delete iStateAccessor;
       
  7981 	/* delete any validators used */
       
  7982 	delete iCtorValidator;
       
  7983 	delete iProfileWarningLongFullValueValidator;
       
  7984 	delete iDtorValidator;
       
  7985 	}
       
  7986 
       
  7987 inline CWspHeaderReader_ProfileWarningLongFullValue_UnitTest::CWspHeaderReader_ProfileWarningLongFullValue_UnitTest(CDataLogger& aDataLogger,
       
  7988 																	MUnitTestObserver& aObserver)
       
  7989 : CUnitTest(KWspHeaderReaderProfileWarningLongFullValueUnitTest, aDataLogger, aObserver)
       
  7990 	{
       
  7991 	//Do nothing
       
  7992 	}
       
  7993 
       
  7994 // Now the Individual transitions need to be added.
       
  7995 inline void CWspHeaderReader_ProfileWarningLongFullValue_UnitTest::ConstructL()
       
  7996 	{
       
  7997 	// Perform the base class initialization
       
  7998 	UnitTestConstructL();
       
  7999 
       
  8000 	// Create the Unit test state accessor
       
  8001 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
  8002 	// Construct the Unit test context.
       
  8003 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
  8004 	iUTContext->ConstructL(WSP::EProfileWarning);
       
  8005 	
       
  8006 	TUint8 octet1F = 0x1F; // <Octet 31> for length quote
       
  8007 	TUint8 valueLength = 0x27; // length for 39 bytes
       
  8008 	TUint8 warnCode = 0xA0; // Short int token for 32 (200)
       
  8009 	_LIT8(KTxtWarnTarget, "http://www.longaddresswebsite.com\0");
       
  8010 	TUint8 octet03 = 0x03; // short length of 3 for date value
       
  8011 	TUint8 octet255 = 0xFF; // example date value
       
  8012 	TUint8 octet254 = 0xFE; // example date value
       
  8013 
       
  8014 	iUTContext->iTestHeader->BeginRawDataL();
       
  8015 	iUTContext->iTestHeader->WriteRawDataL(octet1F);
       
  8016 	iUTContext->iTestHeader->WriteRawDataL(valueLength);
       
  8017 	iUTContext->iTestHeader->WriteRawDataL(warnCode);
       
  8018 	iUTContext->iTestHeader->WriteRawDataL(KTxtWarnTarget());
       
  8019 	iUTContext->iTestHeader->WriteRawDataL(octet03);
       
  8020 	iUTContext->iTestHeader->WriteRawDataL(octet255);
       
  8021 	iUTContext->iTestHeader->WriteRawDataL(octet255);
       
  8022 	iUTContext->iTestHeader->WriteRawDataL(octet254);
       
  8023 	iUTContext->iTestHeader->CommitRawData();
       
  8024 	_LIT8(KTxtExpected, "200,http://www.longaddresswebsite.com,Tue, 14 Jul 1970 04:20:14 GMT");
       
  8025 	iUTContext->SetExpectedL(KTxtExpected);
       
  8026 
       
  8027 	// Add the Transitions in the order they are to run
       
  8028 	// C'tor first, D'tor last...
       
  8029 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
  8030 		using constructor and destuctor validators */
       
  8031 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
  8032 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
  8033 	iProfileWarningLongFullValueValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
  8034 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderL_Transition(*iUTContext,*iProfileWarningLongFullValueValidator));
       
  8035 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
  8036 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
  8037 	}
       
  8038 
       
  8039 // ______________________________________________________________________________
       
  8040 //
       
  8041 _LIT(KWspHeaderReaderProfileWarningLongWarnCodeHostWarnTargetUnitTest,"CWspHeaderReader_ProfileWarningLongWarnCodeHostWarnTarget_UnitTest");
       
  8042 
       
  8043 CWspHeaderReader_ProfileWarningLongWarnCodeHostWarnTarget_UnitTest* CWspHeaderReader_ProfileWarningLongWarnCodeHostWarnTarget_UnitTest::NewL(CDataLogger& aDataLogger,
       
  8044 											MUnitTestObserver& aObserver)
       
  8045 	{
       
  8046 	CWspHeaderReader_ProfileWarningLongWarnCodeHostWarnTarget_UnitTest* self = 
       
  8047 					new(ELeave) CWspHeaderReader_ProfileWarningLongWarnCodeHostWarnTarget_UnitTest(aDataLogger,
       
  8048 																aObserver);
       
  8049 	CleanupStack::PushL(self);
       
  8050 	self->ConstructL();
       
  8051 	CleanupStack::Pop(self);
       
  8052 	return self; 
       
  8053 	}
       
  8054 
       
  8055 inline TInt CWspHeaderReader_ProfileWarningLongWarnCodeHostWarnTarget_UnitTest::RunError(TInt aError)
       
  8056 	{
       
  8057 	// The RunL left so chain to the base first and then cleanup
       
  8058 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
  8059 	delete iUTContext;
       
  8060 	iUTContext = NULL;
       
  8061 	delete iStateAccessor;
       
  8062 	iStateAccessor = NULL;
       
  8063 	/* delete any validators used */
       
  8064 	delete iCtorValidator;
       
  8065 	iCtorValidator = NULL;
       
  8066 	delete iProfileWarningLongWarnCodeHostWarnTargetValidator;
       
  8067 	iProfileWarningLongWarnCodeHostWarnTargetValidator = NULL;
       
  8068 	delete iDtorValidator;
       
  8069 	iDtorValidator = NULL;
       
  8070 	return error;
       
  8071 	}
       
  8072 
       
  8073 inline CWspHeaderReader_ProfileWarningLongWarnCodeHostWarnTarget_UnitTest::~CWspHeaderReader_ProfileWarningLongWarnCodeHostWarnTarget_UnitTest()
       
  8074 	{
       
  8075 	// Simply delete our test class instance
       
  8076 	delete iUTContext;
       
  8077 	delete iStateAccessor;
       
  8078 	/* delete any validators used */
       
  8079 	delete iCtorValidator;
       
  8080 	delete iProfileWarningLongWarnCodeHostWarnTargetValidator;
       
  8081 	delete iDtorValidator;
       
  8082 	}
       
  8083 
       
  8084 inline CWspHeaderReader_ProfileWarningLongWarnCodeHostWarnTarget_UnitTest::CWspHeaderReader_ProfileWarningLongWarnCodeHostWarnTarget_UnitTest(CDataLogger& aDataLogger,
       
  8085 																	MUnitTestObserver& aObserver)
       
  8086 : CUnitTest(KWspHeaderReaderProfileWarningLongWarnCodeHostWarnTargetUnitTest, aDataLogger, aObserver)
       
  8087 	{
       
  8088 	//Do nothing
       
  8089 	}
       
  8090 
       
  8091 // Now the Individual transitions need to be added.
       
  8092 inline void CWspHeaderReader_ProfileWarningLongWarnCodeHostWarnTarget_UnitTest::ConstructL()
       
  8093 	{
       
  8094 	// Perform the base class initialization
       
  8095 	UnitTestConstructL();
       
  8096 
       
  8097 	// Create the Unit test state accessor
       
  8098 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
  8099 	// Construct the Unit test context.
       
  8100 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
  8101 	iUTContext->ConstructL(WSP::EProfileWarning);
       
  8102 
       
  8103 	TUint8 octet1F = 0x1F; // <Octet 31> for length quote
       
  8104 	TUint8 valueLength = 0x27; // length for 39 bytes
       
  8105 	TUint8 warnCode = 0x90; // Short int token for 16 (100)
       
  8106 	_LIT8(KTxtHostWarnTarget, "http://www.longaddresswebsite.com:9090\0");
       
  8107 
       
  8108 	iUTContext->iTestHeader->BeginRawDataL();
       
  8109 	iUTContext->iTestHeader->WriteRawDataL(octet1F);
       
  8110 	iUTContext->iTestHeader->WriteRawDataL(valueLength);
       
  8111 	iUTContext->iTestHeader->WriteRawDataL(warnCode);
       
  8112 	iUTContext->iTestHeader->WriteRawDataL(KTxtHostWarnTarget());
       
  8113 	iUTContext->iTestHeader->CommitRawData();
       
  8114 	_LIT8(KTxtExpected, "100,http://www.longaddresswebsite.com:9090");
       
  8115 	iUTContext->SetExpectedL(KTxtExpected);
       
  8116 
       
  8117 	// Add the Transitions in the order they are to run
       
  8118 	// C'tor first, D'tor last...
       
  8119 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
  8120 		using constructor and destuctor validators */
       
  8121 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
  8122 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
  8123 	iProfileWarningLongWarnCodeHostWarnTargetValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
  8124 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderL_Transition(*iUTContext,*iProfileWarningLongWarnCodeHostWarnTargetValidator));
       
  8125 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
  8126 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
  8127 	}
       
  8128 
       
  8129 // ______________________________________________________________________________
       
  8130 //
       
  8131 _LIT(KWspHeaderReaderProfileWarningLongWarnCodeHostWarnTargetDateValueUnitTest,"CWspHeaderReader_ProfileWarningLongWarnCodeHostWarnTargetDateValue_UnitTest");
       
  8132 
       
  8133 CWspHeaderReader_ProfileWarningLongWarnCodeHostWarnTargetDateValue_UnitTest* CWspHeaderReader_ProfileWarningLongWarnCodeHostWarnTargetDateValue_UnitTest::NewL(CDataLogger& aDataLogger,
       
  8134 											MUnitTestObserver& aObserver)
       
  8135 	{
       
  8136 	CWspHeaderReader_ProfileWarningLongWarnCodeHostWarnTargetDateValue_UnitTest* self = 
       
  8137 					new(ELeave) CWspHeaderReader_ProfileWarningLongWarnCodeHostWarnTargetDateValue_UnitTest(aDataLogger,
       
  8138 																aObserver);
       
  8139 	CleanupStack::PushL(self);
       
  8140 	self->ConstructL();
       
  8141 	CleanupStack::Pop(self);
       
  8142 	return self; 
       
  8143 	}
       
  8144 
       
  8145 inline TInt CWspHeaderReader_ProfileWarningLongWarnCodeHostWarnTargetDateValue_UnitTest::RunError(TInt aError)
       
  8146 	{
       
  8147 	// The RunL left so chain to the base first and then cleanup
       
  8148 	TInt error = CUnitTest::RunError(aError);	// Chain to base
       
  8149 	delete iUTContext;
       
  8150 	iUTContext = NULL;
       
  8151 	delete iStateAccessor;
       
  8152 	iStateAccessor = NULL;
       
  8153 	/* delete any validators used */
       
  8154 	delete iCtorValidator;
       
  8155 	iCtorValidator = NULL;
       
  8156 	delete iProfileWarningLongWarnCodeHostWarnTargetDateValueValidator;
       
  8157 	iProfileWarningLongWarnCodeHostWarnTargetDateValueValidator = NULL;
       
  8158 	delete iDtorValidator;
       
  8159 	iDtorValidator = NULL;
       
  8160 	return error;
       
  8161 	}
       
  8162 
       
  8163 inline CWspHeaderReader_ProfileWarningLongWarnCodeHostWarnTargetDateValue_UnitTest::~CWspHeaderReader_ProfileWarningLongWarnCodeHostWarnTargetDateValue_UnitTest()
       
  8164 	{
       
  8165 	// Simply delete our test class instance
       
  8166 	delete iUTContext;
       
  8167 	delete iStateAccessor;
       
  8168 	/* delete any validators used */
       
  8169 	delete iCtorValidator;
       
  8170 	delete iProfileWarningLongWarnCodeHostWarnTargetDateValueValidator;
       
  8171 	delete iDtorValidator;
       
  8172 	}
       
  8173 
       
  8174 inline CWspHeaderReader_ProfileWarningLongWarnCodeHostWarnTargetDateValue_UnitTest::CWspHeaderReader_ProfileWarningLongWarnCodeHostWarnTargetDateValue_UnitTest(CDataLogger& aDataLogger,
       
  8175 																	MUnitTestObserver& aObserver)
       
  8176 : CUnitTest(KWspHeaderReaderProfileWarningLongWarnCodeHostWarnTargetDateValueUnitTest, aDataLogger, aObserver)
       
  8177 	{
       
  8178 	//Do nothing
       
  8179 	}
       
  8180 
       
  8181 // Now the Individual transitions need to be added.
       
  8182 inline void CWspHeaderReader_ProfileWarningLongWarnCodeHostWarnTargetDateValue_UnitTest::ConstructL()
       
  8183 	{
       
  8184 	// Perform the base class initialization
       
  8185 	UnitTestConstructL();
       
  8186 
       
  8187 	// Create the Unit test state accessor
       
  8188 	iStateAccessor = new(ELeave) TWspHeaderReader_StateAccessor;
       
  8189 	// Construct the Unit test context.
       
  8190 	iUTContext = new(ELeave) CWspHeaderReader_UnitTestContext(iDataLogger, *iStateAccessor, *this, WSP::Table);
       
  8191 	iUTContext->ConstructL(WSP::EProfileWarning);
       
  8192 
       
  8193 	TUint8 octet1F = 0x1F; // <Octet 31> for length quote
       
  8194 	TUint8 valueLength = 0x27; // length for 39 bytes
       
  8195 	TUint8 warnCode = 0xA1; // Short int token for 33 (201)
       
  8196 	_LIT8(KTxtHostWarnTarget, "http://www.longaddresswebsite.com:80\0");
       
  8197 	TUint8 octet03 = 0x03; // short length of 3 for date value
       
  8198 	TUint8 octet255 = 0xFF; // example date value
       
  8199 	TUint8 octet254 = 0xFE; // example date value
       
  8200 
       
  8201 	iUTContext->iTestHeader->BeginRawDataL();
       
  8202 	iUTContext->iTestHeader->WriteRawDataL(octet1F);
       
  8203 	iUTContext->iTestHeader->WriteRawDataL(valueLength);
       
  8204 	iUTContext->iTestHeader->WriteRawDataL(warnCode);
       
  8205 	iUTContext->iTestHeader->WriteRawDataL(KTxtHostWarnTarget());
       
  8206 	iUTContext->iTestHeader->WriteRawDataL(octet03);
       
  8207 	iUTContext->iTestHeader->WriteRawDataL(octet255);
       
  8208 	iUTContext->iTestHeader->WriteRawDataL(octet255);
       
  8209 	iUTContext->iTestHeader->WriteRawDataL(octet254);
       
  8210 	iUTContext->iTestHeader->CommitRawData();
       
  8211 	_LIT8(KTxtExpected, "201,http://www.longaddresswebsite.com:80,Tue, 14 Jul 1970 04:20:14 GMT");
       
  8212 	iUTContext->SetExpectedL(KTxtExpected);
       
  8213 
       
  8214 	// Add the Transitions in the order they are to run
       
  8215 	// C'tor first, D'tor last...
       
  8216 	/*	Examples of C'tor and D'tor transitions on CWspHeaderReader class.
       
  8217 		using constructor and destuctor validators */
       
  8218 	iCtorValidator = new(ELeave) TWspHeaderReader_Ctor_TransitionValidator(*iUTContext);
       
  8219 	AddTransitionL(new(ELeave)CWspHeaderReader_NewL_Transition(*iUTContext,*iCtorValidator));
       
  8220 	iProfileWarningLongWarnCodeHostWarnTargetDateValueValidator = new(ELeave) TWspHeaderReader_DecodeHeaderL_TransitionValidator(*iUTContext);
       
  8221 	AddTransitionL(new(ELeave)CWspHeaderReader_DecodeHeaderL_Transition(*iUTContext,*iProfileWarningLongWarnCodeHostWarnTargetDateValueValidator));
       
  8222 	iDtorValidator = new(ELeave) TWspHeaderReader_Dtor_TransitionValidator(*iUTContext);
       
  8223 	AddTransitionL(new(ELeave)CWspHeaderReader_Dtor_Transition(*iUTContext,*iDtorValidator));
       
  8224 	}
       
  8225