os/ossrv/genericservices/httputils/Test/t_tinternetdate/t_internetdatetestcases.h
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) 2002-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
// Test cases for t_internetdate test harness
sl@0
    15
// 
sl@0
    16
//
sl@0
    17
sl@0
    18
sl@0
    19
#ifndef		__T_INTERNETDATETESTCASES_H__
sl@0
    20
#define		__T_INTERNETDATETESTCASES_H__
sl@0
    21
sl@0
    22
enum TInternetDateTestPanic
sl@0
    23
	{
sl@0
    24
	EInternetDateTestFailPanic			=0,
sl@0
    25
	EInternetDateCorruptTestFailPanic	=1
sl@0
    26
	};
sl@0
    27
sl@0
    28
struct TInternetDateTestCase
sl@0
    29
	{
sl@0
    30
	const TText8* iTextFormat;
sl@0
    31
	TInt iYear;	
sl@0
    32
	TMonth iMonth;
sl@0
    33
	TInt iDay;	// specify the day with a -1 offset as they start from 0
sl@0
    34
	TInt iHour;
sl@0
    35
	TInt iMin;
sl@0
    36
	TInt iSecond;
sl@0
    37
	};
sl@0
    38
sl@0
    39
sl@0
    40
#ifdef __PARSEINTERNETFORMTEST__
sl@0
    41
sl@0
    42
const TInt KNumberCorruptTestCases=15;
sl@0
    43
static const TText8* KCorruptTestCases[]=
sl@0
    44
	{
sl@0
    45
		_S8("Sun, 06 Nov 19940 08:49:37 GMT"),	
sl@0
    46
		_S8("Sun, 06 Nov 01994 08:49:37 GMT"),	
sl@0
    47
		_S8("Sun, 06 Nov 1994 008:49:37 GMT"),	
sl@0
    48
		_S8("Sun, 06 Nov 1994 080:49:37 GMT"),	
sl@0
    49
		_S8("Sun, 06 Nov 1994 010:49:37 GMT"),	
sl@0
    50
		_S8("Sun, 06 Nov 1994 08:049:37 GMT"),	
sl@0
    51
		_S8("Sun, 06 Nov 1994 08:010:37 GMT"),	
sl@0
    52
		_S8("Sun, 06 Nov 1994 08:490:37 GMT"),	
sl@0
    53
		_S8("Sun, 06 Nov 1994 08:090:37 GMT"),	
sl@0
    54
		_S8("Sun, 06 Nov 1994 08:49:037 GMT"),	
sl@0
    55
		_S8("Sun, 06 Nov 1994 08:49:370 GMT"),	
sl@0
    56
		_S8("Sun, 06 Nov 1994 08:49:030 GMT"),	
sl@0
    57
sl@0
    58
		_S8("Sun, 0612343 Nov 1994 08:49:37 GMT"),	
sl@0
    59
		_S8("Sun, 06 November 1994 08:49:37 GMT"),
sl@0
    60
		_S8("Sun, 0006 Nov 1994 08:49:37 GMT")	
sl@0
    61
	};
sl@0
    62
#endif
sl@0
    63
sl@0
    64
const TInt KNumberRfc1123GMTTzTestCases = 22;
sl@0
    65
const struct TInternetDateTestCase KRfc1123GMTTzTestCases[] = 
sl@0
    66
	{
sl@0
    67
		
sl@0
    68
		{_S8("Sun, 06 Nov 1994 08:49:37 GMT"), 1994,ENovember,5,8,49,37},
sl@0
    69
		{_S8("Mon, 21 Jan 2002 12:00:00 GMT"), 2002,EJanuary, 20,12,0,0},
sl@0
    70
		{_S8("Tue, 22 Jan 2002 12:00:00 GMT"), 2002,EJanuary, 21,12,0,0},
sl@0
    71
		{_S8("Wed, 23 Jan 2002 12:00:00 GMT"), 2002,EJanuary, 22,12,0,0},
sl@0
    72
		{_S8("Thu, 24 Jan 2002 12:00:00 GMT"), 2002,EJanuary, 23,12,0,0},
sl@0
    73
		{_S8("Fri, 25 Jan 2002 12:00:00 GMT"), 2002,EJanuary, 24,12,0,0},
sl@0
    74
		{_S8("Sat, 26 Jan 2002 12:00:00 GMT"), 2002,EJanuary, 25,12,0,0},
sl@0
    75
		{_S8("Sun, 27 Jan 2002 12:00:00 GMT"), 2002,EJanuary, 26,12,0,0},
sl@0
    76
		{_S8("Mon, 04 Feb 2002 12:00:00 GMT"), 2002,EFebruary, 3,12,0,0},
sl@0
    77
		{_S8("Mon, 04 Mar 2002 12:00:00 GMT"), 2002,EMarch, 3,12,0,0},
sl@0
    78
		{_S8("Tue, 02 Apr 2002 12:00:00 GMT"), 2002,EApril, 1,12,0,0},
sl@0
    79
		{_S8("Tue, 07 May 2002 12:00:00 GMT"), 2002,EMay, 6,12,0,0},
sl@0
    80
		{_S8("Wed, 05 Jun 2002 12:00:00 GMT"), 2002,EJune, 4,12,0,0},
sl@0
    81
		{_S8("Wed, 10 Jul 2002 12:00:00 GMT"), 2002,EJuly, 9,12,0,0},
sl@0
    82
		{_S8("Thu, 15 Aug 2002 12:00:00 GMT"), 2002,EAugust, 14,12,0,0},
sl@0
    83
		{_S8("Thu, 12 Sep 2002 12:00:00 GMT"), 2002,ESeptember, 11,12,0,0},
sl@0
    84
		{_S8("Fri, 11 Oct 2002 12:00:00 GMT"), 2002,EOctober, 10,12,0,0},
sl@0
    85
		{_S8("Fri, 18 Oct 2002 12:00:00 GMT"), 2002,EOctober, 17,12,0,0},
sl@0
    86
		{_S8("Sat, 23 Nov 2002 12:00:00 GMT"), 2002,ENovember, 22,12,0,0},
sl@0
    87
		{_S8("Sat, 30 Nov 2002 12:00:00 GMT"), 2002,ENovember, 29,12,0,0},
sl@0
    88
		{_S8("Sun, 01 Dec 2002 12:00:00 GMT"), 2002,EDecember, 0,12,0,0},
sl@0
    89
		{_S8("Sun, 29 Dec 2002 12:00:00 GMT"), 2002,EDecember, 28,12,0,0},
sl@0
    90
	};
sl@0
    91
sl@0
    92
sl@0
    93
const TInt KNumberINC090613TestCases = 2;
sl@0
    94
static const TBuf8<50> KINC090613TestCases[]=
sl@0
    95
	{
sl@0
    96
		_L8("Sun, 6 Nov 1994 08:49:37 GMT"),
sl@0
    97
		_L8("Sun, 06 Nov 1994 08:49:37 GMT")
sl@0
    98
	};
sl@0
    99
sl@0
   100
const TInt KNumberINC107382TestCases = 9;
sl@0
   101
static const TBuf8<50> KINC107382TestCases[]=
sl@0
   102
	{
sl@0
   103
		_L8(" Sun, 6 Nov 1994 08:49:37 GMT"),
sl@0
   104
		_L8("Sun, 06 Nov 1994 08:49:37 GMT "),
sl@0
   105
		_L8("   Sun, 06 Nov 1994 08:49:37 GMT   "),
sl@0
   106
		_L8(" Sunday, 06-Nov-94 08:49:37 GMT"),
sl@0
   107
		_L8("Sunday, 06-Nov-94 08:49:37 GMT "),
sl@0
   108
		_L8("   Sunday, 06-Nov-94 08:49:37 GMT   "),
sl@0
   109
		_L8(" Sun Nov 6 08:49:37 1994"),
sl@0
   110
		_L8("Sun Nov 6 08:49:37 1994 "),
sl@0
   111
		_L8("   Sun Nov 6 08:49:37 1994   "),
sl@0
   112
	};
sl@0
   113
sl@0
   114
const TInt KNumberRfc850GMTTzTestCases = 22;
sl@0
   115
