clock/tsrc/unittest_timezoneclient/unittest_timezoneclient.cpp
author hgs
Fri, 15 Oct 2010 12:10:36 +0530
changeset 83 5aadd1120515
permissions -rw-r--r--
201041
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
83
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
hgs
parents:
diff changeset
     3
 * All rights reserved.
hgs
parents:
diff changeset
     4
 * This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
 * under the terms of the License "Symbian Foundation License v1.0"
hgs
parents:
diff changeset
     6
 * which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
 * at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html".
hgs
parents:
diff changeset
     8
 *
hgs
parents:
diff changeset
     9
 * Initial Contributors:
hgs
parents:
diff changeset
    10
 * Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
 *
hgs
parents:
diff changeset
    12
 * Contributors:
hgs
parents:
diff changeset
    13
 *
hgs
parents:
diff changeset
    14
 * Description:  TimeZoneClient unit test class.
hgs
parents:
diff changeset
    15
 *
hgs
parents:
diff changeset
    16
 */
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
// System includes
hgs
parents:
diff changeset
    19
#include <QtTest/QtTest>
hgs
parents:
diff changeset
    20
hgs
parents:
diff changeset
    21
// User includes
hgs
parents:
diff changeset
    22
#include "timezoneclient.h"
hgs
parents:
diff changeset
    23
#include "clockdatatypes.h"
hgs
parents:
diff changeset
    24
/*!
hgs
parents:
diff changeset
    25
	\class TestTimeZoneClient
hgs
parents:
diff changeset
    26
	
hgs
parents:
diff changeset
    27
	This object has functions to test the public apis in the class
hgs
parents:
diff changeset
    28
	TimeZoneClient.
hgs
parents:
diff changeset
    29
 */
hgs
parents:
diff changeset
    30
class TestTimezoneClient: public QObject
hgs
parents:
diff changeset
    31
{
hgs
parents:
diff changeset
    32
	Q_OBJECT
hgs
parents:
diff changeset
    33
hgs
parents:
diff changeset
    34
private slots:
hgs
parents:
diff changeset
    35
	// Test case setup.
hgs
parents:
diff changeset
    36
	void init();
hgs
parents:
diff changeset
    37
	void cleanup();
hgs
parents:
diff changeset
    38
	
hgs
parents:
diff changeset
    39
	// Test cases.
hgs
parents:
diff changeset
    40
	void testGetLocations();
hgs
parents:
diff changeset
    41
	void testGetCurrentZoneInfoL();
hgs
parents:
diff changeset
    42
	void testSetAsCurrentLocation();
hgs
parents:
diff changeset
    43
	void testSetAsCurrentLocationWithDst();
hgs
parents:
diff changeset
    44
	void testIsDSTOnL();
hgs
parents:
diff changeset
    45
	void testGetStandardOffset();
hgs
parents:
diff changeset
    46
	void testTimeUpdateOn();
hgs
parents:
diff changeset
    47
	void testSetTimeUpdateOn();
hgs
parents:
diff changeset
    48
	void testSetDateTime();
hgs
parents:
diff changeset
    49
	void testGetAllTimeZoneOffsets();
hgs
parents:
diff changeset
    50
	void testGetCountriesForUTCOffset();
hgs
parents:
diff changeset
    51
	void testAddCity();
hgs
parents:
diff changeset
    52
	void testCheckForDstChange();
hgs
parents:
diff changeset
    53
	void testGetSavedLocations();
hgs
parents:
diff changeset
    54
	void testSaveLocations();
hgs
parents:
diff changeset
    55
	//void testGetLocationInfo();
hgs
parents:
diff changeset
    56
	//void testGetCityGroupIdByName();
hgs
parents:
diff changeset
    57
	//void testGetCityOffsetByNameAndId();
hgs
parents:
diff changeset
    58
private:
hgs
parents:
diff changeset
    59
	void doCleanup();
hgs
parents:
diff changeset
    60
private:
hgs
parents:
diff changeset
    61
	TimezoneClient *mTimezoneClient;
hgs
parents:
diff changeset
    62
	int mError;
hgs
parents:
diff changeset
    63
};
hgs
parents:
diff changeset
    64
hgs
parents:
diff changeset
    65
/*!
hgs
parents:
diff changeset
    66
	This function will be called before each testfunction is executed.
hgs
parents:
diff changeset
    67
 */
hgs
parents:
diff changeset
    68
void TestTimezoneClient::init()
hgs
parents:
diff changeset
    69
{
hgs
parents:
diff changeset
    70
	TRAPD(mError, mTimezoneClient = TimezoneClient::getInstance());
hgs
parents:
diff changeset
    71
	Q_UNUSED(mError)
hgs
parents:
diff changeset
    72
	
hgs
parents:
diff changeset
    73
	Q_ASSERT(!mError);
hgs
parents:
diff changeset
    74
	Q_ASSERT(mTimezoneClient);
hgs
parents:
diff changeset
    75
}
hgs
parents:
diff changeset
    76
