landmarks/locationlandmarks/tsrc/LandmarkTestModule/src/FT_CPosTp116.cpp
branchRCL_3
changeset 44 2b4ea9893b66
equal deleted inserted replaced
42:02ba3f1733c6 44:2b4ea9893b66
       
     1 /*
       
     2 * Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies). 
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description: 
       
    15 *   ?description_line
       
    16 *
       
    17 */
       
    18 
       
    19 
       
    20 //  INCLUDES
       
    21 #include "FT_CPosTp116.h"
       
    22 #include <EPos_CPosLandmarkDatabase.h> 
       
    23 #include <d32dbms.h>
       
    24 #include <StifLogger.h>
       
    25 //  CONSTANTS
       
    26 
       
    27 // ================= MEMBER FUNCTIONS =======================
       
    28 
       
    29 // ---------------------------------------------------------
       
    30 // CPosTp116::CloseTest
       
    31 //
       
    32 // (other items were commented in a header).
       
    33 // ---------------------------------------------------------
       
    34 //
       
    35 void CPosTp116::CloseTest()
       
    36     {
       
    37     iLog->Log(_L("CloseTest"));
       
    38     delete iActiveLmEvent;
       
    39     iActiveLmEvent = NULL;
       
    40     }
       
    41 
       
    42 // ---------------------------------------------------------
       
    43 // CPosTp116::StartL
       
    44 //
       
    45 // (other items were commented in a header).
       
    46 // ---------------------------------------------------------
       
    47 //
       
    48 void CPosTp116::StartL()
       
    49     {
       
    50     // First remove all landmark databases
       
    51     RemoveAllLmDatabasesL();
       
    52     	
       
    53     // Start test
       
    54     LandmarkEventTestL();
       
    55    
       
    56     // Remove all landmark databases
       
    57    RemoveAllLmDatabasesL();
       
    58 	}
       
    59 
       
    60 // ---------------------------------------------------------
       
    61 // CPosTp28::LandmarkEventTestL
       
    62 //
       
    63 // (other items were commented in a header).
       
    64 // ---------------------------------------------------------
       
    65 //
       
    66 void CPosTp116::LandmarkEventTestL()
       
    67     {
       
    68     iLog->Log(_L("LandmarkEventTestL"));
       
    69 
       
    70   //  _LIT(KDatabase, "file://c:eposlm.ldb");
       
    71     _LIT(KDatabase, "file://c:Tp116Test.ldb");
       
    72     _LIT(KDatabase1, "file://c:Tp116LmDb_1.ldb");
       
    73 
       
    74 #ifdef __WINS__
       
    75     // For WINS use C drive
       
    76     _LIT(KDatabase1_OnMedia, "file://c:Tp116LmDb_1_OnMedia.ldb");
       
    77     _LIT(KDatabase2_OnMedia, "file://c:Tp116LmDb_2_OnMedia.ldb");
       
    78 #else
       
    79     //Media card must therefore be inserted
       
    80     _LIT(KDatabase1_OnMedia, "file://F:Tp116LmDb_1_OnMedia.ldb");
       
    81     _LIT(KDatabase2_OnMedia, "file://F:Tp116LmDb_2_OnMedia.ldb");
       
    82 #endif
       
    83     
       
    84     _LIT(KDatabase2, "file://c:Tp116LmDb_2.ldb");
       
    85     _LIT(KDatabase3, "file://c:Tp116LmDb_3.ldb");
       
    86     _LIT(KDatabase4, "file://c:Tp116LmDb_4.ldb");
       
    87     
       
    88     _LIT(KDatabase5, "file://c:Tp116DummyLmDb_5.ldb");
       
    89     _LIT(KDatabase6, "file://c:Tp116DummyLmDb_6.ldb");
       
    90     _LIT(KDatabase7, "file://c:Tp116DummyLmDb_7.ldb");
       
    91 	_LIT(KDatabase8, "file://c:Tp116DummyLmDb_8.ldb");
       
    92 	_LIT(KDatabase9, "file://c:Tp116DummyLmDb_9.ldb");
       
    93 	_LIT(KDatabase10, "file://c:Tp116DummyLmDb_10.ldb");
       
    94 	_LIT(KDatabase11, "file://c:Tp116DummyLmDb_11.ldb");
       
    95 	_LIT(KDatabase12, "file://c:Tp116DummyLmDb_12.ldb");
       
    96 	_LIT(KDatabase13, "file://c:Tp116LmDb_13.ldb");
       
    97 	_LIT(KDatabase14, "file://c:Tp116LmDb_14.ldb");
       
    98 	
       
    99 	_LIT(KRemoteDb1, "test://RemoteDb1.ldb");
       
   100     _LIT(KRemoteDbName1, "RemoteDb1New");
       
   101     _LIT(KNonExistingDb, "ANonExistingDb.ldb");
       
   102 
       
   103     TInt err = KErrNone;
       
   104     iLog->Log(_L("Warning: this test case requires E: drive"));
       
   105     
       
   106     iActiveLmEvent = CTP116ActiveLmEvent::NewL(iLog);
       
   107 
       
   108     CPosLmDatabaseManager* manager = CPosLmDatabaseManager::NewL();
       
   109     CleanupStack::PushL(manager);
       
   110     
       
   111     HPosLmDatabaseInfo* dbInfo = HPosLmDatabaseInfo::NewLC(KDatabase);
       
   112     manager->CreateDatabaseL(*dbInfo);
       
   113     CleanupStack::PopAndDestroy(dbInfo);
       
   114     
       
   115     // This db must exist, set here so that when setting default db next it is different from before
       
   116     // otherwise no event
       
   117     manager->SetDefaultDatabaseUriL(KDatabase);
       
   118 
       
   119     // 1) iActiveLmEvent will listen for multiple database events
       
   120     iActiveLmEvent->Start();
       
   121     
       
   122     iLog->Log(_L("2) EDatabaseCreated "));
       
   123     // 2) Create a landmark database, db1 on the c: drive
       
   124     HPosLmDatabaseInfo* dbInfo1 = HPosLmDatabaseInfo::NewLC(KDatabase1);
       
   125     manager->CreateDatabaseL(*dbInfo1);
       
   126     CleanupStack::PopAndDestroy(dbInfo1);
       
   127     
       
   128     //iActiveLmEvent->iExpectedEvent = CPosLmDatabaseManager::EDatabaseCreated;
       
   129     iActiveLmEvent->iExpectedEvent = EPosLmDbDatabaseRegistered;
       
   130     
       
   131     iActiveLmEvent->SetExpectedDatabase(KDatabase1);
       
   132     CActiveScheduler::Start();
       
   133       
       
   134    	iLog->Log(_L("3) ENewDefaultDbLocation "));
       
   135     // 3) Set the defaultdb to point at the newly created db
       
   136     manager->SetDefaultDatabaseUriL(KDatabase1);
       
   137     iActiveLmEvent->iExpectedEvent = EPosLmDbNewDefaultDbLocation;
       
   138     iActiveLmEvent->SetExpectedDatabase(KDatabase1);
       
   139     CActiveScheduler::Start();
       
   140 
       
   141 
       
   142     iLog->Log(_L("5) EDatabaseCreated "));
       
   143     // 5) Copy db1 to media drive
       
   144     manager->CopyDatabaseL(KDatabase1, KDatabase1_OnMedia);
       
   145     iActiveLmEvent->iExpectedEvent = EPosLmDbDatabaseRegistered;
       
   146     iActiveLmEvent->SetExpectedDatabase(KDatabase1_OnMedia);
       
   147     CActiveScheduler::Start();
       
   148 
       
   149     iLog->Log(_L("6) EDatabaseDeleted "));
       
   150     // 6) Delete copied db from media card
       
   151     manager->DeleteDatabaseL(KDatabase1_OnMedia);
       
   152     iActiveLmEvent->iExpectedEvent = EPosLmDbDatabaseUnregistered;
       
   153     iActiveLmEvent->SetExpectedDatabase(KDatabase1_OnMedia);
       
   154     CActiveScheduler::Start();
       
   155 
       
   156     iLog->Log(_L("7) EDatabaseCreated - EDatabaseDeleted"));
       
   157    // 7) Move db1 to media drive as db1_2-> First copy it and then delete (in same operation phase)
       
   158     manager->CopyDatabaseL(KDatabase1, KDatabase2_OnMedia);
       
   159     manager->DeleteDatabaseL(KDatabase1);
       
   160     iActiveLmEvent->iExpectedEvent = EPosLmDbDatabaseRegistered;
       
   161     iActiveLmEvent->SetExpectedDatabase(KDatabase2_OnMedia);
       
   162     CActiveScheduler::Start();
       
   163     iActiveLmEvent->iExpectedEvent = EPosLmDbDatabaseUnregistered;
       
   164     iActiveLmEvent->SetExpectedDatabase(KDatabase1);
       
   165     CActiveScheduler::Start();
       
   166 
       
   167     iLog->Log(_L("8) EDatabaseCreated"));
       
   168     //8) Create a db, db2, on media card
       
   169     
       
   170     HPosLmDatabaseInfo* dbInfo2 = HPosLmDatabaseInfo::NewLC(KDatabase2);
       
   171     manager->CreateDatabaseL(*dbInfo2);
       
   172     CleanupStack::PopAndDestroy(dbInfo2);
       
   173     iActiveLmEvent->iExpectedEvent = EPosLmDbDatabaseRegistered;
       
   174     iActiveLmEvent->SetExpectedDatabase(KDatabase2);
       
   175     CActiveScheduler::Start();
       
   176 
       
   177     iLog->Log(_L("9) ENewDefaultDbLocation"));
       
   178     // 9) Set the defaultdb to point at the newly created db
       
   179     manager->SetDefaultDatabaseUriL(KDatabase2);
       
   180     iActiveLmEvent->iExpectedEvent = EPosLmDbNewDefaultDbLocation;
       
   181     iActiveLmEvent->SetExpectedDatabase(KDatabase2);
       
   182     CActiveScheduler::Start();
       
   183     
       
   184     iLog->Log(_L("9b) EPosLmDbSettingsModified"));
       
   185     // 9b) Set the defaultdb to point at the newly created db
       
   186     HPosLmDatabaseInfo* dbInfoChange = HPosLmDatabaseInfo::NewLC(KDatabase2);
       
   187     TPosLmDatabaseSettings settings = dbInfo2->Settings();
       
   188     _LIT(KNewDbName, "TP116 Disp Name");
       
   189     TPosLmDatabaseName bufName(KNewDbName);
       
   190     settings.SetDatabaseName(bufName);
       
   191     manager->ModifyDatabaseSettingsL(KDatabase2, settings);
       
   192     CleanupStack::PopAndDestroy(dbInfoChange);
       
   193     
       
   194     iActiveLmEvent->iExpectedEvent = EPosLmDbSettingsModified;
       
   195     iActiveLmEvent->SetExpectedDatabase(KDatabase2);
       
   196     CActiveScheduler::Start();
       
   197 
       
   198     iLog->Log(_L("10) EDatabaseDeleted"));
       
   199     // 10) Delete db2 from media card
       
   200     manager->DeleteDatabaseL(KDatabase2);
       
   201     iActiveLmEvent->iExpectedEvent = EPosLmDbDatabaseUnregistered;
       
   202     iActiveLmEvent->SetExpectedDatabase(KDatabase2);
       
   203     CActiveScheduler::Start();
       
   204 
       
   205     iLog->Log(_L("11) EDatabaseCreated"));
       
   206     // 11) Copy db1_2 to C:\ as db1_3
       
   207     manager->CopyDatabaseL(KDatabase2_OnMedia, KDatabase3);
       
   208     iActiveLmEvent->iExpectedEvent = EPosLmDbDatabaseRegistered;
       
   209     iActiveLmEvent->SetExpectedDatabase(KDatabase3);
       
   210     CActiveScheduler::Start();
       
   211 
       
   212     iLog->Log(_L("12) EDatabaseDeleted"));
       
   213     // 12) Move db1_2 from media to C:\ drive as db1_4 -> First 
       
   214     // copy it and then delete (in same operation phase)
       
   215     manager->CopyDatabaseL(KDatabase2_OnMedia, KDatabase4);
       
   216     manager->DeleteDatabaseL(KDatabase2_OnMedia);
       
   217     iActiveLmEvent->iExpectedEvent = EPosLmDbDatabaseRegistered;
       
   218     iActiveLmEvent->SetExpectedDatabase(KDatabase4);
       
   219     CActiveScheduler::Start();
       
   220     iActiveLmEvent->iExpectedEvent = EPosLmDbDatabaseUnregistered;
       
   221     iActiveLmEvent->SetExpectedDatabase(KDatabase2_OnMedia);
       
   222     CActiveScheduler::Start();
       
   223 
       
   224     iLog->Log(_L("13) ENewDefaultDbLocation"));
       
   225     // 13) Set the defaultdb to point at db1_4
       
   226     manager->SetDefaultDatabaseUriL(KDatabase4);
       
   227     iActiveLmEvent->iExpectedEvent = EPosLmDbNewDefaultDbLocation;
       
   228     iActiveLmEvent->SetExpectedDatabase(KDatabase4);
       
   229     CActiveScheduler::Start();
       
   230 
       
   231     iLog->Log(_L("14) EDatabaseDeleted"));
       
   232     // 14) Delete db1_4
       
   233     manager->DeleteDatabaseL(KDatabase4);
       
   234     iActiveLmEvent->iExpectedEvent = EPosLmDbDatabaseUnregistered;
       
   235     iActiveLmEvent->SetExpectedDatabase(KDatabase4);
       
   236     CActiveScheduler::Start();
       
   237     
       
   238 	iLog->Log(_L("15) --------- "));
       
   239 	// Try to create a queue of events that is bigger than the internal queue buffer
       
   240 	// should causes unknown event to happen and no databaseUri
       
   241     HPosLmDatabaseInfo* dbInfo13 = HPosLmDatabaseInfo::NewLC(KDatabase13);
       
   242     manager->CreateDatabaseL(*dbInfo13);
       
   243     CleanupStack::PopAndDestroy(dbInfo13);
       
   244     iActiveLmEvent->iExpectedEvent = EPosLmDbDatabaseRegistered;
       
   245     iActiveLmEvent->SetExpectedDatabase(KDatabase13);
       
   246     iActiveLmEvent->iQueueTest = ETrue;
       
   247     CActiveScheduler::Start();
       
   248 
       
   249 	HPosLmDatabaseInfo* dbInfo4 = HPosLmDatabaseInfo::NewLC(KDatabase4);
       
   250 	HPosLmDatabaseInfo* dbInfo5 = HPosLmDatabaseInfo::NewLC(KDatabase5);
       
   251 	HPosLmDatabaseInfo* dbInfo6 = HPosLmDatabaseInfo::NewLC(KDatabase6);
       
   252 	HPosLmDatabaseInfo* dbInfo7 = HPosLmDatabaseInfo::NewLC(KDatabase7);
       
   253 	HPosLmDatabaseInfo* dbInfo8 = HPosLmDatabaseInfo::NewLC(KDatabase8);
       
   254 	HPosLmDatabaseInfo* dbInfo9 = HPosLmDatabaseInfo::NewLC(KDatabase9);
       
   255 	
       
   256 	manager->CreateDatabaseL(*dbInfo4);
       
   257 	manager->CreateDatabaseL(*dbInfo5);
       
   258 	manager->DeleteDatabaseL(KDatabase4);
       
   259 	manager->CopyDatabaseL(KDatabase5, KDatabase10);
       
   260 	manager->CreateDatabaseL(*dbInfo6);
       
   261 	manager->DeleteDatabaseL(KDatabase5);
       
   262 	manager->CreateDatabaseL(*dbInfo7);
       
   263 	manager->DeleteDatabaseL(KDatabase6);
       
   264 	manager->CopyDatabaseL(KDatabase10, KDatabase11);
       
   265 	manager->CreateDatabaseL(*dbInfo8);
       
   266 	manager->DeleteDatabaseL(KDatabase7);
       
   267 	manager->CreateDatabaseL(*dbInfo9);
       
   268 	manager->CopyDatabaseL(KDatabase10, KDatabase12);
       
   269 	manager->DeleteDatabaseL(KDatabase9);
       
   270 	manager->DeleteDatabaseL(KDatabase8);
       
   271 	
       
   272 	CleanupStack::PopAndDestroy(dbInfo9);
       
   273 	CleanupStack::PopAndDestroy(dbInfo8);
       
   274 	CleanupStack::PopAndDestroy(dbInfo7);
       
   275 	CleanupStack::PopAndDestroy(dbInfo6);
       
   276 	CleanupStack::PopAndDestroy(dbInfo5);
       
   277 	CleanupStack::PopAndDestroy(dbInfo4);
       
   278 		
       
   279     // Check for unknown
       
   280 	iActiveLmEvent->iExpectedEvent = EPosLmDbUnknownEvent;
       
   281     iActiveLmEvent->SetExpectedDatabase(KNullDesC);
       
   282     iActiveLmEvent->Start();
       
   283     CActiveScheduler::Start();
       
   284 	
       
   285 	iActiveLmEvent->iQueueTest = EFalse;
       
   286 	
       
   287 	TInt errorsFound = iActiveLmEvent->GetErrors();
       
   288     
       
   289     iActiveLmEvent->DoCancel();
       
   290     
       
   291     iActiveLmEvent->Start();
       
   292     
       
   293 	iLog->Log(_L("16) EDatabaseCreated "));
       
   294     // 16) Check correct event after unknown event
       
   295     // Note: This does not work, new events are added to the queue after unknown event, so instead we 
       
   296     // cancel the event handling
       
   297     HPosLmDatabaseInfo* dbInfo14 = HPosLmDatabaseInfo::NewLC(KDatabase14);
       
   298     manager->CreateDatabaseL(*dbInfo14);
       
   299     CleanupStack::PopAndDestroy(dbInfo14);
       
   300     iActiveLmEvent->iExpectedEvent = EPosLmDbDatabaseRegistered;
       
   301     iActiveLmEvent->SetExpectedDatabase(KDatabase14);
       
   302     CActiveScheduler::Start();
       
   303     
       
   304     errorsFound = iActiveLmEvent->GetErrors();
       
   305     
       
   306     iActiveLmEvent->DoCancel();
       
   307     delete iActiveLmEvent;
       
   308     iActiveLmEvent = NULL;
       
   309     iActiveLmEvent = CTP116ActiveLmEvent::NewL(iLog);
       
   310     
       
   311     // Start listening
       
   312     iActiveLmEvent->Start();
       
   313         
       
   314 	iLog->Log(_L("17) --------- "));
       
   315     // 17) Test that event handling is working for "remote" provider (use the test provider)
       
   316     //  as well
       
   317     HPosLmDatabaseInfo* db1 = HPosLmDatabaseInfo::NewLC(KRemoteDb1);
       
   318 	manager->CreateDatabaseL(*db1);
       
   319     // Register remote db
       
   320     manager->RegisterDatabaseL(*db1);
       
   321     
       
   322     iActiveLmEvent->iExpectedEvent = EPosLmDbDatabaseRegistered;
       
   323     iActiveLmEvent->SetExpectedDatabase(KRemoteDb1);
       
   324     CActiveScheduler::Start();
       
   325     
       
   326     iLog->Log(_L("18) --------- "));
       
   327     // 18) Test that event handling is working for "remote" provider (use the test provider)
       
   328     //  as well
       
   329     // Modify Settings
       
   330     TPosLmDatabaseSettings remoteSettings = db1->Settings();
       
   331     TPosLmDatabaseName remoteName(KRemoteDbName1);
       
   332     remoteSettings.SetDatabaseName(remoteName);
       
   333     manager->ModifyDatabaseSettingsL(KRemoteDb1, remoteSettings);
       
   334     
       
   335     iActiveLmEvent->iExpectedEvent = EPosLmDbSettingsModified;
       
   336     iActiveLmEvent->SetExpectedDatabase(KRemoteDb1);
       
   337     CActiveScheduler::Start();
       
   338     CleanupStack::PopAndDestroy(db1);
       
   339     
       
   340     iLog->Log(_L("19) --------- "));
       
   341     // 19) Test that event handling is working for "remote" provider (use the test provider)
       
   342     //  as well
       
   343     // Unregister remote db
       
   344     manager->UnregisterDatabaseL(KRemoteDb1);
       
   345     iActiveLmEvent->iExpectedEvent = EPosLmDbDatabaseUnregistered;
       
   346     iActiveLmEvent->SetExpectedDatabase(KRemoteDb1);
       
   347     CActiveScheduler::Start();
       
   348        
       
   349 	iLog->Log(_L("20) --------- "));
       
   350     // 20) Set the defaultdb to point at a non-existing db
       
   351     TRAP(err, manager->SetDefaultDatabaseUriL(KNonExistingDb));
       
   352     if (err != KErrNotFound) 
       
   353     {
       
   354     	iLog->Log(_L("SetDefaultDatabaseL(KNonExistingDb) should leave with KErrNotFound"));
       
   355     	User::Leave(err);
       
   356     }
       
   357     iLog->Log(_L("20 Done"));
       
   358     
       
   359     CleanupStack::PopAndDestroy(manager);
       
   360         
       
   361 	errorsFound += iActiveLmEvent->GetErrors();
       
   362 	
       
   363 	delete iActiveLmEvent;
       
   364     iActiveLmEvent = NULL;
       
   365 	
       
   366 	if (errorsFound != KErrNone) 
       
   367 		{
       
   368 		iLog->Log(_L("Errors were found in TP116"));
       
   369     	User::Leave(-1);
       
   370 		}
       
   371 
       
   372     }
       
   373 
       
   374 // -----------------------------------------------------------------------------
       
   375 // CTP116ActiveLmEvent::NewL
       
   376 //
       
   377 //(other items were commented in a header).
       
   378 // -----------------------------------------------------------------------------
       
   379 //
       
   380 CTP116ActiveLmEvent* CTP116ActiveLmEvent::NewL(CStifLogger* aLog)
       
   381     {
       
   382     CTP116ActiveLmEvent* self = new(ELeave) CTP116ActiveLmEvent(aLog);
       
   383     CleanupStack::PushL(self);
       
   384     self->ConstructL();
       
   385     CleanupStack::Pop();
       
   386     return self;
       
   387     }
       
   388 
       
   389 // -----------------------------------------------------------------------------
       
   390 // CTP116ActiveLmEvent::ConstructL
       
   391 //
       
   392 //(other items were commented in a header).
       
   393 // -----------------------------------------------------------------------------
       
   394 //
       
   395 void CTP116ActiveLmEvent::ConstructL()
       
   396     {
       
   397     iManager = CPosLmDatabaseManager::NewL();
       
   398     }
       
   399 
       
   400 // -----------------------------------------------------------------------------
       
   401 // CTP116ActiveLmEvent::CTP116ActiveLmEvent
       
   402 // C++ default constructor can NOT contain any code, that
       
   403 // might leave.
       
   404 // -----------------------------------------------------------------------------
       
   405 //
       
   406 
       
   407 CTP116ActiveLmEvent::CTP116ActiveLmEvent(CStifLogger* aLog) : 
       
   408     CActive(EPriorityNormal),
       
   409     iLog(aLog)
       
   410     {   
       
   411     CActiveScheduler::Add(this);
       
   412     iGlobalErr=KErrNone;
       
   413     iQueueTest = EFalse;
       
   414     }
       
   415 
       
   416 // Destructor
       
   417 CTP116ActiveLmEvent::~CTP116ActiveLmEvent()
       
   418     {
       
   419     Cancel();
       
   420     delete iManager;
       
   421     iManager = NULL;
       
   422     }
       
   423 
       
   424 // ---------------------------------------------------------
       
   425 // CTP116ActiveLmEvent::SetExpectedDatabase
       
   426 //
       
   427 // (other items were commented in a header).
       
   428 // ---------------------------------------------------------
       
   429 //
       
   430 void CTP116ActiveLmEvent::SetExpectedDatabase(const TDesC& aDatabaseUri)
       
   431     {
       
   432     iExpectedDatabase.Zero();
       
   433     
       
   434     iExpectedDatabase.Append(aDatabaseUri);
       
   435     }
       
   436 
       
   437 // ---------------------------------------------------------
       
   438 // CTP116ActiveLmEvent::StartL
       
   439 //
       
   440 // (other items were commented in a header).
       
   441 // ---------------------------------------------------------
       
   442 //
       
   443 void CTP116ActiveLmEvent::Start()                          
       
   444     {
       
   445     // Get ready for event
       
   446     iManager->NotifyDatabaseEvent(iEvent, iStatus);
       
   447     SetActive();
       
   448     }
       
   449 
       
   450 // ---------------------------------------------------------
       
   451 // CTP116ActiveLmEvent::RunL
       
   452 //
       
   453 // (other items were commented in a header).
       
   454 // ---------------------------------------------------------
       
   455 //
       
   456 void CTP116ActiveLmEvent::RunL()
       
   457     {
       
   458      iLog->Log(_L("CTP116ActiveLmEvent::RunL"));
       
   459 
       
   460     TPosLmDatabaseEvent event = iEvent;
       
   461     VerifyEvent(event);
       
   462     if (!iQueueTest)
       
   463     	{
       
   464     	// Get ready for next event
       
   465     	iManager->NotifyDatabaseEvent(iEvent, iStatus); 
       
   466     	SetActive();
       
   467     	}
       
   468     }
       
   469 
       
   470 // ---------------------------------------------------------
       
   471 // CActiveLmOperation::DoCancel
       
   472 //
       
   473 // (other items were commented in a header).
       
   474 // ---------------------------------------------------------
       
   475 //
       
   476 void CTP116ActiveLmEvent::DoCancel()
       
   477     {
       
   478     iLog->Log(_L("CTP116ActiveLmEvent::DoCancel"));
       
   479     iManager->CancelNotifyDatabaseEvent();
       
   480     }
       
   481 
       
   482 // ---------------------------------------------------------
       
   483 // CActiveLmOperation::GetErrors
       
   484 //
       
   485 // (other items were commented in a header).
       
   486 // ---------------------------------------------------------
       
   487 //
       
   488 TInt CTP116ActiveLmEvent::GetErrors()
       
   489     {
       
   490 	return iGlobalErr;
       
   491     }
       
   492     
       
   493 // ---------------------------------------------------------
       
   494 // CTP116ActiveLmEvent::VerifyEvent
       
   495 //
       
   496 // (other items were commented in a header).
       
   497 // ---------------------------------------------------------
       
   498 //
       
   499 void CTP116ActiveLmEvent::VerifyEvent(TPosLmDatabaseEvent event)
       
   500     {
       
   501     iLog->Log(_L("CTP116ActiveLmEvent::VerifyEvent"));
       
   502     TBuf<150> buffe;
       
   503     
       
   504     buffe.Format(_L("VerifyEvent Event: %d "), event.iEventType);
       
   505 	iLog->Log(buffe);
       
   506 	    
       
   507     // Verify event here
       
   508     if (event.iEventType != iExpectedEvent) 
       
   509         {
       
   510         buffe.Zero();
       
   511         buffe.Format(_L("ERROR: Wrong event: exp %d got %d"),iExpectedEvent, event.iEventType);
       
   512         iLog->Log(buffe);
       
   513         iGlobalErr++;
       
   514         }
       
   515     	
       
   516 	if (event.iEventType != EPosLmDbUnknownEvent)	
       
   517 		{
       
   518 		
       
   519 	    HBufC16* dbUri = iManager->DatabaseUriFromLastEventLC();
       
   520 	    buffe.Zero();
       
   521 	    buffe.Format(_L("Event: %d URI %S"), event.iEventType, dbUri);
       
   522 	    iLog->Log(buffe);
       
   523     
       
   524 		if (iExpectedDatabase.CompareC(*dbUri) != 0)
       
   525 			{
       
   526 			iLog->Log(_L("ERROR: Wrong db name"));
       
   527 			buffe.Zero();
       
   528 			buffe.Append(_L("Should be "));
       
   529 			buffe.Append(iExpectedDatabase);
       
   530 			iLog->Log(buffe);
       
   531 	        iGlobalErr++;
       
   532 			}
       
   533 	    CleanupStack::PopAndDestroy(dbUri);			
       
   534 		}
       
   535 	else
       
   536 		{
       
   537 		buffe.Format(_L("EUnknownEvent Event: %d "), event.iEventType);
       
   538 	    iLog->Log(buffe);
       
   539 		}
       
   540         
       
   541 	CActiveScheduler::Stop();
       
   542    
       
   543 	iLog->Log(_L("VerifyEvent Done"));
       
   544     }
       
   545 
       
   546 //  End of File