const struct TInternetDateTestCase KRfc850GMTTzTestCases[] = 
sl@0
   116
	{
sl@0
   117
		
sl@0
   118
		{_S8("Sun, 06-Nov-94 08:49:37 GMT"), 1994,ENovember,5,8,49,37},
sl@0
   119
		{_S8("Mon, 21-Jan-02 12:00:00 GMT"), 2002,EJanuary, 20,12,0,0},
sl@0
   120
		{_S8("Tue, 22-Jan-02 12:00:00 GMT"), 2002,EJanuary, 21,12,0,0},
sl@0
   121
		{_S8("Wed, 23-Jan-02 12:00:00 GMT"), 2002,EJanuary, 22,12,0,0},
sl@0
   122
		{_S8("Thu, 24-Jan-02 12:00:00 GMT"), 2002,EJanuary, 23,12,0,0},
sl@0
   123
		{_S8("Fri, 25-Jan-02 12:00:00 GMT"), 2002,EJanuary, 24,12,0,0},
sl@0
   124
		{_S8("Sat, 26-Jan-02 12:00:00 GMT"), 2002,EJanuary, 25,12,0,0},
sl@0
   125
		{_S8("Sun, 27-Jan-02 12:00:00 GMT"), 2002,EJanuary, 26,12,0,0},
sl@0
   126
		{_S8("Mon, 04-Feb-02 12:00:00 GMT"), 2002,EFebruary, 3,12,0,0},
sl@0
   127
		{_S8("Mon, 04-Mar-02 12:00:00 GMT"), 2002,EMarch, 3,12,0,0},
sl@0
   128
		{_S8("Tue, 02-Apr-02 12:00:00 GMT"), 2002,EApril, 1,12,0,0},
sl@0
   129
		{_S8("Tue, 07-May-02 12:00:00 GMT"), 2002,EMay, 6,12,0,0},
sl@0
   130
		{_S8("Wed, 05-Jun-02 12:00:00 GMT"), 2002,EJune, 4,12,0,0},
sl@0
   131
		{_S8("Wed, 10-Jul-02 12:00:00 GMT"), 2002,EJuly, 9,12,0,0},
sl@0
   132
		{_S8("Thu, 15-Aug-02 12:00:00 GMT"), 2002,EAugust, 14,12,0,0},
sl@0
   133
		{_S8("Thu, 12-Sep-02 12:00:00 GMT"), 2002,ESeptember, 11,12,0,0},
sl@0
   134
		{_S8("Fri, 11-Oct-02 12:00:00 GMT"), 2002,EOctober, 10,12,0,0},
sl@0
   135
		{_S8("Fri, 18-Oct-02 12:00:00 GMT"), 2002,EOctober, 17,12,0,0},
sl@0
   136
		{_S8("Sat, 23-Nov-02 12:00:00 GMT"), 2002,ENovember, 22,12,0,0},
sl@0
   137
		{_S8("Sat, 30-Nov-02 12:00:00 GMT"), 2002,ENovember, 29,12,0,0},
sl@0
   138
		{_S8("Sun, 01-Dec-02 12:00:00 GMT"), 2002,EDecember, 0,12,0,0},
sl@0
   139
		{_S8("Sun, 29-Dec-02 12:00:00 GMT"), 2002,EDecember, 28,12,0,0},
sl@0
   140
	};
sl@0
   141
sl@0
   142
sl@0
   143
const TInt KNumberAscTimeTestCases = 22;
sl@0
   144
const struct TInternetDateTestCase KAscTimeTestCases[] = 
sl@0
   145
	{
sl@0
   146
		{_S8("Sun Nov  6 08:49:37 1994"), 1994,ENovember,5,8,49,37},
sl@0
   147
		{_S8("Mon Jan 21 12:00:00 2002"), 2002,EJanuary, 20,12,0,0},
sl@0
   148
		{_S8("Tue Jan 22 12:00:00 2002"), 2002,EJanuary, 21,12,0,0},
sl@0
   149
		{_S8("Wed Jan 23 12:00:00 2002"), 2002,EJanuary, 22,12,0,0},
sl@0
   150
		{_S8("Thu Jan 24 12:00:00 2002"), 2002,EJanuary, 23,12,0,0},
sl@0
   151
		{_S8("Fri Jan 25 12:00:00 2002"), 2002,EJanuary, 24,12,0,0},
sl@0
   152
		{_S8("Sat Jan 26 12:00:00 2002"), 2002,EJanuary, 25,12,0,0},
sl@0
   153
		{_S8("Sun Jan 27 12:00:00 2002"), 2002,EJanuary, 26,12,0,0},
sl@0
   154
		{_S8("Mon Feb  4 12:00:00 2002"), 2002,EFebruary, 3,12,0,0},
sl@0
   155
		{_S8("Mon Mar  4 12:00:00 2002"), 2002,EMarch, 3,12,0,0},
sl@0
   156
		{_S8("Tue Apr  2 12:00:00 2002"), 2002,EApril, 1,12,0,0},
sl@0
   157
		{_S8("Tue May  7 12:00:00 2002"), 2002,EMay, 6,12,0,0},
sl@0
   158
		{_S8("Wed Jun  5 12:00:00 2002"), 2002,EJune, 4,12,0,0},
sl@0
   159
		{_S8("Wed Jul 10 12:00:00 2002"), 2002,EJuly, 9,12,0,0},
sl@0
   160
		{_S8("Thu Aug 15 12:00:00 2002"), 2002,EAugust, 14,12,0,0},
sl@0
   161
		{_S8("Thu Sep 12 12:00:00 2002"), 2002,ESeptember, 11,12,0,0},
sl@0
   162
		{_S8("Fri Oct 11 12:00:00 2002"), 2002,EOctober, 10,12,0,0},
sl@0
   163
		{_S8("Fri Oct 18 12:00:00 2002"), 2002,EOctober, 17,12,0,0},
sl@0
   164
		{_S8("Sat Nov 23 12:00:00 2002"), 2002,ENovember, 22,12,0,0},
sl@0
   165
		{_S8("Sat Nov 30 12:00:00 2002"), 2002,ENovember, 29,12,0,0},
sl@0
   166
		{_S8("Sun Dec  1 12:00:00 2002"), 2002,EDecember, 0,12,0,0},
sl@0
   167
		{_S8("Sun Dec 29 12:00:00 2002"), 2002,EDecember, 28,12,0,0},
sl@0
   168
	};
sl@0
   169
sl@0
   170
sl@0
   171
const TInt KNumberRfc1123NonGMTTzTestCases = 45;
sl@0
   172
const struct TInternetDateTestCase KRfc1123NonGMTTzTestCases[] =
sl@0
   173
	{
sl@0
   174
	{_S8("Mon, 21 Jan 2002 00:00:00 EST"), 2002,EJanuary, 19,19,0,0}, //  EST -5
sl@0
   175
	{_S8("Mon, 21 Jan 2002 23:00:00 EST"), 2002,EJanuary, 20,18,0,0}, //  EST -5 	
sl@0
   176
	{_S8("Mon, 21 Jan 2002 00:00:00 EDT"), 2002,EJanuary, 19,20,0,0}, //  EDT -4
sl@0
   177
	{_S8("Mon, 21 Jan 2002 23:00:00 EDT"), 2002,EJanuary, 20,19,0,0}, //  EDT -4 
sl@0
   178
sl@0
   179
	{_S8("Mon, 21 Jan 2002 00:00:00 CST"), 2002,EJanuary, 19,18,0,0}, //  CST -6
sl@0
   180
	{_S8("Mon, 21 Jan 2002 23:00:00 CST"), 2002,EJanuary, 20,17,0,0}, //  CST -6 
sl@0
   181
	{_S8("Mon, 21 Jan 2002 00:00:00 CDT"), 2002,EJanuary, 19,19,0,0}, //  CDT -5
sl@0
   182
	{_S8("Mon, 21 Jan 2002 23:00:00 CDT"), 2002,EJanuary, 20,18,0,0}, //  CDT -5 
sl@0
   183
sl@0
   184
	{_S8("Mon, 21 Jan 2002 00:00:00 MST"), 2002,EJanuary, 19,17,0,0}, //  MST -7
sl@0
   185
	{_S8("Mon, 21 Jan 2002 23:00:00 MST"), 2002,EJanuary, 20,16,0,0}, //  MST -7 
sl@0
   186
	{_S8("Mon, 21 Jan 2002 00:00:00 MDT"), 2002,EJanuary, 19,18,0,0}, //  MDT -6
sl@0
   187
	{_S8("Mon, 21 Jan 2002 23:00:00 MDT"), 2002,EJanuary, 20,17,0,0}, //  MDT -6 
sl@0
   188
	
sl@0
   189
	{_S8("Mon, 21 Jan 2002 00:00:00 PST"), 2002,EJanuary, 19,16,0,0}, //  PST -8
sl@0
   190
	{_S8("Mon, 21 Jan 2002 23:00:00 PST"), 2002,EJanuary, 20,15,0,0}, //  PST -8 
sl@0
   191
	{_S8("Mon, 21 Jan 2002 00:00:00 PDT"), 2002,EJanuary, 19,17,0,0}, //  PDT -7
sl@0
   192
	{_S8("Mon, 21 Jan 2002 23:00:00 PDT"), 2002,EJanuary, 20,16,0,0}, //  PDT -7 
sl@0
   193
sl@0
   194
	{_S8("Mon, 21 Jan 2002 00:00:00 UT"), 2002,EJanuary, 20,0,0,0},   //  UT = GMT	
sl@0
   195
	{_S8("Mon, 21 Jan 2002 23:00:00 UT"), 2002,EJanuary, 20,23,0,0},  //  UT = GMT
sl@0
   196
	{_S8("Mon, 21 Jan 2002 00:00:00 GMT"), 2002,EJanuary, 20,0,0,0},  //  GMT	
sl@0
   197
	{_S8("Mon, 21 Jan 2002 23:00:00 GMT"), 2002,EJanuary, 20,23,0,0}, //  GMT
sl@0
   198
	
sl@0
   199
	// Military Time Zones (All these should be considered equivalent to GMT)
sl@0
   200
	{_S8("Mon, 21 Jan 2002 00:00:00 A"), 2002,EJanuary, 20,0,0,0}, //  A	
sl@0
   201
	{_S8("Mon, 21 Jan 2002 00:00:00 B"), 2002,EJanuary, 20,0,0,0}, //  B	
sl@0
   202
	{_S8("Mon, 21 Jan 2002 00:00:00 C"), 2002,EJanuary, 20,0,0,0}, //  C	
sl@0
   203
	{_S8("Mon, 21 Jan 2002 00:00:00 D"), 2002,EJanuary, 20,0,0,0}, //  D	
sl@0
   204
	{_S8("Mon, 21 Jan 2002 00:00:00 E"), 2002,EJanuary, 20,0,0,0}, //  E	
sl@0
   205
	{_S8("Mon, 21 Jan 2002 00:00:00 F"), 2002,EJanuary, 20,0,0,0}, //  F	
sl@0
   206
	{_S8("Mon, 21 Jan 2002 00:00:00 G"), 2002,EJanuary, 20,0,0,0}, //  G	
sl@0
   207
	{_S8("Mon, 21 Jan 2002 00:00:00 H"), 2002,EJanuary, 20,0,0,0}, //  H
sl@0
   208
	{_S8("Mon, 21 Jan 2002 00:00:00 I"), 2002,EJanuary, 20,0,0,0}, //  I	
sl@0
   209
	{_S8("Mon, 21 Jan 2002 00:00:00 K"), 2002,EJanuary, 20,0,0,0}, //  K
sl@0
   210
	{_S8("Mon, 21 Jan 2002 00:00:00 L"), 2002,EJanuary, 20,0,0,0}, //  L
sl@0
   211
	{_S8("Mon, 21 Jan 2002 00:00:00 M"), 2002,EJanuary, 20,0,0,0}, //  M
sl@0
   212
	{_S8("Mon, 21 Jan 2002 00:00:00 Z"), 2002,EJanuary, 20,0,0,0}, //  Z
sl@0
   213
	{_S8("Mon, 21 Jan 2002 00:00:00 N"), 2002,EJanuary, 20,0,0,0}, //  N
sl@0
   214
	{_S8("Mon, 21 Jan 2002 00:00:00 O"), 2002,EJanuary, 20,0,0,0}, //  O
sl@0
   215
	{_S8("Mon, 21 Jan 2002 00:00:00 P"), 2002,EJanuary, 20,0,0,0}, //  P
sl@0
   216
	{_S8("Mon, 21 Jan 2002 00:00:00 Q"), 2002,EJanuary, 20,0,0,0}, //  Q
sl@0
   217
	{_S8("Mon, 21 Jan 2002 00:00:00 R"), 2002,EJanuary, 20,0,0,0}, //  R
sl@0
   218
	{_S8("Mon, 21 Jan 2002 00:00:00 S"), 2002,EJanuary, 20,0,0,0}, //  S
sl@0
   219
	{_S8("Mon, 21 Jan 2002 00:00:00 T"), 2002,EJanuary, 20,0,0,0}, //  T
sl@0
   220
	{_S8("Mon, 21 Jan 2002 00:00:00 U"), 2002,EJanuary, 20,0,0,0}, //  U
sl@0
   221
	{_S8("Mon, 21 Jan 2002 00:00:00 V"), 2002,EJanuary, 20,0,0,0}, //  V
sl@0
   222
	{_S8("Mon, 21 Jan 2002 00:00:00 W"), 2002,EJanuary, 20,0,0,0}, //  W
sl@0
   223
	{_S8("Mon, 21 Jan 2002 00:00:00 X"), 2002,EJanuary, 20,0,0,0}, //  X
sl@0
   224
	{_S8("Mon, 21 Jan 2002 00:00:00 Y"), 2002,EJanuary, 20,0,0,0}  //  Z
sl@0
   225
	};
