diff -r 000000000000 -r 2e3d3ce01487 tzservices/tzserver/test/Integration/src/DstIntUtils.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tzservices/tzserver/test/Integration/src/DstIntUtils.cpp Tue Feb 02 10:12:00 2010 +0200 @@ -0,0 +1,170 @@ +// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +#include "DstIntUtils.h" +#include + +#include +#include +#include + +TInt CDstIntUtils::SetHomeTimeZoneL(const TDesC8& aLocation, const RTz &aServer) + { + CTzId *timezoneid = CTzId::NewL(aLocation); + CleanupStack::PushL(timezoneid); + TInt err; + TRAP(err, aServer.SetTimeZoneL(*timezoneid)); + CleanupStack::PopAndDestroy(timezoneid); + + return err; + } + +TInt CDstIntUtils::CheckHomeTimeZoneL(const RTz &aServer, const TDesC8& aLocation) + { + TInt err = KErrBadName; + CTzId *timezoneid = aServer.GetTimeZoneIdL(); + if(timezoneid->TimeZoneNameID() == aLocation) + { + err = KErrNone; + } + delete timezoneid; + return err; + } + + +void CDstIntUtils::AppendTimeParamStringL(TTime aTime, TDes& aParamString) + { + // This writes TTime according to a format specification, and this takes produces proper + // month and day values (ie they start with 1) + TBuf<15> dateString; + _LIT(KDateFormat, "%F%Y%M%D:%H%T%S"); + aTime.FormatL(dateString, KDateFormat); + aParamString.Append(dateString); + } + +void ResetAndDestroyArrayOfEntries(TAny* aObject) + { + RPointerArray* array=static_cast*>(aObject); + if (array) + { + array->ResetAndDestroy(); + } + } + +void CDstIntUtils::OpenAgendaFileL(CCalSession& aSession, const TDesC& aFilename) + { + // Create the agenda file if does not exist + TRAPD(err, aSession.CreateCalFileL(aFilename)); + if (err != KErrAlreadyExists) + { + User::LeaveIfError(err); + } + + // Now open it + aSession.OpenL(aFilename); + } + + +TCalLocalUid CDstIntUtils::ImportVCalL(RFs& aFs, CCalSession& aSession, CCalEntryView& aEntryView, const TDesC& aFileName) + { + RFileReadStream readStream; + User::LeaveIfError(readStream.Open(aFs, aFileName, EFileRead)); + CleanupClosePushL(readStream); + + // Create ptr array for new entries + RPointerArray entryArray; + CleanupStack::PushL(TCleanupItem(ResetAndDestroyArrayOfEntries, &entryArray)); + + CCalDataExchange* dataExchange = CCalDataExchange::NewL(aSession); + CleanupStack::PushL(dataExchange); + dataExchange->ImportL(KUidVCalendar, readStream, entryArray); + + TInt elements = entryArray.Count(); + TCalLocalUid id = 0; + + if(elements > 0) + { + CCalEntry* entry = entryArray[0]; + // add the first entry only + while (entryArray.Count() > 1) + { + delete entryArray[1]; + entryArray.Remove(1); + } + TInt success = 0; + aEntryView.StoreL(entryArray, success); + id = entryArray[0]->LocalUidL(); + } + + CleanupStack::PopAndDestroy(dataExchange); + CleanupStack::PopAndDestroy(); // ResetAndDestroyArrayOfEntries(entryArray) + CleanupStack::PopAndDestroy(); // readStream.Close() + + return id; + } + + +TInt CDstIntUtils::CheckAgendaEntryL(CCalEntryView& aEntryView, const TCalLocalUid& aId, const TTime& aStart, const TTime& aEnd) + { + TInt err = KErrArgument; + CCalEntry* entry = aEntryView.FetchL(aId); + CleanupStack::PushL(entry); + + TTime start = entry->StartTimeL().TimeLocalL(); + TTime end = entry->EndTimeL().TimeLocalL(); + +#ifdef _DEBUG + TDateTime startDateTime = start.DateTime(); + TDateTime aStartDateTime = aStart.DateTime(); + TDateTime endDateTime = end.DateTime(); + TDateTime aEndDateTime = aEnd.DateTime(); +#endif + + if((aStart == start) && (aEnd == end)) + { + err = KErrNone; + } + + CleanupStack::PopAndDestroy(entry); + return err; + } + +void CDstIntUtils::GenerateVCalL(RFs& aFs, const TDesC& aFileName, const TDesC& aStartTime, const TDesC& aEndTime) + { + RFile file; + file.Replace(aFs, aFileName, EFileWrite); + + TBuf8<64> buf; + + file.Write(_L8("BEGIN:VCALENDAR\r\n")); + file.Write(_L8("VERSION:1.0\r\n")); + file.Write(_L8("BEGIN:VEVENT\r\n")); + file.Write(_L8("CATEGORIES:MEETING\r\n")); + file.Write(_L8("DTSTART:")); + buf.Copy(aStartTime); + file.Write(buf); + file.Write(_L8("\r\n")); + file.Write(_L8("DTEND:")); + buf.Copy(aEndTime); + file.Write(buf); + file.Write(_L8("\r\n")); + file.Write(_L8("SUMMARY:TestMeeting\r\n")); + file.Write(_L8("DESCRIPTION:Test\r\n")); + file.Write(_L8("END:VEVENT\r\n")); + file.Write(_L8("END:VCALENDAR\r\n")); + + file.Flush(); + file.Close(); + }