os/ossrv/genericservices/httputils/Test/t_uriparser/CDelimitedPathTest.cpp
author sl@SLION-WIN7.fritz.box
Fri, 15 Jun 2012 03:10:57 +0200
changeset 0 bde4ae8d615e
permissions -rw-r--r--
First public contribution.
sl@0
     1
// Copyright (c) 2001-2009 Nokia Corporation and/or its subsidiary(-ies).
sl@0
     2
// All rights reserved.
sl@0
     3
// This component and the accompanying materials are made available
sl@0
     4
// under the terms of "Eclipse Public License v1.0"
sl@0
     5
// which accompanies this distribution, and is available
sl@0
     6
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
sl@0
     7
//
sl@0
     8
// Initial Contributors:
sl@0
     9
// Nokia Corporation - initial contribution.
sl@0
    10
//
sl@0
    11
// Contributors:
sl@0
    12
//
sl@0
    13
// Description:
sl@0
    14
//
sl@0
    15
sl@0
    16
#include "CDelimitedPathTest.h"
sl@0
    17
sl@0
    18
#include <e32base.h>
sl@0
    19
#include <delimitedpath16.h>
sl@0
    20
#include <delimitedpath8.h>
sl@0
    21
sl@0
    22
#include "TDelimitedDataCommon.h"
sl@0
    23
#include "DelimitedPathTests.h"
sl@0
    24
sl@0
    25
// Constants
sl@0
    26
//
sl@0
    27
_LIT(KTitle16Bit, "%S (16-Bit)");
sl@0
    28
_LIT(KTitle8Bit, "%S (8-Bit)");
sl@0
    29
sl@0
    30
CDelimitedPathTest* CDelimitedPathTest::NewLC(CIpuTestHarness* aTestHarness)
sl@0
    31
	{
sl@0
    32
	CDelimitedPathTest* self = new (ELeave) CDelimitedPathTest(aTestHarness);
sl@0
    33
	CleanupStack::PushL(self);
sl@0
    34
	self->ConstructL();
sl@0
    35
	return self;
sl@0
    36
	}
sl@0
    37
sl@0
    38
CDelimitedPathTest* CDelimitedPathTest::NewL(CIpuTestHarness* aTestHarness)
sl@0
    39
	{
sl@0
    40
	CDelimitedPathTest* self = CDelimitedPathTest::NewLC(aTestHarness);
sl@0
    41
	CleanupStack::Pop();	// self
sl@0
    42
	return self;
sl@0
    43
	}
sl@0
    44
sl@0
    45
CDelimitedPathTest::CDelimitedPathTest(CIpuTestHarness* aTestHarness)
sl@0
    46
: iTestHarness(aTestHarness)
sl@0
    47
	{
sl@0
    48
	}
sl@0
    49
sl@0
    50
void CDelimitedPathTest::ConstructL()
sl@0
    51
	{
sl@0
    52
	}
sl@0
    53
sl@0
    54
CDelimitedPathTest::~CDelimitedPathTest()
sl@0
    55
	{
sl@0
    56
	}
sl@0
    57
sl@0
    58
