locationdataharvester/maptileservice/tsrc/ut_maptileservice/ut_maptileservice.cpp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/locationdataharvester/maptileservice/tsrc/ut_maptileservice/ut_maptileservice.cpp Mon May 03 12:27:22 2010 +0300
@@ -0,0 +1,270 @@
+/*
+* Copyright (c) 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 <QtTest/QtTest>
+#include <QtGui>
+#include <QString>
+#include <qtcontacts.h>
+#include <qcontactmanager.h>
+
+
+#include "maptileservice.h"
+
+
+//Maximum maptile processing time
+const int KMapTileFetchTime = 150000;
+
+QTM_USE_NAMESPACE
+
+
+//Maptile test interface class
+class MaptileServiceTest: public QObject
+{
+ Q_OBJECT
+
+private slots:
+
+ void checkLocationFeature();
+ void getPreferredAddressMapTilePath();
+ void getWorkAddressMapTilePath();
+ void getHomeAddressMapTilePath();
+ void checkInvalidContactId();
+
+};
+
+
+//Checks whether location feature enabled or disabled
+void MaptileServiceTest::checkLocationFeature()
+{
+
+ QVERIFY( CntMapTileService::isLocationFeatureEnabled() == 1 );
+}
+
+//Checks the maptile path retrieval for preferred address
+void MaptileServiceTest::getPreferredAddressMapTilePath()
+{
+
+ QContact* contact = new QContact();
+
+ //Add contact name
+ QContactName* name = new QContactName();
+ name->setFirst("Raj");
+ contact->saveDetail( name );
+
+ //Add address
+ QContactAddress* address = new QContactAddress();
+ address->setPostOfficeBox("87640");
+ address->setStreet("Torstrasse");
+ address->setPostcode("12345");
+ address->setLocality("Berlin");
+ address->setCountry("Germany");
+ contact->saveDetail(address);
+
+ //Save the contact
+ QContactManager* contactManager = NULL;
+ contactManager = new QContactManager("symbian");
+ contactManager->saveContact( contact );
+
+ //Wait till maptile operation complete
+ QTest::qWait( KMapTileFetchTime );
+
+
+ //Get the saved id
+ QContactId savedId = contact->id();
+ TUint32 contactId = savedId.localId();
+
+ //Get the maptile
+ QString string = CntMapTileService::getMapTileImage( contactId, CntMapTileService::AddressPreference );
+
+ //Construct the QPimap from reference bitmap
+ QImage referenceBitmap( "c:\\maptiletest\\preferredaddressmap.png" );
+
+ //Construct the QPixmap from new retrieved bitmap
+ QImage retrievedBitmap( string );
+
+
+ //delete the contact
+ contactManager->removeContact( contactId );
+
+ delete contact;
+ delete name;
+ delete address;
+ delete contactManager;
+
+}
+
+//Checks the maptile path retrieval for work address
+void MaptileServiceTest::getWorkAddressMapTilePath()
+{
+
+ QContact* contact = new QContact();
+
+ //Set name
+ QContactName* name = new QContactName();
+ name->setFirst("Mike");
+ contact->saveDetail(name);
+
+ //Set address
+ QContactAddress* address = new QContactAddress();
+ address->setPostOfficeBox("2345");
+ address->setPostcode("29834");
+ address->setStreet("Domlur");
+ address->setLocality("Bangalore");
+ address->setCountry("India");
+ address->setContexts(QContactDetail::ContextWork);
+ contact->saveDetail(address);
+
+ //Save the contact
+ QContactManager* contactManager = NULL;
+ contactManager = new QContactManager("symbian");
+ contactManager->saveContact( contact );
+
+ //Wait till maptile operation complete
+ QTest::qWait( KMapTileFetchTime );
+
+
+ //Get the saved id
+ QContactId savedId = contact->id();
+ TUint32 contactId = savedId.localId();
+
+ //Get the maptile
+ QString string = CntMapTileService::getMapTileImage( contactId, CntMapTileService::AddressWork );
+
+ //Construct the QPimap from already stored bitmap
+ QImage referenceBitmap( "c:\\maptiletest\\workaddressmap.png" );
+
+ //Construct the QPixmap from new retrieved bitmap
+ QImage retrievedBitmap( string );
+
+ //check results are same
+ QVERIFY( retrievedBitmap == referenceBitmap );
+
+
+ contactManager->removeContact( contactId );
+
+ delete contact;
+ delete name;
+ delete address;
+ delete contactManager;
+
+}
+
+//Checks the maptile path retrieval for home address
+void MaptileServiceTest::getHomeAddressMapTilePath()
+{
+
+ QContact* contact = new QContact();
+
+ QContactName* name = new QContactName();
+ name->setFirst("first");
+ contact->saveDetail(name);
+
+ QContactAddress* address = new QContactAddress();
+ address->setContexts(QContactDetail::ContextHome);
+ address->setPostOfficeBox("81282");
+ address->setStreet("Keilalahdentie");
+ address->setPostcode("67890");
+ address->setLocality("Espoo");
+ address->setCountry("Finland");
+ contact->saveDetail(address);
+
+ //Save the contact
+ QContactManager* contactManager = NULL;
+ contactManager = new QContactManager("symbian");
+ contactManager->saveContact( contact );
+
+ //Wait till maptile operation complete
+ QTest::qWait( KMapTileFetchTime );
+
+ //Get the saved id
+ QContactId savedId = contact->id();
+ TUint32 contactId = savedId.localId();
+
+ //Get the maptile
+ QString string = CntMapTileService::getMapTileImage( contactId, CntMapTileService::AddressHome );
+
+ //Construct the QPimap from already stored bitmap
+ QImage referenceBitmap( "c:\\maptiletest\\homeaddressmap.png" );
+
+ //Construct the QPixmap from new retrieved bitmap
+ QImage retrievedBitmap( string );
+
+ //comapre the bitmaps
+ QVERIFY( retrievedBitmap == referenceBitmap );
+
+
+ contactManager->removeContact( contactId );
+
+ delete contact;
+ delete name;
+ delete address;
+ delete contactManager;
+
+}
+
+//Checks the maptile path retrieval returns NULL for invalid address
+void MaptileServiceTest::checkInvalidContactId()
+{
+
+ QContact* contact = new QContact();
+
+ QContactName* name = new QContactName();
+ name->setFirst("first");
+ contact->saveDetail(name);
+
+ //Add some invalid address
+ QContactAddress* address = new QContactAddress();
+ address->setPostOfficeBox("11111");
+ address->setStreet("htrtfdsk");
+ address->setPostcode("98989");
+ address->setLocality("ghwdxnkwnn");
+ address->setCountry("Fbsjwskws");
+ contact->saveDetail(address);
+
+ //Save the contact
+ QContactManager* contactManager = NULL;
+ contactManager = new QContactManager("symbian");
+ contactManager->saveContact( contact );
+
+ //Wait till maptile operation complete
+ QTest::qWait( KMapTileFetchTime );
+
+
+ //Get the saved id
+ QContactId savedId = contact->id();
+ TUint32 contactId = savedId.localId();
+
+ //Get the maptile
+ QString string = CntMapTileService::getMapTileImage( contactId, CntMapTileService::AddressPreference );
+
+ contactManager->removeContact( contactId );
+
+ //Maptile path should be NULL for invalid address
+ QVERIFY( string.isNull() );
+
+ delete contact;
+ delete name;
+ delete address;
+ delete contactManager;
+
+
+}
+
+
+QTEST_MAIN(MaptileServiceTest)
+#include "ut_maptileservice.moc"
+
+