sl@0
   226
sl@0
   227
const TInt KNumberRfc850NonGMTTzTestCases = 45;
sl@0
   228
const struct TInternetDateTestCase KRfc850NonGMTTzTestCases[] =
sl@0
   229
	{
sl@0
   230
	{_S8("Mon, 21-Jan-02 00:00:00 EST"), 2002,EJanuary, 19,19,0,0}, //  EST -5
sl@0
   231
	{_S8("Mon, 21-Jan-02 23:00:00 EST"), 2002,EJanuary, 20,18,0,0}, //  EST -5 	
sl@0
   232
	{_S8("Mon, 21-Jan-02 00:00:00 EDT"), 2002,EJanuary, 19,20,0,0}, //  EDT -4
sl@0
   233
	{_S8("Mon, 21-Jan-02 23:00:00 EDT"), 2002,EJanuary, 20,19,0,0}, //  EDT -4 
sl@0
   234
sl@0
   235
	{_S8("Mon, 21-Jan-02 00:00:00 CST"), 2002,EJanuary, 19,18,0,0}, //  CST -6
sl@0
   236
	{_S8("Mon, 21-Jan-02 23:00:00 CST"), 2002,EJanuary, 20,17,0,0}, //  CST -6 
sl@0
   237
	{_S8("Mon, 21-Jan-02 00:00:00 CDT"), 2002,EJanuary, 19,19,0,0}, //  CDT -5
sl@0
   238
	{_S8("Mon, 21-Jan-02 23:00:00 CDT"), 2002,EJanuary, 20,18,0,0}, //  CDT -5 
sl@0
   239
sl@0
   240
	{_S8("Mon, 21-Jan-02 00:00:00 MST"), 2002,EJanuary, 19,17,0,0}, //  MST -7
sl@0
   241
	{_S8("Mon, 21-Jan-02 23:00:00 MST"), 2002,EJanuary, 20,16,0,0}, //  MST -7 
sl@0
   242
	{_S8("Mon, 21-Jan-02 00:00:00 MDT"), 2002,EJanuary, 19,18,0,0}, //  MDT -6
sl@0
   243
	{_S8("Mon, 21-Jan-02 23:00:00 MDT"), 2002,EJanuary, 20,17,0,0}, //  MDT -6 
sl@0
   244
	
sl@0
   245
	{_S8("Mon, 21-Jan-02 00:00:00 PST"), 2002,EJanuary, 19,16,0,0}, //  PST -8
sl@0
   246
	{_S8("Mon, 21-Jan-02 23:00:00 PST"), 2002,EJanuary, 20,15,0,0}, //  PST -8 
sl@0
   247
	{_S8("Mon, 21-Jan-02 00:00:00 PDT"), 2002,EJanuary, 19,17,0,0}, //  PDT -7
sl@0
   248
	{_S8("Mon, 21-Jan-02 23:00:00 PDT"), 2002,EJanuary, 20,16,0,0}, //  PDT -7 
sl@0
   249
sl@0
   250
	{_S8("Mon, 21-Jan-02 00:00:00 UT"), 2002,EJanuary, 20,0,0,0},   //  UT = GMT	
sl@0
   251
	{_S8("Mon, 21-Jan-02 23:00:00 UT"), 2002,EJanuary, 20,23,0,0},  //  UT = GMT
sl@0
   252
	{_S8("Mon, 21-Jan-02 00:00:00 GMT"), 2002,EJanuary, 20,0,0,0},  //  GMT	
sl@0
   253
	{_S8("Mon, 21-Jan-02 23:00:00 GMT"), 2002,EJanuary, 20,23,0,0}, //  GMT
sl@0
   254
	
sl@0
   255
	// Military Time Zones (All these should be considered equivalent to GMT)
sl@0
   256
	{_S8("Mon, 21-Jan-02 00:00:00 A"), 2002,EJanuary, 20,0,0,0}, //  A	
sl@0
   257
	{_S8("Mon, 21-Jan-02 00:00:00 B"), 2002,EJanuary, 20,0,0,0}, //  B	
sl@0
   258
	{_S8("Mon, 21-Jan-02 00:00:00 C"), 2002,EJanuary, 20,0,0,0}, //  C	
sl@0
   259
	{_S8("Mon, 21-Jan-02 00:00:00 D"), 2002,EJanuary, 20,0,0,0}, //  D	
sl@0
   260
	{_S8("Mon, 21-Jan-02 00:00:00 E"), 2002,EJanuary, 20,0,0,0}, //  E	
sl@0
   261
	{_S8("Mon, 21-Jan-02 00:00:00 F"), 2002,EJanuary, 20,0,0,0}, //  F	
sl@0
   262
	{_S8("Mon, 21-Jan-02 00:00:00 G"), 2002,EJanuary, 20,0,0,0}, //  G	
sl@0
   263
	{_S8("Mon, 21-Jan-02 00:00:00 H"), 2002,EJanuary, 20,0,0,0}, //  H
sl@0
   264
	{_S8("Mon, 21-Jan-02 00:00:00 I"), 2002,EJanuary, 20,0,0,0}, //  I	
sl@0
   265
	{_S8("Mon, 21-Jan-02 00:00:00 K"), 2002,EJanuary, 20,0,0,0}, //  K
sl@0
   266
	{_S8("Mon, 21-Jan-02 00:00:00 L"), 2002,EJanuary, 20,0,0,0}, //  L
sl@0
   267
	{_S8("Mon, 21-Jan-02 00:00:00 M"), 2002,EJanuary, 20,0,0,0}, //  M
sl@0
   268
	{_S8("Mon, 21-Jan-02 00:00:00 Z"), 2002,EJanuary, 20,0,0,0}, //  Z
sl@0
   269
	{_S8("Mon, 21-Jan-02 00:00:00 N"), 2002,EJanuary, 20,0,0,0}, //  N
sl@0
   270
	{_S8("Mon, 21-Jan-02 00:00:00 O"), 2002,EJanuary, 20,0,0,0}, //  O
sl@0
   271
	{_S8("Mon, 21-Jan-02 00:00:00 P"), 2002,EJanuary, 20,0,0,0}, //  P
sl@0
   272
	{_S8("Mon, 21-Jan-02 00:00:00 Q"), 2002,EJanuary, 20,0,0,0}, //  Q
sl@0
   273
	{_S8("Mon, 21-Jan-02 00:00:00 R"), 2002,EJanuary, 20,0,0,0}, //  R
sl@0
   274
	{_S8("Mon, 21-Jan-02 00:00:00 S"), 2002,EJanuary, 20,0,0,0}, //  S
sl@0
   275
	{_S8("Mon, 21-Jan-02 00:00:00 T"), 2002,EJanuary, 20,0,0,0}, //  T
sl@0
   276
	{_S8("Mon, 21-Jan-02 00:00:00 U"), 2002,EJanuary, 20,0,0,0}, //  U
sl@0
   277
	{_S8("Mon, 21-Jan-02 00:00:00 V"), 2002,EJanuary, 20,0,0,0}, //  V
sl@0
   278
	{_S8("Mon, 21-Jan-02 00:00:00 W"), 2002,EJanuary, 20,0,0,0}, //  W
sl@0
   279
	{_S8("Mon, 21-Jan-02 00:00:00 X"), 2002,EJanuary, 20,0,0,0}, //  X
sl@0
   280
	{_S8("Mon, 21-Jan-02 00:00:00 Y"), 2002,EJanuary, 20,0,0,0}  //  Z
sl@0
   281
	};
