phonebookui/Phonebook2/ccapplication/ccapp/tsrc/ut_cmscontactfetcher/src/t_ccacmscontactfetcherwrapperblocks.cpp
branchRCL_3
changeset 21 b3431bff8c19
parent 0 e686773b3f54
child 64 c1e8ba0c2b16
--- a/phonebookui/Phonebook2/ccapplication/ccapp/tsrc/ut_cmscontactfetcher/src/t_ccacmscontactfetcherwrapperblocks.cpp	Mon Mar 15 12:39:26 2010 +0200
+++ b/phonebookui/Phonebook2/ccapplication/ccapp/tsrc/ut_cmscontactfetcher/src/t_ccacmscontactfetcherwrapperblocks.cpp	Wed Mar 31 21:13:53 2010 +0300
@@ -39,7 +39,6 @@
 //
 void T_CCCACmsContactFetcherWrapper::Delete() 
     {
-
     }
 
 // -----------------------------------------------------------------------------
@@ -56,18 +55,30 @@
         // Copy this line for every implemented function.
         // First string is the function name used in TestScripter script file.
         // Second is the actual implementation member function. 
-        ENTRY( "CreateAndDelete", T_CCCACmsContactFetcherWrapper::CreateAndDeleteL ),
-        ENTRY( "CreateWithContent", T_CCCACmsContactFetcherWrapper::CreateWithContentL ),
-        ENTRY( "CreateWithContactLink", T_CCCACmsContactFetcherWrapper::CreateWithContactLinkL ),
-        ENTRY( "CreateWithMSISDN", T_CCCACmsContactFetcherWrapper::CreateWithMSISDNL ),
-        ENTRY( "CreateWithEmail", T_CCCACmsContactFetcherWrapper::CreateWithEmailL ),
-        ENTRY( "NoDataFields", T_CCCACmsContactFetcherWrapper::NoDataFieldsL ),
-        ENTRY( "ErrorInContactOpen", T_CCCACmsContactFetcherWrapper::ErrorInContactOpenL ),
-        ENTRY( "ErrorInContactFetch", T_CCCACmsContactFetcherWrapper::ErrorInContactFetchL ),
-        ENTRY( "CreateWithManyItems", T_CCCACmsContactFetcherWrapper::CreateWithManyItemsL ),
-        ENTRY( "HandlePhonebookNotification", T_CCCACmsContactFetcherWrapper::HandlePhonebookNotificationL ),
-        ENTRY( "TestContactStoreApiL", T_CCCACmsContactFetcherWrapper::TestContactStoreApiL ),
-        ENTRY( "FindFromOtherStoresL", T_CCCACmsContactFetcherWrapper::FindFromOtherStoresL ),
+        ENTRY( "CreateAndDelete", 
+                T_CCCACmsContactFetcherWrapper::CreateAndDeleteL ),
+        ENTRY( "CreateWithContent", 
+                T_CCCACmsContactFetcherWrapper::CreateWithContentL ),
+        ENTRY( "CreateWithContactLink", 
+                T_CCCACmsContactFetcherWrapper::CreateWithContactLinkL ),
+        ENTRY( "CreateWithMSISDN", 
+                T_CCCACmsContactFetcherWrapper::CreateWithMSISDNL ),
+        ENTRY( "CreateWithEmail", 
+                T_CCCACmsContactFetcherWrapper::CreateWithEmailL ),
+        ENTRY( "NoDataFields", 
+                T_CCCACmsContactFetcherWrapper::NoDataFieldsL ),
+        ENTRY( "ErrorInContactOpen", 
+                T_CCCACmsContactFetcherWrapper::ErrorInContactOpenL ),
+        ENTRY( "ErrorInContactFetch", 
+                T_CCCACmsContactFetcherWrapper::ErrorInContactFetchL ),
+        ENTRY( "CreateWithManyItems", 
+                T_CCCACmsContactFetcherWrapper::CreateWithManyItemsL ),
+        ENTRY( "HandlePhonebookNotification", 
+                T_CCCACmsContactFetcherWrapper::HandlePhonebookNotificationL ),
+        ENTRY( "TestContactStoreApiL", 
+                T_CCCACmsContactFetcherWrapper::TestContactStoreApiL ),
+        ENTRY( "FindFromOtherStoresL", 
+                T_CCCACmsContactFetcherWrapper::FindFromOtherStoresL ),
         //ADD NEW ENTRY HERE
         // [test cases entries] - Do not remove
         };