void CDelimitedPathTest::DoTestsL()
sl@0
    59
	{
sl@0
    60
//
sl@0
    61
//
sl@0
    62
// Delimited Path Tests
sl@0
    63
//
sl@0
    64
//
sl@0
    65
sl@0
    66
	TestDelimitedPathExtractionL(KPathParse0, &KPathParse0Seg0(), &KPathParse0Seg1(), &KPathParse0Seg2(),
sl@0
    67
							   &KPathParse0Seg3(), &KPathParse0Seg4(), NULL);
sl@0
    68
	TestDelimitedPathExtractionL(KPathParse1, &KPathParse1Seg0(), &KPathParse1Seg1(), NULL);
sl@0
    69
	TestDelimitedPathExtractionL(KPathParse2, &KPathParse2Seg0(), &KPathParse2Seg1(), &KPathParse2Seg2(), 
sl@0
    70
							   &KPathParse2Seg3(), &KPathParse2Seg4(), &KPathParse2Seg5(), &KPathParse2Seg6(), NULL);
sl@0
    71
sl@0
    72
	TestDelimitedPathReverseExtractionL(KPathParse0, &KPathParse0Seg4(), &KPathParse0Seg3(), &KPathParse0Seg2(),
sl@0
    73
							   &KPathParse0Seg1(), &KPathParse0Seg0(), NULL);
sl@0
    74
	TestDelimitedPathReverseExtractionL(KPathParse1, &KPathParse1Seg1(), &KPathParse1Seg0(), NULL);
sl@0
    75
	TestDelimitedPathReverseExtractionL(KPathParse2, &KPathParse2Seg6(), &KPathParse2Seg5(), &KPathParse2Seg4(), 
sl@0
    76
							   &KPathParse2Seg3(), &KPathParse2Seg2(), &KPathParse2Seg1(), &KPathParse2Seg0(), NULL);
sl@0
    77
sl@0
    78
	TestDelimitedPathDelimiterPresenceL(KPath_DelimPresence0, KPath_FrontDelim0, KPath_BackDelim0);
sl@0
    79
	TestDelimitedPathDelimiterPresenceL(KPath_DelimPresence1, KPath_FrontDelim1, KPath_BackDelim1);
sl@0
    80
	TestDelimitedPathDelimiterPresenceL(KPath_DelimPresence2, KPath_FrontDelim2, KPath_BackDelim2);
sl@0
    81
	TestDelimitedPathDelimiterPresenceL(KPath_DelimPresence3, KPath_FrontDelim3, KPath_BackDelim3);
sl@0
    82
sl@0
    83
	TestDelimitedPathRemainderL(KPath_Rem_Forwards0_0, &KPath_Rem_Forwards0_0(), &KPath_Rem_Forwards0_1(), 
sl@0
    84
								&KPath_Rem_Forwards0_2(), &KPath_Rem_Forwards0_3(), &KPath_Rem_Forwards0_4(), NULL);
sl@0
    85
	TestDelimitedPathRemainderL(KPath_Rem_Forwards1_0, &KPath_Rem_Forwards1_0(), &KPath_Rem_Forwards1_1(), 
sl@0
    86
								&KPath_Rem_Forwards1_2(), &KPath_Rem_Forwards1_3(), NULL);
sl@0
    87
	TestDelimitedPathRemainderL(KPath_Rem_Forwards2_0, &KPath_Rem_Forwards2_0(), &KPath_Rem_Forwards2_1(), 
sl@0
    88
								&KPath_Rem_Forwards2_2(), &KPath_Rem_Forwards2_3(), NULL);
sl@0
    89
sl@0
    90
	TestDelimitedPathRemainderReverseL(KPath_Rem_Backwards0_0, &KPath_Rem_Backwards0_0(), &KPath_Rem_Backwards0_1(), 
sl@0
    91
								&KPath_Rem_Backwards0_2(), &KPath_Rem_Backwards0_3(), &KPath_Rem_Backwards0_4(), NULL);
sl@0
    92
	TestDelimitedPathRemainderReverseL(KPath_Rem_Backwards1_0, &KPath_Rem_Backwards1_0(), &KPath_Rem_Backwards1_1(), 
sl@0
    93
								&KPath_Rem_Backwards1_2(), &KPath_Rem_Backwards1_3(), NULL);
sl@0
    94
	TestDelimitedPathRemainderReverseL(KPath_Rem_Backwards2_0, &KPath_Rem_Backwards2_0(), &KPath_Rem_Backwards2_1(), 
sl@0
    95
								&KPath_Rem_Backwards2_2(), &KPath_Rem_Backwards2_3(), NULL);
sl@0
    96
sl@0
    97
	TestDelimitedPathDesL(KPath_Des0);
sl@0
    98
sl@0
    99
	TestDelimitedPathPushFrontL(KPath_PushPopFront0_0, &KPath_Push0_a(), &KPath_PushPopFront0_1(), 
sl@0
   100
								&KPath_Push0_b(), &KPath_PushPopFront0_2(), 
sl@0
   101
								&KPath_Push0_c(), &KPath_PushPopFront0_3(), 
sl@0
   102
								&KPath_Push0_d(), &KPath_PushPopFront0_4(), 
sl@0
   103
								&KPath_Push0_e(), &KPath_PushPopFront0_5(), NULL, NULL);
sl@0
   104
sl@0
   105
	TestDelimitedPathPushBackL(KPath_PushPopBack0_0, &KPath_Push0_a(), &KPath_PushPopBack0_1(), 
sl@0
   106
								&KPath_Push0_b(), &KPath_PushPopBack0_2(), 
sl@0
   107
								&KPath_Push0_c(), &KPath_PushPopBack0_3(), 
sl@0
   108
								&KPath_Push0_d(), &KPath_PushPopBack0_4(), 
sl@0
   109
								&KPath_Push0_e(), &KPath_PushPopBack0_5(), NULL, NULL);
sl@0
   110
sl@0
   111
	TestDelimitedPathPopFrontL(KPath_PushPopFront0_5, &KPath_PushPopFront0_4(), &KPath_PushPopFront0_3(), 
sl@0
   112
								&KPath_PushPopFront0_2(), &KPath_PushPopFront0_1(), &KPath_PushPopFront0_0(), NULL);
sl@0
   113
sl@0
   114
	TestDelimitedPathPopBackL(KPath_PushPopBack0_5, &KPath_PushPopBack0_4(), &KPath_PushPopBack0_3(), 
sl@0
   115
								&KPath_PushPopBack0_2(), &KPath_PushPopBack0_1(), &KPath_PushPopBack0_0(), NULL);
sl@0
   116
sl@0
   117
	TestDelimitedPathAddAndTrimFrontAndBackDelimiterL(KPath_AddTrimDelim0);
sl@0
   118
sl@0
   119
	TestDelimitedPathInsertAndParseL(KPathInsertForwardsPos0, KPath_InsertForwards0_0, 
sl@0
   120
									&KPath_Insert0_a(), &KPath_InsertForwards0_1(), 
sl@0
   121
									&KPath_Insert0_b(), &KPath_InsertForwards0_2(), 
sl@0
   122
									&KPath_Insert0_c(), &KPath_InsertForwards0_3(), 
sl@0
   123
									&KPath_Insert0_d(), &KPath_InsertForwards0_4(), 
sl@0
   124
									&KPath_Insert0_e(), &KPath_InsertForwards0_5(), NULL, NULL);
sl@0
   125
sl@0
   126
	TestDelimitedPathRemoveAndParseL(KPathRemoveForwardsPos0, KPath_RemoveForwards0_0, 
sl@0
   127
									&KPath_RemoveForwards0_1(), &KPath_RemoveForwards0_2(), 
sl@0
   128
									&KPath_RemoveForwards0_3(), &KPath_RemoveForwards0_4(), 
sl@0
   129
									&KPath_RemoveForwards0_5(), NULL);
sl@0
   130
sl@0
   131
	TestDelimitedPathInsertAndParseReverseL(KPathInsertBackwardsPos0, KPath_InsertBackwards0_0, 
sl@0
   132
											&KPath_Insert0_a(), &KPath_InsertBackwards0_1(), 
sl@0
   133
											&KPath_Insert0_b(), &KPath_InsertBackwards0_2(), 
sl@0
   134
											&KPath_Insert0_c(), &KPath_InsertBackwards0_3(), 
sl@0
   135
											&KPath_Insert0_d(), &KPath_InsertBackwards0_4(), 
sl@0
   136
											&KPath_Insert0_e(), &KPath_InsertBackwards0_5(), NULL, NULL);
sl@0
   137
sl@0
   138
	TestDelimitedPathRemoveAndParseReverseL(KPathRemoveBackwardsPos0, KPath_RemoveBackwards0_0, 
sl@0
   139
											&KPath_RemoveBackwards0_1(), &KPath_RemoveBackwards0_2(), 
sl@0
   140
											&KPath_RemoveBackwards0_3(), &KPath_RemoveBackwards0_4(), 
sl@0
   141
											&KPath_RemoveBackwards0_5(), NULL);
sl@0
   142
sl@0
   143
	TestDelimitedPathInsertEscapeAndParseL(KPathInsertEscapeForwardsPos0, KPath_InsertEscapeForwards0_0, 
sl@0
   144
									&KPath_InsertEscape0_a(), &KPath_InsertEscapeForwards0_1(), 
sl@0
   145
									&KPath_InsertEscape0_b(), &KPath_InsertEscapeForwards0_2(), 
sl@0
   146
									&KPath_InsertEscape0_c(), &KPath_InsertEscapeForwards0_3(), 
sl@0
   147
									&KPath_InsertEscape0_d(), &KPath_InsertEscapeForwards0_4(), 
sl@0
   148
									&KPath_InsertEscape0_e(), &KPath_InsertEscapeForwards0_5(), NULL, NULL);
sl@0
   149
sl@0
   150
	TestDelimitedPathInsertEscapeAndParseReverseL(KPathInsertEscapeBackwardsPos0, KPath_InsertEscapeBackwards0_0, 
sl@0
   151
											&KPath_InsertEscape0_a(), &KPath_InsertEscapeBackwards0_1(), 
sl@0
   152
											&KPath_InsertEscape0_b(), &KPath_InsertEscapeBackwards0_2(), 
sl@0
   153
											&KPath_InsertEscape0_c(), &KPath_InsertEscapeBackwards0_3(), 
sl@0
   154
											&KPath_InsertEscape0_d(), &KPath_InsertEscapeBackwards0_4(), 
sl@0
   155
											&KPath_InsertEscape0_e(), &KPath_InsertEscapeBackwards0_5(), NULL, NULL);
sl@0
   156
sl@0
   157
	TestDelimitedPathPushAndEscapeFrontL(KPath_PushEscapeFront0_0, &KPath_PushEscape0_a(), &KPath_PushEscapeFront0_1(), 
sl@0
   158
										&KPath_PushEscape0_b(), &KPath_PushEscapeFront0_2(), 
sl@0
   159
										&KPath_PushEscape0_c(), &KPath_PushEscapeFront0_3(), 
sl@0
   160
										&KPath_PushEscape0_d(), &KPath_PushEscapeFront0_4(), 
sl@0
   161
										&KPath_PushEscape0_e(), &KPath_PushEscapeFront0_5(), NULL, NULL);
sl@0
   162
sl@0
   163
	TestDelimitedPathPushAndEscapeBackL(KPath_PushEscapeBack0_0, &KPath_PushEscape0_a(), &KPath_PushEscapeBack0_1(), 
sl@0
   164
										&KPath_PushEscape0_b(), &KPath_PushEscapeBack0_2(), 
sl@0
   165
										&KPath_PushEscape0_c(), &KPath_PushEscapeBack0_3(), 
sl@0
   166
										&KPath_PushEscape0_d(), &KPath_PushEscapeBack0_4(), 
sl@0
   167
										&KPath_PushEscape0_e(), &KPath_PushEscapeBack0_5(), NULL, NULL);
sl@0
   168
sl@0
   169
//
sl@0
   170
//
sl@0
   171
// Delimited PathSegment Tests
sl@0
   172
//
sl@0
   173
//
sl@0
   174
/*
sl@0
   175
	TestDelimitedPathSegmentExtractionL(KPathSegmentParse0, &KPathSegmentParse0Seg0(), &KPathSegmentParse0Seg1(), 
sl@0
   176
										&KPathSegmentParse0Seg2(), NULL);
sl@0
   177
	TestDelimitedPathSegmentExtractionL(KPathSegmentParse1, &KPathSegmentParse1Seg0(), &KPathSegmentParse1Seg1(), &KPathSegmentParse1Seg2(), 
sl@0
   178
								&KPathSegmentParse1Seg3(), NULL);
sl@0
   179
	TestDelimitedPathSegmentExtractionL(KPathSegmentParse2, &KPathSegmentParse2Seg0(), &KPathSegmentParse2Seg1(), &KPathSegmentParse2Seg2(), 
sl@0
   180
							   &KPathSegmentParse2Seg3(), &KPathSegmentParse2Seg4(), &KPathSegmentParse2Seg5(), &KPathSegmentParse2Seg6(), 
sl@0
   181
							   &KPathSegmentParse2Seg7(), NULL);
sl@0
   182
sl@0
   183
	TestDelimitedPathSegmentReverseExtractionL(KPathSegmentParse0, &KPathSegmentParse0Seg2(),
sl@0
   184
							   &KPathSegmentParse0Seg1(), &KPathSegmentParse0Seg0(), NULL);
sl@0
   185
	TestDelimitedPathSegmentReverseExtractionL(KPathSegmentParse1, &KPathSegmentParse1Seg3(), &KPathSegmentParse1Seg2(), 
sl@0
   186
								&KPathSegmentParse1Seg1(), &KPathSegmentParse1Seg0(), NULL);
sl@0
   187
	TestDelimitedPathSegmentReverseExtractionL(KPathSegmentParse2, &KPathSegmentParse2Seg7(), &KPathSegmentParse2Seg6(), 
sl@0
   188
								&KPathSegmentParse2Seg5(), &KPathSegmentParse2Seg4(), &KPathSegmentParse2Seg3(), 
sl@0
   189
								&KPathSegmentParse2Seg2(), &KPathSegmentParse2Seg1(), &KPathSegmentParse2Seg0(), NULL);
sl@0
   190
sl@0
   191
	TestDelimitedPathSegmentDelimiterPresenceL(KPathSegment_DelimPresence0, KPathSegment_FrontDelim0, KPathSegment_BackDelim0);
sl@0
   192
	TestDelimitedPathSegmentDelimiterPresenceL(KPathSegment_DelimPresence1, KPathSegment_FrontDelim1, KPathSegment_BackDelim1);
sl@0
   193
	TestDelimitedPathSegmentDelimiterPresenceL(KPathSegment_DelimPresence2, KPathSegment_FrontDelim2, KPathSegment_BackDelim2);
sl@0
   194
	TestDelimitedPathSegmentDelimiterPresenceL(KPathSegment_DelimPresence3, KPathSegment_FrontDelim3, KPathSegment_BackDelim3);
sl@0
   195
sl@0
   196
	TestDelimitedPathSegmentRemainderL(KPathSegment_Rem_Forwards0_0, &KPathSegment_Rem_Forwards0_0(), &KPathSegment_Rem_Forwards0_1(), 
sl@0
   197
								&KPathSegment_Rem_Forwards0_2(), &KPathSegment_Rem_Forwards0_3(), NULL);
sl@0
   198
sl@0
   199
	TestDelimitedPathSegmentRemainderReverseL(KPathSegment_Rem_Backwards0_0, &KPathSegment_Rem_Backwards0_0(), &KPathSegment_Rem_Backwards0_1(), 
sl@0
   200
								&KPathSegment_Rem_Backwards0_2(), &KPathSegment_Rem_Backwards0_3(), NULL);
sl@0
   201
sl@0
   202
	TestDelimitedPathSegmentDesL(KPathSegment_Des0);
sl@0
   203
sl@0
   204
	TestDelimitedPathSegmentPushFrontL(KPathSegment_PushPopFront0_0, &KPathSegment_Push0_a(), &KPathSegment_PushPopFront0_1(), 
sl@0
   205
								&KPathSegment_Push0_b(), &KPathSegment_PushPopFront0_2(), 
sl@0
   206
								&KPathSegment_Push0_c(), &KPathSegment_PushPopFront0_3(), 
sl@0
   207
								&KPathSegment_Push0_d(), &KPathSegment_PushPopFront0_4(), 
sl@0
   208
								&KPathSegment_Push0_e(), &KPathSegment_PushPopFront0_5(), NULL, NULL);
sl@0
   209
sl@0
   210
	TestDelimitedPathSegmentPushBackL(KPathSegment_PushPopBack0_0, &KPathSegment_Push0_a(), &KPathSegment_PushPopBack0_1(), 
sl@0
   211
								&KPathSegment_Push0_b(), &KPathSegment_PushPopBack0_2(), 
sl@0
   212
								&KPathSegment_Push0_c(), &KPathSegment_PushPopBack0_3(), 
sl@0
   213
								&KPathSegment_Push0_d(), &KPathSegment_PushPopBack0_4(), 
sl@0
   214
								&KPathSegment_Push0_e(), &KPathSegment_PushPopBack0_5(), NULL, NULL);
sl@0
   215
sl@0
   216
	TestDelimitedPathSegmentPopFrontL(KPathSegment_PushPopFront0_5, &KPathSegment_PushPopFront0_4(), &KPathSegment_PushPopFront0_3(), 
sl@0
   217
								&KPathSegment_PushPopFront0_2(), &KPathSegment_PushPopFront0_1(), &KPathSegment_PushPopFront0_0(), NULL);
sl@0
   218
sl@0
   219
	TestDelimitedPathSegmentPopBackL(KPathSegment_PushPopBack0_5, &KPathSegment_PushPopBack0_4(), &KPathSegment_PushPopBack0_3(), 
sl@0
   220
								&KPathSegment_PushPopBack0_2(), &KPathSegment_PushPopBack0_1(), &KPathSegment_PushPopBack0_0(), NULL);
sl@0
   221
sl@0
   222
	TestDelimitedPathSegmentAddAndTrimFrontAndBackDelimiterL(KPathSegment_AddTrimDelim0);
sl@0
   223
sl@0
   224
	TestDelimitedPathSegmentInsertAndParseL(KPathSegmentInsertForwardsPos0, KPathSegment_InsertForwards0_0, 
sl@0
   225
									&KPathSegment_Insert0_a(), &KPathSegment_InsertForwards0_1(), 
sl@0
   226
									&KPathSegment_Insert0_b(), &KPathSegment_InsertForwards0_2(), 
sl@0
   227
									&KPathSegment_Insert0_c(), &KPathSegment_InsertForwards0_3(), 
sl@0
   228
									&KPathSegment_Insert0_d(), &KPathSegment_InsertForwards0_4(), 
sl@0
   229
									&KPathSegment_Insert0_e(), &KPathSegment_InsertForwards0_5(), NULL, NULL);
sl@0
   230
sl@0
   231
	TestDelimitedPathSegmentRemoveAndParseL(KPathSegmentRemoveForwardsPos0, KPathSegment_RemoveForwards0_0, 
sl@0
   232
									&KPathSegment_RemoveForwards0_1(), &KPathSegment_RemoveForwards0_2(), 
sl@0
   233
									&KPathSegment_RemoveForwards0_3(), &KPathSegment_RemoveForwards0_4(), 
sl@0
   234
									&KPathSegment_RemoveForwards0_5(), NULL);
sl@0
   235
sl@0
   236
	TestDelimitedPathSegmentInsertAndParseReverseL(KPathSegmentInsertBackwardsPos0, KPathSegment_InsertBackwards0_0, 
sl@0
   237
											&KPathSegment_Insert0_a(), &KPathSegment_InsertBackwards0_1(), 
sl@0
   238
											&KPathSegment_Insert0_b(), &KPathSegment_InsertBackwards0_2(), 
sl@0
   239
											&KPathSegment_Insert0_c(), &KPathSegment_InsertBackwards0_3(), 
sl@0
   240
											&KPathSegment_Insert0_d(), &KPathSegment_InsertBackwards0_4(), 
sl@0
   241
											&KPathSegment_Insert0_e(), &KPathSegment_InsertBackwards0_5(), NULL, NULL);
sl@0
   242
sl@0
   243
	TestDelimitedPathSegmentRemoveAndParseReverseL(KPathSegmentRemoveBackwardsPos0, KPathSegment_RemoveBackwards0_0, 
sl@0
   244
											&KPathSegment_RemoveBackwards0_1(), &KPathSegment_RemoveBackwards0_2(), 
sl@0
   245
											&KPathSegment_RemoveBackwards0_3(), &KPathSegment_RemoveBackwards0_4(), 
sl@0
   246
											&KPathSegment_RemoveBackwards0_5(), NULL);
sl@0
   247
sl@0
   248
	TestDelimitedPathSegmentInsertEscapeAndParseL(KPathSegmentInsertEscapeForwardsPos0, KPathSegment_InsertEscapeForwards0_0, 
sl@0
   249
									&KPathSegment_InsertEscape0_a(), &KPathSegment_InsertEscapeForwards0_1(), 
sl@0
   250
									&KPathSegment_InsertEscape0_b(), &KPathSegment_InsertEscapeForwards0_2(), 
sl@0
   251
									&KPathSegment_InsertEscape0_c(), &KPathSegment_InsertEscapeForwards0_3(), 
sl@0
   252
									&KPathSegment_InsertEscape0_d(), &KPathSegment_InsertEscapeForwards0_4(), 
sl@0
   253
									&KPathSegment_InsertEscape0_e(), &KPathSegment_InsertEscapeForwards0_5(), NULL, NULL);
sl@0
   254
sl@0
   255
	TestDelimitedPathSegmentInsertEscapeAndParseReverseL(KPathSegmentInsertEscapeBackwardsPos0, KPathSegment_InsertEscapeBackwards0_0, 
sl@0
   256
											&KPathSegment_InsertEscape0_a(), &KPathSegment_InsertEscapeBackwards0_1(), 
sl@0
   257
											&KPathSegment_InsertEscape0_b(), &KPathSegment_InsertEscapeBackwards0_2(), 
sl@0
   258
											&KPathSegment_InsertEscape0_c(), &KPathSegment_InsertEscapeBackwards0_3(), 
sl@0
   259
											&KPathSegment_InsertEscape0_d(), &KPathSegment_InsertEscapeBackwards0_4(), 
sl@0
   260
											&KPathSegment_InsertEscape0_e(), &KPathSegment_InsertEscapeBackwards0_5(), NULL, NULL);
sl@0
   261
sl@0
   262
	TestDelimitedPathSegmentPushAndEscapeFrontL(KPathSegment_PushEscapeFront0_0, &KPathSegment_PushEscape0_a(), &KPathSegment_PushEscapeFront0_1(), 
sl@0
   263
										&KPathSegment_PushEscape0_b(), &KPathSegment_PushEscapeFront0_2(), 
sl@0
   264
										&KPathSegment_PushEscape0_c(), &KPathSegment_PushEscapeFront0_3(), 
sl@0
   265
										&KPathSegment_PushEscape0_d(), &KPathSegment_PushEscapeFront0_4(), 
sl@0
   266
										&KPathSegment_PushEscape0_e(), &KPathSegment_PushEscapeFront0_5(), NULL, NULL);
sl@0
   267
sl@0
   268
	TestDelimitedPathSegmentPushAndEscapeBackL(KPathSegment_PushEscapeBack0_0, &KPathSegment_PushEscape0_a(), &KPathSegment_PushEscapeBack0_1(), 
sl@0
   269
										&KPathSegment_PushEscape0_b(), &KPathSegment_PushEscapeBack0_2(), 
sl@0
   270
										&KPathSegment_PushEscape0_c(), &KPathSegment_PushEscapeBack0_3(), 
sl@0
   271
										&KPathSegment_PushEscape0_d(), &KPathSegment_PushEscapeBack0_4(), 
sl@0
   272
										&KPathSegment_PushEscape0_e(), &KPathSegment_PushEscapeBack0_5(), NULL, NULL);
sl@0
   273
sl@0
   274
//
sl@0
   275
//
sl@0
   276
// Delimited Query Tests
sl@0
   277
//
sl@0
   278
//
sl@0
   279
	TestDelimitedQueryExtractionL(KQueryParse0, &KQueryParse0Seg0(), &KQueryParse0Seg1(), &KQueryParse0Seg2(),
sl@0
   280
							   &KQueryParse0Seg3(), NULL);
sl@0
   281
	TestDelimitedQueryExtractionL(KQueryParse1, &KQueryParse1Seg0(), &KQueryParse1Seg1(), NULL);
sl@0
   282
	TestDelimitedQueryExtractionL(KQueryParse2, &KQueryParse2Seg0(), &KQueryParse2Seg1(), &KQueryParse2Seg2(), 
sl@0
   283
							   &KQueryParse2Seg3(), &KQueryParse2Seg4(), &KQueryParse2Seg5(), NULL);
sl@0
   284
sl@0
   285
	TestDelimitedQueryReverseExtractionL(KQueryParse0, &KQueryParse0Seg3(), &KQueryParse0Seg2(),
sl@0
   286
							   &KQueryParse0Seg1(), &KQueryParse0Seg0(), NULL);
sl@0
   287
	TestDelimitedQueryReverseExtractionL(KQueryParse1, &KQueryParse1Seg1(), &KQueryParse1Seg0(), NULL);
sl@0
   288
	TestDelimitedQueryReverseExtractionL(KQueryParse2, &KQueryParse2Seg5(), &KQueryParse2Seg4(), 
sl@0
   289
							   &KQueryParse2Seg3(), &KQueryParse2Seg2(), &KQueryParse2Seg1(), &KQueryParse2Seg0(), NULL);
sl@0
   290
sl@0
   291
	TestDelimitedQueryDelimiterPresenceL(KQuery_DelimPresence0, KQuery_FrontDelim0, KQuery_BackDelim0);
sl@0
   292
	TestDelimitedQueryDelimiterPresenceL(KQuery_DelimPresence1, KQuery_FrontDelim1, KQuery_BackDelim1);
sl@0
   293
	TestDelimitedQueryDelimiterPresenceL(KQuery_DelimPresence2, KQuery_FrontDelim2, KQuery_BackDelim2);
sl@0
   294
	TestDelimitedQueryDelimiterPresenceL(KQuery_DelimPresence3, KQuery_FrontDelim3, KQuery_BackDelim3);
sl@0
   295
sl@0
   296
	TestDelimitedQueryRemainderL(KQuery_Rem_Forwards0_0, &KQuery_Rem_Forwards0_0(), &KQuery_Rem_Forwards0_1(), 
sl@0
   297
								&KQuery_Rem_Forwards0_2(), &KQuery_Rem_Forwards0_3(), NULL);
sl@0
   298
sl@0
   299
	TestDelimitedQueryRemainderReverseL(KQuery_Rem_Backwards0_0, &KQuery_Rem_Backwards0_0(), &KQuery_Rem_Backwards0_1(), 
sl@0
   300
								&KQuery_Rem_Backwards0_2(), &KQuery_Rem_Backwards0_3(), NULL);
sl@0
   301
sl@0
   302
	TestDelimitedQueryDesL(KQuery_Des0);
sl@0
   303
sl@0
   304
	TestDelimitedQueryPushFrontL(KQuery_PushPopFront0_0, &KQuery_Push0_a(), &KQuery_PushPopFront0_1(), 
sl@0
   305
								&KQuery_Push0_b(), &KQuery_PushPopFront0_2(), 
sl@0
   306
								&KQuery_Push0_c(), &KQuery_PushPopFront0_3(), 
sl@0
   307
								&KQuery_Push0_d(), &KQuery_PushPopFront0_4(), 
sl@0
   308
								&KQuery_Push0_e(), &KQuery_PushPopFront0_5(), NULL, NULL);
sl@0
   309
sl@0
   310
	TestDelimitedQueryPushBackL(KQuery_PushPopBack0_0, &KQuery_Push0_a(), &KQuery_PushPopBack0_1(), 
sl@0
   311
								&KQuery_Push0_b(), &KQuery_PushPopBack0_2(), 
sl@0
   312
								&KQuery_Push0_c(), &KQuery_PushPopBack0_3(), 
sl@0
   313
								&KQuery_Push0_d(), &KQuery_PushPopBack0_4(), 
sl@0
   314
								&KQuery_Push0_e(), &KQuery_PushPopBack0_5(), NULL, NULL);
sl@0
   315
sl@0
   316
	TestDelimitedQueryPopFrontL(KQuery_PushPopFront0_5, &KQuery_PushPopFront0_4(), &KQuery_PushPopFront0_3(), 
sl@0
   317
								&KQuery_PushPopFront0_2(), &KQuery_PushPopFront0_1(), &KQuery_PushPopFront0_0(), NULL);
sl@0
   318
sl@0
   319
	TestDelimitedQueryPopBackL(KQuery_PushPopBack0_5, &KQuery_PushPopBack0_4(), &KQuery_PushPopBack0_3(), 
sl@0
   320
								&KQuery_PushPopBack0_2(), &KQuery_PushPopBack0_1(), &KQuery_PushPopBack0_0(), NULL);
sl@0
   321
sl@0
   322
	TestDelimitedQueryAddAndTrimFrontAndBackDelimiterL(KQuery_AddTrimDelim0);
sl@0
   323
sl@0
   324
	TestDelimitedQueryInsertAndParseL(KQueryInsertForwardsPos0, KQuery_InsertForwards0_0, 
sl@0
   325
									&KQuery_Insert0_a(), &KQuery_InsertForwards0_1(), 
sl@0
   326
									&KQuery_Insert0_b(), &KQuery_InsertForwards0_2(), 
sl@0
   327
									&KQuery_Insert0_c(), &KQuery_InsertForwards0_3(), 
sl@0
   328
									&KQuery_Insert0_d(), &KQuery_InsertForwards0_4(), 
sl@0
   329
									&KQuery_Insert0_e(), &KQuery_InsertForwards0_5(), NULL, NULL);
sl@0
   330
sl@0
   331
	TestDelimitedQueryRemoveAndParseL(KQueryRemoveForwardsPos0, KQuery_RemoveForwards0_0, 
sl@0
   332
									&KQuery_RemoveForwards0_1(), &KQuery_RemoveForwards0_2(), 
sl@0
   333
									&KQuery_RemoveForwards0_3(), &KQuery_RemoveForwards0_4(), 
sl@0
   334
									&KQuery_RemoveForwards0_5(), NULL);
sl@0
   335
sl@0
   336
	TestDelimitedQueryInsertAndParseReverseL(KQueryInsertBackwardsPos0, KQuery_InsertBackwards0_0, 
sl@0
   337
											&KQuery_Insert0_a(), &KQuery_InsertBackwards0_1(), 
sl@0
   338
											&KQuery_Insert0_b(), &KQuery_InsertBackwards0_2(), 
sl@0
   339
											&KQuery_Insert0_c(), &KQuery_InsertBackwards0_3(), 
sl@0
   340
											&KQuery_Insert0_d(), &KQuery_InsertBackwards0_4(), 
sl@0
   341
											&KQuery_Insert0_e(), &KQuery_InsertBackwards0_5(), NULL, NULL);
sl@0
   342
sl@0
   343
	TestDelimitedQueryRemoveAndParseReverseL(KQueryRemoveBackwardsPos0, KQuery_RemoveBackwards0_0, 
sl@0
   344
											&KQuery_RemoveBackwards0_1(), &KQuery_RemoveBackwards0_2(), 
sl@0
   345
											&KQuery_RemoveBackwards0_3(), &KQuery_RemoveBackwards0_4(), 
sl@0
   346
											&KQuery_RemoveBackwards0_5(), NULL);
sl@0
   347
sl@0
   348
	TestDelimitedQueryInsertEscapeAndParseL(KQueryInsertEscapeForwardsPos0, KQuery_InsertEscapeForwards0_0, 
sl@0
   349
									&KQuery_InsertEscape0_a(), &KQuery_InsertEscapeForwards0_1(), 
sl@0
   350
									&KQuery_InsertEscape0_b(), &KQuery_InsertEscapeForwards0_2(), 
sl@0
   351
									&KQuery_InsertEscape0_c(), &KQuery_InsertEscapeForwards0_3(), 
sl@0
   352
									&KQuery_InsertEscape0_d(), &KQuery_InsertEscapeForwards0_4(), 
sl@0
   353
									&KQuery_InsertEscape0_e(), &KQuery_InsertEscapeForwards0_5(), NULL, NULL);
sl@0
   354
sl@0
   355
	TestDelimitedQueryInsertEscapeAndParseReverseL(KQueryInsertEscapeBackwardsPos0, KQuery_InsertEscapeBackwards0_0, 
sl@0
   356
											&KQuery_InsertEscape0_a(), &KQuery_InsertEscapeBackwards0_1(), 
sl@0
   357
											&KQuery_InsertEscape0_b(), &KQuery_InsertEscapeBackwards0_2(), 
sl@0
   358
											&KQuery_InsertEscape0_c(), &KQuery_InsertEscapeBackwards0_3(), 
sl@0
   359
											&KQuery_InsertEscape0_d(), &KQuery_InsertEscapeBackwards0_4(), 
sl@0
   360
											&KQuery_InsertEscape0_e(), &KQuery_InsertEscapeBackwards0_5(), NULL, NULL);
sl@0
   361
sl@0
   362
	TestDelimitedQueryPushAndEscapeFrontL(KQuery_PushEscapeFront0_0, &KQuery_PushEscape0_a(), &KQuery_PushEscapeFront0_1(), 
sl@0
   363
										&KQuery_PushEscape0_b(), &KQuery_PushEscapeFront0_2(), 
sl@0
   364
										&KQuery_PushEscape0_c(), &KQuery_PushEscapeFront0_3(), 
sl@0
   365
										&KQuery_PushEscape0_d(), &KQuery_PushEscapeFront0_4(), 
sl@0
   366
										&KQuery_PushEscape0_e(), &KQuery_PushEscapeFront0_5(), NULL, NULL);
sl@0
   367
sl@0
   368
	TestDelimitedQueryPushAndEscapeBackL(KQuery_PushEscapeBack0_0, &KQuery_PushEscape0_a(), &KQuery_PushEscapeBack0_1(), 
sl@0
   369
										&KQuery_PushEscape0_b(), &KQuery_PushEscapeBack0_2(), 
sl@0
   370
										&KQuery_PushEscape0_c(), &KQuery_PushEscapeBack0_3(), 
sl@0
   371
										&KQuery_PushEscape0_d(), &KQuery_PushEscapeBack0_4(), 
sl@0
   372
										&KQuery_PushEscape0_e(), &KQuery_PushEscapeBack0_5(), NULL, NULL);
sl@0
   373
*/	}
sl@0
   374