hgs
parents:
diff changeset
    77
/*!
hgs
parents:
diff changeset
    78
	This function will be called after every testfunction.
hgs
parents:
diff changeset
    79
 */
hgs
parents:
diff changeset
    80
void TestTimezoneClient::cleanup()
hgs
parents:
diff changeset
    81
{
hgs
parents:
diff changeset
    82
	if (!mTimezoneClient->isNull()) {
hgs
parents:
diff changeset
    83
		mTimezoneClient->deleteInstance();
hgs
parents:
diff changeset
    84
	}
hgs
parents:
diff changeset
    85
}
hgs
parents:
diff changeset
    86
hgs
parents:
diff changeset
    87
/*!
hgs
parents:
diff changeset
    88
	Tests the api TimeZoneClient::getLocations
hgs
parents:
diff changeset
    89
 */
hgs
parents:
diff changeset
    90
void TestTimezoneClient::testGetLocations()
hgs
parents:
diff changeset
    91
{
hgs
parents:
diff changeset
    92
	QList<LocationInfo> locationList = mTimezoneClient->getLocations();
hgs
parents:
diff changeset
    93
	QVERIFY(0 < locationList.count());
hgs
parents:
diff changeset
    94
}
hgs
parents:
diff changeset
    95
hgs
parents:
diff changeset
    96
/*!
hgs
parents:
diff changeset
    97
	Tests the api TestTimezoneClient::getCurrentZoneInfoL
hgs
parents:
diff changeset
    98
 */
hgs
parents:
diff changeset
    99
void TestTimezoneClient::testGetCurrentZoneInfoL()
hgs
parents:
diff changeset
   100
{
hgs
parents:
diff changeset
   101
	//LocationInfo testLocationInfo = {"Canada", "Toronto", "", -300, 1528, true};
hgs
parents:
diff changeset
   102
	
hgs
parents:
diff changeset
   103
	LocationInfo testLocationInfo = {"India", "Chennai", "", 330, 1944, 45, false};
hgs
parents:
diff changeset
   104
	mTimezoneClient->setAsCurrentLocationL(testLocationInfo);
hgs
parents:
diff changeset
   105
	LocationInfo retrievedLocationInfo;
hgs
parents:
diff changeset
   106
	retrievedLocationInfo = mTimezoneClient->getCurrentZoneInfoL();
hgs
parents:
diff changeset
   107
hgs
parents:
diff changeset
   108
	// Check the location info set with retrieved info.
hgs
parents:
diff changeset
   109
	QString temp = retrievedLocationInfo.countryName;
hgs
parents:
diff changeset
   110
	temp = retrievedLocationInfo.cityName;
hgs
parents:
diff changeset
   111
	QVERIFY(testLocationInfo.countryName == retrievedLocationInfo.countryName);
hgs
parents:
diff changeset
   112
	QVERIFY(testLocationInfo.cityName == retrievedLocationInfo.cityName);
hgs
parents:
diff changeset
   113
	QVERIFY(testLocationInfo.timezoneId == retrievedLocationInfo.timezoneId);
hgs
parents:
diff changeset
   114
}
hgs
parents:
diff changeset
   115
hgs
parents:
diff changeset
   116
/*!
hgs
parents:
diff changeset
   117
	Tests the api TestTimezoneClient::setAsCurrentLocation.
hgs
parents:
diff changeset
   118
 */
hgs
parents:
diff changeset
   119
void TestTimezoneClient::testSetAsCurrentLocation()
hgs
parents:
diff changeset
   120
{
hgs
parents:
diff changeset
   121
	LocationInfo testLocationInfo = {"India", "Kolkata", "", 330, 1944, false};
hgs
parents:
diff changeset
   122
	mTimezoneClient->setAsCurrentLocationL(testLocationInfo);
hgs
parents:
diff changeset
   123
	LocationInfo retrievedLocationInfo;
hgs
parents:
diff changeset
   124
	retrievedLocationInfo = mTimezoneClient->getCurrentZoneInfoL();
hgs
parents:
diff changeset
   125
hgs
parents:
diff changeset
   126
	// Check the location info set with retrieved info.
hgs
parents:
diff changeset
   127
	QVERIFY(testLocationInfo.countryName == retrievedLocationInfo.countryName);
hgs
parents:
diff changeset
   128
	QVERIFY(testLocationInfo.cityName == retrievedLocationInfo.cityName);
hgs
parents:
diff changeset
   129
	QVERIFY(testLocationInfo.listImageName 
hgs
parents:
diff changeset
   130
	        == retrievedLocationInfo.listImageName);
hgs
parents:
diff changeset
   131
	QVERIFY(testLocationInfo.zoneOffset == retrievedLocationInfo.zoneOffset);
hgs
parents:
diff changeset
   132
	QVERIFY(testLocationInfo.timezoneId == retrievedLocationInfo.timezoneId);
hgs
parents:
diff changeset
   133
	QVERIFY(testLocationInfo.dstOn == retrievedLocationInfo.dstOn);
hgs
parents:
diff changeset
   134
}
hgs
parents:
diff changeset
   135
