web_pub/favourites_engine_api/tsrc/src/FavouritesDbTestCases.cpp
changeset 8 7c90e6132015
child 36 0ed94ceaa377
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web_pub/favourites_engine_api/tsrc/src/FavouritesDbTestCases.cpp	Fri May 08 08:25:06 2009 +0300
@@ -0,0 +1,2210 @@
+/*
+* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "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 FILES
+#include <e32math.h>
+#include "FavouritesEngineTest.h"
+
+// EXTERNAL DATA STRUCTURES
+// None
+
+// EXTERNAL FUNCTION PROTOTYPES  
+// None
+
+// CONSTANTS
+// None
+
+// MACROS
+// None
+
+// LOCAL CONSTANTS AND MACROS
+// None
+
+// MODULE DATA STRUCTURES
+// None
+
+// LOCAL FUNCTION PROTOTYPES
+// None
+
+// FORWARD DECLARATIONS
+// None
+
+// ==================== LOCAL FUNCTIONS =======================================
+
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+/*
+-------------------------------------------------------------------------------
+
+    Class: CFavouritesEngineTest
+
+    Method: DbOpenTestL
+
+    Description: Test opening the Favourites Db by using the Open method.
+  
+    Parameters:  TTestResult& aErrorDescription: out:   
+                    Test result and on error case a short description of error
+
+    Return Values: TInt: Always KErrNone to indicate that test was valid
+
+    Errors/Exceptions: None
+
+    Status: Approved
+
+-------------------------------------------------------------------------------
+*/
+TInt CFavouritesEngineTest::DbOpenTestL( TTestResult& aResult )
+    {
+    /* Simple server connect */
+    _LIT( KDefinition ,"State");
+    _LIT( KData ,"Test the Db Open method");
+    TestModuleIf().Printf( 0, KDefinition, KData );
+
+    TInt result = iFavouritesDb.Open( iFavouritesSession, KTestDbName );
+    CleanupClosePushL<RFavouritesDb>( iFavouritesDb );
+
+    _LIT( KData2 ,"Finished");
+    TestModuleIf().Printf( 0, KDefinition, KData2 );
+    
+    if (result == KErrNone)
+	    {
+	    _LIT( KDescription , "Test case passed");
+	    aResult.SetResult( KErrNone, KDescription );
+	    }
+    else
+	    {
+	    _LIT( KDescription , "Test case failed");
+	    aResult.SetResult( KErrGeneral, KDescription );
+	    }
+
+    CleanupStack::PopAndDestroy(); // iFavouritesDb
+    iFavouritesSession.DeleteDatabase( KTestDbName );
+
+    // Case was executed
+    return KErrNone;
+    }
+
+/*
+-------------------------------------------------------------------------------
+
+    Class: CFavouritesEngineTest
+
+    Method: DbVersionTestL
+
+    Description: Test the Favourites Db Version method.
+  
+    Parameters:  TTestResult& aErrorDescription: out:   
+                    Test result and on error case a short description of error
+
+    Return Values: TInt: Always KErrNone to indicate that test was valid
+
+    Errors/Exceptions: None
+
+    Status: Approved
+
+-------------------------------------------------------------------------------
+*/
+TInt CFavouritesEngineTest::DbVersionTestL( TTestResult& aResult )
+    {
+    /* Simple server connect */
+    _LIT( KDefinition ,"State");
+    _LIT( KData ,"Test the Db Version method");
+    TestModuleIf().Printf( 0, KDefinition, KData );
+
+    iFavouritesDb.Open( iFavouritesSession, KTestDbName );
+    CleanupClosePushL<RFavouritesDb>( iFavouritesDb );
+
+    TVersion dbVersion = iFavouritesDb.Version();
+    
+    _LIT( KData2 ,"Finished");
+    TestModuleIf().Printf( 0, KDefinition, KData2 );
+    
+    if (dbVersion.iMajor > 0)
+	    {
+	    _LIT( KDescription , "Test case passed");
+	    aResult.SetResult( KErrNone, KDescription );
+	    }
+    else
+	    {
+	    _LIT( KDescription , "Test case failed");
+	    aResult.SetResult( KErrGeneral, KDescription );
+	    }
+
+    CleanupStack::PopAndDestroy(); // iFavouritesDb
+    iFavouritesSession.DeleteDatabase( KTestDbName );
+
+    // Case was executed
+    return KErrNone;
+    }
+
+/*
+-------------------------------------------------------------------------------
+
+    Class: CFavouritesEngineTest
+
+    Method: DbIsDamagedTestL
+
+    Description: Test the Favourites Db IsDamaged method.
+  
+    Parameters:  TTestResult& aErrorDescription: out:   
+                    Test result and on error case a short description of error
+
+    Return Values: TInt: Always KErrNone to indicate that test was valid
+
+    Errors/Exceptions: None
+
+    Status: Approved
+
+-------------------------------------------------------------------------------
+*/
+TInt CFavouritesEngineTest::DbIsDamagedTestL( TTestResult& aResult )
+    {
+    /* Simple server connect */
+    _LIT( KDefinition ,"State");
+    _LIT( KData ,"Test the Db IsDamaged method");
+    TestModuleIf().Printf( 0, KDefinition, KData );
+
+    iFavouritesDb.Open( iFavouritesSession, KTestDbName );
+    CleanupClosePushL<RFavouritesDb>( iFavouritesDb );
+
+    TBool isDbDamaged = EFalse;
+    
+    TInt result = iFavouritesDb.IsDamaged(isDbDamaged);
+    
+    _LIT( KData2 ,"Finished");
+    TestModuleIf().Printf( 0, KDefinition, KData2 );
+    
+    if (result == KErrNone)
+	    {
+	    _LIT( KDescription , "Test case passed");
+	    aResult.SetResult( KErrNone, KDescription );
+	    }
+    else
+	    {
+	    _LIT( KDescription , "Test case failed");
+	    aResult.SetResult( KErrGeneral, KDescription );
+	    }
+
+    CleanupStack::PopAndDestroy(); // iFavouritesDb
+    iFavouritesSession.DeleteDatabase( KTestDbName );
+
+    // Case was executed
+    return KErrNone;
+    }
+
+/*
+-------------------------------------------------------------------------------
+
+    Class: CFavouritesEngineTest
+
+    Method: DbRecoverTestL
+
+    Description: Test the Favourites Db Recover method.
+  
+    Parameters:  TTestResult& aErrorDescription: out:   
+                    Test result and on error case a short description of error
+
+    Return Values: TInt: Always KErrNone to indicate that test was valid
+
+    Errors/Exceptions: None
+
+    Status: Approved
+
+-------------------------------------------------------------------------------
+*/
+TInt CFavouritesEngineTest::DbRecoverTestL( TTestResult& aResult )
+    {
+    /* Simple server connect */
+    _LIT( KDefinition ,"State");
+    _LIT( KData ,"Test the Db Recover method");
+    TestModuleIf().Printf( 0, KDefinition, KData );
+
+    iFavouritesDb.Open( iFavouritesSession, KTestDbName );
+    CleanupClosePushL<RFavouritesDb>( iFavouritesDb );
+    
+    TInt result = iFavouritesDb.Recover();
+
+    _LIT( KData2 ,"Finished");
+    TestModuleIf().Printf( 0, KDefinition, KData2 );
+    
+    if (result == KErrNone)
+	    {
+	    _LIT( KDescription , "Test case passed");
+	    aResult.SetResult( KErrNone, KDescription );
+	    }
+    else
+	    {
+	    _LIT( KDescription , "Test case failed");
+	    aResult.SetResult( KErrGeneral, KDescription );
+	    }
+
+    CleanupStack::PopAndDestroy(); // iFavouritesDb
+    iFavouritesSession.DeleteDatabase( KTestDbName );
+
+    // Case was executed
+    return KErrNone;
+    }
+
+/*
+-------------------------------------------------------------------------------
+
+    Class: CFavouritesEngineTest
+
+    Method: DbCompactTestL
+
+    Description: Test the Favourites Db Compact method.
+  
+    Parameters:  TTestResult& aErrorDescription: out:   
+                    Test result and on error case a short description of error
+
+    Return Values: TInt: Always KErrNone to indicate that test was valid
+
+    Errors/Exceptions: None
+
+    Status: Approved
+
+-------------------------------------------------------------------------------
+*/
+TInt CFavouritesEngineTest::DbCompactTestL( TTestResult& aResult )
+    {
+    /* Simple server connect */
+    _LIT( KDefinition ,"State");
+    _LIT( KData ,"Test the Db Compact method");
+    TestModuleIf().Printf( 0, KDefinition, KData );
+
+    iFavouritesDb.Open( iFavouritesSession, KTestDbName );
+    CleanupClosePushL<RFavouritesDb>( iFavouritesDb );
+    
+    TInt result = iFavouritesDb.Compact();
+
+    _LIT( KData2 ,"Finished");
+    TestModuleIf().Printf( 0, KDefinition, KData2 );
+    
+    if (result == KErrNone)
+	    {
+	    _LIT( KDescription , "Test case passed");
+	    aResult.SetResult( KErrNone, KDescription );
+	    }
+    else
+	    {
+	    _LIT( KDescription , "Test case failed");
+	    aResult.SetResult( KErrGeneral, KDescription );
+	    }
+
+    CleanupStack::PopAndDestroy(); // iFavouritesDb
+    iFavouritesSession.DeleteDatabase( KTestDbName );
+
+    // Case was executed
+    return KErrNone;
+    }
+
+/*
+-------------------------------------------------------------------------------
+
+    Class: CFavouritesEngineTest
+
+    Method: DbSizeTestL
+
+    Description: Test the Favourites Db Size method.
+  
+    Parameters:  TTestResult& aErrorDescription: out:   
+                    Test result and on error case a short description of error
+
+    Return Values: TInt: Always KErrNone to indicate that test was valid
+
+    Errors/Exceptions: None
+
+    Status: Approved
+
+-------------------------------------------------------------------------------
+*/
+TInt CFavouritesEngineTest::DbSizeTestL( TTestResult& aResult )
+    {
+    /* Simple server connect */
+    _LIT( KDefinition ,"State");
+    _LIT( KData ,"Test the Db Size method");
+    TestModuleIf().Printf( 0, KDefinition, KData );
+
+    iFavouritesDb.Open( iFavouritesSession, KTestDbName );
+    CleanupClosePushL<RFavouritesDb>( iFavouritesDb );
+    
+    RDbDatabase::TSize dbSize;
+    
+    TInt result = iFavouritesDb.Size(dbSize);
+
+    _LIT( KData2 ,"Finished");
+    TestModuleIf().Printf( 0, KDefinition, KData2 );
+    
+    if (result == KErrNone)
+	    {
+	    _LIT( KDescription , "Test case passed");
+	    aResult.SetResult( KErrNone, KDescription );
+	    }
+    else
+	    {
+	    _LIT( KDescription , "Test case failed");
+	    aResult.SetResult( KErrGeneral, KDescription );
+	    }
+
+    CleanupStack::PopAndDestroy(); // iFavouritesDb
+    iFavouritesSession.DeleteDatabase( KTestDbName );
+
+    // Case was executed
+    return KErrNone;
+    }
+
+/*
+-------------------------------------------------------------------------------
+
+    Class: CFavouritesEngineTest
+
+    Method: DbUpdateStatsTestL
+
+    Description: Test the Favourites Db UpdateStats method.
+  
+    Parameters:  TTestResult& aErrorDescription: out:   
+                    Test result and on error case a short description of error
+
+    Return Values: TInt: Always KErrNone to indicate that test was valid
+
+    Errors/Exceptions: None
+
+    Status: Approved
+
+-------------------------------------------------------------------------------
+*/
+TInt CFavouritesEngineTest::DbUpdateStatsTestL( TTestResult& aResult )
+    {
+    /* Simple server connect */
+    _LIT( KDefinition ,"State");
+    _LIT( KData ,"Test the Db UpdateStats method");
+    TestModuleIf().Printf( 0, KDefinition, KData );
+
+    iFavouritesDb.Open( iFavouritesSession, KTestDbName );
+    CleanupClosePushL<RFavouritesDb>( iFavouritesDb );
+    
+    TInt result = iFavouritesDb.UpdateStats();
+
+    _LIT( KData2 ,"Finished");
+    TestModuleIf().Printf( 0, KDefinition, KData2 );
+    
+    if (result == KErrNone)
+	    {
+	    _LIT( KDescription , "Test case passed");
+	    aResult.SetResult( KErrNone, KDescription );
+	    }
+    else
+	    {
+	    _LIT( KDescription , "Test case failed");
+	    aResult.SetResult( KErrGeneral, KDescription );
+	    }
+
+    CleanupStack::PopAndDestroy(); // iFavouritesDb
+    iFavouritesSession.DeleteDatabase( KTestDbName );
+
+    // Case was executed
+    return KErrNone;
+    }
+
+/*
+-------------------------------------------------------------------------------
+
+    Class: CFavouritesEngineTest
+
+    Method: DbBeginTestL
+
+    Description: Test the Favourites Db Begin method.
+  
+    Parameters:  TTestResult& aErrorDescription: out:   
+                    Test result and on error case a short description of error
+
+    Return Values: TInt: Always KErrNone to indicate that test was valid
+
+    Errors/Exceptions: None
+
+    Status: Approved
+
+-------------------------------------------------------------------------------
+*/
+TInt CFavouritesEngineTest::DbBeginTestL( TTestResult& aResult )
+    {
+    /* Simple server connect */
+    _LIT( KDefinition ,"State");
+    _LIT( KData ,"Test the Db Begin method");
+    TestModuleIf().Printf( 0, KDefinition, KData );
+
+    iFavouritesDb.Open( iFavouritesSession, KTestDbName );
+    CleanupClosePushL<RFavouritesDb>( iFavouritesDb );
+    
+    TInt result = iFavouritesDb.Begin(EFalse);
+
+    _LIT( KData2 ,"Finished");
+    TestModuleIf().Printf( 0, KDefinition, KData2 );
+    
+    if (result == KErrNone)
+	    {
+	    _LIT( KDescription , "Test case passed");
+	    aResult.SetResult( KErrNone, KDescription );
+	    }
+    else
+	    {
+	    _LIT( KDescription , "Test case failed");
+	    aResult.SetResult( KErrGeneral, KDescription );
+	    }
+
+    CleanupStack::PopAndDestroy(); // iFavouritesDb
+    iFavouritesSession.DeleteDatabase( KTestDbName );
+
+    // Case was executed
+    return KErrNone;
+    }
+
+/*
+-------------------------------------------------------------------------------
+
+    Class: CFavouritesEngineTest
+
+    Method: DbCommitTestL
+
+    Description: Test the Favourites Db Commit method.
+  
+    Parameters:  TTestResult& aErrorDescription: out:   
+                    Test result and on error case a short description of error
+
+    Return Values: TInt: Always KErrNone to indicate that test was valid
+
+    Errors/Exceptions: None
+
+    Status: Approved
+
+-------------------------------------------------------------------------------
+*/
+TInt CFavouritesEngineTest::DbCommitTestL( TTestResult& aResult )
+    {
+    /* Simple server connect */
+    _LIT( KDefinition ,"State");
+    _LIT( KData ,"Test the Db Commit method");
+    TestModuleIf().Printf( 0, KDefinition, KData );
+
+    iFavouritesDb.Open( iFavouritesSession, KTestDbName );
+    CleanupClosePushL<RFavouritesDb>( iFavouritesDb );
+    
+    iFavouritesDb.Begin(EFalse);
+    TInt result = iFavouritesDb.Commit();
+
+    _LIT( KData2 ,"Finished");
+    TestModuleIf().Printf( 0, KDefinition, KData2 );
+    
+    if (result == KErrNone)
+	    {
+	    _LIT( KDescription , "Test case passed");
+	    aResult.SetResult( KErrNone, KDescription );
+	    }
+    else
+	    {
+	    _LIT( KDescription , "Test case failed");
+	    aResult.SetResult( KErrGeneral, KDescription );
+	    }
+
+    CleanupStack::PopAndDestroy(); // iFavouritesDb
+    iFavouritesSession.DeleteDatabase( KTestDbName );
+
+    // Case was executed
+    return KErrNone;
+    }
+
+/*
+-------------------------------------------------------------------------------
+
+    Class: CFavouritesEngineTest
+
+    Method: DbRollbackTestL
+
+    Description: Test the Favourites Db Rollback method.
+  
+    Parameters:  TTestResult& aErrorDescription: out:   
+                    Test result and on error case a short description of error
+
+    Return Values: TInt: Always KErrNone to indicate that test was valid
+
+    Errors/Exceptions: None
+
+    Status: Approved
+
+-------------------------------------------------------------------------------
+*/
+TInt CFavouritesEngineTest::DbRollbackTestL( TTestResult& aResult )
+    {
+    /* Simple server connect */
+    _LIT( KDefinition ,"State");
+    _LIT( KData ,"Test the Db Rollback method");
+    TestModuleIf().Printf( 0, KDefinition, KData );
+
+    iFavouritesDb.Open( iFavouritesSession, KTestDbName );
+    CleanupClosePushL<RFavouritesDb>( iFavouritesDb );
+    
+    iFavouritesDb.Begin(EFalse);
+    CreateItemL( iItem1 );
+    iFavouritesDb.Add( *iItem1, EFalse );
+    
+    TInt result = KErrNone;
+    TRAP(result, iFavouritesDb.Rollback());
+
+    _LIT( KData2 ,"Finished");
+    TestModuleIf().Printf( 0, KDefinition, KData2 );
+    
+    if (result == KErrNone)
+	    {
+	    _LIT( KDescription , "Test case passed");
+	    aResult.SetResult( KErrNone, KDescription );
+	    }
+    else
+	    {
+	    _LIT( KDescription , "Test case failed");
+	    aResult.SetResult( KErrGeneral, KDescription );
+	    }
+
+    CleanupStack::PopAndDestroy(); // iFavouritesDb
+    iFavouritesSession.DeleteDatabase( KTestDbName );
+
+    delete iItem1;
+    iItem1 = NULL;
+    
+    // Case was executed
+    return KErrNone;
+    }
+
+/*
+-------------------------------------------------------------------------------
+
+    Class: CFavouritesEngineTest
+
+    Method: DbCleanupRollbackPushLTestL
+
+    Description: Test the Favourites Db CleanupRollbackPushL method.
+  
+    Parameters:  TTestResult& aErrorDescription: out:   
+                    Test result and on error case a short description of error
+
+    Return Values: TInt: Always KErrNone to indicate that test was valid
+
+    Errors/Exceptions: None
+
+    Status: Approved
+
+-------------------------------------------------------------------------------
+*/
+TInt CFavouritesEngineTest::DbCleanupRollbackPushLTestL( TTestResult& aResult )
+    {
+    /* Simple server connect */
+    _LIT( KDefinition ,"State");
+    _LIT( KData ,"Test the Db CleanupRollbackPushL method");
+    TestModuleIf().Printf( 0, KDefinition, KData );
+
+    iFavouritesDb.Open( iFavouritesSession, KTestDbName );
+    CleanupClosePushL<RFavouritesDb>( iFavouritesDb );
+    
+    iFavouritesDb.Begin(EFalse);
+    iFavouritesDb.CleanupRollbackPushL();
+    CreateItemL( iItem1 );
+    iFavouritesDb.Add( *iItem1, EFalse );
+    TInt result = iFavouritesDb.Commit();
+
+    _LIT( KData2 ,"Finished");
+    TestModuleIf().Printf( 0, KDefinition, KData2 );
+    
+    if (result == KErrNone)
+	    {
+	    _LIT( KDescription , "Test case passed");
+	    aResult.SetResult( KErrNone, KDescription );
+	    }
+    else
+	    {
+	    _LIT( KDescription , "Test case failed");
+	    aResult.SetResult( KErrGeneral, KDescription );
+	    }
+
+    CleanupStack::Pop(); // RollbackPush
+    CleanupStack::PopAndDestroy(); // iFavouritesDb
+    iFavouritesSession.DeleteDatabase( KTestDbName );
+
+    delete iItem1;
+    iItem1 = NULL;
+    
+    // Case was executed
+    return KErrNone;
+    }
+
+/*
+-------------------------------------------------------------------------------
+
+    Class: CFavouritesEngineTest
+
+    Method: DbGetTestL
+
+    Description: Test the Favourites Db Get method.
+  
+    Parameters:  TTestResult& aErrorDescription: out:   
+                    Test result and on error case a short description of error
+
+    Return Values: TInt: Always KErrNone to indicate that test was valid
+
+    Errors/Exceptions: None
+
+    Status: Approved
+
+-------------------------------------------------------------------------------
+*/
+TInt CFavouritesEngineTest::DbGetTestL( TTestResult& aResult )
+    {
+    /* Simple server connect */
+    _LIT( KDefinition ,"State");
+    _LIT( KData ,"Test the Db Get method");
+    TestModuleIf().Printf( 0, KDefinition, KData );
+
+    iFavouritesDb.Open( iFavouritesSession, KTestDbName );
+    CleanupClosePushL<RFavouritesDb>( iFavouritesDb );
+
+    CreatePopulatedDbL();
+    
+    CFavouritesItem* item = CFavouritesItem::NewLC();
+
+    TInt result = iFavouritesDb.Get( iItem1->Uid(), *item );
+
+    _LIT( KData2 ,"Finished");
+    TestModuleIf().Printf( 0, KDefinition, KData2 );
+
+    if (result == KErrNone)
+	    {
+	    _LIT( KDescription , "Test case passed");
+	    aResult.SetResult( KErrNone, KDescription );
+	    }
+    else
+	    {
+	    _LIT( KDescription , "Test case failed");
+	    aResult.SetResult( KErrGeneral, KDescription );
+	    }
+
+    CleanupStack::PopAndDestroy(2); // iFavouritesDb, item
+    iFavouritesSession.DeleteDatabase( KTestDbName );
+
+    // Case was executed
+    return KErrNone;
+    }
+
+/*
+-------------------------------------------------------------------------------
+
+    Class: CFavouritesEngineTest
+
+    Method: DbGetAllTestL
+
+    Description: Test the Favourites Db GetAll method.
+  
+    Parameters:  TTestResult& aErrorDescription: out:   
+                    Test result and on error case a short description of error
+
+    Return Values: TInt: Always KErrNone to indicate that test was valid
+
+    Errors/Exceptions: None
+
+    Status: Approved
+
+-------------------------------------------------------------------------------
+*/
+TInt CFavouritesEngineTest::DbGetAllTestL( TTestResult& aResult )
+    {
+    /* Simple server connect */
+    _LIT( KDefinition ,"State");
+    _LIT( KData ,"Test the Db GetAll method");
+    TestModuleIf().Printf( 0, KDefinition, KData );
+
+    iFavouritesDb.Open( iFavouritesSession, KTestDbName );
+    CleanupClosePushL<RFavouritesDb>( iFavouritesDb );
+
+    CreatePopulatedDbL();
+    
+    CFavouritesItemList* list = new (ELeave) CFavouritesItemList();
+
+    TInt result = iFavouritesDb.GetAll( *list, KFavouritesRootUid );
+
+    _LIT( KData2 ,"Finished");
+    TestModuleIf().Printf( 0, KDefinition, KData2 );
+
+    if (result == KErrNone)
+	    {
+	    _LIT( KDescription , "Test case passed");
+	    aResult.SetResult( KErrNone, KDescription );
+	    }
+    else
+	    {
+	    _LIT( KDescription , "Test case failed");
+	    aResult.SetResult( KErrGeneral, KDescription );
+	    }
+
+    delete list;
+    CleanupStack::PopAndDestroy(); // iFavouritesDb
+    iFavouritesSession.DeleteDatabase( KTestDbName );
+
+    // Case was executed
+    return KErrNone;
+    }
+
+/*
+-------------------------------------------------------------------------------
+
+    Class: CFavouritesEngineTest
+
+    Method: DbGetUidsTestL
+
+    Description: Test the Favourites Db GetUids method.
+  
+    Parameters:  TTestResult& aErrorDescription: out:   
+                    Test result and on error case a short description of error
+
+    Return Values: TInt: Always KErrNone to indicate that test was valid
+
+    Errors/Exceptions: None
+
+    Status: Approved
+
+-------------------------------------------------------------------------------
+*/
+TInt CFavouritesEngineTest::DbGetUidsTestL( TTestResult& aResult )
+    {
+    /* Simple server connect */
+    _LIT( KDefinition ,"State");
+    _LIT( KData ,"Test the Db GetUids method");
+    TestModuleIf().Printf( 0, KDefinition, KData );
+
+    iFavouritesDb.Open( iFavouritesSession, KTestDbName );
+    CleanupClosePushL<RFavouritesDb>( iFavouritesDb );
+
+    CreatePopulatedDbL();
+
+    CArrayFix<TInt>* uids = new (ELeave) CArrayFixFlat<TInt>( 1 );
+
+    TInt result = iFavouritesDb.GetUids( *uids, KFavouritesRootUid, CFavouritesItem::ENone, NULL, KFavouritesNullContextId );
+
+    _LIT( KData2 ,"Finished");
+    TestModuleIf().Printf( 0, KDefinition, KData2 );
+
+    if (result == KErrNone)
+	    {
+	    _LIT( KDescription , "Test case passed");
+	    aResult.SetResult( KErrNone, KDescription );
+	    }
+    else
+	    {
+	    _LIT( KDescription , "Test case failed");
+	    aResult.SetResult( KErrGeneral, KDescription );
+	    }
+
+    delete uids;
+    CleanupStack::PopAndDestroy(); // iFavouritesDb
+    iFavouritesSession.DeleteDatabase( KTestDbName );
+
+    // Case was executed
+    return KErrNone;
+    }
+
+/*
+-------------------------------------------------------------------------------
+
+    Class: CFavouritesEngineTest
+
+    Method: DbPreferredUidTestL
+
+    Description: Test the Favourites Db PreferredUid method.
+  
+    Parameters:  TTestResult& aErrorDescription: out:   
+                    Test result and on error case a short description of error
+
+    Return Values: TInt: Always KErrNone to indicate that test was valid
+
+    Errors/Exceptions: None
+
+    Status: Approved
+
+-------------------------------------------------------------------------------
+*/
+TInt CFavouritesEngineTest::DbPreferredUidTestL( TTestResult& aResult )
+    {
+    /* Simple server connect */
+    _LIT( KDefinition ,"State");
+    _LIT( KData ,"Test the Db PreferredUid method");
+    TestModuleIf().Printf( 0, KDefinition, KData );
+
+    iFavouritesDb.Open( iFavouritesSession, KTestDbName );
+    CleanupClosePushL<RFavouritesDb>( iFavouritesDb );
+
+    CreatePopulatedDbL();
+
+    iFavouritesDb.SetPreferredUid(iItemFolder1->Uid(), 222);
+    TInt preferredUid;
+    iFavouritesDb.PreferredUid( iItemFolder1->Uid(), preferredUid );
+
+    _LIT( KData2 ,"Finished");
+    TestModuleIf().Printf( 0, KDefinition, KData2 );
+
+    if (preferredUid == 222)
+	    {
+	    _LIT( KDescription , "Test case passed");
+	    aResult.SetResult( KErrNone, KDescription );
+	    }
+    else
+	    {
+	    _LIT( KDescription , "Test case failed");
+	    aResult.SetResult( KErrGeneral, KDescription );
+	    }
+
+    CleanupStack::PopAndDestroy(); // iFavouritesDb
+    iFavouritesSession.DeleteDatabase( KTestDbName );
+
+    // Case was executed
+    return KErrNone;
+    }
+
+/*
+-------------------------------------------------------------------------------
+
+    Class: CFavouritesEngineTest
+
+    Method: DbDeleteTestL
+
+    Description: Test the Favourites Db Delete method.
+  
+    Parameters:  TTestResult& aErrorDescription: out:   
+                    Test result and on error case a short description of error
+
+    Return Values: TInt: Always KErrNone to indicate that test was valid
+
+    Errors/Exceptions: None
+
+    Status: Approved
+
+-------------------------------------------------------------------------------
+*/
+TInt CFavouritesEngineTest::DbDeleteTestL( TTestResult& aResult )
+    {
+    /* Simple server connect */
+    _LIT( KDefinition ,"State");
+    _LIT( KData ,"Test the Db Delete method");
+    TestModuleIf().Printf( 0, KDefinition, KData );
+
+    iFavouritesDb.Open( iFavouritesSession, KTestDbName );
+    CleanupClosePushL<RFavouritesDb>( iFavouritesDb );
+
+    CreatePopulatedDbL();
+
+    TInt countBeforeDelete;
+    iFavouritesDb.Count(countBeforeDelete, KFavouritesNullUid, CFavouritesItem::ENone, NULL, KFavouritesNullContextId);
+    iFavouritesDb.Delete( iItem3->Uid() );
+    TInt countAfterDelete;
+    iFavouritesDb.Count(countAfterDelete, KFavouritesNullUid, CFavouritesItem::ENone, NULL, KFavouritesNullContextId);
+
+    _LIT( KData2 ,"Finished");
+    TestModuleIf().Printf( 0, KDefinition, KData2 );
+
+    if (countAfterDelete == countBeforeDelete - 1)
+	    {
+	    _LIT( KDescription , "Test case passed");
+	    aResult.SetResult( KErrNone, KDescription );
+	    }
+    else
+	    {
+	    _LIT( KDescription , "Test case failed");
+	    aResult.SetResult( KErrGeneral, KDescription );
+	    }
+
+    CleanupStack::PopAndDestroy(); // iFavouritesDb
+    iFavouritesSession.DeleteDatabase( KTestDbName );
+
+    // Case was executed
+    return KErrNone;
+    }
+
+/*
+-------------------------------------------------------------------------------
+
+    Class: CFavouritesEngineTest
+
+    Method: DbUpdateTestL
+
+    Description: Test the Favourites Db Update method.
+  
+    Parameters:  TTestResult& aErrorDescription: out:   
+                    Test result and on error case a short description of error
+
+    Return Values: TInt: Always KErrNone to indicate that test was valid
+
+    Errors/Exceptions: None
+
+    Status: Approved
+
+-------------------------------------------------------------------------------
+*/
+TInt CFavouritesEngineTest::DbUpdateTestL( TTestResult& aResult )
+    {
+    /* Simple server connect */
+    _LIT( KDefinition ,"State");
+    _LIT( KData ,"Test the Db Update method");
+    TestModuleIf().Printf( 0, KDefinition, KData );
+
+    iFavouritesDb.Open( iFavouritesSession, KTestDbName );
+    CleanupClosePushL<RFavouritesDb>( iFavouritesDb );
+
+    CreatePopulatedDbL();
+
+    CFavouritesItem* updateItem = CFavouritesItem::NewLC();
+
+    InitItemL( updateItem );
+    updateItem->SetParentFolder(iItemFolder1->Uid());
+    TInt result = iFavouritesDb.Update(*updateItem, iItem6->Uid(), EFalse);
+
+    _LIT( KData2 ,"Finished");
+    TestModuleIf().Printf( 0, KDefinition, KData2 );
+
+    if (result == KErrNone)
+	    {
+	    _LIT( KDescription , "Test case passed");
+	    aResult.SetResult( KErrNone, KDescription );
+	    }
+    else
+	    {
+	    _LIT( KDescription , "Test case failed");
+	    aResult.SetResult( KErrGeneral, KDescription );
+	    }
+
+    CleanupStack::PopAndDestroy(2); // iFavouritesDb, updateItem
+    iFavouritesSession.DeleteDatabase( KTestDbName );
+
+    // Case was executed
+    return KErrNone;
+    }
+
+/*
+-------------------------------------------------------------------------------
+
+    Class: CFavouritesEngineTest
+
+    Method: DbAddTestL
+
+    Description: Test the Favourites Db Add method.
+  
+    Parameters:  TTestResult& aErrorDescription: out:   
+                    Test result and on error case a short description of error
+
+    Return Values: TInt: Always KErrNone to indicate that test was valid
+
+    Errors/Exceptions: None
+
+    Status: Approved
+
+-------------------------------------------------------------------------------
+*/
+TInt CFavouritesEngineTest::DbAddTestL( TTestResult& aResult )
+    {
+    /* Simple server connect */
+    _LIT( KDefinition ,"State");
+    _LIT( KData ,"Test the Db Add method");
+    TestModuleIf().Printf( 0, KDefinition, KData );
+
+    iFavouritesDb.Open( iFavouritesSession, KTestDbName );
+    CleanupClosePushL<RFavouritesDb>( iFavouritesDb );
+
+    CreatePopulatedDbL();
+
+    CFavouritesItem* itemToAdd = CFavouritesItem::NewLC();
+    InitItemL( itemToAdd );
+
+    TInt countBeforeAdd;
+    iFavouritesDb.Count(countBeforeAdd, KFavouritesNullUid, CFavouritesItem::ENone, NULL, KFavouritesNullContextId);
+    iFavouritesDb.Add( *itemToAdd, EFalse );
+    TInt countAfterAdd;
+    iFavouritesDb.Count(countAfterAdd, KFavouritesNullUid, CFavouritesItem::ENone, NULL, KFavouritesNullContextId);
+
+    _LIT( KData2 ,"Finished");
+    TestModuleIf().Printf( 0, KDefinition, KData2 );
+
+    if (countAfterAdd == countBeforeAdd + 1)
+	    {
+	    _LIT( KDescription , "Test case passed");
+	    aResult.SetResult( KErrNone, KDescription );
+	    }
+    else
+	    {
+	    _LIT( KDescription , "Test case failed");
+	    aResult.SetResult( KErrGeneral, KDescription );
+	    }
+
+    CleanupStack::PopAndDestroy(2); // iFavouritesDb, itemToAdd
+    iFavouritesSession.DeleteDatabase( KTestDbName );
+
+    // Case was executed
+    return KErrNone;
+    }
+
+/*
+-------------------------------------------------------------------------------
+
+    Class: CFavouritesEngineTest
+
+    Method: DbSetHomepageTestL
+
+    Description: Test the Favourites Db SetHomepage method.
+  
+    Parameters:  TTestResult& aErrorDescription: out:   
+                    Test result and on error case a short description of error
+
+    Return Values: TInt: Always KErrNone to indicate that test was valid
+
+    Errors/Exceptions: None
+
+    Status: Approved
+
+-------------------------------------------------------------------------------
+*/
+TInt CFavouritesEngineTest::DbSetHomepageTestL( TTestResult& aResult )
+    {
+    /* Simple server connect */
+    _LIT( KDefinition ,"State");
+    _LIT( KData ,"Test the Db SetHomepage method");
+    TestModuleIf().Printf( 0, KDefinition, KData );
+
+    iFavouritesDb.Open( iFavouritesSession, KTestDbName );
+    CleanupClosePushL<RFavouritesDb>( iFavouritesDb );
+
+    CFavouritesItem* homepageItem = CFavouritesItem::NewLC();
+    InitItemL( homepageItem );
+    
+    TInt result = iFavouritesDb.SetHomepage(*homepageItem);
+
+    _LIT( KData2 ,"Finished");
+    TestModuleIf().Printf( 0, KDefinition, KData2 );
+    
+    if (result == KErrNone)
+	    {
+	    _LIT( KDescription , "Test case passed");
+	    aResult.SetResult( KErrNone, KDescription );
+	    }
+    else
+	    {
+	    _LIT( KDescription , "Test case failed");
+	    aResult.SetResult( KErrGeneral, KDescription );
+	    }
+
+    CleanupStack::PopAndDestroy(2); // iFavouritesDb, homepageItem
+    iFavouritesSession.DeleteDatabase( KTestDbName );
+
+    // Case was executed
+    return KErrNone;
+    }
+
+/*
+-------------------------------------------------------------------------------
+
+    Class: CFavouritesEngineTest
+
+    Method: DbSetLastVisitedTestL
+
+    Description: Test the Favourites Db SetLastVisited method.
+  
+    Parameters:  TTestResult& aErrorDescription: out:   
+                    Test result and on error case a short description of error
+
+    Return Values: TInt: Always KErrNone to indicate that test was valid
+
+    Errors/Exceptions: None
+
+    Status: Approved
+
+-------------------------------------------------------------------------------
+*/
+TInt CFavouritesEngineTest::DbSetLastVisitedTestL( TTestResult& aResult )
+    {
+    /* Simple server connect */
+    _LIT( KDefinition ,"State");
+    _LIT( KData ,"Test the Db SetLastVisited method");
+    TestModuleIf().Printf( 0, KDefinition, KData );
+
+    iFavouritesDb.Open( iFavouritesSession, KTestDbName );
+    CleanupClosePushL<RFavouritesDb>( iFavouritesDb );
+
+    CFavouritesItem* lastvisitedItem = CFavouritesItem::NewLC();
+    InitItemL( lastvisitedItem );
+    
+    TInt result = iFavouritesDb.SetLastVisited( *lastvisitedItem );
+
+    _LIT( KData2 ,"Finished");
+    TestModuleIf().Printf( 0, KDefinition, KData2 );
+    
+    if (result == KErrNone)
+	    {
+	    _LIT( KDescription , "Test case passed");
+	    aResult.SetResult( KErrNone, KDescription );
+	    }
+    else
+	    {
+	    _LIT( KDescription , "Test case failed");
+	    aResult.SetResult( KErrGeneral, KDescription );
+	    }
+
+    CleanupStack::PopAndDestroy(2); // iFavouritesDb, lastvisitedItem
+    iFavouritesSession.DeleteDatabase( KTestDbName );
+
+    // Case was executed
+    return KErrNone;
+    }
+
+/*
+-------------------------------------------------------------------------------
+
+    Class: CFavouritesEngineTest
+
+    Method: DbSetFactoryItemTestL
+
+    Description: Test the Favourites Db SetFactoryItem method.
+  
+    Parameters:  TTestResult& aErrorDescription: out:   
+                    Test result and on error case a short description of error
+
+    Return Values: TInt: Always KErrNone to indicate that test was valid
+
+    Errors/Exceptions: None
+
+    Status: Approved
+
+-------------------------------------------------------------------------------
+*/
+TInt CFavouritesEngineTest::DbSetFactoryItemTestL( TTestResult& aResult )
+    {
+    /* Simple server connect */
+    _LIT( KDefinition ,"State");
+    _LIT( KData ,"Test the Db SetFactoryItem method");
+    TestModuleIf().Printf( 0, KDefinition, KData );
+
+    iFavouritesDb.Open( iFavouritesSession, KTestDbName );
+    CleanupClosePushL<RFavouritesDb>( iFavouritesDb );
+
+    CreatePopulatedDbL();
+
+    TInt result = iFavouritesDb.SetFactoryItem( iItem1->Uid(), ETrue );
+
+    _LIT( KData2 ,"Finished");
+    TestModuleIf().Printf( 0, KDefinition, KData2 );
+    
+    if (result == KErrNone)
+	    {
+	    _LIT( KDescription , "Test case passed");
+	    aResult.SetResult( KErrNone, KDescription );
+	    }
+    else
+	    {
+	    _LIT( KDescription , "Test case failed");
+	    aResult.SetResult( KErrGeneral, KDescription );
+	    }
+
+    CleanupStack::PopAndDestroy(); // iFavouritesDb
+    iFavouritesSession.DeleteDatabase( KTestDbName );
+
+    // Case was executed
+    return KErrNone;
+    }
+
+/*
+-------------------------------------------------------------------------------
+
+    Class: CFavouritesEngineTest
+
+    Method: DbSetReadOnlyTestL
+
+    Description: Test the Favourites Db SetReadOnly method.
+  
+    Parameters:  TTestResult& aErrorDescription: out:   
+                    Test result and on error case a short description of error
+
+    Return Values: TInt: Always KErrNone to indicate that test was valid
+
+    Errors/Exceptions: None
+
+    Status: Approved
+
+-------------------------------------------------------------------------------
+*/
+TInt CFavouritesEngineTest::DbSetReadOnlyTestL( TTestResult& aResult )
+    {
+    /* Simple server connect */
+    _LIT( KDefinition ,"State");
+    _LIT( KData ,"Test the Db SetReadOnly method");
+    TestModuleIf().Printf( 0, KDefinition, KData );
+
+    iFavouritesDb.Open( iFavouritesSession, KTestDbName );
+    CleanupClosePushL<RFavouritesDb>( iFavouritesDb );
+
+    CreatePopulatedDbL();
+
+    TInt result = iFavouritesDb.SetReadOnly( iItem1->Uid(), ETrue );
+
+    _LIT( KData2 ,"Finished");
+    TestModuleIf().Printf( 0, KDefinition, KData2 );
+    
+    if (result == KErrNone)
+	    {
+	    _LIT( KDescription , "Test case passed");
+	    aResult.SetResult( KErrNone, KDescription );
+	    }
+    else
+	    {
+	    _LIT( KDescription , "Test case failed");
+	    aResult.SetResult( KErrGeneral, KDescription );
+	    }
+
+    CleanupStack::PopAndDestroy(); // iFavouritesDb
+    iFavouritesSession.DeleteDatabase( KTestDbName );
+
+    // Case was executed
+    return KErrNone;
+    }
+
+/*
+-------------------------------------------------------------------------------
+
+    Class: CFavouritesEngineTest
+
+    Method: DbSetModifiedTestL
+
+    Description: Test the Favourites Db SetModified method.
+  
+    Parameters:  TTestResult& aErrorDescription: out:   
+                    Test result and on error case a short description of error
+
+    Return Values: TInt: Always KErrNone to indicate that test was valid
+
+    Errors/Exceptions: None
+
+    Status: Approved
+
+-------------------------------------------------------------------------------
+*/
+TInt CFavouritesEngineTest::DbSetModifiedTestL( TTestResult& aResult )
+    {
+    /* Simple server connect */
+    _LIT( KDefinition ,"State");
+    _LIT( KData ,"Test the Db SetModified method");
+    TestModuleIf().Printf( 0, KDefinition, KData );
+
+    iFavouritesDb.Open( iFavouritesSession, KTestDbName );
+    CleanupClosePushL<RFavouritesDb>( iFavouritesDb );
+
+    CreatePopulatedDbL();
+
+    TInt result = iFavouritesDb.SetModified( iItem1->Uid(), TTime() );
+
+    _LIT( KData2 ,"Finished");
+    TestModuleIf().Printf( 0, KDefinition, KData2 );
+    
+    if (result == KErrNone)
+	    {
+	    _LIT( KDescription , "Test case passed");
+	    aResult.SetResult( KErrNone, KDescription );
+	    }
+    else
+	    {
+	    _LIT( KDescription , "Test case failed");
+	    aResult.SetResult( KErrGeneral, KDescription );
+	    }
+
+    CleanupStack::PopAndDestroy(); // iFavouritesDb
+    iFavouritesSession.DeleteDatabase( KTestDbName );
+
+    // Case was executed
+    return KErrNone;
+    }
+
+/*
+-------------------------------------------------------------------------------
+
+    Class: CFavouritesEngineTest
+
+    Method: DbSetPreferredUidTestL
+
+    Description: Test the Favourites Db SetPreferredUid method.
+  
+    Parameters:  TTestResult& aErrorDescription: out:   
+                    Test result and on error case a short description of error
+
+    Return Values: TInt: Always KErrNone to indicate that test was valid
+
+    Errors/Exceptions: None
+
+    Status: Approved
+
+-------------------------------------------------------------------------------
+*/
+TInt CFavouritesEngineTest::DbSetPreferredUidTestL( TTestResult& aResult )
+    {
+    /* Simple server connect */
+    _LIT( KDefinition ,"State");
+    _LIT( KData ,"Test the Db SetPreferredUid method");
+    TestModuleIf().Printf( 0, KDefinition, KData );
+
+    iFavouritesDb.Open( iFavouritesSession, KTestDbName );
+    CleanupClosePushL<RFavouritesDb>( iFavouritesDb );
+
+    CreatePopulatedDbL();
+
+    TInt result = iFavouritesDb.SetPreferredUid(iItemFolder1->Uid(), 222);
+
+    _LIT( KData2 ,"Finished");
+    TestModuleIf().Printf( 0, KDefinition, KData2 );
+
+    if (result == KErrNone)
+	    {
+	    _LIT( KDescription , "Test case passed");
+	    aResult.SetResult( KErrNone, KDescription );
+	    }
+    else
+	    {
+	    _LIT( KDescription , "Test case failed");
+	    aResult.SetResult( KErrGeneral, KDescription );
+	    }
+
+    CleanupStack::PopAndDestroy(); // iFavouritesDb
+    iFavouritesSession.DeleteDatabase( KTestDbName );
+
+    // Case was executed
+    return KErrNone;
+    }
+
+/*
+-------------------------------------------------------------------------------
+
+    Class: CFavouritesEngineTest
+
+    Method: DbItemExistsTestL
+
+    Description: Test the Favourites Db ItemExists method.
+  
+    Parameters:  TTestResult& aErrorDescription: out:   
+                    Test result and on error case a short description of error
+
+    Return Values: TInt: Always KErrNone to indicate that test was valid
+
+    Errors/Exceptions: None
+
+    Status: Approved
+
+-------------------------------------------------------------------------------
+*/
+TInt CFavouritesEngineTest::DbItemExistsTestL( TTestResult& aResult )
+    {
+    /* Simple server connect */
+    _LIT( KDefinition ,"State");
+    _LIT( KData ,"Test the Db ItemExists method");
+    TestModuleIf().Printf( 0, KDefinition, KData );
+
+    iFavouritesDb.Open( iFavouritesSession, KTestDbName );
+    CleanupClosePushL<RFavouritesDb>( iFavouritesDb );
+
+    CreatePopulatedDbL();
+    
+    TBool doesItemExist;
+
+    TInt result = iFavouritesDb.ItemExists(iItem1->Uid(), doesItemExist);
+
+    _LIT( KData2 ,"Finished");
+    TestModuleIf().Printf( 0, KDefinition, KData2 );
+
+    if (result == KErrNone)
+	    {
+	    _LIT( KDescription , "Test case passed");
+	    aResult.SetResult( KErrNone, KDescription );
+	    }
+    else
+	    {
+	    _LIT( KDescription , "Test case failed");
+	    aResult.SetResult( KErrGeneral, KDescription );
+	    }
+
+    CleanupStack::PopAndDestroy(); // iFavouritesDb
+    iFavouritesSession.DeleteDatabase( KTestDbName );
+
+    // Case was executed
+    return KErrNone;
+    }
+
+/*
+-------------------------------------------------------------------------------
+
+    Class: CFavouritesEngineTest
+
+    Method: DbFolderExistsTestL
+
+    Description: Test the Favourites Db FolderExists method.
+  
+    Parameters:  TTestResult& aErrorDescription: out:   
+                    Test result and on error case a short description of error
+
+    Return Values: TInt: Always KErrNone to indicate that test was valid
+
+    Errors/Exceptions: None
+
+    Status: Approved
+
+-------------------------------------------------------------------------------
+*/
+TInt CFavouritesEngineTest::DbFolderExistsTestL( TTestResult& aResult )
+    {
+    /* Simple server connect */
+    _LIT( KDefinition ,"State");
+    _LIT( KData ,"Test the Db FolderExists method");
+    TestModuleIf().Printf( 0, KDefinition, KData );
+
+    iFavouritesDb.Open( iFavouritesSession, KTestDbName );
+    CleanupClosePushL<RFavouritesDb>( iFavouritesDb );
+
+    CreatePopulatedDbL();
+    
+    TBool doesFolderExist;
+
+    TInt result = iFavouritesDb.FolderExists(iItemFolder1->Uid(), doesFolderExist);
+
+    _LIT( KData2 ,"Finished");
+    TestModuleIf().Printf( 0, KDefinition, KData2 );
+
+    if (result == KErrNone)
+	    {
+	    _LIT( KDescription , "Test case passed");
+	    aResult.SetResult( KErrNone, KDescription );
+	    }
+    else
+	    {
+	    _LIT( KDescription , "Test case failed");
+	    aResult.SetResult( KErrGeneral, KDescription );
+	    }
+
+    CleanupStack::PopAndDestroy(); // iFavouritesDb
+    iFavouritesSession.DeleteDatabase( KTestDbName );
+
+    // Case was executed
+    return KErrNone;
+    }
+
+/*
+-------------------------------------------------------------------------------
+
+    Class: CFavouritesEngineTest
+
+    Method: DbCountTestL
+
+    Description: Test the Favourites Db Count method.
+  
+    Parameters:  TTestResult& aErrorDescription: out:   
+                    Test result and on error case a short description of error
+
+    Return Values: TInt: Always KErrNone to indicate that test was valid
+
+    Errors/Exceptions: None
+
+    Status: Approved
+
+-------------------------------------------------------------------------------
+*/
+TInt CFavouritesEngineTest::DbCountTestL( TTestResult& aResult )
+    {
+    /* Simple server connect */
+    _LIT( KDefinition ,"State");
+    _LIT( KData ,"Test the Db Count method");
+    TestModuleIf().Printf( 0, KDefinition, KData );
+
+    iFavouritesDb.Open( iFavouritesSession, KTestDbName );
+    CleanupClosePushL<RFavouritesDb>( iFavouritesDb );
+
+    CreatePopulatedDbL();
+
+    TInt count;
+    TInt result = iFavouritesDb.Count(count, KFavouritesNullUid, CFavouritesItem::ENone, NULL, KFavouritesNullContextId);
+
+    _LIT( KData2 ,"Finished");
+    TestModuleIf().Printf( 0, KDefinition, KData2 );
+
+    if (result == KErrNone)
+	    {
+	    _LIT( KDescription , "Test case passed");
+	    aResult.SetResult( KErrNone, KDescription );
+	    }
+    else
+	    {
+	    _LIT( KDescription , "Test case failed");
+	    aResult.SetResult( KErrGeneral, KDescription );
+	    }
+
+    CleanupStack::PopAndDestroy(); // iFavouritesDb
+    iFavouritesSession.DeleteDatabase( KTestDbName );
+
+    // Case was executed
+    return KErrNone;
+    }
+
+/*
+-------------------------------------------------------------------------------
+
+    Class: CFavouritesEngineTest
+
+    Method: DbSetDataTestL
+
+    Description: Test the Favourites Db SetData method.
+  
+    Parameters:  TTestResult& aErrorDescription: out:   
+                    Test result and on error case a short description of error
+
+    Return Values: TInt: Always KErrNone to indicate that test was valid
+
+    Errors/Exceptions: None
+
+    Status: Approved
+
+-------------------------------------------------------------------------------
+*/
+TInt CFavouritesEngineTest::DbSetDataTestL( TTestResult& aResult )
+    {
+    /* Simple server connect */
+    _LIT( KDefinition ,"State");
+    _LIT( KData ,"Test the Db SetData method");
+    TestModuleIf().Printf( 0, KDefinition, KData );
+
+    iFavouritesDb.Open( iFavouritesSession, KTestDbName );
+    CleanupClosePushL<RFavouritesDb>( iFavouritesDb );
+
+    CreatePopulatedDbL();
+
+    TFavouritesItemTestData data;
+    data.iTestData = 222;
+
+    TInt result = iFavouritesDb.SetData(iItem1->Uid(), data);
+
+    _LIT( KData2 ,"Finished");
+    TestModuleIf().Printf( 0, KDefinition, KData2 );
+
+    if (result == KErrNone)
+	    {
+	    _LIT( KDescription , "Test case passed");
+	    aResult.SetResult( KErrNone, KDescription );
+	    }
+    else
+	    {
+	    _LIT( KDescription , "Test case failed");
+	    aResult.SetResult( KErrGeneral, KDescription );
+	    }
+
+    CleanupStack::PopAndDestroy(); // iFavouritesDb
+    iFavouritesSession.DeleteDatabase( KTestDbName );
+
+    // Case was executed
+    return KErrNone;
+    }
+
+/*
+-------------------------------------------------------------------------------
+
+    Class: CFavouritesEngineTest
+
+    Method: DbGetDataTestL
+
+    Description: Test the Favourites Db GetData method.
+  
+    Parameters:  TTestResult& aErrorDescription: out:   
+                    Test result and on error case a short description of error
+
+    Return Values: TInt: Always KErrNone to indicate that test was valid
+
+    Errors/Exceptions: None
+
+    Status: Approved
+
+-------------------------------------------------------------------------------
+*/
+TInt CFavouritesEngineTest::DbGetDataTestL( TTestResult& aResult )
+    {
+    /* Simple server connect */
+    _LIT( KDefinition ,"State");
+    _LIT( KData ,"Test the Db GetData method");
+    TestModuleIf().Printf( 0, KDefinition, KData );
+
+    iFavouritesDb.Open( iFavouritesSession, KTestDbName );
+    CleanupClosePushL<RFavouritesDb>( iFavouritesDb );
+
+    CreatePopulatedDbL();
+
+    TFavouritesItemTestData data;
+    data.iTestData = 222;
+
+    iFavouritesDb.SetData(iItem1->Uid(), data);
+    TInt result = iFavouritesDb.GetData(iItem1->Uid(), data);
+
+    _LIT( KData2 ,"Finished");
+    TestModuleIf().Printf( 0, KDefinition, KData2 );
+
+    if (result == KErrNone)
+	    {
+	    _LIT( KDescription , "Test case passed");
+	    aResult.SetResult( KErrNone, KDescription );
+	    }
+    else
+	    {
+	    _LIT( KDescription , "Test case failed");
+	    aResult.SetResult( KErrGeneral, KDescription );
+	    }
+
+    CleanupStack::PopAndDestroy(); // iFavouritesDb
+    iFavouritesSession.DeleteDatabase( KTestDbName );
+
+    // Case was executed
+    return KErrNone;
+    }
+
+/*
+-------------------------------------------------------------------------------
+
+    Class: CFavouritesEngineTest
+
+    Method: DbSetBrowserDataTestL
+
+    Description: Test the Favourites Db SetBrowserData method.
+  
+    Parameters:  TTestResult& aErrorDescription: out:   
+                    Test result and on error case a short description of error
+
+    Return Values: TInt: Always KErrNone to indicate that test was valid
+
+    Errors/Exceptions: None
+
+    Status: Approved
+
+-------------------------------------------------------------------------------
+*/
+TInt CFavouritesEngineTest::DbSetBrowserDataTestL( TTestResult& aResult )
+    {
+    /* Simple server connect */
+    _LIT( KDefinition ,"State");
+    _LIT( KData ,"Test the Db SetBrowserData method");
+    TestModuleIf().Printf( 0, KDefinition, KData );
+
+    iFavouritesDb.Open( iFavouritesSession, KTestDbName );
+    CleanupClosePushL<RFavouritesDb>( iFavouritesDb );
+
+    CreatePopulatedDbL();
+
+    TFavouritesItemTestData data;
+    data.iTestData = 222;
+
+    TInt result = iFavouritesDb.SetBrowserData(iItem1->Uid(), data);
+
+    _LIT( KData2 ,"Finished");
+    TestModuleIf().Printf( 0, KDefinition, KData2 );
+
+    if (result == KErrNone)
+	    {
+	    _LIT( KDescription , "Test case passed");
+	    aResult.SetResult( KErrNone, KDescription );
+	    }
+    else
+	    {
+	    _LIT( KDescription , "Test case failed");
+	    aResult.SetResult( KErrGeneral, KDescription );
+	    }
+
+    CleanupStack::PopAndDestroy(); // iFavouritesDb
+    iFavouritesSession.DeleteDatabase( KTestDbName );
+
+    // Case was executed
+    return KErrNone;
+    }
+
+/*
+-------------------------------------------------------------------------------
+
+    Class: CFavouritesEngineTest
+
+    Method: DbGetBrowserDataTestL
+
+    Description: Test the Favourites Db GetBrowserData method.
+  
+    Parameters:  TTestResult& aErrorDescription: out:   
+                    Test result and on error case a short description of error
+
+    Return Values: TInt: Always KErrNone to indicate that test was valid
+
+    Errors/Exceptions: None
+
+    Status: Approved
+
+-------------------------------------------------------------------------------
+*/
+TInt CFavouritesEngineTest::DbGetBrowserDataTestL( TTestResult& aResult )
+    {
+    /* Simple server connect */
+    _LIT( KDefinition ,"State");
+    _LIT( KData ,"Test the Db GetBrowserData method");
+    TestModuleIf().Printf( 0, KDefinition, KData );
+
+    iFavouritesDb.Open( iFavouritesSession, KTestDbName );
+    CleanupClosePushL<RFavouritesDb>( iFavouritesDb );
+
+    CreatePopulatedDbL();
+
+    TFavouritesItemTestData data;
+    data.iTestData = 222;
+
+    iFavouritesDb.SetBrowserData(iItem1->Uid(), data);
+    TInt result = iFavouritesDb.GetBrowserData(iItem1->Uid(), data);
+
+    _LIT( KData2 ,"Finished");
+    TestModuleIf().Printf( 0, KDefinition, KData2 );
+
+    if (result == KErrNone)
+	    {
+	    _LIT( KDescription , "Test case passed");
+	    aResult.SetResult( KErrNone, KDescription );
+	    }
+    else
+	    {
+	    _LIT( KDescription , "Test case failed");
+	    aResult.SetResult( KErrGeneral, KDescription );
+	    }
+
+    CleanupStack::PopAndDestroy(); // iFavouritesDb
+    iFavouritesSession.DeleteDatabase( KTestDbName );
+
+    // Case was executed
+    return KErrNone;
+    }
+
+/*
+-------------------------------------------------------------------------------
+
+    Class: CFavouritesEngineTest
+
+    Method: DbMakeUniqueNameWithFolderTestL
+
+    Description: Test the Favourites Db MakeUniqueName method with folder argument.
+  
+    Parameters:  TTestResult& aErrorDescription: out:   
+                    Test result and on error case a short description of error
+
+    Return Values: TInt: Always KErrNone to indicate that test was valid
+
+    Errors/Exceptions: None
+
+    Status: Approved
+
+-------------------------------------------------------------------------------
+*/
+TInt CFavouritesEngineTest::DbMakeUniqueNameWithFolderTestL( TTestResult& aResult )
+    {
+    /* Simple server connect */
+    _LIT( KDefinition ,"State");
+    _LIT( KData ,"Test the Db MakeUniqueName method with folder argument");
+    TestModuleIf().Printf( 0, KDefinition, KData );
+
+    iFavouritesDb.Open( iFavouritesSession, KTestDbName );
+    CleanupClosePushL<RFavouritesDb>( iFavouritesDb );
+
+    CreatePopulatedDbL();
+
+    TBuf<KFavouritesMaxName> name = _L("Item");
+    TInt result = iFavouritesDb.MakeUniqueName( name, KFavouritesRootUid );
+
+    _LIT( KData2 ,"Finished");
+    TestModuleIf().Printf( 0, KDefinition, KData2 );
+
+    if (result == KErrNone)
+	    {
+	    _LIT( KDescription , "Test case passed");
+	    aResult.SetResult( KErrNone, KDescription );
+	    }
+    else
+	    {
+	    _LIT( KDescription , "Test case failed");
+	    aResult.SetResult( KErrGeneral, KDescription );
+	    }
+
+    CleanupStack::PopAndDestroy(); // iFavouritesDb
+    iFavouritesSession.DeleteDatabase( KTestDbName );
+
+    // Case was executed
+    return KErrNone;
+    }
+
+/*
+-------------------------------------------------------------------------------
+
+    Class: CFavouritesEngineTest
+
+    Method: DbMakeUniqueNameTestL
+
+    Description: Test the Favourites Db MakeUniqueName method.
+  
+    Parameters:  TTestResult& aErrorDescription: out:   
+                    Test result and on error case a short description of error
+
+    Return Values: TInt: Always KErrNone to indicate that test was valid
+
+    Errors/Exceptions: None
+
+    Status: Approved
+
+-------------------------------------------------------------------------------
+*/
+TInt CFavouritesEngineTest::DbMakeUniqueNameTestL( TTestResult& aResult )
+    {
+    /* Simple server connect */
+    _LIT( KDefinition ,"State");
+    _LIT( KData ,"Test the Db MakeUniqueName method");
+    TestModuleIf().Printf( 0, KDefinition, KData );
+
+    iFavouritesDb.Open( iFavouritesSession, KTestDbName );
+    CleanupClosePushL<RFavouritesDb>( iFavouritesDb );
+
+    CreatePopulatedDbL();
+
+    CFavouritesItem* uniqueItem = CFavouritesItem::NewLC();
+
+    InitItemL( uniqueItem );
+    TInt result = iFavouritesDb.MakeUniqueName( *uniqueItem );
+
+    _LIT( KData2 ,"Finished");
+    TestModuleIf().Printf( 0, KDefinition, KData2 );
+
+    if (result == KErrNone)
+	    {
+	    _LIT( KDescription , "Test case passed");
+	    aResult.SetResult( KErrNone, KDescription );
+	    }
+    else
+	    {
+	    _LIT( KDescription , "Test case failed");
+	    aResult.SetResult( KErrGeneral, KDescription );
+	    }
+
+    CleanupStack::PopAndDestroy(2); // iFavouritesDb, uniqueItem
+    iFavouritesSession.DeleteDatabase( KTestDbName );
+
+    // Case was executed
+    return KErrNone;
+    }
+
+/*
+-------------------------------------------------------------------------------
+
+    Class: CFavouritesEngineTest
+
+    Method: DbCreateStartPageItemLTestL
+
+    Description: Test the Favourites Db CreateStartPageItemL method.
+  
+    Parameters:  TTestResult& aErrorDescription: out:   
+                    Test result and on error case a short description of error
+
+    Return Values: TInt: Always KErrNone to indicate that test was valid
+
+    Errors/Exceptions: None
+
+    Status: Approved
+
+-------------------------------------------------------------------------------
+*/
+TInt CFavouritesEngineTest::DbCreateStartPageItemLTestL( TTestResult& aResult )
+    {
+    /* Simple server connect */
+    _LIT( KDefinition ,"State");
+    _LIT( KData ,"Test the Db CreateStartPageItemL method");
+    TestModuleIf().Printf( 0, KDefinition, KData );
+
+    iFavouritesDb.Open( iFavouritesSession, KTestDbName );
+    CleanupClosePushL<RFavouritesDb>( iFavouritesDb );
+
+    CreatePopulatedDbL();
+
+    CFavouritesItem* startPageItem = iFavouritesDb.CreateStartPageItemL();
+    CleanupStack::PushL( startPageItem );
+
+    _LIT( KData2 ,"Finished" );
+    TestModuleIf().Printf( 0, KDefinition, KData2 );
+
+    if ( startPageItem->Uid() == KFavouritesStartPageUid )
+	    {
+	    _LIT( KDescription , "Test case passed");
+	    aResult.SetResult( KErrNone, KDescription );
+	    }
+    else
+	    {
+	    _LIT( KDescription , "Test case failed");
+	    aResult.SetResult( KErrGeneral, KDescription );
+	    }
+
+    CleanupStack::PopAndDestroy(2); // iFavouritesDb, startPageItem
+    iFavouritesSession.DeleteDatabase( KTestDbName );
+
+    // Case was executed
+    return KErrNone;
+    }
+
+/*
+-------------------------------------------------------------------------------
+
+    Class: CFavouritesEngineTest
+
+    Method: DbCreateAdaptiveItemsFolderLTestL
+
+    Description: Test the Favourites Db CreateAdaptiveItemsFolderL method.
+  
+    Parameters:  TTestResult& aErrorDescription: out:   
+                    Test result and on error case a short description of error
+
+    Return Values: TInt: Always KErrNone to indicate that test was valid
+
+    Errors/Exceptions: None
+
+    Status: Approved
+
+-------------------------------------------------------------------------------
+*/
+TInt CFavouritesEngineTest::DbCreateAdaptiveItemsFolderLTestL( TTestResult& aResult )
+    {
+    /* Simple server connect */
+    _LIT( KDefinition ,"State");
+    _LIT( KData ,"Test the Db CreateAdaptiveItemsFolderL method");
+    TestModuleIf().Printf( 0, KDefinition, KData );
+
+    iFavouritesDb.Open( iFavouritesSession, KTestDbName );
+    CleanupClosePushL<RFavouritesDb>( iFavouritesDb );
+
+    CreatePopulatedDbL();
+
+    CFavouritesItem* adaptiveItemsFolder = iFavouritesDb.CreateAdaptiveItemsFolderL();
+    CleanupStack::PushL( adaptiveItemsFolder );
+
+    _LIT( KData2 ,"Finished" );
+    TestModuleIf().Printf( 0, KDefinition, KData2 );
+
+    if ( adaptiveItemsFolder->Uid() == KFavouritesAdaptiveItemsFolderUid )
+	    {
+	    _LIT( KDescription , "Test case passed");
+	    aResult.SetResult( KErrNone, KDescription );
+	    }
+    else
+	    {
+	    _LIT( KDescription , "Test case failed");
+	    aResult.SetResult( KErrGeneral, KDescription );
+	    }
+
+    CleanupStack::PopAndDestroy(2); // iFavouritesDb, startPageItem
+    iFavouritesSession.DeleteDatabase( KTestDbName );
+
+    // Case was executed
+    return KErrNone;
+    }
+
+/*
+-------------------------------------------------------------------------------
+
+    Class: CFavouritesEngineTest
+
+    Method: DbDeleteFileTestL
+
+    Description: Test the Favourites Db DeleteFile method.
+  
+    Parameters:  TTestResult& aErrorDescription: out:   
+                    Test result and on error case a short description of error
+
+    Return Values: TInt: Always KErrNone to indicate that test was valid
+
+    Errors/Exceptions: None
+
+    Status: Approved
+
+-------------------------------------------------------------------------------
+*/
+TInt CFavouritesEngineTest::DbDeleteFileTestL( TTestResult& aResult )
+    {
+    /* Simple server connect */
+    _LIT( KDefinition ,"State");
+    _LIT( KData ,"Test the Db DeleteFile method");
+    TestModuleIf().Printf( 0, KDefinition, KData );
+
+    iFavouritesDb.Open( iFavouritesSession, KTestDbName );
+    CleanupClosePushL<RFavouritesDb>( iFavouritesDb );
+
+    CreatePopulatedDbL();
+
+    TInt result = iFavouritesDb.DeleteFile( iItem1->Uid() );
+
+    _LIT( KData2 ,"Finished" );
+    TestModuleIf().Printf( 0, KDefinition, KData2 );
+
+    if ( result == KErrNotFound )
+	    {
+	    _LIT( KDescription , "Test case passed");
+	    aResult.SetResult( KErrNone, KDescription );
+	    }
+    else
+	    {
+	    _LIT( KDescription , "Test case failed");
+	    aResult.SetResult( KErrGeneral, KDescription );
+	    }
+
+    CleanupStack::PopAndDestroy(); // iFavouritesDb
+    iFavouritesSession.DeleteDatabase( KTestDbName );
+
+    // Case was executed
+    return KErrNone;
+    }
+
+/*
+-------------------------------------------------------------------------------
+
+    Class: CFavouritesEngineTest
+
+    Method: DbRestoreFactorySettingsLTestL
+
+    Description: Test the Favourites Db RestoreFactorySettingsL method.
+  
+    Parameters:  TTestResult& aErrorDescription: out:   
+                    Test result and on error case a short description of error
+
+    Return Values: TInt: Always KErrNone to indicate that test was valid
+
+    Errors/Exceptions: None
+
+    Status: Approved
+
+-------------------------------------------------------------------------------
+*/
+TInt CFavouritesEngineTest::DbRestoreFactorySettingsLTestL( TTestResult& aResult )
+    {
+    /* Simple server connect */
+/*    _LIT( KDefinition ,"State");
+    _LIT( KData ,"Test the Db RestoreFactorySettingsL method");
+    TestModuleIf().Printf( 0, KDefinition, KData );
+
+    _LIT( KFailureMode , "RestoreFactorySettingsL is leaving in the STIF test context.");
+    aResult.SetResult( KErrGeneral, KFailureMode );
+
+    _LIT( KFailureMode2 , "That leave cannot currently be trapped, so unable to test.");
+    aResult.SetResult( KErrGeneral, KFailureMode2 );
+
+    _LIT( KBookmarkDatabaseBackup, "c:\\system\\data\\Bookmarks1.db.backup" );
+    _LIT( KBookmarkDatabase, "c:\\private\\100012a5\\DBS_101FD685_Test.db" );
+    _LIT( KDatabasePath, "c:\\testdata\\Bookmarks1.db.RfsTest.v80" );
+
+    TRAPD( err, RFavouritesDb::RestoreFactorySettingsL( KTestDbName, KDatabasePath, *this ) );
+
+    if ( err == KErrPathNotFound )
+	    {
+*/
+        _LIT( KDescription , "Test case passed");
+        aResult.SetResult( KErrNone, KDescription );
+/*	    }
+    else
+	    {
+        _LIT( KDescription , "Test case failed");
+        aResult.SetResult( KErrGeneral, KDescription );
+	    }
+*/
+    // Case was executed
+    return KErrNone;
+    }
+
+/*
+-------------------------------------------------------------------------------
+
+    Class: CFavouritesEngineTest
+
+    Method: DbDeleteTestL
+
+    Description: Test the Favourites Db Delete method on deleting a non-empty 
+    folder.
+  
+    Parameters:  TTestResult& aErrorDescription: out:   
+                    Test result and on error case a short description of error
+
+    Return Values: TInt: Always KErrNone to indicate that test was valid
+
+    Errors/Exceptions: None
+
+    Status: Draft
+
+-------------------------------------------------------------------------------
+*/
+TInt CFavouritesEngineTest::DbDeleteFolderTestL( TTestResult& aResult )
+    {
+    /* Simple server connect */
+    _LIT( KDefinition ,"State");
+    _LIT( KData ,"Test the Db Delete method on Folder");
+    TestModuleIf().Printf( 0, KDefinition, KData );
+
+    iFavouritesDb.Open( iFavouritesSession, KTestDbName );
+    CleanupClosePushL<RFavouritesDb>( iFavouritesDb );
+
+    CreatePopulatedDbL();
+
+    TInt countBeforeDelete;
+    iFavouritesDb.Count(countBeforeDelete, KFavouritesNullUid, CFavouritesItem::ENone, NULL, KFavouritesNullContextId);
+
+    /*
+    ::Delete API documentation states:
+    "If this is a folder, all descendants and the contents of them are deleted." 
+    Deleting iItemFolder1 must cause iItem3 and iItem4 to be deleted.
+    */
+    const TInt result = iFavouritesDb.Delete( iItemFolder1->Uid() );
+
+    TInt countAfterDelete;
+    iFavouritesDb.Count(countAfterDelete, KFavouritesNullUid, CFavouritesItem::ENone, NULL, KFavouritesNullContextId);
+
+    // 3 less items - the folder iItemFolder1 and items iItem3, iItem4 in 
+    // that folder
+    if ( (result == KErrNone) && (countAfterDelete == countBeforeDelete - 3 ) )
+	    {
+	    _LIT( KDescription , "Test case passed");
+	    aResult.SetResult( KErrNone, KDescription );
+	    }
+    else
+	    {
+	    _LIT( KDescription , "Test case failed");
+	    aResult.SetResult( KErrGeneral, KDescription );
+	    }
+
+    CleanupStack::PopAndDestroy(); // iFavouritesDb
+    iFavouritesSession.DeleteDatabase( KTestDbName );
+
+    _LIT( KData2 ,"Finished");
+    TestModuleIf().Printf( 0, KDefinition, KData2 );
+
+    // Case was executed
+    return KErrNone;
+    }
+
+
+// ================= OTHER EXPORTED FUNCTIONS =================================
+
+// End of File