diff -r e20de85af2ee -r ce057bb09d0b genericservices/httputils/Test/t_wspcodec/cwspdecodetest.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/genericservices/httputils/Test/t_wspcodec/cwspdecodetest.cpp Fri Jun 04 16:20:51 2010 +0100 @@ -0,0 +1,751 @@ +// Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// Implementation of test CWSPDecodeTest +// +// + +#include "cwspdecodetest.h" +#include + + + +CWSPDecodeTest* CWSPDecodeTest::NewLC(CIpuTestHarness* aTestHarness) + { + CWSPDecodeTest* self = new(ELeave)CWSPDecodeTest(aTestHarness); + CleanupStack::PushL(self); + return self; + } + + +CWSPDecodeTest::CWSPDecodeTest(CIpuTestHarness* aTestHarness): + iTestHarness(aTestHarness) + {} + +CWSPDecodeTest::~CWSPDecodeTest() + {} + +void CWSPDecodeTest::DoTestsL() + { + VarTypesTestL(); + LengthValsTestL(); + StringTestL(); + TokensTestL(); + IntegersTestL(); + LongIntTestL(); + UintVarsTestL(); + VersionTestL(); + DateTestL(); + SegmenterTestL(); + } + + +//* VarTypes */ + +TBool CWSPDecodeTest::VarType(TPtrC8 aBuf, TWspPrimitiveDecoder::TWspHeaderType aShouldBeType) + { + TWspPrimitiveDecoder dec(aBuf); + TWspPrimitiveDecoder::TWspHeaderType type=dec.VarType(); + + TBool bSuccess = EFalse; + if (type == aShouldBeType) + bSuccess = ETrue; + + TBuf8<25> typeStr; + switch (aShouldBeType) + { + case TWspPrimitiveDecoder::ENotSet: + typeStr.Copy(_L("ENotSet")); + break; + case TWspPrimitiveDecoder::ELengthVal: + typeStr.Copy(_L("ELengthVal")); + break; + case TWspPrimitiveDecoder::EQuotedString: + typeStr.Copy(_L("EQuotedString")); + break; + case TWspPrimitiveDecoder::EString: + typeStr.Copy(_L("EString")); + break; + case TWspPrimitiveDecoder::E7BitVal: + typeStr.Copy(_L("E7BitVal")); + break; + } + return bSuccess; + } + + +void CWSPDecodeTest::VarTypesTestL() + { + _LIT(KTestText, "WSP Decode: VarTypes"); + iTestHarness->StartTestL(KTestText); + TRAPD(error, TestVarTypesL()); + iTestHarness->EndTest(error); + User::LeaveIfError(error); + } + +void CWSPDecodeTest::TestVarTypesL() + { + const TUint8 KToken[] = {0x81}; + const TUint8 KString1[] = {'a', 'b', 'c', 0x00}; + const TUint8 KString2[] = {0x33}; + const TUint8 KLen0[] = {0x00}; + const TUint8 KLen1[] = {0x01}; + const TUint8 KLen2[] = {0x1F}; + + TBuf8<255> buf; + buf.Copy(KToken, sizeof(KToken)); + if (!VarType(buf, TWspPrimitiveDecoder::E7BitVal)) + User::Leave(KErrGeneral); + + buf.Copy(KString1, sizeof(KString1)); + if (!VarType(buf, TWspPrimitiveDecoder::EString)) + User::Leave(KErrGeneral); + + buf.Copy(KString2, sizeof(KString2)); + if (!VarType(buf, TWspPrimitiveDecoder::EString)) + User::Leave(KErrGeneral); + + buf.Copy(KLen0, sizeof(KLen0)); + if (!VarType(buf, TWspPrimitiveDecoder::ELengthVal)) + User::Leave(KErrGeneral); + + buf.Copy(KLen1, sizeof(KLen1)); + if (!VarType(buf, TWspPrimitiveDecoder::ELengthVal)) + User::Leave(KErrGeneral); + + buf.Copy(KLen2, sizeof(KLen2)); + if (!VarType(buf, TWspPrimitiveDecoder::ELengthVal)) + User::Leave(KErrGeneral); + } + + + + +//* LenVal */ + +TBool CWSPDecodeTest::LenVal(TPtrC8 aBuf, TInt aShouldBeVal) + { + TBool success = EFalse; + TWspPrimitiveDecoder dec(aBuf); + TInt len; + success = dec.LengthVal(len); + if (success == KErrCorrupt) + return ETrue; + + return len == aShouldBeVal && !(success < KErrNone); + } + + +void CWSPDecodeTest::LengthValsTestL() + { + _LIT(KTestText, "WSP Decode: LengthVals"); + iTestHarness->StartTestL(KTestText); + TRAPD(error, TestLengthValsL()); + iTestHarness->EndTest(error); + User::LeaveIfError(error); + } + +void CWSPDecodeTest::TestLengthValsL() + { + const TUint8 KLen0[] = {0x00}; + const TUint8 KLen1[] = {0x01}; + const TUint8 KLen26[] = {0x1A}; + const TUint8 KLenUintVAR17680[] = {0x1F, 0x81,0x8A,0x10}; + const TUint8 KLenUintVARCorrupt[] = {0x1F, 0x81,0x8A,0x80}; + + + TBuf8<255> buf; + buf.Copy(KLen0, sizeof(KLen0)); + if (!LenVal(buf, 0)) + User::Leave(KErrGeneral); + + buf.Copy(KLen1, sizeof(KLen1)); + if (!LenVal(buf, 1)) + User::Leave(KErrGeneral); + + buf.Copy(KLen26, sizeof(KLen26)); + if (!LenVal(buf, 0x1A)) + User::Leave(KErrGeneral); + + buf.Copy(KLenUintVAR17680, sizeof(KLenUintVAR17680)); + if (!LenVal(buf, 17680)) + User::Leave(KErrGeneral); + + buf.Copy(KLenUintVARCorrupt, sizeof(KLenUintVARCorrupt)); + if (!LenVal(buf, -1)) + User::Leave(KErrGeneral); + + } + + + +//* String */ + +TBool CWSPDecodeTest::String(TPtrC8 aBuf, TPtrC8 aShouldBe, TInt /*aErr*/) + { + TBool success = EFalse; + TWspPrimitiveDecoder dec(aBuf); + + TPtrC8 str; + success = dec.String(str); + if (success < KErrNone) + return success; + + + if (str != aShouldBe) + success = EFalse; + + // Copy to 16 bits + return success; + } + + + +void CWSPDecodeTest::StringTestL() + { + _LIT(KTestText, "WSP Decode: String"); + iTestHarness->StartTestL(KTestText); + TRAPD(error, TestStringL()); + iTestHarness->EndTest(error); + User::LeaveIfError(error); + } + + +void CWSPDecodeTest::TestStringL() + { + const TUint8 KStringHello[] = {'H','e','l','l','o',0x00}; + const TUint8 KStringEmpty[] = {0x00}; + const TUint8 KStringNotAString[] = {0x1A}; + const TUint8 KStringCorruptNoZero[] = {'H','e','l','l','o'}; + const TUint8 KStringbye[] = {'b','y','e',0x00}; + + TBuf8<255> buf; + + buf.Copy(KStringHello, sizeof(KStringHello)); + if (!String(buf, _L8("Hello"))) + User::Leave(KErrGeneral); + + buf.Copy(KStringEmpty, sizeof(KStringEmpty)); + if (!String(buf, _L8(""),KErrCorrupt)) + User::Leave(KErrGeneral); + + buf.Copy(KStringNotAString, sizeof(KStringNotAString)); + if (!String(buf, _L8(""), KErrCorrupt)) + User::Leave(KErrGeneral); + + buf.Copy(KStringCorruptNoZero, sizeof(KStringCorruptNoZero)); + if (!String(buf, _L8(""), KErrCorrupt)) + User::Leave(KErrGeneral); + + buf.Copy(KStringbye, sizeof(KStringbye)); + if (!String(buf, _L8("bye"))) + User::Leave(KErrGeneral); + } + +//* Tokens */ + +TBool CWSPDecodeTest::Token(TPtrC8 aBuf, TUint8 aShouldBe, TInt aErr) + { + TInt success; + TWspPrimitiveDecoder dec(aBuf); + + TUint8 val; + success = dec.Val7Bit(val); + if (success < KErrNone && success == aErr) + return ETrue; + + return val == aShouldBe; + } + +void CWSPDecodeTest::TokensTestL() + { + _LIT(KTestText, "WSP Decode: Tokens"); + iTestHarness->StartTestL(KTestText); + TRAPD(error, TestTokensL()); + iTestHarness->EndTest(error); + User::LeaveIfError(error); + } + + +void CWSPDecodeTest::TestTokensL() + { + const TUint8 KToken0[] = {0x80}; + const TUint8 KToken1[] = {0x81}; + const TUint8 KToken1A[] = {0x9A}; + const TUint8 KToken38[] = {0xB8}; + const TUint8 KTokenCorruptLen[] = {0x01}; + TBuf8<255> buf; + + buf.Copy(KToken0, sizeof(KToken0)); + if (!Token(buf, 0)) + User::Leave(KErrGeneral); + + buf.Copy(KToken1, sizeof(KToken1)); + if (!Token(buf, 1)) + User::Leave(KErrGeneral); + + buf.Copy(KToken1A, sizeof(KToken1A)); + if (!Token(buf, 0x1A)) + User::Leave(KErrGeneral); + + buf.Copy(KToken38, sizeof(KToken38)); + if (!Token(buf, 0x38)) + User::Leave(KErrGeneral); + + buf.Copy(KTokenCorruptLen, sizeof(KTokenCorruptLen)); + if (!Token(buf, 1)) + User::Leave(KErrGeneral); + } + + +//* Integers */ + +TBool CWSPDecodeTest::Integer(TPtrC8 aBuf, TUint32 aShouldBe, TInt aErr) + { + TInt success; + TWspPrimitiveDecoder dec(aBuf); + TUint32 val; + success = dec.Integer(val); + if (success < KErrNone && success == aErr) + return success; + return val == aShouldBe; + } + + + +void CWSPDecodeTest::IntegersTestL() + { + _LIT(KTestText, "WSP Decode: Integers"); + iTestHarness->StartTestL(KTestText); + TRAPD(error, TestIntegersL()); + iTestHarness->EndTest(error); + User::LeaveIfError(error); + } + + +void CWSPDecodeTest::TestIntegersL() + { + const TUint8 KInt0[] = {0x80}; + const TUint8 KInt1[] = {0x81}; + const TUint8 KIntA[] = {0x8A}; + const TUint8 KInt38[] = {0xB8}; + const TUint8 KIntLong4321[] = {0x02, 0x43,0x21}; + const TUint8 KIntLongABCDEF[] = {0x03, 0xAB,0xCD,0xEF}; + const TUint8 KIntCorrupt[] = {0x01}; + TBuf8<255> buf; + + buf.Copy(KInt0, sizeof(KInt0)); + if (!Integer(buf, 0)) + User::Leave(KErrGeneral); + + buf.Copy(KInt1, sizeof(KIntA)); + if (!Integer(buf, 1)) + User::Leave(KErrGeneral); + + buf.Copy(KIntA, sizeof(KIntA)); + if (!Integer(buf, 0x0A)) + User::Leave(KErrGeneral); + + buf.Copy(KInt38, sizeof(KInt38)); + if (!Integer(buf, 0x38)) + User::Leave(KErrGeneral); + + buf.Copy(KIntLong4321, sizeof(KIntLong4321)); + if (!Integer(buf, 0x4321)) + User::Leave(KErrGeneral); + + buf.Copy(KIntLongABCDEF, sizeof(KIntLongABCDEF)); + if (!Integer(buf, 0xABCDEF)) + User::Leave(KErrGeneral); + + buf.Copy(KIntCorrupt, sizeof(KIntCorrupt)); + if (!Integer(buf,0, KErrCorrupt)) + User::Leave(KErrGeneral); + } + +//* LongInt */ + +TBool CWSPDecodeTest::LongInt(TPtrC8 aBuf, TUint32 aShouldBe, TInt aErr) + { + TInt success; + TWspPrimitiveDecoder dec(aBuf); + + TUint32 val; + success = dec.LongInt(val); + if (success < KErrNone && success == aErr) + return ETrue; + return val == aShouldBe; + } + + + +void CWSPDecodeTest::LongIntTestL() + { + _LIT(KTestText, "WSP Decode: LongInt"); + iTestHarness->StartTestL(KTestText); + TRAPD(error, TestLongIntL()); + iTestHarness->EndTest(error); + User::LeaveIfError(error); + } + + + +void CWSPDecodeTest::TestLongIntL() + { + const TUint8 KIntLong0[] = {0x01, 0x00}; + const TUint8 KIntLong4321[] = {0x02, 0x43,0x21}; + const TUint8 KIntLongABCDEF[] = {0x03, 0xAB,0xCD,0xEF}; + const TUint8 KIntLongABCDEF112233[] = {0x06, 0xAB,0xCD,0xEF, 0x11,0x22,0x33}; + const TUint8 KIntTooLong110009ABCDEF112233[] = {0x0A, 0x11,0x00, 0x09, 0xAB,0xCD,0xEF, 0x11,0x22,0x33}; + const TUint8 KIntCorrupt[] = {0x01}; + TBuf8<255> buf; + buf.Copy(KIntLong0, sizeof(KIntLong0)); + if (!LongInt(buf, 0)) + User::Leave(KErrGeneral); + + buf.Copy(KIntLong4321, sizeof(KIntLong4321)); + if (!LongInt(buf, 0x4321)) + User::Leave(KErrGeneral); + + buf.Copy(KIntLongABCDEF, sizeof(KIntLongABCDEF)); + if (!LongInt(buf, 0xABCDEF)) + User::Leave(KErrGeneral); + + buf.Copy(KIntLongABCDEF112233, sizeof(KIntLongABCDEF112233)); + if (!LongInt(buf, 0xEF112233)) + User::Leave(KErrGeneral); + + buf.Copy(KIntTooLong110009ABCDEF112233, sizeof(KIntTooLong110009ABCDEF112233)); + if (!LongInt(buf, 0x09ABCDEF, KErrCorrupt)) + User::Leave(KErrGeneral); + + buf.Copy(KIntCorrupt, sizeof(KIntCorrupt)); + if (!LongInt(buf, 0, KErrCorrupt)) + User::Leave(KErrGeneral); + } + + + +//* UintVar */ + +TBool CWSPDecodeTest::UintVar(TPtrC8 aBuf, TUint32 aShouldBe, TInt aErr) + { + TInt success; + TWspPrimitiveDecoder dec(aBuf); + TUint32 val; + success = dec.UintVar(val); + if (success < KErrNone && success == aErr) + return ETrue; + return val == aShouldBe; + } + + +void CWSPDecodeTest::UintVarsTestL() + { + _LIT(KTestText, "WSP Decode: UintVars"); + iTestHarness->StartTestL(KTestText); + TRAPD(error, TestUintVarsL()); + iTestHarness->EndTest(error); + User::LeaveIfError(error); + } + + +void CWSPDecodeTest::TestUintVarsL() + { + const TUint8 KUint0[] = {0x00}; + const TUint8 KUint1[] = {0x01}; + const TUint8 KUintA[] = {0x80,0x0A}; + const TUint8 KUintFA[] = {0x81,0x7A}; + const TUint8 KLenUintVAR4510[] = {0x81, 0x8A, 0x10}; + const TUint8 KLenUintVARCorrupt[] = {0x8F, 0x81,0x8A,0x80,0x88}; + const TUint8 KIntLongACorrupt[] = {0xF3, 0xAB,0xCD,0xEF}; + + + TBuf8<255> buf; + + buf.Copy(KUint0, sizeof(KUint0)); + if (!UintVar(buf, 0)) + User::Leave(KErrGeneral); + + buf.Copy(KUint1, sizeof(KUint1)); + if (!UintVar(buf, 1)) + User::Leave(KErrGeneral); + + buf.Copy(KUintA, sizeof(KUintA)); + if (!UintVar(buf, 0x0A)) + User::Leave(KErrGeneral); + + buf.Copy(KUintFA, sizeof(KUintFA)); + if (!UintVar(buf, 0xFA)) + User::Leave(KErrGeneral); + + buf.Copy(KLenUintVAR4510, sizeof(KLenUintVAR4510)); + if (!UintVar(buf, 0x4510)) + User::Leave(KErrGeneral); + + buf.Copy(KLenUintVARCorrupt, sizeof(KLenUintVARCorrupt)); + if (!UintVar(buf, 0, KErrCorrupt)) + User::Leave(KErrGeneral); + + buf.Copy(KIntLongACorrupt, sizeof(KIntLongACorrupt)); + if (!UintVar(buf, 0, KErrCorrupt)) + User::Leave(KErrGeneral); + } + + + + +//* VersionL */ + +TBool CWSPDecodeTest::VersionL(RStringPool aPool, TPtrC8 aBuf, TPtrC8 aShouldBe, TInt aErr) + { + TInt success; + TWspPrimitiveDecoder dec(aBuf); + TBool retVal = EFalse; + RStringF val; + success = dec.VersionL(aPool,val); + CleanupClosePushL(val); + if (success < KErrNone && success == aErr) + retVal = ETrue; + else + { + RStringF should = aPool.OpenFStringL(aShouldBe); + retVal = val == should; + should.Close(); + } + CleanupStack::PopAndDestroy(&val); + return retVal; + } + +void CWSPDecodeTest::VersionTestL() + { + _LIT(KTestText, "WSP Decode: Version"); + iTestHarness->StartTestL(KTestText); + TRAPD(error, TestVersionL()); + iTestHarness->EndTest(error); + User::LeaveIfError(error); + } + +void CWSPDecodeTest::TestVersionL() + { + RStringPool pool; + pool.OpenL(); + CleanupClosePushL(pool); + const TUint8 KVersion1[] = {0x9F}; + const TUint8 KVersion11[] = {0x91}; + const TUint8 KVersion610[] = {0xEA}; + const TUint8 KVersion73[] = {0xF3}; + const TUint8 KVersion00[] = {0x80}; + const TUint8 KVersionStr[] = {'1','.','9','9',0x00}; + TBuf8<255> buf; + + buf.Copy(KVersion1, sizeof(KVersion1)); + if (!VersionL(pool, buf, _L8("1"))) + User::Leave(KErrGeneral); + + buf.Copy(KVersion11, sizeof(KVersion11)); + if (!VersionL(pool, buf, _L8("1.1"))) + User::Leave(KErrGeneral); + + buf.Copy(KVersion610, sizeof(KVersion610)); + if (!VersionL(pool, buf, _L8("6.10"))) + User::Leave(KErrGeneral); + + buf.Copy(KVersion73, sizeof(KVersion73)); + if (!VersionL(pool, buf, _L8("7.3"))) + User::Leave(KErrGeneral); + + buf.Copy(KVersion00, sizeof(KVersion00)); + if (!VersionL(pool, buf, _L8("0.0"))) + User::Leave(KErrGeneral); + + buf.Copy(KVersionStr, sizeof(KVersionStr)); + if (!VersionL(pool, buf, _L8("1.99"))) + User::Leave(KErrGeneral); + + CleanupStack::PopAndDestroy(&pool); + } + + +//* Date */ + +TBool CWSPDecodeTest::Date(TPtrC8 aBuf, TTime aShouldBe, TInt aErr) + { + TInt success; + TWspPrimitiveDecoder dec(aBuf); + TDateTime val; + success = dec.Date(val); + if (success < KErrNone && success == aErr) + return ETrue; + + TTime time(val); + return time == aShouldBe; + } + + +void CWSPDecodeTest::DateTestL() + { + _LIT(KTestText, "WSP Decode: Date"); + iTestHarness->StartTestL(KTestText); + TRAPD(error, TestDateL()); + iTestHarness->EndTest(error); + User::LeaveIfError(error); + } + + +void CWSPDecodeTest::TestDateL() + { + // 1 long, value 0 + const TUint8 KDate0[] = {0x01, 0x00}; + const TUint8 KDateAprl132001[] = {0x04,0x3A,0xD6,0x41,0x80}; + const TUint8 KDateDec132003[] = {0x04,0x3F,0xE2,0x8D,0x84}; + TBuf8<255> buf; + TDateTime dt(1970,EJanuary,0,0,0,0,0); + TTime time1(dt); + buf.Copy(KDate0, sizeof(KDate0)); + if (!Date(buf, time1)) + User::Leave(KErrGeneral); + + TTime time2(dt); + time2 += TTimeIntervalSeconds(0x3AD64180); + buf.Copy(KDateAprl132001, sizeof(KDateAprl132001)); + if (!Date(buf, time2)) + User::Leave(KErrGeneral); + + TTime time3(dt); + time3 += TTimeIntervalSeconds(0x3FE28D84); + buf.Copy(KDateDec132003, sizeof(KDateDec132003)); + if (!Date(buf, time3)) + User::Leave(KErrGeneral); + } + + +TInt CWSPDecodeTest::SegmenterCommonL(RStringPool aPool, TPtrC8 aHdr) + { + TInt err; + TWspField fld; + + // Pre-condition to create WSP header segment: Open the string pool + // with the string table. Else program will raise a panic stringtable:4 + // ( EStringTableNotFound ) + aPool.OpenL ( WSPDummy::Table ); + TWspHeaderSegmenter segger(aPool, WSPDummy::Table, aHdr); + + while ((err = segger.NextL(fld)) == KErrNone) + { + fld.iHdrName.Close(); + } + return err; + } + +TBool CWSPDecodeTest::SegmenterL(RStringPool aPool, TPtrC8 aHdr) + { + TInt err = SegmenterCommonL(aPool,aHdr); + if (err != KErrNotFound) + return EFalse; + return ETrue; + } + +TBool CWSPDecodeTest::SegmenterExpectCorruptL(RStringPool aPool, TPtrC8 aHdr) + { + TInt err = SegmenterCommonL(aPool,aHdr); + if (err != KErrCorrupt) + return EFalse; + return ETrue; + } + +void CWSPDecodeTest::SegmenterTestL() + { + _LIT(KTestText, "WSP Decode: Segmenter"); + iTestHarness->StartTestL(KTestText); + TRAPD(error, TestSegmenterL()); + iTestHarness->EndTest(error); + User::LeaveIfError(error); + } + + +void CWSPDecodeTest::TestSegmenterL() + { + TBuf8<255> buf; + RStringPool pool; + pool.OpenL(); + CleanupClosePushL(pool); + + // Test Headers + const TUint8 KAcceptAppVndWMLC[] = {0x80, 0x94}; + const TUint8 KAcceptLanEngQ07[] = {0x82, 0x02, 0x99, 0x47}; + const TUint8 KAcceptLanENSV[] = {0x82, 0x02, 0x83, 0xF0}; + const TUint8 KDateThu23Apr1998134127GMT[] = {0x92, 0x04, 0x35, 0x3f, 0x45, 0x11}; + const TUint8 KContentRangeBytes0499[] = {0x90, 0x03, 0x00, 0x88, 0x01}; + const TUint8 KAcceptRangeNewRangeUnit[] = {0x84, 'n','e','w','-','r','a','n','g','e','-','u','n','i','t',0x00}; + const TUint8 KXNewHdrFoo[] = {'X','-','n','e','w','-','H','e','a','d','e','r',0x00,'F','o','o',0x00}; + const TUint8 KTwo[] = {0x80, 0x94, 0x81, 0x93}; + + const TUint8 KCorrupt1[] = {0x82}; + buf.Copy(KCorrupt1, sizeof(KCorrupt1)); + if (!SegmenterExpectCorruptL(pool, buf)) + User::Leave(KErrGeneral); + + const TUint8 KCorrupt2[] = {0x82, 0x02}; + buf.Copy(KCorrupt2, sizeof(KCorrupt2)); + if (!SegmenterExpectCorruptL(pool, buf)) + User::Leave(KErrGeneral); + + buf.Copy(KAcceptAppVndWMLC, sizeof(KAcceptAppVndWMLC)); + if (!SegmenterL(pool, buf)) + User::Leave(KErrGeneral); + + buf.Copy(KAcceptLanEngQ07, sizeof(KAcceptLanEngQ07)); + if (!SegmenterL(pool, buf)) + User::Leave(KErrGeneral); + + buf.Copy(KAcceptLanENSV, sizeof(KAcceptLanENSV)); + if (!SegmenterL(pool, buf)) + User::Leave(KErrGeneral); + + buf.Copy(KDateThu23Apr1998134127GMT, sizeof(KDateThu23Apr1998134127GMT)); + if (!SegmenterL(pool, buf)) + User::Leave(KErrGeneral); + + buf.Copy(KContentRangeBytes0499, sizeof(KContentRangeBytes0499)); + if (!SegmenterL(pool, buf)) + User::Leave(KErrGeneral); + + buf.Copy(KAcceptRangeNewRangeUnit, sizeof(KAcceptRangeNewRangeUnit)); + if (!SegmenterL(pool, buf)) + User::Leave(KErrGeneral); + + buf.Copy(KXNewHdrFoo, sizeof(KXNewHdrFoo)); + if (!SegmenterL(pool, buf)) + User::Leave(KErrGeneral); + + buf.Copy(KTwo, sizeof(KTwo)); + if (!SegmenterL(pool, buf)) + User::Leave(KErrGeneral); + + CleanupStack::PopAndDestroy(&pool); + } + +/* + +void CWSPDecodeTest::XXXTestL() + { + _LIT(KTestText, "WSP Decode: XXX"); + iTestHarness->StartTestL(KTestText); + TRAPD(error, TestXXXL()); + iTestHarness->EndTest(error); + User::LeaveIfError(error); + } + + +*/