hgs
parents:
diff changeset
   136
/*!
hgs
parents:
diff changeset
   137
	Tests the api TimeZoneClient::dstOn.
hgs
parents:
diff changeset
   138
 */
hgs
parents:
diff changeset
   139
void TestTimezoneClient::testSetAsCurrentLocationWithDst()
hgs
parents:
diff changeset
   140
{
hgs
parents:
diff changeset
   141
	//QDateTime currentDateTime(QDate(2009, 05, 15), QTime(12, 30));
hgs
parents:
diff changeset
   142
	//QDateTime currentDateTime(QDate(2010, 03, 28), QTime(4, 0));
hgs
parents:
diff changeset
   143
	QDateTime currentDateTime(QDate(2010, 03, 31), QTime(8, 30));
hgs
parents:
diff changeset
   144
	mTimezoneClient->setDateTime(currentDateTime);
hgs
parents:
diff changeset
   145
	LocationInfo testLocationInfo = {"Finland", "Helsinki", "", 180, 2760, 33,
hgs
parents:
diff changeset
   146
			                         true};
hgs
parents:
diff changeset
   147
	mTimezoneClient->setAsCurrentLocationL(testLocationInfo);
hgs
parents:
diff changeset
   148
	LocationInfo retrievedLocationInfo;
hgs
parents:
diff changeset
   149
	retrievedLocationInfo = mTimezoneClient->getCurrentZoneInfoL();
hgs
parents:
diff changeset
   150
hgs
parents:
diff changeset
   151
	// Check the location info set with retrieved info.
hgs
parents:
diff changeset
   152
	QVERIFY(testLocationInfo.countryName == retrievedLocationInfo.countryName);
hgs
parents:
diff changeset
   153
	QVERIFY(testLocationInfo.cityName == retrievedLocationInfo.cityName);
hgs
parents:
diff changeset
   154
	QVERIFY(testLocationInfo.listImageName 
hgs
parents:
diff changeset
   155
	        == retrievedLocationInfo.listImageName);
hgs
parents:
diff changeset
   156
	QVERIFY(testLocationInfo.zoneOffset == retrievedLocationInfo.zoneOffset);
hgs
parents:
diff changeset
   157
	QVERIFY(testLocationInfo.timezoneId == retrievedLocationInfo.timezoneId);
hgs
parents:
diff changeset
   158
	QVERIFY(testLocationInfo.dstOn == retrievedLocationInfo.dstOn);
hgs
parents:
diff changeset
   159
}
hgs
parents:
diff changeset
   160
hgs
parents:
diff changeset
   161
/*!
hgs
parents:
diff changeset
   162
	Tests the api TestTimezoneClient::isDSTOnL
hgs
parents:
diff changeset
   163
 */
hgs
parents:
diff changeset
   164
void TestTimezoneClient::testIsDSTOnL()
hgs
parents:
diff changeset
   165
{
hgs
parents:
diff changeset
   166
	LocationInfo testLocationInfo = 
hgs
parents:
diff changeset
   167
							{"Finland", "Helsinki", "", 180, 2760, 33, true};
hgs
parents:
diff changeset
   168
	mTimezoneClient->setAsCurrentLocationL(testLocationInfo);
hgs
parents:
diff changeset
   169
	QDateTime dstOnDate(QDate(2010, 03, 31), QTime(8, 30));
hgs
parents:
diff changeset
   170
	mTimezoneClient->setDateTime(dstOnDate);
hgs
parents:
diff changeset
   171
	QVERIFY(true == mTimezoneClient->isDSTOnL(2760));
hgs
parents:
diff changeset
   172
	
hgs
parents:
diff changeset
   173
	QDateTime dstOffDate(QDate(2010, 03, 27), QTime(8, 30));
hgs
parents:
diff changeset
   174
	mTimezoneClient->setDateTime(dstOffDate);
hgs
parents:
diff changeset
   175
	QVERIFY(false == mTimezoneClient->isDSTOnL(2760));
hgs
parents:
diff changeset
   176
	
hgs
parents:
diff changeset
   177
	LocationInfo testLocationInfo1 = {"India", "Kolkata", "", 330, 1944, false};
hgs
parents:
diff changeset
   178
	mTimezoneClient->setAsCurrentLocationL(testLocationInfo1);
hgs
parents:
diff changeset
   179
	QVERIFY(false == mTimezoneClient->isDSTOnL(1944));
hgs
parents:
diff changeset
   180
}
hgs
parents:
diff changeset
   181