@@ -104,23 +115,36 @@
           
     CCCAParameter* param = CCCAParameter::NewL();
     CleanupStack::PushL( param );
-    CCCAppCmsContactFetcherWrapper* wrapper = CCCAppCmsContactFetcherWrapper::CreateInstanceL( param ); 
+    CCCAppCmsContactFetcherWrapper* wrapper = 
+                CCCAppCmsContactFetcherWrapper::CreateInstanceL( param ); 
     wrapper->AddObserverL( *this );
     
     CompleteRequestL( &wrapper->iStatus, KErrNone );
-    
-    CCCAppCmsContactFetcherWrapper* wrapper2 = CCCAppCmsContactFetcherWrapper::InstanceL( ); 
+    CompleteRequestL( &wrapper->iStatus, KErrNone );
+    CCCAppCmsContactFetcherWrapper* wrapper2 = 
+                CCCAppCmsContactFetcherWrapper::InstanceL( ); 
     wrapper2->AddObserverL( *this );
     wrapper2->RemoveObserver( *this );
+    if( wrapper->IsActive() )
+        {
+        TRequestStatus* status = &wrapper->iStatus;
+        User::RequestComplete( status, KErrNone );
+        }
     wrapper2->Release();
     wrapper2 = NULL;
     
     CCCAppCmsContactFetcherWrapper* leaveAgain = NULL;
-    TRAP( leaveCode, leaveAgain = CCCAppCmsContactFetcherWrapper::CreateInstanceL( param ) ); 
+    TRAP( leaveCode, leaveAgain = 
+            CCCAppCmsContactFetcherWrapper::CreateInstanceL( param ) ); 
     T1L( KErrAlreadyExists, leaveCode );
     TL( leaveAgain == NULL );
   
     wrapper->RemoveObserver( *this );
+    if( wrapper->IsActive() )
+        {
+        TRequestStatus* status = &wrapper->iStatus;
+        User::RequestComplete( status, KErrNone );
+        }
     wrapper->Release(); 
     wrapper = NULL;
 
@@ -149,12 +173,18 @@
         
     CCCAParameter* param = CCCAParameter::NewL();
     CleanupStack::PushL( param );
-    CCCAppCmsContactFetcherWrapper* wrapper = CCCAppCmsContactFetcherWrapper::CreateInstanceL( param ); 
+    CCCAppCmsContactFetcherWrapper* wrapper = 
+            CCCAppCmsContactFetcherWrapper::CreateInstanceL( param ); 
     wrapper->AddObserverL( *this );
 
     CompleteRequestL( &wrapper->iStatus, KErrNone );
-    
+    CompleteRequestL( &wrapper->iStatus, KErrNone );
     wrapper->RemoveObserver( *this );
+    if( wrapper->IsActive() )
+        {
+        TRequestStatus* status = &wrapper->iStatus;
+        User::RequestComplete( status, KErrNone );
+        }
     wrapper->Release(); 
     wrapper = NULL;
 
@@ -182,11 +212,13 @@
     iLog->Log( KCreateWithContent );
 
     
-    User::LeaveIfError( SetupL( KTestOneContactFieldItem, MCCAParameter::EContactId ) );
+    User::LeaveIfError( SetupL( 
+            KTestOneContactFieldItem, MCCAParameter::EContactId ) );
      
     CCCAParameter* param = CCCAParameter::NewL();
     CleanupStack::PushL( param );
-    CCCAppCmsContactFetcherWrapper* wrapper = CCCAppCmsContactFetcherWrapper::CreateInstanceL( param ); 
+    CCCAppCmsContactFetcherWrapper* wrapper = 
+            CCCAppCmsContactFetcherWrapper::CreateInstanceL( param ); 
     
     wrapper->AddObserverL( *this );
 
@@ -200,13 +232,18 @@
         }
 
     wrapper->RemoveObserver( *this );
+    if( wrapper->IsActive() )
+        {
+        TRequestStatus* status = &wrapper->iStatus;
+        User::RequestComplete( status, KErrNone );
+        }
     wrapper->Release(); 
     wrapper = NULL;
 
     CleanupStack::PopAndDestroy( param );
     
     TL( iObserverCalled );
-    T1L( 2, iObserverCalledCount );
+    T1L( 1, iObserverCalledCount );
 
     return KErrNone;
 
