tzservices/tzloc/test/rtest/t_localizationupdate.cpp
changeset 0 2e3d3ce01487
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tzservices/tzloc/test/rtest/t_localizationupdate.cpp	Tue Feb 02 10:12:00 2010 +0200
@@ -0,0 +1,567 @@
+// Copyright (c) 2008-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 <e32base.h>
+#include <e32std.h>
+#include <e32des16.h>
+#include <e32test.h>
+#include <tzlocalizer.h> 
+#include <tzlocalizedcityrecord.h>
+#include "testserver.h"
+#include <f32file.h>
+
+_LIT(KDefaultLocale, "elocl.loc");
+#ifdef SYMBIAN_DISTINCT_LOCALE_MODEL
+_LIT(KFrenchLocale, "elocl_lan.002");
+#else
+_LIT(KFrenchLocale, "elocl.02");
+#endif
+const TInt KDefaultTzId = 2592;
+const TInt KDefaultCityGroupId = 1;
+const TInt KParisTzId = 2656;
+
+_LIT(KSrcTzLocRscFile1, "z:\\timezonelocalization\\timezonegroups.r01");
+_LIT(KSrcTzLocRscFile2, "z:\\timezonelocalization\\timezonegroups.r02");
+_LIT(KSrcTzLocRscFile3, "z:\\timezonelocalization\\timezonegroups.rsc");
+_LIT(KSrcTzLocRscFile4, "z:\\timezonelocalization\\timezones.r01");
+_LIT(KSrcTzLocRscFile5, "z:\\timezonelocalization\\timezones.r02");
+_LIT(KSrcTzLocRscFile6, "z:\\timezonelocalization\\timezones.rsc");
+
+_LIT(KDestTzLocRscDir, "c:\\resource\\timezonelocalization\\");
+_LIT(KDestTzLocRscFile1, "c:\\resource\\timezonelocalization\\timezonegroups.r01");
+_LIT(KDestTzLocRscFile2, "c:\\resource\\timezonelocalization\\timezonegroups.r02");
+_LIT(KDestTzLocRscFile3, "c:\\resource\\timezonelocalization\\timezonegroups.rsc");
+_LIT(KDestTzLocRscFile4, "c:\\resource\\timezonelocalization\\timezones.r01");
+_LIT(KDestTzLocRscFile5, "c:\\resource\\timezonelocalization\\timezones.r02");
+_LIT(KDestTzLocRscFile6, "c:\\resource\\timezonelocalization\\timezones.rsc");
+
+_LIT(KTzLocTemporaryFile,"c:\\private\\100012a5\\DBS_2000836D_DBS_DSC.db");
+_LIT(KTzLocDb,"c:\\private\\100012a5\\DBS_10206A8B_TzLocalization.db");
+
+_LIT(KSrcTzLocModifiedDir, "z:\\timezonelocalization\\modified");
+
+_LIT(KSrcTzLocLocaleModifiedDir, "z:\\timezonelocalization\\locale\\");
+
+_LIT(KAgendaServer,"agsvexe*");
+_LIT(KTzServer,"Tzserver*");
+
+RTest test(_L("TZ Localization Resource Files Update Test Suite"));
+
+
+LOCAL_C void CopyFilesL(RPIMTestServer& aTestServer)
+	{
+	aTestServer.CopyFileL(KSrcTzLocRscFile1,KDestTzLocRscFile1);
+	aTestServer.CopyFileL(KSrcTzLocRscFile2,KDestTzLocRscFile2);
+	aTestServer.CopyFileL(KSrcTzLocRscFile3,KDestTzLocRscFile3);
+	aTestServer.CopyFileL(KSrcTzLocRscFile4,KDestTzLocRscFile4);
+	aTestServer.CopyFileL(KSrcTzLocRscFile5,KDestTzLocRscFile5);
+	aTestServer.CopyFileL(KSrcTzLocRscFile6,KDestTzLocRscFile6);
+	}
+
+
+LOCAL_C void DeleteFilesL(RPIMTestServer& aTestServer)
+	{
+	aTestServer.DeleteFileL(KDestTzLocRscFile1);
+	aTestServer.DeleteFileL(KDestTzLocRscFile2);
+	aTestServer.DeleteFileL(KDestTzLocRscFile3);
+	aTestServer.DeleteFileL(KDestTzLocRscFile4);
+	aTestServer.DeleteFileL(KDestTzLocRscFile5);
+	aTestServer.DeleteFileL(KDestTzLocRscFile6);
+	aTestServer.DeleteDirL(KDestTzLocRscDir);
+	}
+
+LOCAL_C void DeleteEnglishFilesL(RPIMTestServer& aTestServer)
+	{
+	aTestServer.DeleteFileL(KDestTzLocRscFile1);
+	aTestServer.DeleteFileL(KDestTzLocRscFile3);
+	aTestServer.DeleteFileL(KDestTzLocRscFile4);
+	aTestServer.DeleteFileL(KDestTzLocRscFile6);
+	aTestServer.DeleteDirL(KDestTzLocRscDir);
+	}
+
+/**
+@SYMTestCaseID	PIM-APPSERV-LOC-TZL-ECL-0001
+
+@SYMTestCaseDesc
+	The purpose of this test is to verify the use of eclipsed system TZ
+	localization resources.
+	
+@SYMTestActions
+	1.	Use the CTzLocalizer API to obtain a copy of the cities
+		(preUpdateCities) for a given city group identifier.
+
+	2.	Copy system TZ localization resources that adds a city to the city group
+		used in action 1 to the appropriate location on the C: drive.
+
+	3.	Use the CTzLocalizer API to obtain a copy of the cities
+		(postUpdateCities) for the same city group identifier used in action 1.
+
+@SYMTestExpectedResults
+	The preUpdateCities object should not contain the added city and the
+	postUpdateCities object should contain the added city.
+
+@SYMREQ
+	REQ9952
+
+@SYMTestType
+	CT
+
+@SYMTestPriority
+	1
+*/
+LOCAL_C void TestUpdatedLocalizationFilesL()
+	{
+	RPIMTestServer serv;	
+	CleanupClosePushL(serv);
+	User::LeaveIfError(serv.Connect());
+	
+	serv.CloseTzSession();
+	TRAP_IGNORE(serv.KillProcessL(KAgendaServer));
+	TRAP_IGNORE(serv.KillProcessL(KTzServer));
+	
+	DeleteFilesL(serv);
+	serv.DeleteDirL(KDestTzLocRscDir);
+	serv.DeleteFileL(KTzLocDb);
+	
+	CTzLocalizer* localizer = CTzLocalizer::NewLC();
+	// Set timezone to be London.
+	localizer->SetTimeZoneL(KDefaultTzId);		
+	
+	CTzLocalizedCityGroup* group = localizer->GetCityGroupL(KDefaultCityGroupId);
+	CleanupStack::PushL(group);
+	CTzLocalizedCityArray* cities = localizer->GetCitiesInGroupL(*group);
+	CleanupStack::PushL(cities);
+
+	TInt countDefault = cities->Count();
+	test.Printf(_L("The number of cities found in a city group in the default files are %d\n"), countDefault);
+
+	CleanupStack::PopAndDestroy(cities);
+	CleanupStack::PopAndDestroy(group);
+	CleanupStack::PopAndDestroy(localizer);	
+	
+	CopyFilesL(serv);
+	
+	CTzLocalizer* localizerFlash = CTzLocalizer::NewLC();
+	localizerFlash->SetTimeZoneL(KDefaultTzId);
+	
+	CTzLocalizedCityGroup* groupFlash = localizerFlash->GetCityGroupL(KDefaultCityGroupId);
+	CleanupStack::PushL(groupFlash);
+	CTzLocalizedCityArray* citiesFlash = localizerFlash->GetCitiesInGroupL(*groupFlash);
+	CleanupStack::PushL(citiesFlash);
+	TInt countFlash = citiesFlash->Count();
+
+	test.Printf(_L("The number of cities found in a city group in the files under system drive are %d\n"), countFlash);
+	__ASSERT_ALWAYS(countDefault < countFlash, User::Panic(_L("Number of cities found in the file on ROM and flash is the same"), 1));
+	
+	CleanupStack::PopAndDestroy(citiesFlash);
+	CleanupStack::PopAndDestroy(groupFlash);
+	CleanupStack::PopAndDestroy(localizerFlash);
+
+	DeleteFilesL(serv);
+	serv.DeleteDirL(KDestTzLocRscDir);
+	
+	CleanupStack::PopAndDestroy(&serv);
+	}
+
+/**
+@SYMTestCaseID PIM-localizationupdate-0001
+     
+@SYMTestCaseDesc 
+   	The purpose of this test is to verify the use of eclipsed system
+	TZ localization resources.  
+	
+@SYMTestActions 
+    1. 	The current locale of the system is changed to French
+
+	2. 	Fetch the number of cities in the group
+
+	3. 	Files are copied to system drive
+
+	4. 	Fetch the number of cities in the group
+
+	5.	Delete the files on system drive
+
+	6. 	Fetch the number of cities in the group
+	
+@SYMTestExpectedResults
+    Number of cities in Step 2 and 6 is 2
+     
+	Number of cities in Step 4 is 52
+	
+@SYMREQ 
+	REQ9952
+@SYMTestType  
+    CT
+    
+@SYMTestPriority            
+	1
+*/
+LOCAL_C void TestEclipsingOfRscFileL()
+	{
+	_LIT(KLocaleChangeStart, "Changing locale to French\n");
+	test.Printf(KLocaleChangeStart);
+
+	TExtendedLocale extendedLocale;
+	extendedLocale.LoadSystemSettings();
+	TBuf<100> localeDllLocationString ;
+	localeDllLocationString.Copy(KFrenchLocale);
+	extendedLocale.LoadLocaleAspect(ELocaleLanguageSettings, localeDllLocationString) ;	
+	extendedLocale.SaveSystemSettings();
+	
+	RPIMTestServer serv;
+	CleanupClosePushL(serv);
+	User::LeaveIfError(serv.Connect());
+	
+	serv.CloseTzSession();
+	TRAP_IGNORE(serv.KillProcessL(KAgendaServer));
+	TRAP_IGNORE(serv.KillProcessL(KTzServer));
+	
+	DeleteFilesL(serv);
+	serv.DeleteDirL(KDestTzLocRscDir);
+	serv.DeleteFileL(KTzLocDb);
+	
+	CTzLocalizer* localizer = CTzLocalizer::NewLC();
+	// Set timezone to be London
+	localizer->SetTimeZoneL(KDefaultTzId);	
+		
+	// Get the default city and cities within the group
+	CTzLocalizedCityGroup* group = localizer->GetCityGroupL(KDefaultCityGroupId);
+	CleanupStack::PushL(group);
+	CTzLocalizedCityArray* cities = localizer->GetCitiesInGroupL(*group);
+	CleanupStack::PushL(cities);
+	
+	// Get the number of cities
+	TInt countDefault = cities->Count();
+	test.Printf(_L("The number of cities found in a city group in the default files are %d\n"), countDefault);
+	
+	CleanupStack::PopAndDestroy(cities);
+	CleanupStack::PopAndDestroy(group);
+	CleanupStack::PopAndDestroy(localizer);	
+	
+	// Copy files on to system drive
+	serv.CopyFileL(KSrcTzLocLocaleModifiedDir, KDestTzLocRscDir);
+	
+	// Get cities and city group 
+	CTzLocalizer* localizerFlash = CTzLocalizer::NewLC();
+	localizerFlash->SetTimeZoneL(KDefaultTzId);
+	
+	// Fetch cities
+	CTzLocalizedCityGroup* groupFlash = localizerFlash->GetCityGroupL(KDefaultCityGroupId);
+	CleanupStack::PushL(groupFlash);
+	CTzLocalizedCityArray* citiesFlash = localizerFlash->GetCitiesInGroupL(*groupFlash);
+	CleanupStack::PushL(citiesFlash);
+	
+	// Get the number of cities in the group
+	TInt countFlash = citiesFlash->Count();
+	test.Printf(_L("The number of cities found in a city group in the files under system drive are %d\n"), countFlash);
+	
+	// Test whether number of cities from system drive is more than ones on ROM
+	test(countDefault < countFlash);
+	
+	// Cleanup
+	CleanupStack::PopAndDestroy(citiesFlash);
+	CleanupStack::PopAndDestroy(groupFlash);
+	CleanupStack::PopAndDestroy(localizerFlash);
+	
+	// Delete the resource files
+	DeleteEnglishFilesL(serv);
+	serv.DeleteFileL(KTzLocDb);
+	
+	// Get cities and city group 
+	CTzLocalizer* newLocalizer = CTzLocalizer::NewLC();
+	CTzLocalizedCityGroup* newGroup = newLocalizer->GetCityGroupL(KDefaultCityGroupId);
+	CleanupStack::PushL(newGroup);
+	CTzLocalizedCityArray* newCities = newLocalizer->GetCitiesInGroupL(*newGroup);
+	CleanupStack::PushL(newCities);
+	
+	// Get the count of cities
+	TInt newCount = newCities->Count();
+	test.Printf(_L("The number of cities found in a city group in the files under ROM are %d\n"), newCount);
+	test(newCount < countFlash);
+	
+	// Cleanup
+	CleanupStack::PopAndDestroy(newCities);
+	CleanupStack::PopAndDestroy(newGroup);
+	CleanupStack::PopAndDestroy(newLocalizer);
+	CleanupStack::PopAndDestroy(&serv);
+	
+	// Revert the system locale to English
+	localeDllLocationString.Copy(KDefaultLocale);
+	TInt ret = extendedLocale.LoadLocaleAspect(ELocaleLanguageSettings, localeDllLocationString) ;
+	if(ret != KErrNone)	
+		{
+		test.Printf(_L("Could not revert to default locale. Error code is %d"), ret);
+		}	
+	extendedLocale.SaveSystemSettings();
+	}
+
+LOCAL_C void TestImpactOfTimeZoneDeleteOnCityL()
+	{
+	RPIMTestServer serv;
+	CleanupClosePushL(serv);
+	User::LeaveIfError(serv.Connect());
+	
+	serv.CloseTzSession();
+
+	TRAP_IGNORE(serv.KillProcessL(KAgendaServer));
+	TRAP_IGNORE(serv.KillProcessL(KTzServer));
+	
+	DeleteFilesL(serv);
+	serv.DeleteDirL(KDestTzLocRscDir);
+	serv.DeleteFileL(KTzLocDb);
+	
+	RTz tz;
+	CleanupClosePushL(tz);
+	User::LeaveIfError(tz.Connect());	
+	
+	CTzLocalizer* localizer = CTzLocalizer::NewLC();
+	localizer->SetTimeZoneL(KDefaultTzId);
+
+	_LIT(KUserCity1, "UserCity1");
+	CTzLocalizedCity* city1 = localizer->AddCityL(KDefaultTzId, KUserCity1);
+	delete city1;
+
+	_LIT(KUserCity2, "UserCity2");
+	CTzLocalizedCity* city2 = localizer->AddCityL(KDefaultTzId, KUserCity2);
+	delete city2;
+
+	_LIT(KUserCity3, "UserCity3");
+	CTzLocalizedCity* city3 = localizer->AddCityL(KParisTzId, KUserCity3);
+	delete city3;
+
+	//Read the number of cities
+	RPointerArray<CTzLocalizedCityRecord> cityRecords;
+	tz.LocalizationReadCitiesL(cityRecords);
+	test.Printf(_L("Check if the number of cities read is correct\n"));
+	test(cityRecords.Count() == 3);
+	cityRecords.ResetAndDestroy();
+	cityRecords.Close();
+	CleanupStack::PopAndDestroy(localizer);
+	
+	// Copy the files that do not contain information on Paris	
+	TRAPD(err, serv.CopyFileL(KSrcTzLocModifiedDir, KDestTzLocRscDir));
+	if (err != KErrNone)
+		{
+		_LIT(KErrCopyFiles, "Couldn't copy database file\n");
+		test.Printf(KErrCopyFiles);
+		User::Leave(err);
+		}
+	tz.SwiObsBeginL();
+	tz.SwiObsFileChangedL(RTz::EFilterResourceTimezonelocalization);
+	tz.SwiObsEndL();	
+	
+	CTzLocalizer* newLocalizer = CTzLocalizer::NewLC();
+	newLocalizer->SetTimeZoneL(KDefaultTzId);
+	//Read the number of cities again
+	RPointerArray<CTzLocalizedCityRecord> cityRecords2;
+	tz.LocalizationReadCitiesL(cityRecords2);
+	test.Printf(_L("Again, check if the number of cities read is correct\n"));
+	test(cityRecords2.Count() == 2);
+	cityRecords2.ResetAndDestroy();
+	cityRecords2.Close();	
+	CleanupStack::PopAndDestroy(newLocalizer);
+	CleanupStack::PopAndDestroy(&tz);
+	
+	DeleteFilesL(serv);
+	serv.DeleteDirL(KDestTzLocRscDir);
+	serv.DeleteFileL(KTzLocDb);
+
+	CleanupStack::PopAndDestroy(&serv);
+	}
+	
+LOCAL_C void TestImpactOfTimeZoneDeleteOnZoneL()
+	{
+	RPIMTestServer serv;
+	CleanupClosePushL(serv);
+	User::LeaveIfError(serv.Connect());
+	
+	serv.CloseTzSession();
+	TRAP_IGNORE(serv.KillProcessL(KAgendaServer));
+	TRAP_IGNORE(serv.KillProcessL(KTzServer));
+	
+	DeleteFilesL(serv);
+	serv.DeleteDirL(KDestTzLocRscDir);
+	serv.DeleteFileL(KTzLocDb);
+	
+	RTz tz;
+	CleanupClosePushL(tz);
+	User::LeaveIfError(tz.Connect());	
+	
+	CTzLocalizer* localizer = CTzLocalizer::NewLC();
+	localizer->SetFrequentlyUsedZoneL(KParisTzId, CTzLocalizedTimeZone::EHomeZone);
+	CleanupStack::PopAndDestroy(localizer);	
+	
+	// Copy the resource files that do not have Paris in them
+	test.Printf(_L("Copy resource files to flash drive\n"));
+	TRAPD(err, serv.CopyFileL(KSrcTzLocModifiedDir, KDestTzLocRscDir));
+	if (err != KErrNone)
+		{
+		_LIT(KErrCopyFiles, "Couldn't copy database file\n");
+		test.Printf(KErrCopyFiles);
+		User::Leave(err);
+		}
+	tz.SwiObsBeginL();
+	tz.SwiObsFileChangedL(RTz::EFilterResourceTimezonelocalization);
+	tz.SwiObsEndL();	
+	
+	CTzLocalizer* newLocalizer = CTzLocalizer::NewLC();
+	//Extract zone information, same city should be returned by GetFrequentlyUsedZoneCityL below.	
+	CTzLocalizedCity* cityToCompareWith = newLocalizer->GetDefaultCityL(KDefaultTzId);
+	CleanupStack::PushL(cityToCompareWith);
+	
+	//Extract zone information, same zone should be returned by GetFrequentlyUsedZoneL below.
+	CTzLocalizedTimeZone* zoneToCompareWith = newLocalizer->GetLocalizedTimeZoneL(KDefaultTzId);
+	CleanupStack::PushL(zoneToCompareWith);
+	
+	CTzLocalizedCity* city = newLocalizer->GetFrequentlyUsedZoneCityL(CTzLocalizedTimeZone::EHomeZone);
+	test.Printf(_L("Check if the frequently used city read from the database is same as the one expected\n"));
+	test(city->TimeZoneId() == cityToCompareWith->TimeZoneId());
+	test(city->GroupId() == cityToCompareWith->GroupId());
+	test(city->Name() == cityToCompareWith->Name());
+	delete city;
+	
+	CTzLocalizedTimeZone* timeZone = newLocalizer->GetFrequentlyUsedZoneL(CTzLocalizedTimeZone::EHomeZone);
+	test.Printf(_L("Check if the frequently used zone read from the database is same as the one expected\n"));
+	test(timeZone->TimeZoneId() == zoneToCompareWith->TimeZoneId());
+	test(timeZone->StandardName() == zoneToCompareWith->StandardName());
+	test(timeZone->ShortStandardName() == zoneToCompareWith->ShortStandardName());	
+	test(timeZone->DaylightName() == zoneToCompareWith->DaylightName());
+	test(timeZone->ShortDaylightName() == zoneToCompareWith->ShortDaylightName());
+	delete timeZone;
+	
+	CleanupStack::PopAndDestroy(2, cityToCompareWith);
+	CleanupStack::PopAndDestroy(newLocalizer);	
+	CleanupStack::PopAndDestroy(&tz);
+	
+	DeleteFilesL(serv);
+	serv.DeleteDirL(KDestTzLocRscDir);
+	serv.DeleteFileL(KTzLocDb);
+
+	CleanupStack::PopAndDestroy(&serv);
+	}
+
+LOCAL_C void TestImpactOfTimeZoneUpdateL()
+	{
+	RPIMTestServer serv;
+	CleanupClosePushL(serv);
+	User::LeaveIfError(serv.Connect());
+	
+	serv.CloseTzSession();
+	TRAP_IGNORE(serv.KillProcessL(KAgendaServer));
+	TRAP_IGNORE(serv.KillProcessL(KTzServer));
+	
+	DeleteFilesL(serv);
+	serv.DeleteDirL(KDestTzLocRscDir);
+	serv.DeleteFileL(KTzLocDb);
+	
+	RTz tz;
+	CleanupClosePushL(tz);
+	User::LeaveIfError(tz.Connect());	
+	
+	CTzLocalizer* localizer = CTzLocalizer::NewLC();
+	localizer->SetFrequentlyUsedZoneL(KDefaultTzId, CTzLocalizedTimeZone::EHomeZone);
+	CleanupStack::PopAndDestroy(localizer);
+	// Copy the resource files that have updated information for London
+	TRAPD(err, serv.CopyFileL(KSrcTzLocModifiedDir, KDestTzLocRscDir));
+	if (err != KErrNone)
+		{
+		_LIT(KErrCopyFiles, "Couldn't copy database file\n");
+		test.Printf(KErrCopyFiles);
+		User::Leave(err);
+		}
+	tz.SwiObsBeginL();
+	tz.SwiObsFileChangedL(RTz::EFilterResourceTimezonelocalization);
+	tz.SwiObsEndL();	
+	
+	CTzLocalizer* newLocalizer = CTzLocalizer::NewLC();
+	//Extract zone information, same city should be returned by GetFrequentlyUsedZoneCityL below.	
+	CTzLocalizedCity* cityToCompareWith = newLocalizer->GetDefaultCityL(KDefaultTzId);
+	CleanupStack::PushL(cityToCompareWith);
+	
+	//Extract zone information, same zone should be returned by GetFrequentlyUsedZoneL below.
+	CTzLocalizedTimeZone* zoneToCompareWith = newLocalizer->GetLocalizedTimeZoneL(KDefaultTzId);
+	CleanupStack::PushL(zoneToCompareWith);
+		
+	CTzLocalizedCity* city = newLocalizer->GetFrequentlyUsedZoneCityL(CTzLocalizedTimeZone::EHomeZone);
+	test.Printf(_L("Check if the frequently used city read from the database is same as the one expected\n"));
+	test(city->TimeZoneId() == cityToCompareWith->TimeZoneId());
+	test(city->GroupId() == cityToCompareWith->GroupId());
+	test(city->Name() == cityToCompareWith->Name());
+	delete city;
+	
+	CTzLocalizedTimeZone* timeZone = newLocalizer->GetFrequentlyUsedZoneL(CTzLocalizedTimeZone::EHomeZone);
+	test.Printf(_L("Check if the frequently used zone read from the database is same as the one expected\n"));
+	test(timeZone->TimeZoneId() == zoneToCompareWith->TimeZoneId());
+	test(timeZone->StandardName() == zoneToCompareWith->StandardName());
+	test(timeZone->ShortStandardName() == zoneToCompareWith->ShortStandardName());	
+	test(timeZone->DaylightName() == zoneToCompareWith->DaylightName());
+	test(timeZone->ShortDaylightName() == zoneToCompareWith->ShortDaylightName());
+	delete timeZone;
+	CleanupStack::PopAndDestroy(2, cityToCompareWith);
+	CleanupStack::PopAndDestroy(newLocalizer);	
+	CleanupStack::PopAndDestroy(&tz);
+	
+	DeleteFilesL(serv);
+	serv.DeleteDirL(KDestTzLocRscDir);
+	serv.DeleteFileL(KTzLocDb);
+	serv.DeleteFileL(KTzLocTemporaryFile);
+	
+	CleanupStack::PopAndDestroy(&serv);
+	}
+
+LOCAL_C void DoTestsL()
+	{
+	test.Title();
+
+	
+	test.Start(_L(" @SYMTestCaseID	PIM-APPSERV-LOC-TZL-ECL-0001  Test Updated Localization Files"));
+	TestUpdatedLocalizationFilesL();
+	
+	test.Next(_L(" @SYMTestCaseID PIM-localizationupdate-0001 Test Eclipsing of Files with locale changes"));
+	TestEclipsingOfRscFileL();
+	
+	
+	test.Next(_L("Test the impact of deleting time zone id on user cities table"));
+	TestImpactOfTimeZoneDeleteOnCityL();
+
+	test.Next(_L("Test the impact of deleting time zone id on frequently used zone table"));
+	TestImpactOfTimeZoneDeleteOnZoneL();
+	
+	test.Next(_L("Test the impact of updating time zone id on frequently used zone table"));
+	TestImpactOfTimeZoneUpdateL();
+	
+	test.End();
+	}
+
+
+GLDEF_C TInt E32Main()
+	{
+	__UHEAP_MARK;
+
+	CTrapCleanup* cleanup = CTrapCleanup::New();
+
+	TRAPD(ret, DoTestsL());
+	test.Printf(_L("Trapped return value from DoTestsL(): %d\n"), ret);	
+	test(ret == KErrNone);
+	
+	delete cleanup;
+
+	test.Close();
+
+	__UHEAP_MARKEND;
+
+	return KErrNone;
+	}