sl@0
   282
sl@0
   283
const TInt KNumberRfc1123MisformedTestCases = 8;
sl@0
   284
const struct TInternetDateTestCase KRfc1123MisformedTestCases[] =
sl@0
   285
	{
sl@0
   286
	// Test whitespace parsing first, even though these should be in a predefined format
sl@0
   287
	// Whitespace between 21 Jan 2002 MUST be 1 space or -
sl@0
   288
	{_S8("Mon, 21 Jan 2002 00:00:00 ZDT"), 2002,EJanuary, 20,0,0,0},	// Invalid Tz Should be 0 offset
sl@0
   289
	{_S8("   Mon, 21 Jan 2002 00:00:00 GMT"), 2002,EJanuary, 20,0,0,0},
sl@0
   290
	{_S8("Mon,    21 Jan 2002 00:00:00 GMT"), 2002,EJanuary, 20,0,0,0},
sl@0
   291
	{_S8("Mon, 21 Jan 2002    00:00:00 GMT"), 2002,EJanuary, 20,0,0,0},
sl@0
   292
	{_S8("Mon, 21 Jan 2002 00:00:00    GMT"), 2002,EJanuary, 20,0,0,0},
sl@0
   293
	{_S8("Mon, 21 Jan 2002 00:00:00 GMT   "), 2002,EJanuary, 20,0,0,0},
sl@0
   294
sl@0
   295
	{_S8("Mon, 21 Jan 2002 00:00:00 J"), 2002,EJanuary, 20,0,0,0},		// Should ignore military time zone anyway
sl@0
   296
	{_S8("Mon, 21 Jan 2002 00:00:00 ZST"), 2002,EJanuary, 20,0,0,0} 	// Invalid Tz Should be 0 offset
sl@0
   297
	};
sl@0
   298
sl@0
   299
sl@0
   300
const TInt KNumberRfc850MisformedTestCases = 8;
sl@0
   301
const struct TInternetDateTestCase KRfc850MisformedTestCases[] =
sl@0
   302
	{
sl@0
   303
	// Test whitespace parsing first, even though these should be in a predefined format
sl@0
   304
	// Whitespace between 21 Jan 2002 MUST be 1 space or -
sl@0
   305
	{_S8("   Mon, 21-Jan-02 00:00:00 GMT"), 2002,EJanuary, 20,0,0,0},
sl@0
   306
	{_S8("Mon,    21-Jan-02 00:00:00 GMT"), 2002,EJanuary, 20,0,0,0},
sl@0
   307
	{_S8("Mon, 21-Jan-02    00:00:00 GMT"), 2002,EJanuary, 20,0,0,0},
sl@0
   308
	{_S8("Mon, 21-Jan-02 00:00:00    GMT"), 2002,EJanuary, 20,0,0,0},
sl@0
   309
	{_S8("Mon, 21-Jan-02 00:00:00 GMT   "), 2002,EJanuary, 20,0,0,0},
sl@0
   310
sl@0
   311
	{_S8("Mon, 21-Jan-02 00:00:00 J"), 2002,EJanuary, 20,0,0,0},		// Should ignore military time zone anyway
sl@0
   312
	{_S8("Mon, 21-Jan-02 00:00:00 ZST"), 2002,EJanuary, 20,0,0,0},	// Invalid Tz Should be 0 offset
sl@0
   313
	{_S8("Mon, 21-Jan-02 00:00:00 ZDT"), 2002,EJanuary, 20,0,0,0}	// Invalid Tz Should be 0 offset
sl@0
   314
	};
sl@0
   315
sl@0
   316
const TInt KNumberRfc1123TimeOffsetTzTestCases = 64;
sl@0
   317