hgs
parents:
diff changeset
   182
/*!
hgs
parents:
diff changeset
   183
	Tests the api TimeZoneClient::getStandardOffset
hgs
parents:
diff changeset
   184
 */
hgs
parents:
diff changeset
   185
void TestTimezoneClient::testGetStandardOffset()
hgs
parents:
diff changeset
   186
{
hgs
parents:
diff changeset
   187
	// For India
hgs
parents:
diff changeset
   188
	int expectedOffset = 330;
hgs
parents:
diff changeset
   189
	int offset = mTimezoneClient->getStandardOffset(1944);
hgs
parents:
diff changeset
   190
	QVERIFY(expectedOffset == offset);
hgs
parents:
diff changeset
   191
	
hgs
parents:
diff changeset
   192
	// For London
hgs
parents:
diff changeset
   193
	expectedOffset = 345;
hgs
parents:
diff changeset
   194
	offset = mTimezoneClient->getStandardOffset(1936);
hgs
parents:
diff changeset
   195
	QVERIFY(expectedOffset == offset);
hgs
parents:
diff changeset
   196
}
hgs
parents:
diff changeset
   197
hgs
parents:
diff changeset
   198
/*!
hgs
parents:
diff changeset
   199
	Tests the api TimeZoneClient::timeUpdateOn
hgs
parents:
diff changeset
   200
 */
hgs
parents:
diff changeset
   201
void TestTimezoneClient::testTimeUpdateOn()
hgs
parents:
diff changeset
   202
{
hgs
parents:
diff changeset
   203
	mTimezoneClient->setTimeUpdateOn(true);
hgs
parents:
diff changeset
   204
	QVERIFY(true == mTimezoneClient->timeUpdateOn());
hgs
parents:
diff changeset
   205
	mTimezoneClient->setTimeUpdateOn(false);
hgs
parents:
diff changeset
   206
	QVERIFY(false == mTimezoneClient->timeUpdateOn());
hgs
parents:
diff changeset
   207
}
hgs
parents:
diff changeset
   208
hgs
parents:
diff changeset
   209
/*!
hgs
parents:
diff changeset
   210
	Tests the api TimeZoneClient::timeUpdateOn
hgs
parents:
diff changeset
   211
 */
hgs
parents:
diff changeset
   212
void TestTimezoneClient::testSetTimeUpdateOn()
hgs
parents:
diff changeset
   213
{
hgs
parents:
diff changeset
   214
	bool timeUpdate = mTimezoneClient->timeUpdateOn();
hgs
parents:
diff changeset
   215
	mTimezoneClient->setTimeUpdateOn(!timeUpdate);
hgs
parents:
diff changeset
   216
	
hgs
parents:
diff changeset
   217
	QVERIFY(timeUpdate != mTimezoneClient->timeUpdateOn());
hgs
parents:
diff changeset
   218
}
hgs
parents:
diff changeset
   219
hgs
parents:
diff changeset
   220
/*!
hgs
parents:
diff changeset
   221
	Tests the api TimeZoneClient::setDateTime
hgs
parents:
diff changeset
   222
 */
hgs
parents:
diff changeset
   223
void TestTimezoneClient::testSetDateTime()
hgs
parents:
diff changeset
   224
{
hgs
parents:
diff changeset
   225
	QDateTime currentDateTime = QDateTime::currentDateTime();
hgs
parents:
diff changeset
   226
hgs
parents:
diff changeset
   227
	QDateTime expectedDateTime1 = currentDateTime.addDays(10).addSecs(3600);
hgs
parents:
diff changeset
   228
	mTimezoneClient->setDateTime(expectedDateTime1);
hgs
parents:
diff changeset
   229
	QVERIFY(currentDateTime.date() != QDate::currentDate());
hgs
parents:
diff changeset
   230
	QVERIFY(currentDateTime.time().toString("hh:mm ap") != QTime::currentTime().toString("hh:mm ap"));
hgs
parents:
diff changeset
   231
	QVERIFY(expectedDateTime1.date() == QDate::currentDate());
hgs
parents:
diff changeset
   232
	QVERIFY(expectedDateTime1.time().toString("hh:mm ap") == QTime::currentTime().toString("hh:mm ap"));
hgs
parents:
diff changeset
   233
hgs
parents:
diff changeset
   234
	QDateTime expectedDateTime2 = currentDateTime.addDays(100).addSecs(7200);
hgs
parents:
diff changeset
   235
hgs
parents:
diff changeset
   236
	mTimezoneClient->setDateTime(expectedDateTime2);
hgs
parents:
diff changeset
   237
	QVERIFY(expectedDateTime2.date() == QDate::currentDate());
hgs
parents:
diff changeset
   238
	QVERIFY(expectedDateTime2.time().toString("hh:mm ap") == QTime::currentTime().toString("hh:mm ap"));
hgs
parents:
diff changeset
   239
}
hgs
parents:
diff changeset
   240