sl@0
   375
//
sl@0
   376
//
sl@0
   377
//	Delimited Path tests
sl@0
   378
//
sl@0
   379
//
sl@0
   380
sl@0
   381
void CDelimitedPathTest::TestDelimitedPathExtractionL(TRefByValue<const TDesC> aPath, ...) const
sl@0
   382
	{
sl@0
   383
	VA_LIST list1; VA_START(list1, aPath);
sl@0
   384
	VA_LIST list2; VA_START(list2, aPath);
sl@0
   385
	const TDesC& path = aPath;
sl@0
   386
sl@0
   387
	TestDelimitedDataExtractionL(_L("Test TDelimitedPathParser Parse : GetNext, Dec, Inc, Peek and Eos"), iTestHarness, path, list1, list2);
sl@0
   388
	VA_END(list1); VA_END(list2);
sl@0
   389
	}
sl@0
   390
sl@0
   391
void CDelimitedPathTest::TestDelimitedPathReverseExtractionL(TRefByValue<const TDesC> aPath, ...) const
sl@0
   392
	{
sl@0
   393
	VA_LIST list1; VA_START(list1, aPath);
sl@0
   394
	VA_LIST list2; VA_START(list2, aPath);
sl@0
   395
	const TDesC& path = aPath;
sl@0
   396
sl@0
   397
	TestDelimitedDataReverseExtractionL(_L("Test TDelimitedPathParser ParseReverse : GetNext, Dec, Inc, Peek and Eos"), iTestHarness, path, list1, list2);
sl@0
   398
	VA_END(list1); VA_END(list2);
sl@0
   399
	}
sl@0
   400
sl@0
   401
void CDelimitedPathTest::TestDelimitedPathDelimiterPresenceL(const TDesC& aPath, TBool aFrontDelim, TBool aBackDelim) const
sl@0
   402
	{
sl@0
   403
	TestDelimitedDataDelimiterPresenceL(_L("Test TDelimitedPathParser Delimiter Presence"), iTestHarness, aPath, aFrontDelim, aBackDelim);
sl@0
   404
	}
sl@0
   405
sl@0
   406
void CDelimitedPathTest::TestDelimitedPathRemainderL(TRefByValue<const TDesC> aPath, ...) const
sl@0
   407
	{
sl@0
   408
	VA_LIST list1; VA_START(list1, aPath);
sl@0
   409
	VA_LIST list2; VA_START(list2, aPath);
sl@0
   410
	const TDesC& path = aPath;
sl@0
   411
sl@0
   412
	TestDelimitedDataRemainderL(_L("Test TDelimitedPathParser Remainder, Parse"), iTestHarness, path, list1, list2);
sl@0
   413
	VA_END(list1); VA_END(list2);
sl@0
   414
	}
sl@0
   415
sl@0
   416
void CDelimitedPathTest::TestDelimitedPathRemainderReverseL(TRefByValue<const TDesC> aPath, ...) const
sl@0
   417
	{
sl@0
   418
	VA_LIST list1; VA_START(list1, aPath);
sl@0
   419
	VA_LIST list2; VA_START(list2, aPath);
sl@0
   420
	const TDesC& path = aPath;
sl@0
   421
sl@0
   422
	TestDelimitedDataRemainderReverseL(_L("Test TDelimitedPathParser Remainder, ParseReverse"), iTestHarness, path, list1, list2);
sl@0
   423
	VA_END(list1); VA_END(list2);
sl@0
   424
	}
sl@0
   425
sl@0
   426
void CDelimitedPathTest::TestDelimitedPathDesL(const TDesC& aPath) const
sl@0
   427
	{
sl@0
   428
	TestDelimitedDataDesL(_L("Test TDelimitedPathParser Des"), iTestHarness, aPath);
sl@0
   429
	}
sl@0
   430
sl@0
   431
void CDelimitedPathTest::TestDelimitedPathPushFrontL(TRefByValue<const TDesC> aPath, ...) const
sl@0
   432
	{
sl@0
   433
	VA_LIST list1; VA_START(list1, aPath);
sl@0
   434
	VA_LIST list2; VA_START(list2, aPath);
sl@0
   435
	const TDesC& path = aPath;
sl@0
   436
sl@0
   437
	TestDelimitedDataPushFrontL(_L("Test CDelimitedPath PushFront"), iTestHarness, path, list1, list2);
sl@0
   438
	VA_END(list1);
sl@0
   439
	VA_END(list2);
sl@0
   440
	}
sl@0
   441
sl@0
   442
void CDelimitedPathTest::TestDelimitedPathPushBackL(TRefByValue<const TDesC> aPath, ...) const
sl@0
   443
	{
sl@0
   444
	VA_LIST list1; VA_START(list1, aPath);
sl@0
   445
	VA_LIST list2; VA_START(list2, aPath);
sl@0
   446
	const TDesC& path = aPath;
sl@0
   447
sl@0
   448
	TestDelimitedDataPushBackL(_L("Test CDelimitedPath PushBack"), iTestHarness, path, list1, list2);
sl@0
   449
	VA_END(list1); VA_END(list2);
sl@0
   450
	}
sl@0
   451
sl@0
   452
void CDelimitedPathTest::TestDelimitedPathPopFrontL(TRefByValue<const TDesC> aPath, ...) const
sl@0
   453
	{
sl@0
   454
	VA_LIST list1; VA_START(list1, aPath);
sl@0
   455
	VA_LIST list2; VA_START(list2, aPath);
sl@0
   456
	const TDesC& path = aPath;
sl@0
   457
sl@0
   458
	TestDelimitedDataPopFrontL(_L("Test CDelimitedPath PopFront"), iTestHarness, path, list1, list2);
sl@0
   459
	VA_END(list1); VA_END(list2);
sl@0
   460
	}
sl@0
   461
sl@0
   462
void CDelimitedPathTest::TestDelimitedPathPopBackL(TRefByValue<const TDesC> aPath, ...) const
sl@0
   463
	{
sl@0
   464
	VA_LIST list1; VA_START(list1, aPath);
sl@0
   465
	VA_LIST list2; VA_START(list2, aPath);
sl@0
   466
	const TDesC& path = aPath;
sl@0
   467
sl@0
   468
	TestDelimitedDataPopBackL(_L("Test CDelimitedPath PopBack"), iTestHarness, path, list1, list2);
sl@0
   469
	VA_END(list1); VA_END(list2);
sl@0
   470
	}
sl@0
   471
sl@0
   472
void CDelimitedPathTest::TestDelimitedPathAddAndTrimFrontAndBackDelimiterL(const TDesC& aPath) const
sl@0
   473
	{
sl@0
   474
	TestDelimitedDataAddAndTrimFrontAndBackDelimiterL(_L("Test CDelimitedPath Add and Trim Front and Back delimiter"), iTestHarness, aPath);
sl@0
   475
	}
sl@0
   476
sl@0
   477
void CDelimitedPathTest::TestDelimitedPathInsertAndParseL(TInt aStartPos, TRefByValue<const TDesC> aPath, ...) const
sl@0
   478
	{
sl@0
   479
	VA_LIST list1; VA_START(list1, aPath);
sl@0
   480
	VA_LIST list2; VA_START(list2, aPath);
sl@0
   481
	const TDesC& path = aPath;
sl@0
   482
sl@0
   483
	TestDelimitedDataInsertAndParseL(_L("Test CDelimitedPath InsertCurrent, Parse"), iTestHarness, path, list1, list2, aStartPos);
sl@0
   484
	VA_END(list1); VA_END(list2);
sl@0
   485
	}
sl@0
   486
sl@0
   487
void CDelimitedPathTest::TestDelimitedPathRemoveAndParseL(TInt aStartPos, TRefByValue<const TDesC> aPath, ...) const
sl@0
   488
	{
sl@0
   489
	VA_LIST list1; VA_START(list1, aPath);
sl@0
   490
	VA_LIST list2; VA_START(list2, aPath);
sl@0
   491
	const TDesC& path = aPath;
sl@0
   492
sl@0
   493
	TestDelimitedDataRemoveAndParseL(_L("Test CDelimitedPath RemoveCurrent, Parse"), iTestHarness, path, list1, list2, aStartPos);
sl@0
   494
	VA_END(list1); VA_END(list2);
sl@0
   495
	}
sl@0
   496
sl@0
   497
void CDelimitedPathTest::TestDelimitedPathInsertAndParseReverseL(TInt aStartPos, TRefByValue<const TDesC> aPath, ...) const
sl@0
   498
	{
sl@0
   499
	VA_LIST list1; VA_START(list1, aPath);
sl@0
   500
	VA_LIST list2; VA_START(list2, aPath);
sl@0
   501
	const TDesC& path = aPath;
sl@0
   502
sl@0
   503
	TestDelimitedDataInsertAndParseReverseL(_L("Test CDelimitedPath InsertCurrent, ParseReverse"), iTestHarness, path, list1, list2, aStartPos);
sl@0
   504
	VA_END(list1); VA_END(list2);
sl@0
   505
	}
sl@0
   506
sl@0
   507
void CDelimitedPathTest::TestDelimitedPathRemoveAndParseReverseL(TInt aStartPos, TRefByValue<const TDesC> aPath, ...) const
sl@0
   508
	{
sl@0
   509
	VA_LIST list1; VA_START(list1, aPath);
sl@0
   510
	VA_LIST list2; VA_START(list2, aPath);
sl@0
   511
	const TDesC& path = aPath;
sl@0
   512
sl@0
   513
	TestDelimitedDataRemoveAndParseReverseL(_L("Test CDelimitedPath RemoveCurrent, ParseReverse"), iTestHarness, path, list1, list2, aStartPos);
sl@0
   514
	VA_END(list1); VA_END(list2);
sl@0
   515
	}
sl@0
   516
sl@0
   517
void CDelimitedPathTest::TestDelimitedPathInsertEscapeAndParseL(TInt aStartPos, TRefByValue<const TDesC> aPath, ...) const
sl@0
   518
	{
sl@0
   519
	VA_LIST list1; VA_START(list1, aPath);
sl@0
   520
	VA_LIST list2; VA_START(list2, aPath);
sl@0
   521
	const TDesC& path = aPath;
sl@0
   522
sl@0
   523
	TestDelimitedDataInsertEscapeAndParseL(_L("Test CDelimitedPath InsertAndEscapeCurrent, Parse"), iTestHarness, path, list1, list2, aStartPos);
sl@0
   524
	VA_END(list1); VA_END(list2);
sl@0
   525
	}
sl@0
   526
sl@0
   527
void CDelimitedPathTest::TestDelimitedPathInsertEscapeAndParseReverseL(TInt aStartPos, TRefByValue<const TDesC> aPath, ...) const
sl@0
   528
	{
sl@0
   529
	VA_LIST list1; VA_START(list1, aPath);
sl@0
   530
	VA_LIST list2; VA_START(list2, aPath);
sl@0
   531
	const TDesC& path = aPath;
sl@0
   532
sl@0
   533
	TestDelimitedDataInsertEscapeAndParseReverseL(_L("Test CDelimitedPath InsertAndEscapeCurrent, ParseReverse"), iTestHarness, path, list1, list2, aStartPos);
sl@0
   534
	VA_END(list1); VA_END(list2);
sl@0
   535
	}
sl@0
   536
sl@0
   537
void CDelimitedPathTest::TestDelimitedPathPushAndEscapeFrontL(TRefByValue<const TDesC> aPath, ...) const
sl@0
   538
	{
sl@0
   539
	VA_LIST list1; VA_START(list1, aPath);
sl@0
   540
	VA_LIST list2; VA_START(list2, aPath);
sl@0
   541
	const TDesC& path = aPath;
sl@0
   542
sl@0
   543
	TestDelimitedDataPushAndEscapeFrontL(_L("Test CDelimitedPath PushAndEscapeFront"), iTestHarness, path, list1, list2);
sl@0
   544
	VA_END(list1); VA_END(list2);
sl@0
   545
	}
sl@0
   546
sl@0
   547
void CDelimitedPathTest::TestDelimitedPathPushAndEscapeBackL(TRefByValue<const TDesC> aPath, ...) const
sl@0
   548
	{
sl@0
   549
	VA_LIST list1; VA_START(list1, aPath);
sl@0
   550
	VA_LIST list2; VA_START(list2, aPath);
sl@0
   551
	const TDesC& path = aPath;
sl@0
   552
sl@0
   553
	TestDelimitedDataPushAndEscapeBackL(_L("Test CDelimitedPath PushAndEscapeBack"), iTestHarness, path, list1, list2);
sl@0
   554
	VA_END(list1); VA_END(list2);
sl@0
   555
	}