const struct TInternetDateTestCase KRfc1123TimeOffsetTzTestCases[] =
sl@0
   318
	{
sl@0
   319
	{_S8("Mon, 21 Jan 2002 00:00:00 +2359"), 2002,EJanuary, 20,23,59,0},	//  +2359	
sl@0
   320
	{_S8("Mon, 21 Jan 2002 23:00:00 +2359"), 2002,EJanuary, 21,22,59,0},	//  +2359
sl@0
   321
	{_S8("Mon, 21 Jan 2002 00:00:00 +2400"), 2002,EJanuary, 20,0,0,0},		//  +2400  Max offset should be +2359
sl@0
   322
	{_S8("Mon, 21 Jan 2002 23:00:00 +2400"), 2002,EJanuary, 20,23,0,0},		//  +2400  Max offset should be +2359
sl@0
   323
	{_S8("Mon, 21 Jan 2002 00:00:00 +0060"), 2002,EJanuary, 20,0,0,0},		//  +0060  Max min offset is 59
sl@0
   324
	{_S8("Mon, 21 Jan 2002 23:00:00 +0060"), 2002,EJanuary, 20,23,0,0},		//  +0060  Max min offset is 59
sl@0
   325
	{_S8("Mon, 21 Jan 2002 00:00:00 +0000"), 2002,EJanuary, 20,0,0,0},		//  +0000	
sl@0
   326
	{_S8("Mon, 21 Jan 2002 23:00:00 -0000"), 2002,EJanuary, 20,23,0,0},		//  -0000
sl@0
   327
	{_S8("Mon, 21 Jan 2002 00:00:00 +0100"), 2002,EJanuary, 20,1,0,0},		//  +0100	
sl@0
   328
	{_S8("Mon, 21 Jan 2002 23:00:00 +0105"), 2002,EJanuary, 21,0,5,0},		//  +0105
sl@0
   329
sl@0
   330
	{_S8("Mon, 21 Jan 2002 00:00:00 +0200"), 2002,EJanuary, 20,2,0,0},		//  +0200	
sl@0
   331
	{_S8("Mon, 21 Jan 2002 23:00:00 +0210"), 2002,EJanuary, 21,1,10,0},		//  +0210
sl@0
   332
	{_S8("Mon, 21 Jan 2002 00:00:00 +0300"), 2002,EJanuary, 20,3,0,0},		//  +0300	
sl@0
   333
	{_S8("Mon, 21 Jan 2002 23:00:00 +0359"), 2002,EJanuary, 21,2,59,0},		//  +0359
sl@0
   334
	
sl@0
   335
	{_S8("Mon, 21 Jan 2002 00:00:00 +0400"), 2002,EJanuary, 20,4,0,0},		//  +0400	
sl@0
   336
	{_S8("Mon, 21 Jan 2002 23:00:00 +0400"), 2002,EJanuary, 21,3,0,0},		//  +0400
sl@0
   337
	{_S8("Mon, 21 Jan 2002 00:00:00 +0500"), 2002,EJanuary, 20,5,0,0},		//  +0500	
sl@0
   338
	{_S8("Mon, 21 Jan 2002 23:00:00 +0500"), 2002,EJanuary, 21,4,0,0},		//  +0500
sl@0
   339
	{_S8("Mon, 21 Jan 2002 00:00:00 +0600"), 2002,EJanuary, 20,6,0,0},		//  +0600	
sl@0
   340
	{_S8("Mon, 21 Jan 2002 23:00:00 +0600"), 2002,EJanuary, 21,5,0,0},		//  +0600
sl@0
   341
	{_S8("Mon, 21 Jan 2002 00:00:00 +0700"), 2002,EJanuary, 20,7,0,0},		//  +0700	
sl@0
   342
	{_S8("Mon, 21 Jan 2002 23:00:00 +0700"), 2002,EJanuary, 21,6,0,0},		//  +0700
sl@0
   343
	{_S8("Mon, 21 Jan 2002 00:00:00 +0800"), 2002,EJanuary, 20,8,0,0},		//  +0800	
sl@0
   344
	{_S8("Mon, 21 Jan 2002 23:00:00 +0800"), 2002,EJanuary, 21,7,0,0},		//  +0800
sl@0
   345
sl@0
   346
	{_S8("Mon, 21 Jan 2002 00:00:00 +0900"), 2002,EJanuary, 20,9,0,0},		//  +0900	
sl@0
   347
	{_S8("Mon, 21 Jan 2002 23:00:00 +0900"), 2002,EJanuary, 21,8,0,0},		//  +0900
sl@0
   348
	{_S8("Mon, 21 Jan 2002 00:00:00 +1000"), 2002,EJanuary, 20,10,0,0},		//  +1000	
sl@0
   349
	{_S8("Mon, 21 Jan 2002 23:00:00 +1000"), 2002,EJanuary, 21,9,0,0},		//  +1000	
sl@0
   350
	{_S8("Mon, 21 Jan 2002 00:00:00 +1100"), 2002,EJanuary, 20,11,0,0},		//  +1100	
sl@0
   351
	{_S8("Mon, 21 Jan 2002 23:00:00 +1100"), 2002,EJanuary, 21,10,0,0},		//  +1100
sl@0
   352
	{_S8("Mon, 21 Jan 2002 00:00:00 +1200"), 2002,EJanuary, 20,12,0,0},		//  +1200	
sl@0
   353
	{_S8("Mon, 21 Jan 2002 23:00:00 +1200"), 2002,EJanuary, 21,11,0,0},		//  +1200
sl@0
   354
	// Now same tests but with negative offsets
sl@0
   355
	{_S8("Mon, 21 Jan 2002 00:00:00 -2359"), 2002,EJanuary, 19,00,01,0},	//  -2359	
sl@0
   356
	{_S8("Mon, 21 Jan 2002 23:00:00 -2359"), 2002,EJanuary, 19,23,01,0},	//  -2359
sl@0
   357
	
sl@0
   358
	{_S8("Mon, 21 Jan 2002 00:00:00 -2400"), 2002,EJanuary, 20,0,0,0},		//  -2400  Min offset should be -2359
sl@0
   359
	{_S8("Mon, 21 Jan 2002 23:00:00 -2400"), 2002,EJanuary, 20,23,0,0},		//  -2400  Min offset should be -2359
sl@0
   360
	{_S8("Mon, 21 Jan 2002 00:00:00 -0060"), 2002,EJanuary, 20,0,0,0},		//  -0060  Min min offset is -59
sl@0
   361
	{_S8("Mon, 21 Jan 2002 23:00:00 -0060"), 2002,EJanuary, 20,23,0,0},		//  -0060  Min min offset is -59
sl@0
   362
	{_S8("Mon, 21 Jan 2002 00:00:00 -0000"), 2002,EJanuary, 20,0,0,0},		//  -0000	
sl@0
   363
	{_S8("Mon, 21 Jan 2002 23:00:00 -0000"), 2002,EJanuary, 20,23,0,0},		//  -0000
sl@0
   364
	{_S8("Mon, 21 Jan 2002 00:00:00 -0100"), 2002,EJanuary, 19,23,0,0},		//  -0100	
sl@0
   365
	{_S8("Mon, 21 Jan 2002 23:00:00 -0105"), 2002,EJanuary, 20,21,55,0},	//  -0105
sl@0
   366
	{_S8("Mon, 21 Jan 2002 00:00:00 -0200"), 2002,EJanuary, 19,22,0,0},		//  -0200	
sl@0
   367
	{_S8("Mon, 21 Jan 2002 23:00:00 -0210"), 2002,EJanuary, 20,20,50,0},	//  -0210
sl@0
   368
	
sl@0
   369
	{_S8("Mon, 21 Jan 2002 00:00:00 -0300"), 2002,EJanuary, 19,21,0,0},		//  -0300	
sl@0
   370
	{_S8("Mon, 21 Jan 2002 23:00:00 -0359"), 2002,EJanuary, 20,19,01,0},	//  -0359
sl@0
   371
	{_S8("Mon, 21 Jan 2002 00:00:00 -0400"), 2002,EJanuary, 19,20,0,0},		//  -0400	
sl@0
   372
	{_S8("Mon, 21 Jan 2002 23:00:00 -0400"), 2002,EJanuary, 20,19,0,0},		//  -0400
sl@0
   373
	{_S8("Mon, 21 Jan 2002 00:00:00 -0500"), 2002,EJanuary, 19,19,0,0},		//  -0500	
sl@0
   374
	{_S8("Mon, 21 Jan 2002 23:00:00 -0500"), 2002,EJanuary, 20,18,0,0},		//  -0500
sl@0
   375
	{_S8("Mon, 21 Jan 2002 00:00:00 -0600"), 2002,EJanuary, 19,18,0,0},		//  -0600	
sl@0
   376
	{_S8("Mon, 21 Jan 2002 23:00:00 -0600"), 2002,EJanuary, 20,17,0,0},		//  -0600
sl@0
   377
	{_S8("Mon, 21 Jan 2002 00:00:00 -0700"), 2002,EJanuary, 19,17,0,0},		//  -0700	
sl@0
   378
	{_S8("Mon, 21 Jan 2002 23:00:00 -0700"), 2002,EJanuary, 20,16,0,0},		//  -0700
sl@0
   379
sl@0
   380
	{_S8("Mon, 21 Jan 2002 00:00:00 -0800"), 2002,EJanuary, 19,16,0,0},		//  -0800	
sl@0
   381
	{_S8("Mon, 21 Jan 2002 23:00:00 -0800"), 2002,EJanuary, 20,15,0,0},		//  -0800
sl@0
   382
	{_S8("Mon, 21 Jan 2002 00:00:00 -0900"), 2002,EJanuary, 19,15,0,0},		//  -0900	
sl@0
   383
	{_S8("Mon, 21 Jan 2002 23:00:00 -0900"), 2002,EJanuary, 20,14,0,0},		//  -0900
sl@0
   384
	{_S8("Mon, 21 Jan 2002 00:00:00 -1000"), 2002,EJanuary, 19,14,0,0},		//  -1000	
sl@0
   385
	{_S8("Mon, 21 Jan 2002 23:00:00 -1000"), 2002,EJanuary, 20,13,0,0},		//  -1000	
sl@0
   386
	{_S8("Mon, 21 Jan 2002 00:00:00 -1100"), 2002,EJanuary, 19,13,0,0},		//  -1100	
sl@0
   387
	{_S8("Mon, 21 Jan 2002 23:00:00 -1100"), 2002,EJanuary, 20,12,0,0},		//  -1100
sl@0
   388
	{_S8("Mon, 21 Jan 2002 00:00:00 -1200"), 2002,EJanuary, 19,12,0,0},		//  -1200	
sl@0
   389
	{_S8("Mon, 21 Jan 2002 23:00:00 -1200"), 2002,EJanuary, 20,11,0,0}		//  -1200
sl@0
   390
	};
sl@0
   391
sl@0
   392
const TInt KNumberRfc850TimeOffsetTzTestCases = 64;
sl@0
   393