hgs
parents:
diff changeset
   241
/*!
hgs
parents:
diff changeset
   242
	Tests the api TimeZoneClient::getAllTimeZoneOffsets
hgs
parents:
diff changeset
   243
 */
hgs
parents:
diff changeset
   244
void TestTimezoneClient::testGetAllTimeZoneOffsets()
hgs
parents:
diff changeset
   245
{
hgs
parents:
diff changeset
   246
	int indiaOffset = 330;
hgs
parents:
diff changeset
   247
	QList<int> offsetList = mTimezoneClient->getAllTimeZoneOffsets();
hgs
parents:
diff changeset
   248
	QVERIFY(offsetList.count());
hgs
parents:
diff changeset
   249
	QVERIFY(offsetList.contains(indiaOffset));
hgs
parents:
diff changeset
   250
}
hgs
parents:
diff changeset
   251
hgs
parents:
diff changeset
   252
/*!
hgs
parents:
diff changeset
   253
	Tests the api TimeZoneClient::getCountriesForUTCOffset
hgs
parents:
diff changeset
   254
 */
hgs
parents:
diff changeset
   255
void TestTimezoneClient::testGetCountriesForUTCOffset()
hgs
parents:
diff changeset
   256
{
hgs
parents:
diff changeset
   257
	int offset = 330;
hgs
parents:
diff changeset
   258
	QList<QString> expectedList;
hgs
parents:
diff changeset
   259
	expectedList.append("India");
hgs
parents:
diff changeset
   260
	expectedList.append("Sri Lanka");
hgs
parents:
diff changeset
   261
	QList<LocationInfo> countryList = 
hgs
parents:
diff changeset
   262
			mTimezoneClient->getCountriesForUTCOffset(offset);
hgs
parents:
diff changeset
   263
	int count = countryList.count();
hgs
parents:
diff changeset
   264
	QVERIFY(expectedList.count() == count);
hgs
parents:
diff changeset
   265
	
hgs
parents:
diff changeset
   266
	QList<QString> nameList;
hgs
parents:
diff changeset
   267
	for(int i = 0; i < count; i++) {
hgs
parents:
diff changeset
   268
		nameList.append(countryList[i].countryName);
hgs
parents:
diff changeset
   269
	}
hgs
parents:
diff changeset
   270
	for(int i = 0; i < count; i++) {
hgs
parents:
diff changeset
   271
		QVERIFY(nameList.contains(expectedList[i]));
hgs
parents:
diff changeset
   272
	}
hgs
parents:
diff changeset
   273
	
hgs
parents:
diff changeset
   274
	// TODO: // Add negative
hgs
parents:
diff changeset
   275
	offset = -12;
hgs
parents:
diff changeset
   276
	countryList.clear();
hgs
parents:
diff changeset
   277
	countryList = mTimezoneClient->getCountriesForUTCOffset(offset);
hgs
parents:
diff changeset
   278
	QVERIFY(!countryList.count());
hgs
parents:
diff changeset
   279
}
hgs
parents:
diff changeset
   280
hgs
parents:
diff changeset
   281
/*!
hgs
parents:
diff changeset
   282
	Tests the api TimeZoneClient::addCity
hgs
parents:
diff changeset
   283
 */
hgs
parents:
diff changeset
   284
void TestTimezoneClient::testAddCity()
hgs
parents:
diff changeset
   285
{
hgs
parents:
diff changeset
   286
	QString cityName("Cochin");
hgs
parents:
diff changeset
   287
	LocationInfo newLocInfo;
hgs
parents:
diff changeset
   288
	TRAPD(err, newLocInfo = mTimezoneClient->addCity(1944, cityName, 45));
hgs
parents:
diff changeset
   289
	if(err == KErrAlreadyExists) {
hgs
parents:
diff changeset
   290
		// City is already existing.
hgs
parents:
diff changeset
   291
	}
hgs
parents:
diff changeset
   292
	QList<LocationInfo> &list = mTimezoneClient->getLocations();
hgs
parents:
diff changeset
   293
	QList<QString> nameList;
hgs
parents:
diff changeset
   294
	for(int i = 0; i < list.count(); i++) {
hgs
parents:
diff changeset
   295
		nameList.append(list[i].cityName);
hgs
parents:
diff changeset
   296
	}
hgs
parents:
diff changeset
   297
	QVERIFY(nameList.contains(cityName));
hgs
parents:
diff changeset
   298
}
hgs
parents:
diff changeset
   299
hgs
parents:
diff changeset
   300
