os/ossrv/genericservices/httputils/Test/t_tinternetdate/cconverttorfc1123formtest.cpp
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/os/ossrv/genericservices/httputils/Test/t_tinternetdate/cconverttorfc1123formtest.cpp Fri Jun 15 03:10:57 2012 +0200
1.3 @@ -0,0 +1,178 @@
1.4 +// Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
1.5 +// All rights reserved.
1.6 +// This component and the accompanying materials are made available
1.7 +// under the terms of "Eclipse Public License v1.0"
1.8 +// which accompanies this distribution, and is available
1.9 +// at the URL "http://www.eclipse.org/legal/epl-v10.html".
1.10 +//
1.11 +// Initial Contributors:
1.12 +// Nokia Corporation - initial contribution.
1.13 +//
1.14 +// Contributors:
1.15 +//
1.16 +// Description:
1.17 +// Implementation of test CConvertToRfc1123FormTest.
1.18 +//
1.19 +//
1.20 +
1.21 +
1.22 +#include "cconverttorfc1123formtest.h"
1.23 +#include "inetprottextutils.h"
1.24 +#include <tinternetdate.h>
1.25 +#include "t_internetdatetestcases.h"
1.26 +
1.27 +
1.28 +
1.29 +CConvertToRfc1123FormTest* CConvertToRfc1123FormTest::NewLC(CIpuTestHarness* aTestHarness)
1.30 + {
1.31 + CConvertToRfc1123FormTest* self = new(ELeave)CConvertToRfc1123FormTest(aTestHarness);
1.32 + CleanupStack::PushL(self);
1.33 + return self;
1.34 + }
1.35 +
1.36 +
1.37 +CConvertToRfc1123FormTest::CConvertToRfc1123FormTest(CIpuTestHarness* aTestHarness):
1.38 + iTestHarness(aTestHarness)
1.39 + {}
1.40 +
1.41 +CConvertToRfc1123FormTest::~CConvertToRfc1123FormTest()
1.42 + {}
1.43 +
1.44 +void CConvertToRfc1123FormTest::DoTestsL()
1.45 + {
1.46 + TInt ii;
1.47 +
1.48 + for (ii=0; ii< KInvalidTimeNumTests; ++ii)
1.49 + {
1.50 + TInternetDate date;
1.51 + TRAPD( error, date.SetDateL(KInvalidTimeTestCases[ii]));
1.52 + if (error && error != KErrCorrupt)
1.53 + {
1.54 + User::LeaveIfError(error);
1.55 + }
1.56 + }
1.57 +
1.58 + for (ii=0; ii < KNumberDEF126191TestCases; ++ii)
1.59 + {
1.60 + TInternetDate internetDate;
1.61 + _LIT(KTest, "Test for fix DEF126191 - Case: ");
1.62 + TInternetDateOffsetTestCase tc = KDEF126191TestCases[ii];
1.63 + TBuf<512> testName;
1.64 + testName.Append(KTest);
1.65 + TPtrC8 testDate( tc.iTextInput );
1.66 + TBuf<150> bufTestDate;
1.67 + bufTestDate.Copy(testDate);
1.68 + testName.Append(bufTestDate);
1.69 + _LIT(KTestExpected, "\n \t \t \t \t And Expected Result is: ");
1.70 + testName.Append(KTestExpected);
1.71 + TPtrC8 expectedTestDate( tc.iExpectedOutput );
1.72 + TBuf<150> bufExpectedTestDate;
1.73 + bufExpectedTestDate.Copy(expectedTestDate);
1.74 + testName.Append(bufExpectedTestDate);
1.75 +
1.76 + iTestHarness->StartTestL(testName);
1.77 + TInt err = 0;
1.78 + internetDate.SetDateL(tc.iTextInput);
1.79 + TDateTime parsedDate = internetDate.DateTime();
1.80 + TInternetDate ConvertparsedDate(parsedDate);
1.81 + HBufC8* textDate = ConvertparsedDate.InternetDateTimeL(TInternetDate::ERfc1123Format);
1.82 + CleanupStack::PushL(textDate);
1.83 +
1.84 + TBuf8 <50> KExpcted;
1.85 + KExpcted.Copy(tc.iExpectedOutput);
1.86 + if(textDate->CompareF(KExpcted) != 0)
1.87 + {
1.88 + err = KErrBadDescriptor;
1.89 + }
1.90 + CleanupStack::PopAndDestroy(textDate);
1.91 + iTestHarness->EndTest(err);
1.92 + }
1.93 +
1.94 + for (ii=0; ii< KNumberRfc1123GMTTzTestCases; ++ii)
1.95 + {
1.96 + TInternetDateTestCase tc = KRfc1123GMTTzTestCases[ii];
1.97 + TDateTime time(tc.iYear, tc.iMonth, tc.iDay, tc.iHour, tc.iMin, tc.iSecond, 0);
1.98 + TPtrC8 expected(tc.iTextFormat);
1.99 + ConvertTestL(time, expected);
1.100 + }
1.101 +
1.102 + for (ii=0; ii< KNumberINC090613TestCases; ++ii)
1.103 + {
1.104 + TInternetDate date;
1.105 + _LIT(KTest, "Test for fix INC090613 - Case: ");
1.106 + TBuf<256> testname;
1.107 + testname.Append(KTest);
1.108 + TPtrC8 testdate(KINC090613TestCases[ii]);
1.109 + TBuf<150> buftestdate;
1.110 + buftestdate.Copy(testdate);
1.111 + testname.Append(buftestdate);
1.112 +
1.113 +
1.114 + iTestHarness->StartTestL(testname);
1.115 + TRAPD(err,date.SetDateL(KINC090613TestCases[ii]));
1.116 + iTestHarness->EndTest(err);
1.117 + User::LeaveIfError(err);
1.118 + }
1.119 + for (ii=0; ii< KNumberINC107382TestCases; ++ii)
1.120 + {
1.121 + TInternetDate date;
1.122 + _LIT(KTest, "Test for fix INC107382 - Case: ");
1.123 + TBuf<256> testname;
1.124 + testname.Append(KTest);
1.125 + TPtrC8 testdate(KINC107382TestCases[ii]);
1.126 + TBuf<150> buftestdate;
1.127 + buftestdate.Copy(testdate);
1.128 + testname.Append(buftestdate);
1.129 +
1.130 +
1.131 + iTestHarness->StartTestL(testname);
1.132 + TRAPD(err,date.SetDateL(KINC107382TestCases[ii]));
1.133 + iTestHarness->EndTest(err);
1.134 + User::LeaveIfError(err);
1.135 + }
1.136 +
1.137 + for (ii=0; ii< KInvalidDescriptorToIntTests; ++ii)
1.138 + {
1.139 + _LIT(KTest, "Test for fix DEF138868 - Case: ");
1.140 + TBuf<256> testname;
1.141 + testname.Append(KTest);
1.142 + TPtrC8 testInput(KInvalidDesToIntTestCases[ii]);
1.143 + TBuf<150> buftestInput;
1.144 + buftestInput.Copy(testInput);
1.145 + testname.Append(buftestInput);
1.146 +
1.147 + iTestHarness->StartTestL(testname);
1.148 + TInt err=0;
1.149 + InetProtTextUtils::ConvertDescriptorToInt(KInvalidDesToIntTestCases[ii], err);
1.150 + iTestHarness->EndTest(err);
1.151 + User::LeaveIfError(err);
1.152 + }
1.153 +
1.154 + }
1.155 +
1.156 +
1.157 +void CConvertToRfc1123FormTest::ConvertTestL(TDateTime aDateTime, const TDesC8& aExpectedResult)
1.158 + {
1.159 + _LIT(KStartText, "TDateTime->Rfc1123 Expected: ");
1.160 + TBuf<284> testName;
1.161 + testName.Append(KStartText);
1.162 + TBuf <256> expected;
1.163 + expected.Copy(aExpectedResult);
1.164 + testName.Append(expected);
1.165 +
1.166 + iTestHarness->StartTestL(testName);
1.167 + TRAPD(error, ConvertSingleTestL(aDateTime, aExpectedResult));
1.168 + iTestHarness->EndTest(error);
1.169 + User::LeaveIfError(error);
1.170 + }
1.171 +
1.172 +void CConvertToRfc1123FormTest::ConvertSingleTestL(TDateTime aDateTime, const TDesC8& aExpectedResult)
1.173 + {
1.174 + TInternetDate internetDate(aDateTime);
1.175 + HBufC8* textDate = internetDate.InternetDateTimeL(TInternetDate::ERfc1123Format);
1.176 + CleanupStack::PushL(textDate);
1.177 + if (aExpectedResult.CompareF(*textDate) != 0)
1.178 + User::Leave(KErrCorrupt);
1.179 +
1.180 + CleanupStack::PopAndDestroy(textDate);
1.181 + }