sl@0
   556
/*
sl@0
   557
//
sl@0
   558
//
sl@0
   559
//	Delimited PathSegment tests
sl@0
   560
//
sl@0
   561
//
sl@0
   562
sl@0
   563
void CDelimitedPathTest::TestDelimitedPathSegmentExtractionL(TRefByValue<const TDesC> aPathSegment, ...) const
sl@0
   564
	{
sl@0
   565
	VA_LIST list1; VA_START(list1, aPathSegment);
sl@0
   566
	VA_LIST list2; VA_START(list2, aPathSegment);
sl@0
   567
	const TDesC& pathSegment = aPathSegment;
sl@0
   568
sl@0
   569
	TestDelimitedDataExtractionL(TDelimitedPathSegmentParser16(), TDelimitedPathSegmentParser8(),
sl@0
   570
		_L("Test TDelimitedPathSegmentParser Parse : GetNext, Dec, Inc, Peek and Eos"), iTestHarness, pathSegment, list1, list2);
sl@0
   571
	VA_END(list1); VA_END(list2);
sl@0
   572
	}
sl@0
   573
sl@0
   574
void CDelimitedPathTest::TestDelimitedPathSegmentReverseExtractionL(TRefByValue<const TDesC> aPathSegment, ...) const
sl@0
   575
	{
sl@0
   576
	VA_LIST list1; VA_START(list1, aPathSegment);
sl@0
   577
	VA_LIST list2; VA_START(list2, aPathSegment);
sl@0
   578
	const TDesC& pathSegment = aPathSegment;
sl@0
   579
sl@0
   580
	TestDelimitedDataReverseExtractionL<TDelimitedPathSegmentParser16, TDelimitedPathSegmentParser8>(
sl@0
   581
		_L("Test TDelimitedPathSegmentParser ParseReverse : GetNext, Dec, Inc, Peek and Eos"), iTestHarness, pathSegment, list1, list2);
sl@0
   582
	VA_END(list1); VA_END(list2);
sl@0
   583
	}
sl@0
   584
sl@0
   585
void CDelimitedPathTest::TestDelimitedPathSegmentDelimiterPresenceL(const TDesC& aPathSegment, TBool aFrontDelim, TBool aBackDelim) const
sl@0
   586
	{
sl@0
   587
	TestDelimitedDataDelimiterPresenceL<TDelimitedPathSegmentParser16, TDelimitedPathSegmentParser8>(
sl@0
   588
		_L("Test TDelimitedPathSegmentParser Delimiter Presence"), iTestHarness, aPathSegment, aFrontDelim, aBackDelim);
sl@0
   589
	}
sl@0
   590
sl@0
   591
void CDelimitedPathTest::TestDelimitedPathSegmentRemainderL(TRefByValue<const TDesC> aPathSegment, ...) const
sl@0
   592
	{
sl@0
   593
	VA_LIST list1; VA_START(list1, aPathSegment);
sl@0
   594
	VA_LIST list2; VA_START(list2, aPathSegment);
sl@0
   595
	const TDesC& pathSegment = aPathSegment;
sl@0
   596
sl@0
   597
	TestDelimitedDataRemainderL<TDelimitedPathSegmentParser16, TDelimitedPathSegmentParser8>(
sl@0
   598
		_L("Test TDelimitedPathSegmentParser Remainder, Parse"), iTestHarness, pathSegment, list1, list2);
sl@0
   599
	VA_END(list1); VA_END(list2);
sl@0
   600
	}
sl@0
   601
sl@0
   602
void CDelimitedPathTest::TestDelimitedPathSegmentRemainderReverseL(TRefByValue<const TDesC> aPathSegment, ...) const
sl@0
   603
	{
sl@0
   604
	VA_LIST list1; VA_START(list1, aPathSegment);
sl@0
   605
	VA_LIST list2; VA_START(list2, aPathSegment);
sl@0
   606
	const TDesC& pathSegment = aPathSegment;
sl@0
   607
sl@0
   608
	TestDelimitedDataRemainderReverseL<TDelimitedPathSegmentParser16, TDelimitedPathSegmentParser8>(
sl@0
   609
		_L("Test TDelimitedPathSegmentParser Remainder, ParseReverse"), iTestHarness, pathSegment, list1, list2);
sl@0
   610
	VA_END(list1); VA_END(list2);
sl@0
   611
	}
sl@0
   612
sl@0
   613
void CDelimitedPathTest::TestDelimitedPathSegmentDesL(const TDesC& aPathSegment) const
sl@0
   614
	{
sl@0
   615
	TestDelimitedDataDesL<TDelimitedPathSegmentParser16, TDelimitedPathSegmentParser8>(_L("Test TDelimitedPathSegment Des"), iTestHarness, aPathSegment);
sl@0
   616
	}
sl@0
   617
sl@0
   618
void CDelimitedPathTest::TestDelimitedPathSegmentPushFrontL(TRefByValue<const TDesC> aPathSegment, ...) const
sl@0
   619
	{
sl@0
   620
	VA_LIST list1; VA_START(list1, aPathSegment);
sl@0
   621
	VA_LIST list2; VA_START(list2, aPathSegment);
sl@0
   622
	const TDesC& pathSegment = aPathSegment;
sl@0
   623
sl@0
   624
	CDelimitedPath16* path16Bit = NULL; CDelimitedPath8* path8Bit = NULL;
sl@0
   625
	TestDelimitedDataPushFrontL(path16Bit, path8Bit,
sl@0
   626
		_L("Test TDelimitedPathSegmentParser PushFront"), iTestHarness, pathSegment, list1, list2);
sl@0
   627
	VA_END(list1);
sl@0
   628
	VA_END(list2);
sl@0
   629
	}
sl@0
   630
sl@0
   631
void CDelimitedPathTest::TestDelimitedPathSegmentPushBackL(TRefByValue<const TDesC> aPathSegment, ...) const
sl@0
   632
	{
sl@0
   633
	VA_LIST list1; VA_START(list1, aPathSegment);
sl@0
   634
	VA_LIST list2; VA_START(list2, aPathSegment);
sl@0
   635
	const TDesC& pathSegment = aPathSegment;
sl@0
   636
sl@0
   637
	TestDelimitedDataPushBackL<CDelimitedPathSegment16, CDelimitedPathSegment8>(
sl@0
   638
		_L("Test TDelimitedPathSegmentParser PushBack"), iTestHarness, pathSegment, list1, list2);
sl@0
   639
	VA_END(list1); VA_END(list2);
sl@0
   640
	}
sl@0
   641
sl@0
   642
void CDelimitedPathTest::TestDelimitedPathSegmentPopFrontL(TRefByValue<const TDesC> aPathSegment, ...) const
sl@0
   643
	{
sl@0
   644
	VA_LIST list1; VA_START(list1, aPathSegment);
sl@0
   645
	VA_LIST list2; VA_START(list2, aPathSegment);
sl@0
   646
	const TDesC& pathSegment = aPathSegment;
sl@0
   647
sl@0
   648
	TestDelimitedDataPopFrontL<CDelimitedPathSegment16, CDelimitedPathSegment8>(
sl@0
   649
		_L("Test TDelimitedPathSegmentParser PopFront"), iTestHarness, pathSegment, list1, list2);
sl@0
   650
	VA_END(list1); VA_END(list2);
sl@0
   651
	}
sl@0
   652
sl@0
   653
void CDelimitedPathTest::TestDelimitedPathSegmentPopBackL(TRefByValue<const TDesC> aPathSegment, ...) const
sl@0
   654
	{
sl@0
   655
	VA_LIST list1; VA_START(list1, aPathSegment);
sl@0
   656
	VA_LIST list2; VA_START(list2, aPathSegment);
sl@0
   657
	const TDesC& pathSegment = aPathSegment;
sl@0
   658
sl@0
   659
	TestDelimitedDataPopBackL<CDelimitedPathSegment16, CDelimitedPathSegment8>(
sl@0
   660
		_L("Test TDelimitedPathSegmentParser PopBack"), iTestHarness, pathSegment, list1, list2);
sl@0
   661
	VA_END(list1); VA_END(list2);
sl@0
   662
	}
sl@0
   663
sl@0
   664
void CDelimitedPathTest::TestDelimitedPathSegmentAddAndTrimFrontAndBackDelimiterL(const TDesC& aPathSegment) const
sl@0
   665
	{
sl@0
   666
	TestDelimitedDataAddAndTrimFrontAndBackDelimiterL<CDelimitedPathSegment16, CDelimitedPathSegment8>(
sl@0
   667
		_L("Test TDelimitedPathSegmentParser Add and Trim Front and Back delimiter"), iTestHarness, aPathSegment);
sl@0
   668
	}
sl@0
   669
sl@0
   670
void CDelimitedPathTest::TestDelimitedPathSegmentInsertAndParseL(TInt aStartPos, TRefByValue<const TDesC> aPathSegment, ...) const
sl@0
   671
	{
sl@0
   672
	VA_LIST list1; VA_START(list1, aPathSegment);
sl@0
   673
	VA_LIST list2; VA_START(list2, aPathSegment);
sl@0
   674
	const TDesC& pathSegment = aPathSegment;
sl@0
   675
sl@0
   676
	TestDelimitedDataInsertAndParseL<CDelimitedPathSegment16, CDelimitedPathSegment8>(
sl@0
   677
		_L("Test TDelimitedPathSegmentParser InsertCurrent, Parse"), iTestHarness, pathSegment, list1, list2, aStartPos);
sl@0
   678
	VA_END(list1); VA_END(list2);
sl@0
   679
	}
sl@0
   680
sl@0
   681
void CDelimitedPathTest::TestDelimitedPathSegmentRemoveAndParseL(TInt aStartPos, TRefByValue<const TDesC> aPathSegment, ...) const
sl@0
   682
	{
sl@0
   683
	VA_LIST list1; VA_START(list1, aPathSegment);
sl@0
   684
	VA_LIST list2; VA_START(list2, aPathSegment);
sl@0
   685
	const TDesC& pathSegment = aPathSegment;
sl@0
   686
sl@0
   687
	TestDelimitedDataRemoveAndParseL<CDelimitedPathSegment16, CDelimitedPathSegment8>(
sl@0
   688
		_L("Test TDelimitedPathSegmentParser RemoveCurrent, Parse"), iTestHarness, pathSegment, list1, list2, aStartPos);
sl@0
   689
	VA_END(list1); VA_END(list2);
sl@0
   690
	}
sl@0
   691
sl@0
   692
void CDelimitedPathTest::TestDelimitedPathSegmentInsertAndParseReverseL(TInt aStartPos, TRefByValue<const TDesC> aPathSegment, ...) const
sl@0
   693
	{
sl@0
   694
	VA_LIST list1; VA_START(list1, aPathSegment);
sl@0
   695
	VA_LIST list2; VA_START(list2, aPathSegment);
sl@0
   696
	const TDesC& pathSegment = aPathSegment;
sl@0
   697
sl@0
   698
	TestDelimitedDataInsertAndParseReverseL<CDelimitedPathSegment16, CDelimitedPathSegment8>(
sl@0
   699
		_L("Test TDelimitedPathSegmentParser InsertCurrent, ParseReverse"), iTestHarness, pathSegment, list1, list2, aStartPos);
sl@0
   700
	VA_END(list1); VA_END(list2);
sl@0
   701
	}
sl@0
   702
sl@0
   703
void CDelimitedPathTest::TestDelimitedPathSegmentRemoveAndParseReverseL(TInt aStartPos, TRefByValue<const TDesC> aPathSegment, ...) const
sl@0
   704
	{
sl@0
   705
	VA_LIST list1; VA_START(list1, aPathSegment);
sl@0
   706
	VA_LIST list2; VA_START(list2, aPathSegment);
sl@0
   707
	const TDesC& pathSegment = aPathSegment;
sl@0
   708
sl@0
   709
	TestDelimitedDataRemoveAndParseReverseL<CDelimitedPathSegment16, CDelimitedPathSegment8>(
sl@0
   710
		_L("Test TDelimitedPathSegmentParser RemoveCurrent, ParseReverse"), iTestHarness, pathSegment, list1, list2, aStartPos);
sl@0
   711
	VA_END(list1); VA_END(list2);
sl@0
   712
	}
sl@0
   713
sl@0
   714
void CDelimitedPathTest::TestDelimitedPathSegmentInsertEscapeAndParseL(TInt aStartPos, TRefByValue<const TDesC> aPathSegment, ...) const
sl@0
   715
	{
sl@0
   716
	VA_LIST list1; VA_START(list1, aPathSegment);
sl@0
   717
	VA_LIST list2; VA_START(list2, aPathSegment);
sl@0
   718
	const TDesC& pathSegment = aPathSegment;
sl@0
   719
sl@0
   720
	TestDelimitedDataInsertEscapeAndParseL<CDelimitedPathSegment16, CDelimitedPathSegment8>(
sl@0
   721
		_L("Test TDelimitedPathSegmentParser InsertAndEscapeCurrent, Parse"), iTestHarness, pathSegment, list1, list2, aStartPos);
sl@0
   722
	VA_END(list1); VA_END(list2);
sl@0
   723
	}
sl@0
   724
sl@0
   725
void CDelimitedPathTest::TestDelimitedPathSegmentInsertEscapeAndParseReverseL(TInt aStartPos, TRefByValue<const TDesC> aPathSegment, ...) const
sl@0
   726
	{
sl@0
   727
	VA_LIST list1; VA_START(list1, aPathSegment);
sl@0
   728
	VA_LIST list2; VA_START(list2, aPathSegment);
sl@0
   729
	const TDesC& pathSegment = aPathSegment;
sl@0
   730
sl@0
   731
	TestDelimitedDataInsertEscapeAndParseReverseL<CDelimitedPathSegment16, CDelimitedPathSegment8>(
sl@0
   732
		_L("Test TDelimitedPathSegmentParser InsertAndEscapeCurrent, ParseReverse"), iTestHarness, pathSegment, list1, list2, aStartPos);
sl@0
   733
	VA_END(list1); VA_END(list2);
sl@0
   734
	}
sl@0
   735
sl@0
   736
void CDelimitedPathTest::TestDelimitedPathSegmentPushAndEscapeFrontL(TRefByValue<const TDesC> aPathSegment, ...) const
sl@0
   737
	{
sl@0
   738
	VA_LIST list1; VA_START(list1, aPathSegment);
sl@0
   739
	VA_LIST list2; VA_START(list2, aPathSegment);
sl@0
   740
	const TDesC& pathSegment = aPathSegment;
sl@0
   741
sl@0
   742
	TestDelimitedDataPushAndEscapeFrontL<CDelimitedPathSegment16, CDelimitedPathSegment8>(
sl@0
   743
		_L("Test TDelimitedPathSegmentParser PushAndEscapeFront"), iTestHarness, pathSegment, list1, list2);
sl@0
   744
	VA_END(list1); VA_END(list2);
sl@0
   745
	}
sl@0
   746
sl@0
   747
void CDelimitedPathTest::TestDelimitedPathSegmentPushAndEscapeBackL(TRefByValue<const TDesC> aPathSegment, ...) const
sl@0
   748
	{
sl@0
   749
	VA_LIST list1; VA_START(list1, aPathSegment);
sl@0
   750
	VA_LIST list2; VA_START(list2, aPathSegment);
sl@0
   751
	const TDesC& pathSegment = aPathSegment;
sl@0
   752
sl@0
   753
	TestDelimitedDataPushAndEscapeBackL<CDelimitedPathSegment16, CDelimitedPathSegment8>(
sl@0
   754
		_L("Test TDelimitedPathSegmentParser PushAndEscapeBack"), iTestHarness, pathSegment, list1, list2);
sl@0
   755
	VA_END(list1); VA_END(list2);
sl@0
   756
	}
sl@0
   757
sl@0
   758
//
sl@0
   759
//
sl@0
   760
//	Delimited Query tests
sl@0
   761
//
sl@0
   762
//
sl@0
   763
void CDelimitedPathTest::TestDelimitedQueryExtractionL(TRefByValue<const TDesC> aQuery, ...) const
sl@0
   764
	{
sl@0
   765
	VA_LIST list1; VA_START(list1, aQuery);
sl@0
   766
	VA_LIST list2; VA_START(list2, aQuery);
sl@0
   767
	const TDesC& query = aQuery;
sl@0
   768
sl@0
   769
	TestDelimitedDataExtractionL<TDelimitedQueryParser16, TDelimitedQueryParser8>(
sl@0
   770
		_L("Test TDelimitedQueryParser Parse : GetNext, Dec, Inc, Peek and Eos"), iTestHarness, query, list1, list2);
sl@0
   771
	VA_END(list1); VA_END(list2);
sl@0
   772
	}
sl@0
   773
sl@0
   774
void CDelimitedPathTest::TestDelimitedQueryReverseExtractionL(TRefByValue<const TDesC> aQuery, ...) const
sl@0
   775
	{
sl@0
   776
	VA_LIST list1; VA_START(list1, aQuery);
sl@0
   777
	VA_LIST list2; VA_START(list2, aQuery);
sl@0
   778
	const TDesC& query = aQuery;
sl@0
   779
sl@0
   780
	TestDelimitedDataReverseExtractionL<TDelimitedQueryParser16, TDelimitedQueryParser8>(
sl@0
   781
		_L("Test TDelimitedQueryParser ParseReverse : GetNext, Dec, Inc, Peek and Eos"), iTestHarness, query, list1, list2);
sl@0
   782
	VA_END(list1); VA_END(list2);
sl@0
   783
	}
sl@0
   784
sl@0
   785
void CDelimitedPathTest::TestDelimitedQueryDelimiterPresenceL(const TDesC& aQuery, TBool aFrontDelim, TBool aBackDelim) const
sl@0
   786
	{
sl@0
   787
	TestDelimitedDataDelimiterPresenceL<TDelimitedQueryParser16, TDelimitedQueryParser8>(
sl@0
   788
		_L("Test TDelimitedQueryParser Delimiter Presence"), iTestHarness, aQuery, aFrontDelim, aBackDelim);
sl@0
   789
	}
sl@0
   790
sl@0
   791
void CDelimitedPathTest::TestDelimitedQueryRemainderL(TRefByValue<const TDesC> aQuery, ...) const
sl@0
   792
	{
sl@0
   793
	VA_LIST list1; VA_START(list1, aQuery);
sl@0
   794
	VA_LIST list2; VA_START(list2, aQuery);
sl@0
   795
	const TDesC& query = aQuery;
sl@0
   796
sl@0
   797
	TestDelimitedDataRemainderL<TDelimitedQueryParser16, TDelimitedQueryParser8>(
sl@0
   798
		_L("Test TDelimitedQueryParser Remainder, Parse"), iTestHarness, query, list1, list2);
sl@0
   799
	VA_END(list1); VA_END(list2);
sl@0
   800
	}
sl@0
   801
sl@0
   802
void CDelimitedPathTest::TestDelimitedQueryRemainderReverseL(TRefByValue<const TDesC> aQuery, ...) const
sl@0
   803
	{
sl@0
   804
	VA_LIST list1; VA_START(list1, aQuery);
sl@0
   805
	VA_LIST list2; VA_START(list2, aQuery);
sl@0
   806
	const TDesC& query = aQuery;
sl@0
   807
sl@0
   808
	TestDelimitedDataRemainderReverseL<TDelimitedQueryParser16, TDelimitedQueryParser8>(
sl@0
   809
		_L("Test TDelimitedQueryParser Remainder, ParseReverse"), iTestHarness, query, list1, list2);
sl@0
   810
	VA_END(list1); VA_END(list2);
sl@0
   811
	}
sl@0
   812
sl@0
   813
void CDelimitedPathTest::TestDelimitedQueryDesL(const TDesC& aQuery) const
sl@0
   814
	{
sl@0
   815
	TestDelimitedDataDesL<TDelimitedQueryParser16, TDelimitedQueryParser8>(_L("Test TDelimitedQuery Des"), iTestHarness, aQuery);
sl@0
   816
	}
sl@0
   817
sl@0
   818
void CDelimitedPathTest::TestDelimitedQueryPushFrontL(TRefByValue<const TDesC> aQuery, ...) const
sl@0
   819
	{
sl@0
   820
	VA_LIST list1; VA_START(list1, aQuery);
sl@0
   821
	VA_LIST list2; VA_START(list2, aQuery);
sl@0
   822
	const TDesC& query = aQuery;
sl@0
   823
sl@0
   824
	TestDelimitedDataPushFrontL<CDelimitedQuery16, CDelimitedQuery8>(
sl@0
   825
		_L("Test TDelimitedQueryParser PushFront"), iTestHarness, query, list1, list2);
sl@0
   826
	VA_END(list1);
sl@0
   827
	VA_END(list2);
sl@0
   828
	}
sl@0
   829
sl@0
   830
void CDelimitedPathTest::TestDelimitedQueryPushBackL(TRefByValue<const TDesC> aQuery, ...) const
sl@0
   831
	{
sl@0
   832
	VA_LIST list1; VA_START(list1, aQuery);
sl@0
   833
	VA_LIST list2; VA_START(list2, aQuery);
sl@0
   834
	const TDesC& query = aQuery;
sl@0
   835
sl@0
   836
	TestDelimitedDataPushBackL<CDelimitedQuery16, CDelimitedQuery8>(
sl@0
   837
		_L("Test TDelimitedQueryParser PushBack"), iTestHarness, query, list1, list2);
sl@0
   838
	VA_END(list1); VA_END(list2);
sl@0
   839
	}
sl@0
   840
sl@0
   841
void CDelimitedPathTest::TestDelimitedQueryPopFrontL(TRefByValue<const TDesC> aQuery, ...) const
sl@0
   842
	{
sl@0
   843
	VA_LIST list1; VA_START(list1, aQuery);
sl@0
   844
	VA_LIST list2; VA_START(list2, aQuery);
sl@0
   845
	const TDesC& query = aQuery;
sl@0
   846
sl@0
   847
	TestDelimitedDataPopFrontL<CDelimitedQuery16, CDelimitedQuery8>(
sl@0
   848
		_L("Test TDelimitedQueryParser PopFront"), iTestHarness, query, list1, list2);
sl@0
   849
	VA_END(list1); VA_END(list2);
sl@0
   850
	}
sl@0
   851
sl@0
   852
void CDelimitedPathTest::TestDelimitedQueryPopBackL(TRefByValue<const TDesC> aQuery, ...) const
sl@0
   853
	{
sl@0
   854
	VA_LIST list1; VA_START(list1, aQuery);
sl@0
   855
	VA_LIST list2; VA_START(list2, aQuery);
sl@0
   856
	const TDesC& query = aQuery;
sl@0
   857
sl@0
   858
	TestDelimitedDataPopBackL<CDelimitedQuery16, CDelimitedQuery8>(
sl@0
   859
		_L("Test TDelimitedQueryParser PopBack"), iTestHarness, query, list1, list2);
sl@0
   860
	VA_END(list1); VA_END(list2);
sl@0
   861
	}
sl@0
   862
sl@0
   863
void CDelimitedPathTest::TestDelimitedQueryAddAndTrimFrontAndBackDelimiterL(const TDesC& aQuery) const
sl@0
   864
	{
sl@0
   865
	TestDelimitedDataAddAndTrimFrontAndBackDelimiterL<CDelimitedQuery16, CDelimitedQuery8>(
sl@0
   866
		_L("Test TDelimitedQueryParser Add and Trim Front and Back delimiter"), iTestHarness, aQuery);
sl@0
   867
	}
sl@0
   868
sl@0
   869
void CDelimitedPathTest::TestDelimitedQueryInsertAndParseL(TInt aStartPos, TRefByValue<const TDesC> aQuery, ...) const
sl@0
   870
	{
sl@0
   871
	VA_LIST list1; VA_START(list1, aQuery);
sl@0
   872
	VA_LIST list2; VA_START(list2, aQuery);
sl@0
   873
	const TDesC& query = aQuery;
sl@0
   874
sl@0
   875
	TestDelimitedDataInsertAndParseL<CDelimitedQuery16, CDelimitedQuery8>(
sl@0
   876
		_L("Test TDelimitedQueryParser InsertCurrent, Parse"), iTestHarness, query, list1, list2, aStartPos);
sl@0
   877
	VA_END(list1); VA_END(list2);
sl@0
   878
	}
sl@0
   879
sl@0
   880
void CDelimitedPathTest::TestDelimitedQueryRemoveAndParseL(TInt aStartPos, TRefByValue<const TDesC> aQuery, ...) const
sl@0
   881
	{
sl@0
   882
	VA_LIST list1; VA_START(list1, aQuery);
sl@0
   883
	VA_LIST list2; VA_START(list2, aQuery);
sl@0
   884
	const TDesC& query = aQuery;
sl@0
   885
sl@0
   886
	TestDelimitedDataRemoveAndParseL<CDelimitedQuery16, CDelimitedQuery8>(
sl@0
   887
		_L("Test TDelimitedQueryParser RemoveCurrent, Parse"), iTestHarness, query, list1, list2, aStartPos);
sl@0
   888
	VA_END(list1); VA_END(list2);
sl@0
   889
	}
sl@0
   890
sl@0
   891
void CDelimitedPathTest::TestDelimitedQueryInsertAndParseReverseL(TInt aStartPos, TRefByValue<const TDesC> aQuery, ...) const
sl@0
   892
	{
sl@0
   893
	VA_LIST list1; VA_START(list1, aQuery);
sl@0
   894
	VA_LIST list2; VA_START(list2, aQuery);
sl@0
   895
	const TDesC& query = aQuery;
sl@0
   896
sl@0
   897
	TestDelimitedDataInsertAndParseReverseL<CDelimitedQuery16, CDelimitedQuery8>(
sl@0
   898
		_L("Test TDelimitedQueryParser InsertCurrent, ParseReverse"), iTestHarness, query, list1, list2, aStartPos);
sl@0
   899
	VA_END(list1); VA_END(list2);
sl@0
   900
	}
sl@0
   901
sl@0
   902
void CDelimitedPathTest::TestDelimitedQueryRemoveAndParseReverseL(TInt aStartPos, TRefByValue<const TDesC> aQuery, ...) const
sl@0
   903
	{
sl@0
   904
	VA_LIST list1; VA_START(list1, aQuery);
sl@0
   905
	VA_LIST list2; VA_START(list2, aQuery);
sl@0
   906
	const TDesC& query = aQuery;
sl@0
   907
sl@0
   908
	TestDelimitedDataRemoveAndParseReverseL<CDelimitedQuery16, CDelimitedQuery8>(
sl@0
   909
		_L("Test TDelimitedQueryParser RemoveCurrent, ParseReverse"), iTestHarness, query, list1, list2, aStartPos);
sl@0
   910
	VA_END(list1); VA_END(list2);
sl@0
   911
	}
sl@0
   912
sl@0
   913
void CDelimitedPathTest::TestDelimitedQueryInsertEscapeAndParseL(TInt aStartPos, TRefByValue<const TDesC> aQuery, ...) const
sl@0
   914
	{
sl@0
   915
	VA_LIST list1; VA_START(list1, aQuery);
sl@0
   916
	VA_LIST list2; VA_START(list2, aQuery);
sl@0
   917
	const TDesC& query = aQuery;
sl@0
   918
sl@0
   919
	TestDelimitedDataInsertEscapeAndParseL<CDelimitedQuery16, CDelimitedQuery8>(
sl@0
   920
		_L("Test TDelimitedQueryParser InsertAndEscapeCurrent, Parse"), iTestHarness, query, list1, list2, aStartPos);
sl@0
   921
	VA_END(list1); VA_END(list2);
sl@0
   922
	}
sl@0
   923
sl@0
   924
void CDelimitedPathTest::TestDelimitedQueryInsertEscapeAndParseReverseL(TInt aStartPos, TRefByValue<const TDesC> aQuery, ...) const
sl@0
   925
	{
sl@0
   926
	VA_LIST list1; VA_START(list1, aQuery);
sl@0
   927
	VA_LIST list2; VA_START(list2, aQuery);
sl@0
   928
	const TDesC& query = aQuery;
sl@0
   929
sl@0
   930
	TestDelimitedDataInsertEscapeAndParseReverseL<CDelimitedQuery16, CDelimitedQuery8>(
sl@0
   931
		_L("Test TDelimitedQueryParser InsertAndEscapeCurrent, ParseReverse"), iTestHarness, query, list1, list2, aStartPos);
sl@0
   932
	VA_END(list1); VA_END(list2);
sl@0
   933
	}
sl@0
   934
sl@0
   935
void CDelimitedPathTest::TestDelimitedQueryPushAndEscapeFrontL(TRefByValue<const TDesC> aQuery, ...) const
sl@0
   936
	{
sl@0
   937
	VA_LIST list1; VA_START(list1, aQuery);
sl@0
   938
	VA_LIST list2; VA_START(list2, aQuery);
sl@0
   939
	const TDesC& query = aQuery;
sl@0
   940
sl@0
   941
	TestDelimitedDataPushAndEscapeFrontL<CDelimitedQuery16, CDelimitedQuery8>(
sl@0
   942
		_L("Test TDelimitedQueryParser PushAndEscapeFront"), iTestHarness, query, list1, list2);
sl@0
   943
	VA_END(list1); VA_END(list2);
sl@0
   944
	}
sl@0
   945
sl@0
   946
void CDelimitedPathTest::TestDelimitedQueryPushAndEscapeBackL(TRefByValue<const TDesC> aQuery, ...) const
sl@0
   947
	{
sl@0
   948
	VA_LIST list1; VA_START(list1, aQuery);
sl@0
   949
	VA_LIST list2; VA_START(list2, aQuery);
sl@0
   950
	const TDesC& query = aQuery;
sl@0
   951
sl@0
   952
	TestDelimitedDataPushAndEscapeBackL<CDelimitedQuery16, CDelimitedQuery8>(
sl@0
   953
		_L("Test TDelimitedQueryParser PushAndEscapeBack"), iTestHarness, query, list1, list2);
sl@0
   954
	VA_END(list1); VA_END(list2);
sl@0
   955
	}
sl@0
   956
*/
sl@0
   957