/*!
hgs
parents:
diff changeset
   301
	Tests the api TimeZoneClient::checkForDstChange
hgs
parents:
diff changeset
   302
 */
hgs
parents:
diff changeset
   303
void TestTimezoneClient::testCheckForDstChange()
hgs
parents:
diff changeset
   304
{
hgs
parents:
diff changeset
   305
	LocationInfo testLocationInfo = 
hgs
parents:
diff changeset
   306
								{"Finland", "Helsinki", "", 180, 2760, 33, true};
hgs
parents:
diff changeset
   307
	mTimezoneClient->setAsCurrentLocationL(testLocationInfo);
hgs
parents:
diff changeset
   308
	// Finland, Helsinki
hgs
parents:
diff changeset
   309
	// DST started on Sunday, 28 March 2010, 03:00 local standard time
hgs
parents:
diff changeset
   310
	// DST ends on Sunday, 31 October 2010, 04:00 local daylight time
hgs
parents:
diff changeset
   311
	QDateTime dstOnDate(QDate(2010, 10, 31), QTime(3, 45));
hgs
parents:
diff changeset
   312
	mTimezoneClient->setDateTime(dstOnDate);
hgs
parents:
diff changeset
   313
	mTimezoneClient->setAsCurrentLocationL(testLocationInfo);
hgs
parents:
diff changeset
   314
hgs
parents:
diff changeset
   315
	AlarmInfo alarmDetails;
hgs
parents:
diff changeset
   316
	alarmDetails.origAlarmTime = QTime::currentTime().addSecs(3600);
hgs
parents:
diff changeset
   317
	alarmDetails.alarmDateTime = QDate::currentDate();
hgs
parents:
diff changeset
   318
	alarmDetails.repeatType = AlarmRepeatType(0);
hgs
parents:
diff changeset
   319
	alarmDetails.alarmDay = 1;
hgs
parents:
diff changeset
   320
	bool dstChange = mTimezoneClient->checkForDstChange(alarmDetails);
hgs
parents:
diff changeset
   321
	QVERIFY(dstChange == true);
hgs
parents:
diff changeset
   322
	
hgs
parents:
diff changeset
   323
	QDateTime dstOffDate(QDate(2010, 10, 31), QTime(04, 01));
hgs
parents:
diff changeset
   324
	mTimezoneClient->setDateTime(dstOffDate);
hgs
parents:
diff changeset
   325
	AlarmInfo alarmDetails1;
hgs
parents:
diff changeset
   326
	alarmDetails1.origAlarmTime = QTime::currentTime().addSecs(3600);
hgs
parents:
diff changeset
   327
	alarmDetails1.alarmDateTime = QDate::currentDate();
hgs
parents:
diff changeset
   328
	alarmDetails1.repeatType = AlarmRepeatType(0);
hgs
parents:
diff changeset
   329
	alarmDetails1.alarmDay = 1;
hgs
parents:
diff changeset
   330
	dstChange = mTimezoneClient->checkForDstChange(alarmDetails1);
hgs
parents:
diff changeset
   331
	QVERIFY(dstChange == false);
hgs
parents:
diff changeset
   332
	
hgs
parents:
diff changeset
   333
	LocationInfo testLocationInfo1 = 
hgs
parents:
diff changeset
   334
									{"India", "Chennai", "", 330, 1944, 45, false};
hgs
parents:
diff changeset
   335
	mTimezoneClient->setAsCurrentLocationL(testLocationInfo1);
hgs
parents:
diff changeset
   336
	mTimezoneClient->setDateTime(dstOnDate);
hgs
parents:
diff changeset
   337
	mTimezoneClient->setAsCurrentLocationL(testLocationInfo1);
hgs
parents:
diff changeset
   338
	dstChange = mTimezoneClient->checkForDstChange(alarmDetails1);
hgs
parents:
diff changeset
   339
	QVERIFY(dstChange == false);
hgs
parents:
diff changeset
   340
}
hgs
parents:
diff changeset
   341
hgs
parents:
diff changeset
   342
/*!
hgs
parents:
diff changeset
   343
	Tests the api TimeZoneClient::getSavedLocations
hgs
parents:
diff changeset
   344
 */
hgs
parents:
diff changeset
   345