@@ -217,7 +254,8 @@
 // (other items were commented in a header).
 // -----------------------------------------------------------------------------
 //
-TInt T_CCCACmsContactFetcherWrapper::CreateWithManyItemsL( CStifItemParser& /*aItem*/ )
+TInt T_CCCACmsContactFetcherWrapper::CreateWithManyItemsL( 
+        CStifItemParser& /*aItem*/ )
     {
     // Print to UI
     _LIT( KT_CCCACmsContactFetcherWrapper, "T_CCCACmsContactFetcherWrapper" );
@@ -227,11 +265,13 @@
     iLog->Log( KCreateWithManyItems );
 
     
-    User::LeaveIfError( SetupL( KTestManyContactFieldItems, MCCAParameter::EContactId ) );
+    User::LeaveIfError( SetupL( 
+            KTestManyContactFieldItems, MCCAParameter::EContactId ) );
      
     CCCAParameter* param = CCCAParameter::NewL();
     CleanupStack::PushL( param );
-    CCCAppCmsContactFetcherWrapper* wrapper = CCCAppCmsContactFetcherWrapper::CreateInstanceL( param ); 
+    CCCAppCmsContactFetcherWrapper* wrapper = 
+            CCCAppCmsContactFetcherWrapper::CreateInstanceL( param ); 
     
     wrapper->AddObserverL( *this );
 
@@ -244,13 +284,18 @@
         }
 
     wrapper->RemoveObserver( *this );
+    if( wrapper->IsActive() )
+        {
+        TRequestStatus* status = &wrapper->iStatus;
+        User::RequestComplete( status, KErrNone );
+        }
     wrapper->Release(); 
     wrapper = NULL;
 
     CleanupStack::PopAndDestroy( param );
     
     TL( iObserverCalled );
-    T1L( 4, iObserverCalledCount );
+    T1L( 3, iObserverCalledCount );
 
     return KErrNone;
 
@@ -261,7 +306,8 @@
 // (other items were commented in a header).
 // -----------------------------------------------------------------------------
 //
-TInt T_CCCACmsContactFetcherWrapper::CreateWithContactLinkL( CStifItemParser& /*aItem*/ )
+TInt T_CCCACmsContactFetcherWrapper::CreateWithContactLinkL( 
+        CStifItemParser& /*aItem*/ )
     {
     // Print to UI
     _LIT( KT_CCCACmsContactFetcherWrapper, "T_CCCACmsContactFetcherWrapper" );
@@ -274,7 +320,8 @@
      
     CCCAParameter* param = CCCAParameter::NewL();
     CleanupStack::PushL( param );
-    CCCAppCmsContactFetcherWrapper* wrapper = CCCAppCmsContactFetcherWrapper::CreateInstanceL( param ); 
+    CCCAppCmsContactFetcherWrapper* wrapper = 
+            CCCAppCmsContactFetcherWrapper::CreateInstanceL( param ); 
     
     wrapper->AddObserverL( *this );
 
@@ -288,13 +335,18 @@
         }
 
     wrapper->RemoveObserver( *this );
+    if( wrapper->IsActive() )
+        {
+        TRequestStatus* status = &wrapper->iStatus;
+        User::RequestComplete( status, KErrNone );
+        }
     wrapper->Release(); 
     wrapper = NULL;
 
     CleanupStack::PopAndDestroy( param );
     
     TL( iObserverCalled );
-    T1L( 2, iObserverCalledCount );    
+    T1L( 1, iObserverCalledCount );    
 
     return KErrNone;
 
@@ -319,7 +371,8 @@
      
     CCCAParameter* param = CCCAParameter::NewL();
     CleanupStack::PushL( param );
-    CCCAppCmsContactFetcherWrapper* wrapper = CCCAppCmsContactFetcherWrapper::CreateInstanceL( param ); 
+    CCCAppCmsContactFetcherWrapper* wrapper = 
+            CCCAppCmsContactFetcherWrapper::CreateInstanceL( param ); 
     
     wrapper->AddObserverL( *this );
     
@@ -328,7 +381,7 @@
     
     CompleteRequestL( &wrapper->iStatus, KErrNone );
 