//
sl@0
   958
//
sl@0
   959
//	Implementation of LOCAL functions - test funcions
sl@0
   960
//
sl@0
   961
//
sl@0
   962
sl@0
   963
void TestDelimitedDataExtractionL(const TDesC& aTestTitle, CIpuTestHarness* aTestHarness, 
sl@0
   964
										  const TDesC& aData, VA_LIST& aList1, VA_LIST& aList2)	{
sl@0
   965
	// Create title
sl@0
   966
	HBufC* title16Bit = HBufC::NewLC(aTestTitle.Length() + KTitle16Bit().Length());
sl@0
   967
	title16Bit->Des().Format(KTitle16Bit, &aTestTitle);
sl@0
   968
	aTestHarness->StartTestL(*title16Bit);
sl@0
   969
sl@0
   970
	// Create TDelimitedPathParser object and do parsing
sl@0
   971
	TDelimitedPathParser16 parser16Bit;
sl@0
   972
	parser16Bit.Parse(aData);
sl@0
   973
sl@0
   974
	TInt error = DoDelimitedDataParsingL<HBufC16, TPtrC16>(parser16Bit, aList1);
sl@0
   975
sl@0
   976
	CleanupStack::PopAndDestroy(title16Bit);	// title16Bit
sl@0
   977
	aTestHarness->EndTest(error);
sl@0
   978
sl@0
   979
	// Make 8-bit copy
sl@0
   980
	HBufC8* dataBuf = HBufC8::NewLC(aData.Length());
sl@0
   981
	TPtr8 data8Bit = dataBuf->Des();
sl@0
   982
	data8Bit.Copy(aData);
sl@0
   983
sl@0
   984
	HBufC* title8Bit = HBufC::NewLC(aTestTitle.Length() + KTitle8Bit().Length());
sl@0
   985
	title8Bit->Des().Format(KTitle8Bit, &aTestTitle);
sl@0
   986
	aTestHarness->StartTestL(*title8Bit);
sl@0
   987
sl@0
   988
	// Create TDelimitedPathParser object and do parsing
sl@0
   989
	TDelimitedPathParser8 parser8Bit;
sl@0
   990
	parser8Bit.Parse(data8Bit);
sl@0
   991
sl@0
   992
	error = DoDelimitedDataParsingL<HBufC8, TPtrC8>(parser8Bit, aList2);
sl@0
   993
sl@0
   994
	aTestHarness->EndTest(error);
sl@0
   995
	CleanupStack::PopAndDestroy(2, dataBuf);	// dataBuf, title8Bit
sl@0
   996
	}
sl@0
   997
sl@0
   998
void TestDelimitedDataReverseExtractionL(const TDesC& aTestTitle, CIpuTestHarness* aTestHarness, 
sl@0
   999
												 const TDesC& aData, VA_LIST& aList1, VA_LIST& aList2)