const struct TInternetDateTestCase KRfc850TimeOffsetTzTestCases[] =
sl@0
   394
	{
sl@0
   395
	{_S8("Mon, 21-Jan-02 00:00:00 +2359"), 2002,EJanuary, 20,23,59,0},	//  +2359	
sl@0
   396
	{_S8("Mon, 21-Jan-02 23:00:00 +2359"), 2002,EJanuary, 21,22,59,0},	//  +2359
sl@0
   397
	{_S8("Mon, 21-Jan-02 00:00:00 +2400"), 2002,EJanuary, 20,0,0,0},		//  +2400  Max offset should be +2359
sl@0
   398
	{_S8("Mon, 21-Jan-02 23:00:00 +2400"), 2002,EJanuary, 20,23,0,0},		//  +2400  Max offset should be +2359
sl@0
   399
	{_S8("Mon, 21-Jan-02 00:00:00 +0060"), 2002,EJanuary, 20,0,0,0},		//  +0060  Max min offset is 59
sl@0
   400
	{_S8("Mon, 21-Jan-02 23:00:00 +0060"), 2002,EJanuary, 20,23,0,0},		//  +0060  Max min offset is 59
sl@0
   401
sl@0
   402
	{_S8("Mon, 21-Jan-02 00:00:00 +0000"), 2002,EJanuary, 20,0,0,0},		//  +0000	
sl@0
   403
	{_S8("Mon, 21-Jan-02 23:00:00 -0000"), 2002,EJanuary, 20,23,0,0},		//  -0000
sl@0
   404
	{_S8("Mon, 21-Jan-02 00:00:00 +0100"), 2002,EJanuary, 20,1,0,0},		//  +0100	
sl@0
   405
	{_S8("Mon, 21-Jan-02 23:00:00 +0105"), 2002,EJanuary, 21,0,5,0},		//  +0105
sl@0
   406
	{_S8("Mon, 21-Jan-02 00:00:00 +0200"), 2002,EJanuary, 20,2,0,0},		//  +0200	
sl@0
   407
	{_S8("Mon, 21-Jan-02 23:00:00 +0210"), 2002,EJanuary, 21,1,10,0},		//  +0210
sl@0
   408
	{_S8("Mon, 21-Jan-02 00:00:00 +0300"), 2002,EJanuary, 20,3,0,0},		//  +0300	
sl@0
   409
	{_S8("Mon, 21-Jan-02 23:00:00 +0359"), 2002,EJanuary, 21,2,59,0},		//  +0359
sl@0
   410
	{_S8("Mon, 21-Jan-02 00:00:00 +0400"), 2002,EJanuary, 20,4,0,0},		//  +0400	
sl@0
   411
	{_S8("Mon, 21-Jan-02 23:00:00 +0400"), 2002,EJanuary, 21,3,0,0},		//  +0400
sl@0
   412
	{_S8("Mon, 21-Jan-02 00:00:00 +0500"), 2002,EJanuary, 20,5,0,0},		//  +0500	
sl@0
   413
	{_S8("Mon, 21-Jan-02 23:00:00 +0500"), 2002,EJanuary, 21,4,0,0},		//  +0500
sl@0
   414
	{_S8("Mon, 21-Jan-02 00:00:00 +0600"), 2002,EJanuary, 20,6,0,0},		//  +0600	
sl@0
   415
	{_S8("Mon, 21-Jan-02 23:00:00 +0600"), 2002,EJanuary, 21,5,0,0},		//  +0600
sl@0
   416
	{_S8("Mon, 21-Jan-02 00:00:00 +0700"), 2002,EJanuary, 20,7,0,0},		//  +0700	
sl@0
   417
	{_S8("Mon, 21-Jan-02 23:00:00 +0700"), 2002,EJanuary, 21,6,0,0},		//  +0700
sl@0
   418
	{_S8("Mon, 21-Jan-02 00:00:00 +0800"), 2002,EJanuary, 20,8,0,0},		//  +0800	
sl@0
   419
	{_S8("Mon, 21-Jan-02 23:00:00 +0800"), 2002,EJanuary, 21,7,0,0},		//  +0800
sl@0
   420
	{_S8("Mon, 21-Jan-02 00:00:00 +0900"), 2002,EJanuary, 20,9,0,0},		//  +0900	
sl@0
   421
	{_S8("Mon, 21-Jan-02 23:00:00 +0900"), 2002,EJanuary, 21,8,0,0},		//  +0900
sl@0
   422
	{_S8("Mon, 21-Jan-02 00:00:00 +1000"), 2002,EJanuary, 20,10,0,0},		//  +1000	
sl@0
   423
	{_S8("Mon, 21-Jan-02 23:00:00 +1000"), 2002,EJanuary, 21,9,0,0},		//  +1000	
sl@0
   424
	{_S8("Mon, 21-Jan-02 00:00:00 +1100"), 2002,EJanuary, 20,11,0,0},		//  +1100	
sl@0
   425
	{_S8("Mon, 21-Jan-02 23:00:00 +1100"), 2002,EJanuary, 21,10,0,0},		//  +1100
sl@0
   426
	{_S8("Mon, 21-Jan-02 00:00:00 +1200"), 2002,EJanuary, 20,12,0,0},		//  +1200	
sl@0
   427
	{_S8("Mon, 21-Jan-02 23:00:00 +1200"), 2002,EJanuary, 21,11,0,0},		//  +1200
sl@0
   428
	
sl@0
   429
	// Now same tests but with negative offsets
sl@0
   430
	{_S8("Mon, 21-Jan-02 00:00:00 -2359"), 2002,EJanuary, 19,00,01,0},	//  -2359	
sl@0
   431
	{_S8("Mon, 21-Jan-02 23:00:00 -2359"), 2002,EJanuary, 19,23,01,0},	//  -2359
sl@0
   432
	{_S8("Mon, 21-Jan-02 00:00:00 -2400"), 2002,EJanuary, 20,0,0,0},		//  -2400  Min offset should be -2359
sl@0
   433
	{_S8("Mon, 21-Jan-02 23:00:00 -2400"), 2002,EJanuary, 20,23,0,0},		//  -2400  Min offset should be -2359
sl@0
   434
	{_S8("Mon, 21-Jan-02 00:00:00 -0060"), 2002,EJanuary, 20,0,0,0},		//  -0060  Min min offset is -59
sl@0
   435
	{_S8("Mon, 21-Jan-02 23:00:00 -0060"), 2002,EJanuary, 20,23,0,0},		//  -0060  Min min offset is -59
sl@0
   436
sl@0
   437
	{_S8("Mon, 21-Jan-02 00:00:00 -0000"), 2002,EJanuary, 20,0,0,0},		//  -0000	
sl@0
   438
	{_S8("Mon, 21-Jan-02 23:00:00 -0000"), 2002,EJanuary, 20,23,0,0},		//  -0000
sl@0
   439
	{_S8("Mon, 21-Jan-02 00:00:00 -0100"), 2002,EJanuary, 19,23,0,0},		//  -0100	
sl@0
   440
	{_S8("Mon, 21-Jan-02 23:00:00 -0105"), 2002,EJanuary, 20,21,55,0},	//  -0105
sl@0
   441
	{_S8("Mon, 21-Jan-02 00:00:00 -0200"), 2002,EJanuary, 19,22,0,0},		//  -0200	
sl@0
   442
	{_S8("Mon, 21-Jan-02 23:00:00 -0210"), 2002,EJanuary, 20,20,50,0},	//  -0210
sl@0
   443
	{_S8("Mon, 21-Jan-02 00:00:00 -0300"), 2002,EJanuary, 19,21,0,0},		//  -0300	
sl@0
   444
	{_S8("Mon, 21-Jan-02 23:00:00 -0359"), 2002,EJanuary, 20,19,01,0},	//  -0359
sl@0
   445
	{_S8("Mon, 21-Jan-02 00:00:00 -0400"), 2002,EJanuary, 19,20,0,0},		//  -0400	
sl@0
   446
	{_S8("Mon, 21-Jan-02 23:00:00 -0400"), 2002,EJanuary, 20,19,0,0},		//  -0400
sl@0
   447
	{_S8("Mon, 21-Jan-02 00:00:00 -0500"), 2002,EJanuary, 19,19,0,0},		//  -0500	
sl@0
   448
	{_S8("Mon, 21-Jan-02 23:00:00 -0500"), 2002,EJanuary, 20,18,0,0},		//  -0500
sl@0
   449
	{_S8("Mon, 21-Jan-02 00:00:00 -0600"), 2002,EJanuary, 19,18,0,0},		//  -0600	
sl@0
   450
	{_S8("Mon, 21-Jan-02 23:00:00 -0600"), 2002,EJanuary, 20,17,0,0},		//  -0600
sl@0
   451
	{_S8("Mon, 21-Jan-02 00:00:00 -0700"), 2002,EJanuary, 19,17,0,0},		//  -0700	
sl@0
   452
	{_S8("Mon, 21-Jan-02 23:00:00 -0700"), 2002,EJanuary, 20,16,0,0},		//  -0700
sl@0
   453
	{_S8("Mon, 21-Jan-02 00:00:00 -0800"), 2002,EJanuary, 19,16,0,0},		//  -0800	
sl@0
   454
	{_S8("Mon, 21-Jan-02 23:00:00 -0800"), 2002,EJanuary, 20,15,0,0},		//  -0800
sl@0
   455
	{_S8("Mon, 21-Jan-02 00:00:00 -0900"), 2002,EJanuary, 19,15,0,0},		//  -0900	
sl@0
   456
	{_S8("Mon, 21-Jan-02 23:00:00 -0900"), 2002,EJanuary, 20,14,0,0},		//  -0900
sl@0
   457
	{_S8("Mon, 21-Jan-02 00:00:00 -1000"), 2002,EJanuary, 19,14,0,0},		//  -1000	
sl@0
   458
	{_S8("Mon, 21-Jan-02 23:00:00 -1000"), 2002,EJanuary, 20,13,0,0},		//  -1000	
sl@0
   459
	{_S8("Mon, 21-Jan-02 00:00:00 -1100"), 2002,EJanuary, 19,13,0,0},		//  -1100	
sl@0
   460
	{_S8("Mon, 21-Jan-02 23:00:00 -1100"), 2002,EJanuary, 20,12,0,0},		//  -1100
sl@0
   461
	{_S8("Mon, 21-Jan-02 00:00:00 -1200"), 2002,EJanuary, 19,12,0,0},		//  -1200	
sl@0
   462
	{_S8("Mon, 21-Jan-02 23:00:00 -1200"), 2002,EJanuary, 20,11,0,0}		//  -1200
sl@0
   463
	};
sl@0
   464
sl@0
   465
sl@0
   466
const TInt KInvalidTimeNumTests=46;
sl@0
   467