-    TInt count = 1; 
+    TInt count = 2; 
     for ( TInt i(0); i < count; i++ )
         {
         CompleteRequestL( &wrapper->iStatus, KErrNone );
@@ -341,6 +394,11 @@
     T1L( 1, array.Count() ); 
         
     wrapper->RemoveObserver( *this );
+    if( wrapper->IsActive() )
+        {
+        TRequestStatus* status = &wrapper->iStatus;
+        User::RequestComplete( status, KErrNone );
+        }
     wrapper->Release(); 
     wrapper = NULL;
 
@@ -358,7 +416,8 @@
 // (other items were commented in a header).
 // -----------------------------------------------------------------------------
 //
-TInt T_CCCACmsContactFetcherWrapper::CreateWithEmailL( CStifItemParser& /*aItem*/ )
+TInt T_CCCACmsContactFetcherWrapper::CreateWithEmailL( 
+        CStifItemParser& /*aItem*/ )
     {
     // Print to UI
     _LIT( KT_CCCACmsContactFetcherWrapper, "T_CCCACmsContactFetcherWrapper" );
@@ -374,9 +433,15 @@
     
     TInt error ( KErrNone );
     CCCAppCmsContactFetcherWrapper* wrapper = NULL;
-    TRAP( error, wrapper = CCCAppCmsContactFetcherWrapper::CreateInstanceL( param ) );    
+    TRAP( error, wrapper = 
+            CCCAppCmsContactFetcherWrapper::CreateInstanceL( param ) );    
     wrapper->AddObserverL( *this );
     wrapper->RemoveObserver( *this );
+    if( wrapper->IsActive() )
+        {
+        TRequestStatus* status = &wrapper->iStatus;
+        User::RequestComplete( status, KErrNone );
+        }
     wrapper->Release(); 
     wrapper = NULL;
        
@@ -400,28 +465,39 @@
     iObserverCalledCount++;
     iLog->Log( _L("..contact info notified") );
     
-    switch ( iOngoingTestCase )
+    if ( aParameter.iType == 
+            MCCAppContactFieldDataObserver::TParameter::EContactsChanged )
         {
-        case KTestOneContactFieldItem:
-        case KTestContactLink:
+        iObserverCalledWithContactsChanged = ETrue;
+        }
+    else
+        {
+        switch ( iOngoingTestCase )
             {
-            if ( 1 == iObserverCalledCount )
-                {
-                T1L( MCCAppContactFieldDataObserver::TParameter::EContactInfoAvailable, aParameter.iType );
-                }
-            if ( 2 == iObserverCalledCount )
+            case KTestOneContactFieldItem:
+            case KTestContactLink:
                 {
-                T1L( MCCAppContactFieldDataObserver::TParameter::EContactDataFieldAvailable, aParameter.iType );
+                if ( 1 == iObserverCalledCount )
+                    {
+                    T1L( MCCAppContactFieldDataObserver::TParameter::EContactInfoAvailable, 
+                            aParameter.iType );
+                    }
+                if ( 2 == iObserverCalledCount )
+                    {
+                    T1L( MCCAppContactFieldDataObserver::TParameter::EContactDeleted, 
+                            aParameter.iType );
+                    }
+                break;
                 }
-            break;
-            }
-        default:
-            {
-            break;
-            }
-        } 
+            default:
+                {
+                break;
+                }
+            } 
+        }
     
-    if ( aParameter.iType == MCCAppContactFieldDataObserver::TParameter::EContactsChanged )
+    if ( aParameter.iType == 
+            MCCAppContactFieldDataObserver::TParameter::EContactsChanged )
         {
         iObserverCalledWithContactsChanged = ETrue;
         }
@@ -469,25 +545,34 @@
 // (other items were commented in a header).
 // -----------------------------------------------------------------------------
 //