sl@0
  1000
	{
sl@0
  1001
	// Create title
sl@0
  1002
	HBufC* title16Bit = HBufC::NewLC(aTestTitle.Length() + KTitle16Bit().Length());
sl@0
  1003
	title16Bit->Des().Format(KTitle16Bit, &aTestTitle);
sl@0
  1004
	aTestHarness->StartTestL(*title16Bit);
sl@0
  1005
sl@0
  1006
	// Create TDelimitedPathParser object and do parsing
sl@0
  1007
	TDelimitedPathParser16 parser16Bit;
sl@0
  1008
	parser16Bit.ParseReverse(aData);
sl@0
  1009
sl@0
  1010
	TInt error = DoDelimitedDataParsingL<HBufC16, TPtrC16>(parser16Bit, aList1);
sl@0
  1011
sl@0
  1012
	CleanupStack::PopAndDestroy(title16Bit);	// title16Bit
sl@0
  1013
	aTestHarness->EndTest(error);
sl@0
  1014
sl@0
  1015
	// Make 8-bit copy
sl@0
  1016
	HBufC8* dataBuf = HBufC8::NewLC(aData.Length());
sl@0
  1017
	TPtr8 data8Bit = dataBuf->Des();
sl@0
  1018
	data8Bit.Copy(aData);
sl@0
  1019
sl@0
  1020
	// Create title
sl@0
  1021
	HBufC* title8Bit = HBufC::NewLC(aTestTitle.Length() + KTitle8Bit().Length());
sl@0
  1022
	title8Bit->Des().Format(KTitle8Bit, &aTestTitle);
sl@0
  1023
	aTestHarness->StartTestL(*title8Bit);
sl@0
  1024
sl@0
  1025
	// Create TDelimitedPathParser object and do parsing
sl@0
  1026
	TDelimitedPathParser8 parser8Bit;
sl@0
  1027
	parser8Bit.ParseReverse(data8Bit);
sl@0
  1028
sl@0
  1029
	error = DoDelimitedDataParsingL<HBufC8, TPtrC8>(parser8Bit, aList2);
sl@0
  1030
sl@0
  1031
	aTestHarness->EndTest(error);
sl@0
  1032
	CleanupStack::PopAndDestroy(2, dataBuf);	// dataBuf, title8Bit
sl@0
  1033
	}
sl@0
  1034
sl@0
  1035
void TestDelimitedDataDelimiterPresenceL(const TDesC& aTestTitle, CIpuTestHarness* aTestHarness, 
sl@0
  1036
												 const TDesC& aData, TBool aFrontDelim, TBool aBackDelim)
sl@0
  1037
	{
sl@0
  1038
	// Create title
sl@0
  1039
	HBufC* title16Bit = HBufC::NewLC(aTestTitle.Length() + KTitle16Bit().Length());
sl@0
  1040
	title16Bit->Des().Format(KTitle16Bit, &aTestTitle);
sl@0
  1041
	aTestHarness->StartTestL(*title16Bit);
sl@0
  1042
sl@0
  1043
	// Create TDelimitedPathParser object 
sl@0
  1044
	TDelimitedPathParser16 parser16Bit;
sl@0
  1045
	parser16Bit.Parse(aData);
sl@0
  1046
	TInt error = DoDelimiterPresenceTest(parser16Bit, aFrontDelim, aBackDelim);
sl@0
  1047
sl@0
  1048
	CleanupStack::PopAndDestroy(title16Bit);	// title16Bit
sl@0
  1049
	aTestHarness->EndTest(error);
sl@0
  1050
sl@0
  1051
	// Make 8-bit copy
sl@0
  1052
	HBufC8* dataBuf = HBufC8::NewLC(aData.Length());
sl@0
  1053
	TPtr8 data8Bit = dataBuf->Des();
sl@0
  1054
	data8Bit.Copy(aData);
sl@0
  1055
sl@0
  1056
	// Create title
sl@0
  1057
	HBufC* title8Bit = HBufC::NewLC(aTestTitle.Length() + KTitle8Bit().Length());
sl@0
  1058
	title8Bit->Des().Format(KTitle8Bit, &aTestTitle);
sl@0
  1059
	aTestHarness->StartTestL(*title8Bit);
sl@0
  1060
sl@0
  1061
	// Create TDelimitedPathParser object 
sl@0
  1062
	TDelimitedPathParser8 parser8Bit;
sl@0
  1063
	parser8Bit.Parse(data8Bit);
sl@0
  1064
	error = DoDelimiterPresenceTest(parser8Bit, aFrontDelim, aBackDelim);
sl@0
  1065
sl@0
  1066
	aTestHarness->EndTest(error);
sl@0
  1067
	CleanupStack::PopAndDestroy(2, dataBuf);	// dataBuf, title8Bit
sl@0
  1068
	}
sl@0
  1069
sl@0
  1070
void TestDelimitedDataRemainderL(const TDesC& aTestTitle, CIpuTestHarness* aTestHarness, 
sl@0
  1071
										 const TDesC& aData, VA_LIST& aList1, VA_LIST& aList2)
sl@0
  1072
	{
sl@0
  1073
	// Create title
sl@0
  1074
	HBufC* title16Bit = HBufC::NewLC(aTestTitle.Length() + KTitle16Bit().Length());
sl@0
  1075
	title16Bit->Des().Format(KTitle16Bit, &aTestTitle);
sl@0
  1076
	aTestHarness->StartTestL(*title16Bit);
sl@0
  1077
sl@0
  1078
	// Create TDelimiteddataParser object and do parsing
sl@0
  1079
	TDelimitedPathParser16 parser16Bit;
sl@0
  1080
	parser16Bit.Parse(aData);
sl@0
  1081
sl@0
  1082
	TInt error = DoDelimitedDataRemainderTestL<HBufC16, TPtrC16>(parser16Bit, aList1);
sl@0
  1083
sl@0
  1084
	CleanupStack::PopAndDestroy(title16Bit);	// title16Bit
sl@0
  1085
	aTestHarness->EndTest(error);
sl@0
  1086
sl@0
  1087
	// Make 8-bit copy
sl@0
  1088
	HBufC8* dataBuf = HBufC8::NewLC(aData.Length());
sl@0
  1089
	TPtr8 data8Bit = dataBuf->Des();
sl@0
  1090
	data8Bit.Copy(aData);
sl@0
  1091
sl@0
  1092
	// Create title
sl@0
  1093
	HBufC* title8Bit = HBufC::NewLC(aTestTitle.Length() + KTitle8Bit().Length());
sl@0
  1094
	title8Bit->Des().Format(KTitle8Bit, &aTestTitle);
sl@0
  1095
	aTestHarness->StartTestL(*title8Bit);
sl@0
  1096
sl@0
  1097
	// Create TDelimiteddataParser object and do parsing
sl@0
  1098
	TDelimitedPathParser8 parser8Bit;
sl@0
  1099
	parser8Bit.Parse(data8Bit);
sl@0
  1100
sl@0
  1101
	error = DoDelimitedDataRemainderTestL<HBufC8, TPtrC8>(parser8Bit, aList2);
sl@0
  1102
sl@0
  1103
	aTestHarness->EndTest(error);
sl@0
  1104
	CleanupStack::PopAndDestroy(2, dataBuf);	// dataBuf, title8Bit
sl@0
  1105
	}
sl@0
  1106
sl@0
  1107
void TestDelimitedDataRemainderReverseL(const TDesC& aTestTitle, CIpuTestHarness* aTestHarness, 
sl@0
  1108
												const TDesC& aData, VA_LIST& aList1, VA_LIST& aList2)
sl@0
  1109
	{
sl@0
  1110
	// Create title
sl@0
  1111
	HBufC* title16Bit = HBufC::NewLC(aTestTitle.Length() + KTitle16Bit().Length());
sl@0
  1112
	title16Bit->Des().Format(KTitle16Bit, &aTestTitle);
sl@0
  1113
	aTestHarness->StartTestL(*title16Bit);
sl@0
  1114
sl@0
  1115
	// Create TDelimitedPathParser object and do parsing
sl@0
  1116
	TDelimitedPathParser16 parser16Bit;
sl@0
  1117
	parser16Bit.ParseReverse(aData);
sl@0
  1118
sl@0
  1119
	TInt error = DoDelimitedDataRemainderTestL<HBufC16, TPtrC16>(parser16Bit, aList1);
sl@0
  1120
sl@0
  1121
	CleanupStack::PopAndDestroy(title16Bit);	// title16Bit
sl@0
  1122
	aTestHarness->EndTest(error);
sl@0
  1123
sl@0
  1124
	// Make 8-bit copy
sl@0
  1125
	HBufC8* dataBuf = HBufC8::NewLC(aData.Length());
sl@0
  1126
	TPtr8 data8Bit = dataBuf->Des();
sl@0
  1127
	data8Bit.Copy(aData);
sl@0
  1128
sl@0
  1129
	// Create title
sl@0
  1130
	HBufC* title8Bit = HBufC::NewLC(aTestTitle.Length() + KTitle8Bit().Length());
sl@0
  1131
	title8Bit->Des().Format(KTitle8Bit, &aTestTitle);
sl@0
  1132
	aTestHarness->StartTestL(*title8Bit);
sl@0
  1133
sl@0
  1134
	// Create TDelimitedPathParser object and do parsing
sl@0
  1135
	TDelimitedPathParser8 parser8Bit;
sl@0
  1136
	parser8Bit.ParseReverse(data8Bit);
sl@0
  1137
sl@0
  1138
	error = DoDelimitedDataRemainderTestL<HBufC8, TPtrC8>(parser8Bit, aList2);
sl@0
  1139
sl@0
  1140
	aTestHarness->EndTest(error);
sl@0
  1141
	CleanupStack::PopAndDestroy(2, dataBuf);	// dataBuf, title8Bit
sl@0
  1142
	}
sl@0
  1143
sl@0
  1144
void TestDelimitedDataDesL(const TDesC& aTestTitle, CIpuTestHarness* aTestHarness, const TDesC& aData)
sl@0
  1145
	{
sl@0
  1146
	// Create title
sl@0
  1147
	HBufC* title16Bit = HBufC::NewLC(aTestTitle.Length() + KTitle16Bit().Length());
sl@0
  1148
	title16Bit->Des().Format(KTitle16Bit, &aTestTitle);
sl@0
  1149
	aTestHarness->StartTestL(*title16Bit);
sl@0
  1150
sl@0
  1151
	// Create TDelimitedPathParser object and do parsing
sl@0
  1152
	TDelimitedPathParser16 parser16Bit;
sl@0
  1153
	parser16Bit.Parse(aData);
sl@0
  1154
sl@0
  1155
	TInt error = DoDelimitedDataDes(parser16Bit, aData);
sl@0
  1156
sl@0
  1157
	CleanupStack::PopAndDestroy(title16Bit);	// title16Bit
sl@0
  1158
	aTestHarness->EndTest(error);
sl@0
  1159
sl@0
  1160
	// Make 8-bit copy
sl@0
  1161
	HBufC8* dataBuf = HBufC8::NewLC(aData.Length());
sl@0
  1162
	TPtr8 data8Bit = dataBuf->Des();
sl@0
  1163
	data8Bit.Copy(aData);
sl@0
  1164
sl@0
  1165
	// Create title
sl@0
  1166
	HBufC* title8Bit = HBufC::NewLC(aTestTitle.Length() + KTitle8Bit().Length());
sl@0
  1167
	title8Bit->Des().Format(KTitle8Bit, &aTestTitle);
sl@0
  1168
	aTestHarness->StartTestL(*title8Bit);
sl@0
  1169
sl@0
  1170
	// Create TDelimitedPathParser object and do parsing
sl@0
  1171
	TDelimitedPathParser8 parser8Bit;
sl@0
  1172
	parser8Bit.Parse(data8Bit);
sl@0
  1173
sl@0
  1174
	error = DoDelimitedDataDes(parser8Bit, data8Bit);
sl@0
  1175
sl@0
  1176
	aTestHarness->EndTest(error);
sl@0
  1177
	CleanupStack::PopAndDestroy(2, dataBuf);	// dataBuf, title8Bit
sl@0
  1178
	}
sl@0
  1179
sl@0
  1180
void TestDelimitedDataPushFrontL(const TDesC& aTestTitle, CIpuTestHarness* aTestHarness, 
sl@0
  1181
										 const TDesC& aData, VA_LIST& aList1, VA_LIST& aList2)
sl@0
  1182
	{
sl@0
  1183
	// Create title
sl@0
  1184
	HBufC* title16Bit = HBufC::NewLC(aTestTitle.Length() + KTitle16Bit().Length());
sl@0
  1185
	title16Bit->Des().Format(KTitle16Bit, &aTestTitle);
sl@0
  1186
	aTestHarness->StartTestL(*title16Bit);
sl@0
  1187
sl@0
  1188
	// Create TDelimitedPathParser object and do parsing
sl@0
  1189
	CDelimitedPath16* data16Bit = CDelimitedPath16::NewL(aData);	// Also excersies NewLC()
sl@0
  1190
	CleanupStack::PushL(data16Bit);
sl@0
  1191
sl@0
  1192
	TInt error = DoDelimitedDataPushFrontL<HBufC16>(data16Bit, aList1);
sl@0
  1193
sl@0
  1194
	CleanupStack::PopAndDestroy(2, title16Bit);	// title16Bit, data16Bit
sl@0
  1195
	aTestHarness->EndTest(error);
sl@0
  1196
sl@0
  1197
	// Make 8-bit copy
sl@0
  1198
	HBufC8* dataBuf = HBufC8::NewLC(aData.Length());
sl@0
  1199
	TPtr8 initData8Bit = dataBuf->Des();
sl@0
  1200
	initData8Bit.Copy(aData);
sl@0
  1201
sl@0
  1202
	// Create title
sl@0
  1203
	HBufC* title8Bit = HBufC::NewLC(aTestTitle.Length() + KTitle8Bit().Length());
sl@0
  1204
	title8Bit->Des().Format(KTitle8Bit, &aTestTitle);
sl@0
  1205
	aTestHarness->StartTestL(*title8Bit);
sl@0
  1206
sl@0
  1207
	// Create TDelimitedPathParser object and do parsing
sl@0
  1208
	CDelimitedPath8* data8Bit = CDelimitedPath8::NewL(initData8Bit);	// Also excersies NewLC()
sl@0
  1209
	CleanupStack::PushL(data8Bit);
sl@0
  1210
sl@0
  1211
	error = DoDelimitedDataPushFrontL<HBufC8>(data8Bit, aList2);
sl@0
  1212
sl@0
  1213
	aTestHarness->EndTest(error);
sl@0
  1214
	CleanupStack::PopAndDestroy(3, dataBuf);	// dataBuf, title8Bit, data8Bit
sl@0
  1215
	}
sl@0
  1216
sl@0
  1217
void TestDelimitedDataPushAndEscapeFrontL(const TDesC& aTestTitle, CIpuTestHarness* aTestHarness, 
sl@0
  1218
												  const TDesC& aData, VA_LIST& aList1, VA_LIST& aList2)
sl@0
  1219
	{
sl@0
  1220
	// Create title
sl@0
  1221
	HBufC* title16Bit = HBufC::NewLC(aTestTitle.Length() + KTitle16Bit().Length());
sl@0
  1222
	title16Bit->Des().Format(KTitle16Bit, &aTestTitle);
sl@0
  1223
	aTestHarness->StartTestL(*title16Bit);
sl@0
  1224
sl@0
  1225
	// Create TDelimitedPathParser object and do parsing
sl@0
  1226
	CDelimitedPath16* data16Bit = CDelimitedPath16::NewL(aData);	// Also excersies NewLC()
sl@0
  1227
	CleanupStack::PushL(data16Bit);
sl@0
  1228
sl@0
  1229
	TInt error = DoDelimitedDataPushAndEscapeFrontL<HBufC16>(data16Bit, aList1);
sl@0
  1230
sl@0
  1231
	CleanupStack::PopAndDestroy(2, title16Bit);	// title16Bit, data16Bit
sl@0
  1232
	aTestHarness->EndTest(error);
sl@0
  1233
sl@0
  1234
	// Make 8-bit copy
sl@0
  1235
	HBufC8* dataBuf = HBufC8::NewLC(aData.Length());
sl@0
  1236
	TPtr8 initData8Bit = dataBuf->Des();
sl@0
  1237
	initData8Bit.Copy(aData);
sl@0
  1238
sl@0
  1239
	// Create title
sl@0
  1240
	HBufC* title8Bit = HBufC::NewLC(aTestTitle.Length() + KTitle8Bit().Length());
sl@0
  1241
	title8Bit->Des().Format(KTitle8Bit, &aTestTitle);
sl@0
  1242
	aTestHarness->StartTestL(*title8Bit);
sl@0
  1243
sl@0
  1244
	// Create TDelimitedPathParser object and do parsing
sl@0
  1245
	CDelimitedPath8* data8Bit = CDelimitedPath8::NewL(initData8Bit);	// Also excersies NewLC()
sl@0
  1246
	CleanupStack::PushL(data8Bit);
sl@0
  1247
sl@0
  1248
	error = DoDelimitedDataPushAndEscapeFrontL<HBufC8>(data8Bit, aList2);
sl@0
  1249
sl@0
  1250
	aTestHarness->EndTest(error);
sl@0
  1251
	CleanupStack::PopAndDestroy(3, dataBuf);	// dataBuf, title8Bit, data8Bit
sl@0
  1252
	}