void TestTimezoneClient::testGetSavedLocations()
hgs
parents:
diff changeset
   346
{
hgs
parents:
diff changeset
   347
	doCleanup();
hgs
parents:
diff changeset
   348
	mTimezoneClient->setDateTime(QDateTime(QDate(2010, 8, 15), QTime(9,30)));
hgs
parents:
diff changeset
   349
	
hgs
parents:
diff changeset
   350
	QList<LocationInfo> locationList = mTimezoneClient->getSavedLocations();
hgs
parents:
diff changeset
   351
	int firstcount = locationList.count();
hgs
parents:
diff changeset
   352
	LocationInfo testLocationInfo1 = {"Japan", "Tokyo", "", 540, 2192, 53, 
hgs
parents:
diff changeset
   353
			false};
hgs
parents:
diff changeset
   354
	QList<LocationInfo> testList;
hgs
parents:
diff changeset
   355
	testList << testLocationInfo1;
hgs
parents:
diff changeset
   356
	mTimezoneClient->saveLocations(testList);
hgs
parents:
diff changeset
   357
	
hgs
parents:
diff changeset
   358
	locationList.clear();
hgs
parents:
diff changeset
   359
	locationList = mTimezoneClient->getSavedLocations();
hgs
parents:
diff changeset
   360
	int cnt = locationList.count();
hgs
parents:
diff changeset
   361
	QVERIFY((firstcount + 1) == locationList.count());
hgs
parents:
diff changeset
   362
	
hgs
parents:
diff changeset
   363
	QList<QString> nameList;
hgs
parents:
diff changeset
   364
	int index = 0;
hgs
parents:
diff changeset
   365
	for(int i = 0; i < locationList.count(); i++) {
hgs
parents:
diff changeset
   366
		if(testLocationInfo1.countryName == locationList[i].countryName) {
hgs
parents:
diff changeset
   367
			index = i;
hgs
parents:
diff changeset
   368
		}
hgs
parents:
diff changeset
   369
	}
hgs
parents:
diff changeset
   370
	QVERIFY(testLocationInfo1.countryName == locationList[index].countryName);
hgs
parents:
diff changeset
   371
	QVERIFY(testLocationInfo1.cityName == locationList[index].cityName);
hgs
parents:
diff changeset
   372
	QVERIFY(testLocationInfo1.listImageName 
hgs
parents:
diff changeset
   373
	        == locationList[index].listImageName);
hgs
parents:
diff changeset
   374
	QVERIFY(testLocationInfo1.zoneOffset == locationList[index].zoneOffset);
hgs
parents:
diff changeset
   375
	QVERIFY(testLocationInfo1.timezoneId == locationList[index].timezoneId);
hgs
parents:
diff changeset
   376
	QVERIFY(testLocationInfo1.dstOn == locationList[index].dstOn);
hgs
parents:
diff changeset
   377
	
hgs
parents:
diff changeset
   378
	LocationInfo testLocationInfo2 = {"Singapore", "Singapore", "", 480, 2144, 87, false};
hgs
parents:
diff changeset
   379
	LocationInfo testLocationInfo3 = {"Finland", "Helsinki", "", 180, 2760, 33, true};
hgs
parents:
diff changeset
   380
	testList << testLocationInfo2
hgs
parents:
diff changeset
   381
			<< testLocationInfo3;
hgs
parents:
diff changeset
   382
	mTimezoneClient->saveLocations(testList);
hgs
parents:
diff changeset
   383
	locationList.clear();
hgs
parents:
diff changeset
   384
	locationList = mTimezoneClient->getSavedLocations();
hgs
parents:
diff changeset
   385
	QVERIFY((firstcount + 3) == locationList.count());
hgs
parents:
diff changeset
   386
	doCleanup();
hgs
parents:
diff changeset
   387
	
hgs
parents:
diff changeset
   388
}
hgs
parents:
diff changeset
   389
hgs
parents:
diff changeset
   390
/*!
hgs
parents:
diff changeset
   391
	Tests the api TimeZoneClient::saveLocations.
hgs
parents:
diff changeset
   392
 */
hgs
parents:
diff changeset
   393
void TestTimezoneClient::testSaveLocations()
hgs
parents:
diff changeset
   394
{
hgs
parents:
diff changeset
   395
	doCleanup();
hgs
parents:
diff changeset
   396
	LocationInfo testLocationInfo = {"India", "Kolkata", "", 330, 1944, 45, false};
hgs
parents:
diff changeset
   397
	QList<LocationInfo> testList;
hgs
parents:
diff changeset
   398
	testList << testLocationInfo;
hgs
parents:
diff changeset
   399
	mTimezoneClient->saveLocations(testList);
hgs
parents:
diff changeset
   400
	QList<LocationInfo> resultantList = mTimezoneClient->getSavedLocations();
hgs
parents:
diff changeset
   401
	
hgs
parents:
diff changeset
   402
	// Check the location info saved with retrieved info.
hgs
parents:
diff changeset
   403
	QVERIFY(resultantList.at(0).countryName == testList.at(0).countryName);
hgs
parents:
diff changeset
   404
	QVERIFY(resultantList.at(0).cityName == testList.at(0).cityName);
hgs
parents:
diff changeset
   405
	QVERIFY(resultantList.at(0).listImageName == testList.at(0).listImageName);
hgs
parents:
diff changeset
   406
	QVERIFY(resultantList.at(0).zoneOffset == testList.at(0).zoneOffset);
hgs
parents:
diff changeset
   407
	QVERIFY(resultantList.at(0).timezoneId == testList.at(0).timezoneId);
hgs
parents:
diff changeset
   408
	QVERIFY(resultantList.at(0).dstOn == testList.at(0).dstOn);
hgs
parents:
diff changeset
   409
	doCleanup();
hgs
parents:
diff changeset
   410
}
hgs
parents:
diff changeset
   411