-TInt T_CCCACmsContactFetcherWrapper::ErrorInContactOpenL( CStifItemParser& /*aItem*/ )
+TInt T_CCCACmsContactFetcherWrapper::ErrorInContactOpenL( 
+        CStifItemParser& /*aItem*/ )
     {
     // Print to UI
     _LIT( KT_CCCACmsContactFetcherWrapper, "T_CCCACmsContactFetcherWrapper" );
     _LIT( KErrorInContactOpen, "ErrorInContactOpen" );
-    TestModuleIf().Printf( 0, KT_CCCACmsContactFetcherWrapper, KErrorInContactOpen );
+    TestModuleIf().Printf( 
+            0, KT_CCCACmsContactFetcherWrapper, KErrorInContactOpen );
     // Print to log file
     iLog->Log( KErrorInContactOpen );
     
-    User::LeaveIfError( SetupL( KTestCompleteOpenWithError, MCCAParameter::EContactId ) );
+    User::LeaveIfError( SetupL( 
+            KTestCompleteOpenWithError, MCCAParameter::EContactId ) );
      
     CCCAParameter* param = CCCAParameter::NewL();
     CleanupStack::PushL( param );
-    CCCAppCmsContactFetcherWrapper* wrapper = CCCAppCmsContactFetcherWrapper::CreateInstanceL( param ); 
+    CCCAppCmsContactFetcherWrapper* wrapper = 
+            CCCAppCmsContactFetcherWrapper::CreateInstanceL( param ); 
     
     wrapper->AddObserverL( *this );
+    CompleteRequestL( &wrapper->iStatus, KErrNone );
     CompleteRequestL( &wrapper->iStatus, KErrCancel );
-
     wrapper->RemoveObserver( *this );
+    if( wrapper->IsActive() )
+        {
+        TRequestStatus* status = &wrapper->iStatus;
+        User::RequestComplete( status, KErrNone );
+        }
     wrapper->Release(); 
     wrapper = NULL;
 
@@ -505,7 +590,8 @@
 // (other items were commented in a header).
 // -----------------------------------------------------------------------------
 //
-TInt T_CCCACmsContactFetcherWrapper::ErrorInContactFetchL( CStifItemParser& /*aItem*/ )
+TInt T_CCCACmsContactFetcherWrapper::ErrorInContactFetchL( 
+        CStifItemParser& /*aItem*/ )
     {
     // Print to UI
     _LIT( KT_CCCACmsContactFetcherWrapper, "T_CCCACmsContactFetcherWrapper" );
@@ -515,17 +601,25 @@
     iLog->Log( KErrorInContactFetch );
 
     
-    User::LeaveIfError( SetupL( KTestCompleteFetchWithError, MCCAParameter::EContactId ) );
+    User::LeaveIfError( SetupL( 
+            KTestCompleteFetchWithError, MCCAParameter::EContactId ) );
      
     CCCAParameter* param = CCCAParameter::NewL();
     CleanupStack::PushL( param );
-    CCCAppCmsContactFetcherWrapper* wrapper = CCCAppCmsContactFetcherWrapper::CreateInstanceL( param ); 
+    CCCAppCmsContactFetcherWrapper* wrapper = 
+            CCCAppCmsContactFetcherWrapper::CreateInstanceL( param ); 
     
     wrapper->AddObserverL( *this );
     TRequestStatus* status = &wrapper->iStatus;
     User::RequestComplete( status, KErrNone );
             iSchedulerStarted = ETrue;
+    CStopSchedulerAfterDelay* schedulerStopper = 
+            new (ELeave) CStopSchedulerAfterDelay();
+    schedulerStopper->ConstructL();
+    CleanupStack::PushL( schedulerStopper );
+    schedulerStopper->After( 1000000 );// 1 sec
     CActiveScheduler::Start();
+    CleanupStack::PopAndDestroy( schedulerStopper );
 
     TInt count = 1; 
     for ( TInt i(0); i < count; i++ )
@@ -534,6 +628,11 @@
         }
 
     wrapper->RemoveObserver( *this );
+    if( wrapper->IsActive() )
+        {
+        TRequestStatus* status = &wrapper->iStatus;
+        User::RequestComplete( status, KErrNone );
+        }
     wrapper->Release(); 
     wrapper = NULL;
 
@@ -551,19 +650,23 @@
 // (other items were commented in a header).
 // -----------------------------------------------------------------------------
 //
-TInt T_CCCACmsContactFetcherWrapper::HandlePhonebookNotificationL( CStifItemParser& aItem )
+TInt T_CCCACmsContactFetcherWrapper::HandlePhonebookNotificationL( 
+        CStifItemParser& aItem )
     {
     _LIT( KT_CCCACmsContactFetcherWrapper, "T_CCCACmsContactFetcherWrapper" );
     _LIT( KHandlePhonebookNotification, "HandlePhonebookNotification" );
-    TestModuleIf().Printf( 0, KT_CCCACmsContactFetcherWrapper, KHandlePhonebookNotification );
+    TestModuleIf().Printf( 
+            0, KT_CCCACmsContactFetcherWrapper, KHandlePhonebookNotification );
     // Print to log file
     iLog->Log( KHandlePhonebookNotification );
     
-    User::LeaveIfError( SetupL( KTestOneContactFieldItem, MCCAParameter::EContactId ) );
+    User::LeaveIfError( SetupL( 
+            KTestOneContactFieldItem, MCCAParameter::EContactId ) );
         
     CCCAParameter* param = CCCAParameter::NewL();
     CleanupStack::PushL( param );
-    CCCAppCmsContactFetcherWrapper* wrapper = CCCAppCmsContactFetcherWrapper::CreateInstanceL( param );
+    CCCAppCmsContactFetcherWrapper* wrapper = 
+            CCCAppCmsContactFetcherWrapper::CreateInstanceL( param );
     
     wrapper->AddObserverL( *this );
 
@@ -576,21 +679,28 @@
     
     if (modifiedNotDeleted)
         {
+        TRequestStatus* status = &wrapper->iStatus;
+        User::RequestComplete( status, KErrNone );
         wrapper->HandlePhonebookNotificationL(ECmsContactModified);
         CompleteRequestL( &wrapper->iStatus, KErrNone );
         CompleteRequestL( &wrapper->iStatus, KErrNone );
-        // Observer is called 2 times when fetching contacts, and contacts are fetched again after they are changed so 1 + 2*2 = 5
-        T1L( iObserverCalledCount, 5); 
+        // Observer is called 2 times when fetching contacts, 
+        // and contacts are fetched again after they are changed so 1 + 2*2 = 5
+        T1L( iObserverCalledCount, 4); 
         TL( iObserverCalledWithContactsChanged);
         }
     else
         {
         wrapper->HandlePhonebookNotificationL(ECmsContactDeleted);
-        T1L( iObserverCalledCount, 3);
+        T1L( iObserverCalledCount, 2);
         }
         
     wrapper->RemoveObserver( *this );
-       
+    if( wrapper->IsActive() )
+        {
+        TRequestStatus* status = &wrapper->iStatus;
+        User::RequestComplete( status, KErrNone );
+        }
     wrapper->Release(); 
     wrapper = NULL;
 
@@ -607,7 +717,8 @@
 // (other items were commented in a header).
 // -----------------------------------------------------------------------------
 //
-TInt T_CCCACmsContactFetcherWrapper::TestContactStoreApiL( CStifItemParser& /*aItem */)
+TInt T_CCCACmsContactFetcherWrapper::TestContactStoreApiL( 
+        CStifItemParser& /*aItem */)
     {
     // Print to UI
     _LIT( KT_CCCACmsContactFetcherWrapper, "T_CCCACmsContactFetcherWrapper" );
@@ -617,14 +728,15 @@
     iLog->Log( KDescription );
     
     User::LeaveIfError( SetupL( KTestNoDataFields, MCCAParameter::EContactId ) );
-        
     // setup
     CCCAParameter* param = CCCAParameter::NewL();
     CleanupStack::PushL( param );
-    CCCAppCmsContactFetcherWrapper* wrapper = CCCAppCmsContactFetcherWrapper::CreateInstanceL( param ); 
+    CCCAppCmsContactFetcherWrapper* wrapper = 
+            CCCAppCmsContactFetcherWrapper::CreateInstanceL( param ); 
     wrapper->AddObserverL( *this );
+
     CompleteRequestL( &wrapper->iStatus, KErrNone );
-    
+
     // test itself
     wrapper->iCmsContactDataFetcher.iContactStore_called = EFalse;
     TCmsContactStore cntStore = wrapper->ContactStore();
@@ -632,6 +744,11 @@
 
     // cleanup
     wrapper->RemoveObserver( *this );
+    if( wrapper->IsActive() )
+        {
+        TRequestStatus* status = &wrapper->iStatus;
+        User::RequestComplete( status, KErrNone );
+        }
     wrapper->Release(); 
     wrapper = NULL;
 
@@ -645,12 +762,14 @@
 // (other items were commented in a header).
 // -----------------------------------------------------------------------------
 //
-TInt T_CCCACmsContactFetcherWrapper::FindFromOtherStoresL( CStifItemParser& /*aItem*/ )
+TInt T_CCCACmsContactFetcherWrapper::FindFromOtherStoresL( 
+        CStifItemParser& /*aItem*/ )
     {
     // Print to UI
     _LIT( KT_CCCACmsContactFetcherWrapper, "T_CCCACmsContactFetcherWrapper" );
     _LIT( KFindFromOtherStoresL, "FindFromOtherStoresL" );
-    TestModuleIf().Printf( 0, KT_CCCACmsContactFetcherWrapper, KFindFromOtherStoresL );
+    TestModuleIf().Printf( 
+            0, KT_CCCACmsContactFetcherWrapper, KFindFromOtherStoresL );
     // Print to log file
     iLog->Log( KFindFromOtherStoresL );
  
@@ -660,7 +779,8 @@
     CleanupStack::PushL( param );
     CCCAppCmsContactFetcherWrapper* wrapper = 
         CCCAppCmsContactFetcherWrapper::CreateInstanceL( 
-             param, CCCAppCmsContactFetcherWrapper::EFindContactFromOtherStores ); 
+             param, 
+             CCCAppCmsContactFetcherWrapper::EFindContactFromOtherStores ); 
     wrapper->AddObserverL( *this );
 
     // Since there is not needed external notifiers for the
@@ -678,18 +798,22 @@
     iSchedulerStarted = EFalse;
     delete schedulerStopper;
     schedulerStopper = NULL;
-    
     CompleteRequestL( &wrapper->iStatus, KErrNone );
+    iSchedulerStarted = EFalse;
     CompleteRequestL( &wrapper->iStatus, KErrNone );
-
     wrapper->RemoveObserver( *this );
+    if( wrapper->IsActive() )
+        {
+        TRequestStatus* status = &wrapper->iStatus;
+        User::RequestComplete( status, KErrNone );
+        }
     wrapper->Release(); 
     wrapper = NULL;
 
     CleanupStack::PopAndDestroy( param );
     
     TL( iObserverCalled );
-    T1L( 2, iObserverCalledCount );    
+    T1L( 1, iObserverCalledCount );    
 
     return KErrNone;
     }
@@ -708,7 +832,8 @@
     iOngoingTestCase = aTestCase;
     
     // Ongoing test case
-    TInt err = RProperty::Define( KTestPropertyCat, ETestCaseStateProperty, RProperty::EInt );
+    TInt err = RProperty::Define( 
+            KTestPropertyCat, ETestCaseStateProperty, RProperty::EInt );
     if ( err != KErrAlreadyExists && err != KErrNone )
         {
         return ( err );
@@ -717,14 +842,24 @@
     
     
     // Parameter type used in CCAParameter creation
-    err = RProperty::Define( KTestPropertyCat, ETestParameterTypeProperty, RProperty::EInt );
+    err = RProperty::Define( 
+            KTestPropertyCat, ETestParameterTypeProperty, RProperty::EInt );
     if ( err != KErrAlreadyExists && err != KErrNone )
         {
         return ( err );
         }
-    err = RProperty::Set( KTestPropertyCat, ETestParameterTypeProperty, aParameterType );
+    err = RProperty::Set( 
+            KTestPropertyCat, ETestParameterTypeProperty, aParameterType );
     
-
+    CActiveScheduler* scheduler = new ( ELeave ) CActiveScheduler;
+    if( !CActiveScheduler::Current() )
+        {
+        CActiveScheduler::Install( scheduler );
+        }
+    else
+        {
+        delete scheduler;
+        }
     return KErrNone;
     }
 
@@ -733,12 +868,22 @@
 //
 // -----------------------------------------------------------------------------
 //
-void T_CCCACmsContactFetcherWrapper::CompleteRequestL( TRequestStatus* aStatus, TInt aReason )
+void T_CCCACmsContactFetcherWrapper::CompleteRequestL( 
+        TRequestStatus* aStatus, TInt aReason )
     {
     TRequestStatus* status = aStatus;
     User::RequestComplete( status, aReason );
+
     iSchedulerStarted = ETrue;
+    
+    CStopSchedulerAfterDelay* schedulerStopper = 
+        new (ELeave) CStopSchedulerAfterDelay();
+    schedulerStopper->ConstructL();
+    CleanupStack::PushL( schedulerStopper );
+    schedulerStopper->After( 1000000 );// 1 sec
     CActiveScheduler::Start();
+    CleanupStack::PopAndDestroy( schedulerStopper );
+
     }
 // ========================== OTHER EXPORTED FUNCTIONS =========================
 // None