sl@0
  1253
sl@0
  1254
void TestDelimitedDataPushBackL(const TDesC& aTestTitle, CIpuTestHarness* aTestHarness, 
sl@0
  1255
										const TDesC& aData, VA_LIST& aList1, VA_LIST& aList2)
sl@0
  1256
	{
sl@0
  1257
	// Create title
sl@0
  1258
	HBufC* title16Bit = HBufC::NewLC(aTestTitle.Length() + KTitle16Bit().Length());
sl@0
  1259
	title16Bit->Des().Format(KTitle16Bit, &aTestTitle);
sl@0
  1260
	aTestHarness->StartTestL(*title16Bit);
sl@0
  1261
sl@0
  1262
	// Create TDelimitedPathParser object and do parsing
sl@0
  1263
	CDelimitedPath16* data16Bit = CDelimitedPath16::NewL(aData);	// Also excersies NewLC()
sl@0
  1264
	CleanupStack::PushL(data16Bit);
sl@0
  1265
sl@0
  1266
	TInt error = DoDelimitedDataPushBackL<HBufC16>(data16Bit, aList1);
sl@0
  1267
sl@0
  1268
	CleanupStack::PopAndDestroy(2, title16Bit);	// title16Bit, data16Bit
sl@0
  1269
	aTestHarness->EndTest(error);
sl@0
  1270
sl@0
  1271
	// Make 8-bit copy
sl@0
  1272
	HBufC8* dataBuf = HBufC8::NewLC(aData.Length());
sl@0
  1273
	TPtr8 initData8Bit = dataBuf->Des();
sl@0
  1274
	initData8Bit.Copy(aData);
sl@0
  1275
sl@0
  1276
	// Create title
sl@0
  1277
	HBufC* title8Bit = HBufC::NewLC(aTestTitle.Length() + KTitle8Bit().Length());
sl@0
  1278
	title8Bit->Des().Format(KTitle8Bit, &aTestTitle);
sl@0
  1279
	aTestHarness->StartTestL(*title8Bit);
sl@0
  1280
sl@0
  1281
	// Create TDelimitedPathParser object and do parsing
sl@0
  1282
	CDelimitedPath8* data8Bit = CDelimitedPath8::NewL(initData8Bit);	// Also excersies NewLC()
sl@0
  1283
	CleanupStack::PushL(data8Bit);
sl@0
  1284
sl@0
  1285
	error = DoDelimitedDataPushBackL<HBufC8>(data8Bit, aList2);
sl@0
  1286
sl@0
  1287
	aTestHarness->EndTest(error);
sl@0
  1288
	CleanupStack::PopAndDestroy(3, dataBuf);	// dataBuf, title8Bit, data8Bit
sl@0
  1289
	}
sl@0
  1290
sl@0
  1291
void TestDelimitedDataPushAndEscapeBackL(const TDesC& aTestTitle, CIpuTestHarness* aTestHarness, 
sl@0
  1292
												 const TDesC& aData, VA_LIST& aList1, VA_LIST& aList2)
sl@0
  1293
	{
sl@0
  1294
	// Create title
sl@0
  1295
	HBufC* title16Bit = HBufC::NewLC(aTestTitle.Length() + KTitle16Bit().Length());
sl@0
  1296
	title16Bit->Des().Format(KTitle16Bit, &aTestTitle);
sl@0
  1297
	aTestHarness->StartTestL(*title16Bit);
sl@0
  1298
sl@0
  1299
	// Create TDelimitedPathParser object and do parsing
sl@0
  1300
	CDelimitedPath16* data16Bit = CDelimitedPath16::NewL(aData);	// Also excersies NewLC()
sl@0
  1301
	CleanupStack::PushL(data16Bit);
sl@0
  1302
sl@0
  1303
	TInt error = DoDelimitedDataPushAndEscapeBackL<HBufC16>(data16Bit, aList1);
sl@0
  1304
sl@0
  1305
	CleanupStack::PopAndDestroy(2, title16Bit);	// title16Bit, data16Bit
sl@0
  1306
	aTestHarness->EndTest(error);
sl@0
  1307
sl@0
  1308
	// Make 8-bit copy
sl@0
  1309
	HBufC8* dataBuf = HBufC8::NewLC(aData.Length());
sl@0
  1310
	TPtr8 initData8Bit = dataBuf->Des();
sl@0
  1311
	initData8Bit.Copy(aData);
sl@0
  1312
sl@0
  1313
	// Create title
sl@0
  1314
	HBufC* title8Bit = HBufC::NewLC(aTestTitle.Length() + KTitle8Bit().Length());
sl@0
  1315
	title8Bit->Des().Format(KTitle8Bit, &aTestTitle);
sl@0
  1316
	aTestHarness->StartTestL(*title8Bit);
sl@0
  1317
sl@0
  1318
	// Create TDelimitedPathParser object and do parsing
sl@0
  1319
	CDelimitedPath8* data8Bit = CDelimitedPath8::NewL(initData8Bit);	// Also excersies NewLC()
sl@0
  1320
	CleanupStack::PushL(data8Bit);
sl@0
  1321
sl@0
  1322
	error = DoDelimitedDataPushAndEscapeBackL<HBufC8>(data8Bit, aList2);
sl@0
  1323
sl@0
  1324
	aTestHarness->EndTest(error);
sl@0
  1325
	CleanupStack::PopAndDestroy(3, dataBuf);	// dataBuf, title8Bit, data8Bit
sl@0
  1326
	}
sl@0
  1327
sl@0
  1328
void TestDelimitedDataPopFrontL(const TDesC& aTestTitle, CIpuTestHarness* aTestHarness, 
sl@0
  1329
										const TDesC& aData, VA_LIST& aList1, VA_LIST& aList2)
sl@0
  1330
	{
sl@0
  1331
	// Create title
sl@0
  1332
	HBufC* title16Bit = HBufC::NewLC(aTestTitle.Length() + KTitle16Bit().Length());
sl@0
  1333
	title16Bit->Des().Format(KTitle16Bit, &aTestTitle);
sl@0
  1334
	aTestHarness->StartTestL(*title16Bit);
sl@0
  1335
sl@0
  1336
	// Create TDelimitedPathParser object and do parsing
sl@0
  1337
	CDelimitedPath16* data16Bit = CDelimitedPath16::NewL(aData);	// Also excersies NewLC()
sl@0
  1338
	CleanupStack::PushL(data16Bit);
sl@0
  1339
sl@0
  1340
	TInt error = DoDelimitedDataPopFrontL<HBufC16>(data16Bit, aList1);
sl@0
  1341
sl@0
  1342
	CleanupStack::PopAndDestroy(2, title16Bit);	// title16Bit, data16Bit
sl@0
  1343
	aTestHarness->EndTest(error);
sl@0
  1344
sl@0
  1345
	// Make 8-bit copy
sl@0
  1346
	HBufC8* dataBuf = HBufC8::NewLC(aData.Length());
sl@0
  1347
	TPtr8 initData8Bit = dataBuf->Des();
sl@0
  1348
	initData8Bit.Copy(aData);
sl@0
  1349
sl@0
  1350
	// Create title
sl@0
  1351
	HBufC* title8Bit = HBufC::NewLC(aTestTitle.Length() + KTitle8Bit().Length());
sl@0
  1352
	title8Bit->Des().Format(KTitle8Bit, &aTestTitle);
sl@0
  1353
	aTestHarness->StartTestL(*title8Bit);
sl@0
  1354
sl@0
  1355
	// Create TDelimitedPathParser object and do parsing
sl@0
  1356
	CDelimitedPath8* data8Bit = CDelimitedPath8::NewL(initData8Bit);	// Also excersies NewLC()
sl@0
  1357
	CleanupStack::PushL(data8Bit);
sl@0
  1358
sl@0
  1359
	error = DoDelimitedDataPopFrontL<HBufC8>(data8Bit, aList2);
sl@0
  1360
sl@0
  1361
	aTestHarness->EndTest(error);
sl@0
  1362
	CleanupStack::PopAndDestroy(3, dataBuf);	// dataBuf, title8Bit, data8Bit
sl@0
  1363
	}
sl@0
  1364
sl@0
  1365
void TestDelimitedDataPopBackL(const TDesC& aTestTitle, CIpuTestHarness* aTestHarness, 
sl@0
  1366
									   const TDesC& aData, VA_LIST& aList1, VA_LIST& aList2)
sl@0
  1367
	{
sl@0
  1368
	// Create title
sl@0
  1369
	HBufC* title16Bit = HBufC::NewLC(aTestTitle.Length() + KTitle16Bit().Length());
sl@0
  1370
	title16Bit->Des().Format(KTitle16Bit, &aTestTitle);
sl@0
  1371
	aTestHarness->StartTestL(*title16Bit);
sl@0
  1372
sl@0
  1373
	// Create TDelimitedPathParser object and do parsing
sl@0
  1374
	CDelimitedPath16* data16Bit = CDelimitedPath16::NewL(aData);	// Also excersies NewLC()
sl@0
  1375
	CleanupStack::PushL(data16Bit);
sl@0
  1376
sl@0
  1377
	TInt error = DoDelimitedDataPopBackL<HBufC16>(data16Bit, aList1);
sl@0
  1378
sl@0
  1379
	CleanupStack::PopAndDestroy(2, title16Bit);	// title16Bit, data16Bit
sl@0
  1380
	aTestHarness->EndTest(error);
sl@0
  1381
sl@0
  1382
	// Make 8-bit copy
sl@0
  1383
	HBufC8* dataBuf = HBufC8::NewLC(aData.Length());
sl@0
  1384
	TPtr8 initData8Bit = dataBuf->Des();
sl@0
  1385
	initData8Bit.Copy(aData);
sl@0
  1386
sl@0
  1387
	// Create title
sl@0
  1388
	HBufC* title8Bit = HBufC::NewLC(aTestTitle.Length() + KTitle8Bit().Length());
sl@0
  1389
	title8Bit->Des().Format(KTitle8Bit, &aTestTitle);
sl@0
  1390
	aTestHarness->StartTestL(*title8Bit);
sl@0
  1391
sl@0
  1392
	// Create TDelimitedPathParser object and do parsing
sl@0
  1393
	CDelimitedPath8* data8Bit = CDelimitedPath8::NewL(initData8Bit);	// Also excersies NewLC()
sl@0
  1394
	CleanupStack::PushL(data8Bit);
sl@0
  1395
sl@0
  1396
	error = DoDelimitedDataPopBackL<HBufC8>(data8Bit, aList2);
sl@0
  1397
sl@0
  1398
	aTestHarness->EndTest(error);
sl@0
  1399
	CleanupStack::PopAndDestroy(3, dataBuf);	// dataBuf, title8Bit, data8Bit
sl@0
  1400
	}
sl@0
  1401
sl@0
  1402
void TestDelimitedDataAddAndTrimFrontAndBackDelimiterL(const TDesC& aTestTitle, CIpuTestHarness* aTestHarness, const TDesC& aData)
sl@0
  1403
	{
sl@0
  1404
	// Create title
sl@0
  1405
	HBufC* title16Bit = HBufC::NewLC(aTestTitle.Length() + KTitle16Bit().Length());
sl@0
  1406
	title16Bit->Des().Format(KTitle16Bit, &aTestTitle);
sl@0
  1407
	aTestHarness->StartTestL(*title16Bit);
sl@0
  1408
sl@0
  1409
	// Create TDelimitedPathParser object and do parsing
sl@0
  1410
	CDelimitedPath16* data16Bit = CDelimitedPath16::NewL(aData);	// Also excersies NewLC()
sl@0
  1411
	CleanupStack::PushL(data16Bit);
sl@0
  1412
sl@0
  1413
	TInt error = DoDelimitedDataAddAndTrimFrontAndBackDelimiterL(data16Bit);
sl@0
  1414
sl@0
  1415
	CleanupStack::PopAndDestroy(2, title16Bit);	// title16Bit, data16Bit
sl@0
  1416
	aTestHarness->EndTest(error);
sl@0
  1417
sl@0
  1418
	// Make 8-bit copy
sl@0
  1419
	HBufC8* dataBuf = HBufC8::NewLC(aData.Length());
sl@0
  1420
	TPtr8 initData8Bit = dataBuf->Des();
sl@0
  1421
	initData8Bit.Copy(aData);
sl@0
  1422
sl@0
  1423
	// Create title
sl@0
  1424
	HBufC* title8Bit = HBufC::NewLC(aTestTitle.Length() + KTitle8Bit().Length());
sl@0
  1425
	title8Bit->Des().Format(KTitle8Bit, &aTestTitle);
sl@0
  1426
	aTestHarness->StartTestL(*title8Bit);
sl@0
  1427
sl@0
  1428
	// Create TDelimitedPathParser object and do parsing
sl@0
  1429
	CDelimitedPath8* data8Bit = CDelimitedPath8::NewL(initData8Bit);	// Also excersies NewLC()
sl@0
  1430
	CleanupStack::PushL(data8Bit);
sl@0
  1431
sl@0
  1432
	error = DoDelimitedDataAddAndTrimFrontAndBackDelimiterL(data8Bit);
sl@0
  1433
sl@0
  1434
	aTestHarness->EndTest(error);
sl@0
  1435
	CleanupStack::PopAndDestroy(3, dataBuf);	// dataBuf, title8Bit, data8Bit
sl@0
  1436
	}
sl@0
  1437
sl@0
  1438
void TestDelimitedDataInsertAndParseL(const TDesC& aTestTitle, CIpuTestHarness* aTestHarness, 
sl@0
  1439
											  const TDesC& aData, VA_LIST& aList1, VA_LIST& aList2, TInt aStartPos)
sl@0
  1440
	{
sl@0
  1441
	// Create title
sl@0
  1442
	HBufC* title16Bit = HBufC::NewLC(aTestTitle.Length() + KTitle16Bit().Length());
sl@0
  1443
	title16Bit->Des().Format(KTitle16Bit, &aTestTitle);
sl@0
  1444
	aTestHarness->StartTestL(*title16Bit);
sl@0
  1445
sl@0
  1446
	// Create TDelimitedPathParser object and do parsing
sl@0
  1447
	CDelimitedPath16* data16Bit = CDelimitedPath16::NewL(aData);	// Also excersies NewLC()
sl@0
  1448
	CleanupStack::PushL(data16Bit);
sl@0
  1449
sl@0
  1450
	// Do initial parse and get to position
sl@0
  1451
	data16Bit->Parse();
sl@0
  1452
	TInt error = DoDelimitedDataParseToPosition(data16Bit, aStartPos);
sl@0
  1453
	if( error == KErrNone )
sl@0
  1454
		{
sl@0
  1455
		error = DoDelimitedDataInsertL<HBufC16, TPtrC16>(data16Bit, aList1);
sl@0
  1456
		}
sl@0
  1457
	CleanupStack::PopAndDestroy(2, title16Bit);	// title16Bit, data16Bit
sl@0
  1458
	aTestHarness->EndTest(error);
sl@0
  1459
sl@0
  1460
	// Make 8-bit copy
sl@0
  1461
	HBufC8* dataBuf = HBufC8::NewLC(aData.Length());
sl@0
  1462
	TPtr8 initData8Bit = dataBuf->Des();
sl@0
  1463
	initData8Bit.Copy(aData);
sl@0
  1464
sl@0
  1465
	// Create title
sl@0
  1466
	HBufC* title8Bit = HBufC::NewLC(aTestTitle.Length() + KTitle8Bit().Length());
sl@0
  1467
	title8Bit->Des().Format(KTitle8Bit, &aTestTitle);
sl@0
  1468
	aTestHarness->StartTestL(*title8Bit);
sl@0
  1469
sl@0
  1470
	// Create TDelimitedPathParser object and do parsing
sl@0
  1471
	CDelimitedPath8* data8Bit = CDelimitedPath8::NewL(initData8Bit);	// Also excersies NewLC()
sl@0
  1472
	CleanupStack::PushL(data8Bit);
sl@0
  1473
sl@0
  1474
	// Do initial parse and get to position
sl@0
  1475
	data8Bit->Parse();
sl@0
  1476
	error = DoDelimitedDataParseToPosition(data8Bit, aStartPos);
sl@0
  1477
	if( error == KErrNone )
sl@0
  1478
		{
sl@0
  1479
		error = DoDelimitedDataInsertL<HBufC8, TPtrC8>(data8Bit, aList2);
sl@0
  1480
		}
sl@0
  1481
	aTestHarness->EndTest(error);
sl@0
  1482
	CleanupStack::PopAndDestroy(3, dataBuf);	// dataBuf, title8Bit, data8Bit
sl@0
  1483
	}
sl@0
  1484
sl@0
  1485