void TestTimezoneClient::doCleanup()
hgs
parents:
diff changeset
   412
{
hgs
parents:
diff changeset
   413
	// Cleanup
hgs
parents:
diff changeset
   414
	QString fileName("c:\\data\\clock\\cityInfo.dat");
hgs
parents:
diff changeset
   415
	QFile cityInfoFile(fileName);
hgs
parents:
diff changeset
   416
	cityInfoFile.remove();
hgs
parents:
diff changeset
   417
}
hgs
parents:
diff changeset
   418
/*
hgs
parents:
diff changeset
   419
!
hgs
parents:
diff changeset
   420
	Tests the api TimeZoneClient::getLocationInfo.
hgs
parents:
diff changeset
   421
 
hgs
parents:
diff changeset
   422
void TestTimezoneClient::testGetLocationInfo()
hgs
parents:
diff changeset
   423
{
hgs
parents:
diff changeset
   424
	LocationInfo gotInfo;
hgs
parents:
diff changeset
   425
	LocationInfo testInfo = {"India", "Mumbai", "", 330, 1624, false};
hgs
parents:
diff changeset
   426
	mTimezoneClient->getLocationInfo(45, 2, gotInfo);
hgs
parents:
diff changeset
   427
hgs
parents:
diff changeset
   428
	// Check the location info got by specifying groupId and cityIndex 
hgs
parents:
diff changeset
   429
	// with testInfo.
hgs
parents:
diff changeset
   430
	QVERIFY(testInfo.countryName == gotInfo.countryName);
hgs
parents:
diff changeset
   431
	QVERIFY(testInfo.cityName == gotInfo.cityName);
hgs
parents:
diff changeset
   432
	QVERIFY(testInfo.listImageName == gotInfo.listImageName);
hgs
parents:
diff changeset
   433
	QVERIFY(testInfo.zoneOffset == gotInfo.zoneOffset);
hgs
parents:
diff changeset
   434
	QVERIFY(testInfo.timezoneId == gotInfo.timezoneId);
hgs
parents:
diff changeset
   435
	QVERIFY(testInfo.dstOn == gotInfo.dstOn);
hgs
parents:
diff changeset
   436
}
hgs
parents:
diff changeset
   437
hgs
parents:
diff changeset
   438
!
hgs
parents:
diff changeset
   439
	Test the api TimeZoneClient::testGetCityGroupIdByName.
hgs
parents:
diff changeset
   440
 
hgs
parents:
diff changeset
   441
void TestTimezoneClient::testGetCityGroupIdByName()
hgs
parents:
diff changeset
   442
{
hgs
parents:
diff changeset
   443
	int retrievedGroupId = mTimezoneClient->getCityGroupIdByName("India");
hgs
parents:
diff changeset
   444
	mTimezoneClient->get
hgs
parents:
diff changeset
   445
	// Check the retrieved city group id with actual id.
hgs
parents:
diff changeset
   446
	QVERIFY(45 == retrievedGroupId);	
hgs
parents:
diff changeset
   447
}
hgs
parents:
diff changeset
   448
hgs
parents:
diff changeset
   449
!
hgs
parents:
diff changeset
   450
	Test the api TestTimezoneClient::getCityOffsetByNameAndId.
hgs
parents:
diff changeset
   451
 
hgs
parents:
diff changeset
   452
void TestTimezoneClient::testGetCityOffsetByNameAndId()
hgs
parents:
diff changeset
   453
{
hgs
parents:
diff changeset
   454
	int retrievedCityOffset = 
hgs
parents:
diff changeset
   455
		mTimezoneClient->getCityOffsetByNameAndId("Mumbai",1624);
hgs
parents:
diff changeset
   456
	
hgs
parents:
diff changeset
   457
	// Check the retrieved city offset with actual offset.
hgs
parents:
diff changeset
   458
	QVERIFY(1 == retrievedCityOffset);
hgs
parents:
diff changeset
   459
}
hgs
parents:
diff changeset
   460
*/
hgs
parents:
diff changeset
   461
hgs
parents:
diff changeset
   462
QTEST_MAIN(TestTimezoneClient)
hgs
parents:
diff changeset
   463
#include "unittest_timezoneclient.moc"
hgs
parents:
diff changeset
   464
hgs
parents:
diff changeset
   465
// End of file	--Don't remove this.