locationdataharvester/maptileservice/tsrc/ut_maptileservice/ut_maptileservice.cpp
changeset 17 0f22fb80ebba
child 20 cd10d5b85554
--- /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"
+
+