void TestDelimitedDataRemoveAndParseL(const TDesC& aTestTitle, CIpuTestHarness* aTestHarness, 
sl@0
  1486
											  const TDesC& aData, VA_LIST& aList1, VA_LIST& aList2, TInt aStartPos)
sl@0
  1487
	{
sl@0
  1488
	// Create title
sl@0
  1489
	HBufC* title16Bit = HBufC::NewLC(aTestTitle.Length() + KTitle16Bit().Length());
sl@0
  1490
	title16Bit->Des().Format(KTitle16Bit, &aTestTitle);
sl@0
  1491
	aTestHarness->StartTestL(*title16Bit);
sl@0
  1492
sl@0
  1493
	// Create TDelimitedPathParser object and do parsing
sl@0
  1494
	CDelimitedPath16* data16Bit = CDelimitedPath16::NewL(aData);	// Also excersies NewLC()
sl@0
  1495
	CleanupStack::PushL(data16Bit);
sl@0
  1496
sl@0
  1497
	// Do initial parse and get to position
sl@0
  1498
	data16Bit->Parse();
sl@0
  1499
	TInt error = DoDelimitedDataParseToPosition(data16Bit, aStartPos);
sl@0
  1500
	if( error == KErrNone )
sl@0
  1501
		{
sl@0
  1502
		error = DoDelimitedDataRemoveL<HBufC16, TPtrC16>(data16Bit, aList1);
sl@0
  1503
		}
sl@0
  1504
	CleanupStack::PopAndDestroy(2, title16Bit);	// title16Bit, data16Bit
sl@0
  1505
	aTestHarness->EndTest(error);
sl@0
  1506
sl@0
  1507
	// Make 8-bit copy
sl@0
  1508
	HBufC8* dataBuf = HBufC8::NewLC(aData.Length());
sl@0
  1509
	TPtr8 initData8Bit = dataBuf->Des();
sl@0
  1510
	initData8Bit.Copy(aData);
sl@0
  1511
sl@0
  1512
	// Create title
sl@0
  1513
	HBufC* title8Bit = HBufC::NewLC(aTestTitle.Length() + KTitle8Bit().Length());
sl@0
  1514
	title8Bit->Des().Format(KTitle8Bit, &aTestTitle);
sl@0
  1515
	aTestHarness->StartTestL(*title8Bit);
sl@0
  1516
sl@0
  1517
	// Create TDelimitedPathParser object and do parsing
sl@0
  1518
	CDelimitedPath8* data8Bit = CDelimitedPath8::NewL(initData8Bit);	// Also excersies NewLC()
sl@0
  1519
	CleanupStack::PushL(data8Bit);
sl@0
  1520
sl@0
  1521
	// Do initial parse and get to position
sl@0
  1522
	data8Bit->Parse();
sl@0
  1523
	error = DoDelimitedDataParseToPosition(data8Bit, aStartPos);
sl@0
  1524
	if( error == KErrNone )
sl@0
  1525
		{
sl@0
  1526
		error = DoDelimitedDataRemoveL<HBufC8, TPtrC8>(data8Bit, aList2);
sl@0
  1527
		}
sl@0
  1528
	aTestHarness->EndTest(error);
sl@0
  1529
	CleanupStack::PopAndDestroy(3, dataBuf);	// dataBuf, title8Bit, data8Bit
sl@0
  1530
	}
sl@0
  1531
sl@0
  1532
void TestDelimitedDataInsertAndParseReverseL(const TDesC& aTestTitle, CIpuTestHarness* aTestHarness, 
sl@0
  1533
													 const TDesC& aData, VA_LIST& aList1, VA_LIST& aList2, TInt aStartPos)
sl@0
  1534
	{
sl@0
  1535
	// Create title
sl@0
  1536
	HBufC* title16Bit = HBufC::NewLC(aTestTitle.Length() + KTitle16Bit().Length());
sl@0
  1537
	title16Bit->Des().Format(KTitle16Bit, &aTestTitle);
sl@0
  1538
	aTestHarness->StartTestL(*title16Bit);
sl@0
  1539
sl@0
  1540
	// Create TDelimitedPathParser object and do parsing
sl@0
  1541
	CDelimitedPath16* data16Bit = CDelimitedPath16::NewL(aData);	// Also excersies NewLC()
sl@0
  1542
	CleanupStack::PushL(data16Bit);
sl@0
  1543
sl@0
  1544
	// Do initial parse and get to position
sl@0
  1545
	data16Bit->ParseReverse();
sl@0
  1546
	TInt error = DoDelimitedDataParseToPosition(data16Bit, aStartPos);
sl@0
  1547
	if( error == KErrNone )
sl@0
  1548
		{
sl@0
  1549
		error = DoDelimitedDataInsertL<HBufC16, TPtrC16>(data16Bit, aList1);
sl@0
  1550
		}
sl@0
  1551
	CleanupStack::PopAndDestroy(2, title16Bit);	// title16Bit, data16Bit
sl@0
  1552
	aTestHarness->EndTest(error);
sl@0
  1553
sl@0
  1554
	// Make 8-bit copy
sl@0
  1555
	HBufC8* dataBuf = HBufC8::NewLC(aData.Length());
sl@0
  1556
	TPtr8 initData8Bit = dataBuf->Des();
sl@0
  1557
	initData8Bit.Copy(aData);
sl@0
  1558
sl@0
  1559
	// Create title
sl@0
  1560
	HBufC* title8Bit = HBufC::NewLC(aTestTitle.Length() + KTitle8Bit().Length());
sl@0
  1561
	title8Bit->Des().Format(KTitle8Bit, &aTestTitle);
sl@0
  1562
	aTestHarness->StartTestL(*title8Bit);
sl@0
  1563
sl@0
  1564
	// Create TDelimitedPathParser object and do parsing
sl@0
  1565
	CDelimitedPath8* data8Bit = CDelimitedPath8::NewL(initData8Bit);	// Also excersies NewLC()
sl@0
  1566
	CleanupStack::PushL(data8Bit);
sl@0
  1567
sl@0
  1568
	// Do initial parse and get to position
sl@0
  1569
	data8Bit->ParseReverse();
sl@0
  1570
	error = DoDelimitedDataParseToPosition(data8Bit, aStartPos);
sl@0
  1571
	if( error == KErrNone )
sl@0
  1572
		{
sl@0
  1573
		error = DoDelimitedDataInsertL<HBufC8, TPtrC8>(data8Bit, aList2);
sl@0
  1574
		}
sl@0
  1575
	aTestHarness->EndTest(error);
sl@0
  1576
	CleanupStack::PopAndDestroy(3, dataBuf);	// dataBuf, title8Bit, data8Bit
sl@0
  1577
	}
sl@0
  1578
sl@0
  1579
void TestDelimitedDataRemoveAndParseReverseL(const TDesC& aTestTitle, CIpuTestHarness* aTestHarness, 
sl@0
  1580
													 const TDesC& aData, VA_LIST& aList1, VA_LIST& aList2, TInt aStartPos)
sl@0
  1581
	{
sl@0
  1582
	// Create title
sl@0
  1583
	HBufC* title16Bit = HBufC::NewLC(aTestTitle.Length() + KTitle16Bit().Length());
sl@0
  1584
	title16Bit->Des().Format(KTitle16Bit, &aTestTitle);
sl@0
  1585
	aTestHarness->StartTestL(*title16Bit);
sl@0
  1586
sl@0
  1587
	// Create TDelimitedPathParser object and do parsing
sl@0
  1588
	CDelimitedPath16* data16Bit = CDelimitedPath16::NewL(aData);	// Also excersies NewLC()
sl@0
  1589
	CleanupStack::PushL(data16Bit);
sl@0
  1590
sl@0
  1591
	// Do initial parse and get to position
sl@0
  1592
	data16Bit->ParseReverse();
sl@0
  1593
	TInt error = DoDelimitedDataParseToPosition(data16Bit, aStartPos);
sl@0
  1594
	if( error == KErrNone )
sl@0
  1595
		{
sl@0
  1596
		error = DoDelimitedDataRemoveL<HBufC16, TPtrC16>(data16Bit, aList1);
sl@0
  1597
		}
sl@0
  1598
	CleanupStack::PopAndDestroy(2, title16Bit);	// title16Bit, data16Bit
sl@0
  1599
	aTestHarness->EndTest(error);
sl@0
  1600
sl@0
  1601
	// Make 8-bit copy
sl@0
  1602
	HBufC8* dataBuf = HBufC8::NewLC(aData.Length());
sl@0
  1603
	TPtr8 initData8Bit = dataBuf->Des();
sl@0
  1604
	initData8Bit.Copy(aData);
sl@0
  1605
sl@0
  1606
	// Create title
sl@0
  1607
	HBufC* title8Bit = HBufC::NewLC(aTestTitle.Length() + KTitle8Bit().Length());
sl@0
  1608
	title8Bit->Des().Format(KTitle8Bit, &aTestTitle);
sl@0
  1609
	aTestHarness->StartTestL(*title8Bit);
sl@0
  1610
sl@0
  1611
	// Create TDelimitedPathParser object and do parsing
sl@0
  1612
	CDelimitedPath8* data8Bit = CDelimitedPath8::NewL(initData8Bit);	// Also excersies NewLC()
sl@0
  1613
	CleanupStack::PushL(data8Bit);
sl@0
  1614
sl@0
  1615
	// Do initial parse and get to position
sl@0
  1616
	data8Bit->ParseReverse();
sl@0
  1617
	error = DoDelimitedDataParseToPosition(data8Bit, aStartPos);
sl@0
  1618
	if( error == KErrNone )
sl@0
  1619
		{
sl@0
  1620
		error = DoDelimitedDataRemoveL<HBufC8, TPtrC8>(data8Bit, aList2);
sl@0
  1621
		}
sl@0
  1622
	aTestHarness->EndTest(error);
sl@0
  1623
	CleanupStack::PopAndDestroy(3, dataBuf);	// dataBuf, title8Bit, data8Bit
sl@0
  1624
	}
sl@0
  1625
sl@0
  1626
void TestDelimitedDataInsertEscapeAndParseL(const TDesC& aTestTitle, CIpuTestHarness* aTestHarness, 
sl@0
  1627
													const TDesC& aData, VA_LIST& aList1, VA_LIST& aList2, TInt aStartPos)
sl@0
  1628
	{
sl@0
  1629
	// Create title
sl@0
  1630
	HBufC* title16Bit = HBufC::NewLC(aTestTitle.Length() + KTitle16Bit().Length());
sl@0
  1631
	title16Bit->Des().Format(KTitle16Bit, &aTestTitle);
sl@0
  1632
	aTestHarness->StartTestL(*title16Bit);
sl@0
  1633
sl@0
  1634
	// Create TDelimitedPathParser object and do parsing
sl@0
  1635
	CDelimitedPath16* data16Bit = CDelimitedPath16::NewL(aData);	// Also excersies NewLC()
sl@0
  1636
	CleanupStack::PushL(data16Bit);
sl@0
  1637
sl@0
  1638
	// Do initial parse and get to position
sl@0
  1639
	data16Bit->Parse();
sl@0
  1640
	TInt error = DoDelimitedDataParseToPosition(data16Bit, aStartPos);
sl@0
  1641
	if( error == KErrNone )
sl@0
  1642
		{
sl@0
  1643
		error = DoDelimitedDataInsertAndEscapeL<HBufC16, TPtrC16>(data16Bit, aList1);
sl@0
  1644
		}
sl@0
  1645
	CleanupStack::PopAndDestroy(2, title16Bit);	// title16Bit, data16Bit
sl@0
  1646
	aTestHarness->EndTest(error);
sl@0
  1647
sl@0
  1648
	// Make 8-bit copy
sl@0
  1649
	HBufC8* dataBuf = HBufC8::NewLC(aData.Length());
sl@0
  1650
	TPtr8 initData8Bit = dataBuf->Des();
sl@0
  1651
	initData8Bit.Copy(aData);
sl@0
  1652
sl@0
  1653
	// Create title
sl@0
  1654
	HBufC* title8Bit = HBufC::NewLC(aTestTitle.Length() + KTitle8Bit().Length());
sl@0
  1655
	title8Bit->Des().Format(KTitle8Bit, &aTestTitle);
sl@0
  1656
	aTestHarness->StartTestL(*title8Bit);
sl@0
  1657
sl@0
  1658
	// Create TDelimitedPathParser object and do parsing
sl@0
  1659
	CDelimitedPath8* data8Bit = CDelimitedPath8::NewL(initData8Bit);	// Also excersies NewLC()
sl@0
  1660
	CleanupStack::PushL(data8Bit);
sl@0
  1661
sl@0
  1662
	// Do initial parse and get to position
sl@0
  1663
	data8Bit->Parse();
sl@0
  1664
	error = DoDelimitedDataParseToPosition(data8Bit, aStartPos);
sl@0
  1665
	if( error == KErrNone )
sl@0
  1666
		{
sl@0
  1667
		error = DoDelimitedDataInsertAndEscapeL<HBufC8, TPtrC8>(data8Bit, aList2);
sl@0
  1668
		}
sl@0
  1669
	aTestHarness->EndTest(error);
sl@0
  1670
	CleanupStack::PopAndDestroy(3, dataBuf);	// dataBuf, title8Bit, data8Bit
sl@0
  1671
	}
sl@0
  1672
sl@0
  1673
void TestDelimitedDataInsertEscapeAndParseReverseL(const TDesC& aTestTitle, CIpuTestHarness* aTestHarness, 
sl@0
  1674
														   const TDesC& aData, VA_LIST& aList1, VA_LIST& aList2, TInt aStartPos)
sl@0
  1675
	{
sl@0
  1676
	// Create title
sl@0
  1677
	HBufC* title16Bit = HBufC::NewLC(aTestTitle.Length() + KTitle16Bit().Length());
sl@0
  1678
	title16Bit->Des().Format(KTitle16Bit, &aTestTitle);
sl@0
  1679
	aTestHarness->StartTestL(*title16Bit);
sl@0
  1680
sl@0
  1681
	// Create TDelimitedPathParser object and do parsing
sl@0
  1682
	CDelimitedPath16* data16Bit = CDelimitedPath16::NewL(aData);	// Also excersies NewLC()
sl@0
  1683
	CleanupStack::PushL(data16Bit);
sl@0
  1684
sl@0
  1685
	// Do initial parse and get to position
sl@0
  1686
	data16Bit->ParseReverse();
sl@0
  1687
	TInt error = DoDelimitedDataParseToPosition(data16Bit, aStartPos);
sl@0
  1688
	if( error == KErrNone )
sl@0
  1689
		{
sl@0
  1690
		error = DoDelimitedDataInsertAndEscapeL<HBufC16, TPtrC16>(data16Bit, aList1);
sl@0
  1691
		}
sl@0
  1692
	CleanupStack::PopAndDestroy(2, title16Bit);	// title16Bit, data16Bit
sl@0
  1693
	aTestHarness->EndTest(error);
sl@0
  1694
sl@0
  1695
	// Make 8-bit copy
sl@0
  1696
	HBufC8* dataBuf = HBufC8::NewLC(aData.Length());
sl@0
  1697
	TPtr8 initData8Bit = dataBuf->Des();
sl@0
  1698
	initData8Bit.Copy(aData);
sl@0
  1699
sl@0
  1700
	// Create title
sl@0
  1701
	HBufC* title8Bit = HBufC::NewLC(aTestTitle.Length() + KTitle8Bit().Length());
sl@0
  1702
	title8Bit->Des().Format(KTitle8Bit, &aTestTitle);
sl@0
  1703
	aTestHarness->StartTestL(*title8Bit);
sl@0
  1704
sl@0
  1705
	// Create TDelimitedPathParser object and do parsing
sl@0
  1706
	CDelimitedPath8* data8Bit = CDelimitedPath8::NewL(initData8Bit);	// Also excersies NewLC()
sl@0
  1707
	CleanupStack::PushL(data8Bit);
sl@0
  1708
sl@0
  1709
	// Do initial parse and get to position
sl@0
  1710
	data8Bit->ParseReverse();
sl@0
  1711
	error = DoDelimitedDataParseToPosition(data8Bit, aStartPos);
sl@0
  1712
	if( error == KErrNone )
sl@0
  1713
		{
sl@0
  1714
		error = DoDelimitedDataInsertAndEscapeL<HBufC8, TPtrC8>(data8Bit, aList2);
sl@0
  1715
		}
sl@0
  1716
	aTestHarness->EndTest(error);
sl@0
  1717
	CleanupStack::PopAndDestroy(3, dataBuf);	// dataBuf, title8Bit, data8Bit
sl@0
  1718
	}
sl@0
  1719
sl@0
  1720
//
sl@0
  1721
//
sl@0
  1722
//	Implementation of LOCAL functions - helper functions
sl@0
  1723
//
sl@0
  1724
//
sl@0
  1725
sl@0
  1726
#include "TDelimitedDataCommon.cpp"