static const TBuf8<50> KInvalidTimeTestCases[]=
sl@0
   468
	{
sl@0
   469
	_L8("Mon,"),
sl@0
   470
    _L8("Mon, "),
sl@0
   471
    _L8("Mon, 14"),
sl@0
   472
    _L8("Mon, 14 "),
sl@0
   473
    _L8("Mon, Oct "),
sl@0
   474
    _L8("Mon, 14 Oct"),
sl@0
   475
    _L8("Mon, 14 Oct 2002"),
sl@0
   476
    _L8("Mon, 14 Oct 2002 12"), 
sl@0
   477
    _L8("Mon, 14 Oct 2002 12:00:00"), 
sl@0
   478
    _L8("Mon, 14 Oct 2002 12:00:00 GMT"),
sl@0
   479
    _L8("Mon, 32 Oct 2002 12:00:00 GMT"),
sl@0
   480
    _L8("Mon, 14 Aaa 2002 12:00:00 GMT"),
sl@0
   481
    _L8("Mon, 14 Oct 1969 12:00:00 GMT"),
sl@0
   482
    _L8("Mon, 14 Oct 2002 25:00:00 GMT"),
sl@0
   483
    _L8("Mon, 14 Oct 2002 12:99:00 GMT"),
sl@0
   484
    _L8("Mon, 14 Oct 2002 12:00:99 GMT"),
sl@0
   485
    _L8("Mon, 14 Oct 2002 12:00:00 GMT"),
sl@0
   486
    _L8("Mon, 14 Oct 2002 12:00:00 \" ( 32 x \"a\")"),
sl@0
   487
    _L8("Mon, 14 Oct 2002 12:00:00 \" ( 128 x \"a\")"),
sl@0
   488
    _L8("Mon, 14 Oct 2002 12:00:00 \" ( 255 x \"a\")"),
sl@0
   489
    _L8("Mon, 14 Oct 2002 12:00:00 \" ( 256 x \"a\")"),
sl@0
   490
    _L8("Mon, 14 Oct 2002 12:00:00 \" ( 1024 x \"a\")"),
sl@0
   491
    _L8("Mon, 14 Oct 2002 12:00:00 \" ( 4096 x \"a\")"),
sl@0
   492
    _L8("Mon, 14 Oct 2002 12:00:00 \" ( 66000 x \"a\")"),
sl@0
   493
    _L8("Mon, 14 Oct 2002 12:00:00 %s%s%s%s%s%s%s%s"),
sl@0
   494
    _L8("Monday,"),
sl@0
   495
    _L8("Monday, "),
sl@0
   496
    _L8("Monday, 14"),
sl@0
   497
    _L8("Monday, 14-"),
sl@0
   498
    _L8("Monday, 14-Oct"),
sl@0
   499
    _L8("Monday, 14-Oct-"),
sl@0
   500
    _L8("Monday, 14-Oct-02"),
sl@0
   501
    _L8("Monday, 14-Oct-02 12:00:00 "),
sl@0
   502
    _L8("Monday, 14-Oct-02 12:00:00 GMT"),
sl@0
   503
    _L8("Aaaaaa, 14--02 12:00:00 GMT"),
sl@0
   504
    _L8("Monday, 32-Oct-02 12:00:00 GMT"),
sl@0
   505
    _L8("Monday, 14-Aaa-02 12:00:00 GMT"),
sl@0
   506
    _L8("Monday, 14-Oct-50 12:00:00 GMT"),
sl@0
   507
    _L8("Monday, 14-Oct-02 30:00:00 GMT"),
sl@0
   508
    _L8("Monday, 14-Oct-02 12:99:00 GMT"),
sl@0
   509
    _L8("Monday, 14-Oct-02 12:00:99 GMT"),
sl@0
   510
    _L8("Monday, 14-Oct-02 12:00:00 \" ( 32 x \"a\")"),
sl@0
   511
    _L8("Monday, 14-Oct-02 12:00:00 \" ( 255 x \"a\")"),
sl@0
   512
    _L8("Monday, 14-Oct-02 12:00:00 \" ( 256 x \"a\")"),
sl@0
   513
    _L8("Monday, 14-Oct-02 12:00:00 \" ( 66000 x \"a\")"),
sl@0
   514
    _L8("Monday, 14-Oct-02 12:00:00 %s%s%s%s"),
sl@0
   515
	};
sl@0
   516
sl@0
   517
struct TInternetDateOffsetTestCase
sl@0
   518
	{
sl@0
   519
	const TBuf8<50> iTextInput;
sl@0
   520
	const TBuf8<50> iExpectedOutput;
sl@0
   521
	};
sl@0
   522
sl@0
   523
const TInt KNumberDEF126191TestCases = 80;
sl@0
   524
sl@0
   525
//{ _L8("Input Date time "), _L8("Expected DateTime") },
sl@0
   526
static struct TInternetDateOffsetTestCase KDEF126191TestCases[]=
sl@0
   527
	{
sl@0
   528
	{ _L8("Thu, 17 Jul 2008 08:04:31 EDT"), _L8("Thu, 17 Jul 2008 12:04:31 GMT") },
sl@0
   529
	{ _L8("Fri, 18 Nov 2005 09:01:17 -0600"), _L8("Fri, 18 Nov 2005 15:01:17 GMT") },
sl@0
   530
	{ _L8("Mon, 21 Nov 2005 09:05:01 EST"), _L8("Mon, 21 Nov 2005 14:05:01 GMT") },
sl@0
   531
	{ _L8("Mon, 21 Jan 2002 00:00:00 +1100"), _L8("Sun, 20 Jan 2002 13:00:00 GMT") },
sl@0
   532
	{ _L8("Mon, 21 Jan 2002 00:00:00 +2359"), _L8("Sun, 20 Jan 2002 00:01:00 GMT") },
sl@0
   533
	{ _L8("Mon, 21 Jan 2002 00:00:00 +0059"), _L8("Sun, 20 Jan 2002 23:01:00 GMT") },
sl@0
   534
	{ _L8("Mon, 21 Jan 2002 00:00:00 +0000"), _L8("Mon, 21 Jan 2002 00:00:00 GMT") },
sl@0
   535
	{ _L8("Mon, 21 Jan 2002 23:00:00 -0000"), _L8("Mon, 21 Jan 2002 23:00:00 GMT") },
sl@0
   536
	{ _L8("Mon, 21 Jan 2002 00:00:00 +0100"), _L8("Sun, 20 Jan 2002 23:00:00 GMT") },
sl@0
   537
	{ _L8("Mon, 21 Jan 2002 23:00:00 +0105"), _L8("Mon, 21 Jan 2002 21:55:00 GMT") },
sl@0
   538
	{ _L8("Mon, 21 Jan 2002 00:00:00 +0200"), _L8("Sun, 20 Jan 2002 22:00:00 GMT") },
sl@0
   539
	{ _L8("Mon, 21 Jan 2002 23:00:00 +0210"), _L8("Mon, 21 Jan 2002 20:50:00 GMT") },
sl@0
   540
	{ _L8("Mon, 21 Jan 2002 00:00:00 +0300"), _L8("Sun, 20 Jan 2002 21:00:00 GMT") },
sl@0
   541
	{ _L8("Mon, 21 Jan 2002 23:00:00 +0359"), _L8("Mon, 21 Jan 2002 19:01:00 GMT") },
sl@0
   542
	{ _L8("Mon, 21 Jan 2002 00:00:00 +0400"), _L8("Sun, 20 Jan 2002 20:00:00 GMT") },
sl@0
   543
	{ _L8("Mon, 21 Jan 2002 23:00:00 +0400"), _L8("Mon, 21 Jan 2002 19:00:00 GMT") },
sl@0
   544
	{ _L8("Mon, 21 Jan 2002 00:00:00 +0500"), _L8("Sun, 20 Jan 2002 19:00:00 GMT") },
sl@0
   545
	{ _L8("Mon, 21 Jan 2002 23:00:00 +0500"), _L8("Mon, 21 Jan 2002 18:00:00 GMT") },
sl@0
   546
	{ _L8("Mon, 21 Jan 2002 00:00:00 +0600"), _L8("Sun, 20 Jan 2002 18:00:00 GMT") },
sl@0
   547
	{ _L8("Mon, 21 Jan 2002 23:00:00 +0600"), _L8("Mon, 21 Jan 2002 17:00:00 GMT") },
sl@0
   548
	{ _L8("Mon, 21 Jan 2002 00:00:00 +0700"), _L8("Sun, 20 Jan 2002 17:00:00 GMT") },
sl@0
   549
	{ _L8("Mon, 21 Jan 2002 23:00:00 +0700"), _L8("Mon, 21 Jan 2002 16:00:00 GMT") },
sl@0
   550
	{ _L8("Mon, 21 Jan 2002 00:00:00 +0800"), _L8("Sun, 20 Jan 2002 16:00:00 GMT") },
sl@0
   551
	{ _L8("Mon, 21 Jan 2002 23:00:00 +0800"), _L8("Mon, 21 Jan 2002 15:00:00 GMT") },
sl@0
   552
	{ _L8("Mon, 21 Jan 2002 00:00:00 +0900"), _L8("Sun, 20 Jan 2002 15:00:00 GMT") },
sl@0
   553
	{ _L8("Mon, 21 Jan 2002 23:00:00 +0900"), _L8("Mon, 21 Jan 2002 14:00:00 GMT") },
sl@0
   554
	{ _L8("Mon, 21 Jan 2002 00:00:00 +1000"), _L8("Sun, 20 Jan 2002 14:00:00 GMT") },
sl@0
   555
	{ _L8("Mon, 21 Jan 2002 23:00:00 +1000"), _L8("Mon, 21 Jan 2002 13:00:00 GMT") },
sl@0
   556
	{ _L8("Mon, 21 Jan 2002 00:00:00 +1200"), _L8("Sun, 20 Jan 2002 12:00:00 GMT") },
sl@0
   557
	{ _L8("Mon, 21 Jan 2002 23:00:00 +1200"), _L8("Mon, 21 Jan 2002 11:00:00 GMT") },
sl@0
   558
	{ _L8("Mon, 21 Jan 2002 00:00:00 -2359"), _L8("Mon, 21 Jan 2002 23:59:00 GMT") },
sl@0
   559
	{ _L8("Mon, 21 Jan 2002 23:00:00 -2359"), _L8("Tue, 22 Jan 2002 22:59:00 GMT") },
sl@0
   560
	{ _L8("Mon, 21 Jan 2002 00:00:00 -0059"), _L8("Mon, 21 Jan 2002 00:59:00 GMT") },
sl@0
   561
	{ _L8("Mon, 21 Jan 2002 23:00:00 -0059"), _L8("Mon, 21 Jan 2002 23:59:00 GMT") },
sl@0
   562
	{ _L8("Mon, 21 Jan 2002 00:00:00 -0000"), _L8("Mon, 21 Jan 2002 00:00:00 GMT") },
sl@0
   563
	{ _L8("Mon, 21 Jan 2002 23:00:00 -0000"), _L8("Mon, 21 Jan 2002 23:00:00 GMT") },
sl@0
   564
	{ _L8("Mon, 21 Jan 2002 00:00:00 -0100"), _L8("Mon, 21 Jan 2002 01:00:00 GMT") },
sl@0
   565
	{ _L8("Mon, 21 Jan 2002 23:00:00 -0105"), _L8("Tue, 22 Jan 2002 00:05:00 GMT") },
sl@0
   566
	{ _L8("Mon, 21 Jan 2002 00:00:00 -0200"), _L8("Mon, 21 Jan 2002 02:00:00 GMT") },
sl@0
   567
	{ _L8("Mon, 21 Jan 2002 23:00:00 -0210"), _L8("Tue, 22 Jan 2002 01:10:00 GMT") },
sl@0
   568
	{ _L8("Mon, 21 Jan 2002 00:00:00 -0300"), _L8("Mon, 21 Jan 2002 03:00:00 GMT") },
sl@0
   569
	{ _L8("Mon, 21 Jan 2002 23:00:00 -0359"), _L8("Tue, 22 Jan 2002 02:59:00 GMT") },
sl@0
   570
	{ _L8("Mon, 21 Jan 2002 00:00:00 -0400"), _L8("Mon, 21 Jan 2002 04:00:00 GMT") },
sl@0
   571
	{ _L8("Mon, 21 Jan 2002 23:00:00 -0400"), _L8("Tue, 22 Jan 2002 03:00:00 GMT") },
sl@0
   572
	{ _L8("Mon, 21 Jan 2002 00:00:00 -0500"), _L8("Mon, 21 Jan 2002 05:00:00 GMT") },
sl@0
   573
	{ _L8("Mon, 21 Jan 2002 23:00:00 -0500"), _L8("Tue, 22 Jan 2002 04:00:00 GMT") },
sl@0
   574
	{ _L8("Mon, 21 Jan 2002 00:00:00 -0600"), _L8("Mon, 21 Jan 2002 06:00:00 GMT") },
sl@0
   575
	{ _L8("Mon, 21 Jan 2002 23:00:00 -0600"), _L8("Tue, 22 Jan 2002 05:00:00 GMT") },
sl@0
   576
	{ _L8("Mon, 21 Jan 2002 00:00:00 -0700"), _L8("Mon, 21 Jan 2002 07:00:00 GMT") },
sl@0
   577
	{ _L8("Mon, 21 Jan 2002 23:00:00 -0700"), _L8("Tue, 22 Jan 2002 06:00:00 GMT") },
sl@0
   578
	{ _L8("Mon, 21 Jan 2002 00:00:00 -0800"), _L8("Mon, 21 Jan 2002 08:00:00 GMT") },
sl@0
   579
	{ _L8("Mon, 21 Jan 2002 23:00:00 -0800"), _L8("Tue, 22 Jan 2002 07:00:00 GMT") },
sl@0
   580
	{ _L8("Mon, 21 Jan 2002 00:00:00 -0900"), _L8("Mon, 21 Jan 2002 09:00:00 GMT") },
sl@0
   581
	{ _L8("Mon, 21 Jan 2002 23:00:00 -0900"), _L8("Tue, 22 Jan 2002 08:00:00 GMT") },
sl@0
   582
	{ _L8("Mon, 21 Jan 2002 00:00:00 -1000"), _L8("Mon, 21 Jan 2002 10:00:00 GMT") },
sl@0
   583
	{ _L8("Mon, 21 Jan 2002 23:00:00 -1000"), _L8("Tue, 22 Jan 2002 09:00:00 GMT") },
sl@0
   584
	{ _L8("Mon, 21 Jan 2002 00:00:00 -1100"), _L8("Mon, 21 Jan 2002 11:00:00 GMT") },
sl@0
   585
	{ _L8("Mon, 21 Jan 2002 23:00:00 -1100"), _L8("Tue, 22 Jan 2002 10:00:00 GMT") },
sl@0
   586
	{ _L8("Mon, 21 Jan 2002 00:00:00 -1200"), _L8("Mon, 21 Jan 2002 12:00:00 GMT") },
sl@0
   587
	{ _L8("Mon, 21 Jan 2002 23:00:00 -1200"), _L8("Tue, 22 Jan 2002 11:00:00 GMT") },
sl@0
   588
	{ _L8("Mon, 21 Jan 2002 00:00:00 EST"), _L8("Mon, 21 Jan 2002 05:00:00 GMT") },
sl@0
   589
	{ _L8("Mon, 21 Jan 2002 23:00:00 EST"), _L8("Tue, 22 Jan 2002 04:00:00 GMT") },
sl@0
   590
	{ _L8("Mon, 21 Jan 2002 00:00:00 EDT"), _L8("Mon, 21 Jan 2002 04:00:00 GMT") },
sl@0
   591
	{ _L8("Mon, 21 Jan 2002 23:00:00 EDT"), _L8("Tue, 22 Jan 2002 03:00:00 GMT") },
sl@0
   592
	{ _L8("Mon, 21 Jan 2002 00:00:00 CST"), _L8("Mon, 21 Jan 2002 06:00:00 GMT") },
sl@0
   593
	{ _L8("Mon, 21 Jan 2002 23:00:00 CST"), _L8("Tue, 22 Jan 2002 05:00:00 GMT") },
sl@0
   594
	{ _L8("Mon, 21 Jan 2002 00:00:00 CDT"), _L8("Mon, 21 Jan 2002 05:00:00 GMT") },
sl@0
   595
	{ _L8("Mon, 21 Jan 2002 23:00:00 CDT"), _L8("Tue, 22 Jan 2002 04:00:00 GMT") },
sl@0
   596
	{ _L8("Mon, 21 Jan 2002 00:00:00 MST"), _L8("Mon, 21 Jan 2002 07:00:00 GMT") },
sl@0
   597
	{ _L8("Mon, 21 Jan 2002 23:00:00 MST"), _L8("Tue, 22 Jan 2002 06:00:00 GMT") },
sl@0
   598
	{ _L8("Mon, 21 Jan 2002 00:00:00 MDT"), _L8("Mon, 21 Jan 2002 06:00:00 GMT") },
sl@0
   599
	{ _L8("Mon, 21 Jan 2002 23:00:00 MDT"), _L8("Tue, 22 Jan 2002 05:00:00 GMT") },
sl@0
   600
	{ _L8("Mon, 21 Jan 2002 00:00:00 PST"), _L8("Mon, 21 Jan 2002 08:00:00 GMT") },
sl@0
   601
	{ _L8("Mon, 21 Jan 2002 23:00:00 PST"), _L8("Tue, 22 Jan 2002 07:00:00 GMT") },
sl@0
   602
	{ _L8("Mon, 21 Jan 2002 00:00:00 PDT"), _L8("Mon, 21 Jan 2002 07:00:00 GMT") },
sl@0
   603
	{ _L8("Mon, 21 Jan 2002 23:00:00 PDT"), _L8("Tue, 22 Jan 2002 06:00:00 GMT") },
sl@0
   604
	{ _L8("Mon, 21 Jan 2002 00:00:00 UT"), _L8("Mon, 21 Jan 2002 00:00:00 GMT") }, 
sl@0
   605
	{ _L8("Mon, 21 Jan 2002 23:00:00 UT"), _L8("Mon, 21 Jan 2002 23:00:00 GMT") }, 
sl@0
   606
	{ _L8("Mon, 21 Jan 2002 00:00:00 GMT"), _L8("Mon, 21 Jan 2002 00:00:00 GMT") },
sl@0
   607
	{ _L8("Mon, 21 Jan 2002 23:00:00 GMT"), _L8("Mon, 21 Jan 2002 23:00:00 GMT") }
sl@0
   608
	};
sl@0
   609
	
sl@0
   610
const TInt KInvalidDescriptorToIntTests=5;
sl@0
   611
static const TBuf8<50> KInvalidDesToIntTestCases[]=
sl@0
   612
	{
sl@0
   613
	_L8("-"),
sl@0
   614
    _L8("+"),
sl@0
   615
    _L8("--"),
sl@0
   616
    _L8("++"),
sl@0
   617
    _L8("InvalidString")
sl@0
   618
	};	
sl@0
   619
sl@0
   620
#endif //	__T_INTERNETDATETESTCASES_H__