uiservicetab/vimpststorage/tsrc/vimpststorage_ut/cvimpststoragecontactlist_ut/src/CVIMPSTStorageContactList_UTBlocks.cpp
branchRCL_3
changeset 29 9a48e301e94b
parent 0 5e5d6b214f4f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/uiservicetab/vimpststorage/tsrc/vimpststorage_ut/cvimpststoragecontactlist_ut/src/CVIMPSTStorageContactList_UTBlocks.cpp	Wed Sep 01 12:33:36 2010 +0100
@@ -0,0 +1,882 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+* 
+* Description: This file contains testclass implementation.
+*
+*/
+
+// [INCLUDE FILES] - do not remove
+#include <e32svr.h>
+#include <e32base.h>
+#include <StifParser.h>
+#include <StifTestInterface.h>
+#include "CVIMPSTStorageContactList_UT.h"
+#include "vimpststorageutils.h"
+#include "vimpstdebugassert.h"
+#include "vimpststorageutils.h"
+#include "tvimpststoragepanics.h"
+#include "cvimpststoragecontact.h"
+
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CCVIMPSTStorageContactList_UT::Delete
+// Delete here all resources allocated and opened from test methods. 
+// Called from destructor. 
+// -----------------------------------------------------------------------------
+//
+void CCVIMPSTStorageContactList_UT::Delete() 
+    {
+
+    }
+
+// -----------------------------------------------------------------------------
+// CCVIMPSTStorageContactList_UT::RunMethodL
+// Run specified method. Contains also table of test mothods and their names.
+// -----------------------------------------------------------------------------
+//
+TInt CCVIMPSTStorageContactList_UT::RunMethodL( 
+    CStifItemParser& aItem ) 
+    {
+
+    static TStifFunctionInfo const KFunctions[] =
+        {  
+        // 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( "Test_NewL", CCVIMPSTStorageContactList_UT::Test_NewL ),
+        ENTRY( "Test_ListId", CCVIMPSTStorageContactList_UT::Test_ListId ),
+        ENTRY( "Test_DisplayName", CCVIMPSTStorageContactList_UT::Test_DisplayName ),
+        ENTRY( "Test_AddContactToList", CCVIMPSTStorageContactList_UT::Test_AddContactToList ),
+        ENTRY( "Test_RemoveContactFromList", CCVIMPSTStorageContactList_UT::Test_RemoveContactFromList ),
+        ENTRY( "Test_Count", CCVIMPSTStorageContactList_UT::Test_Count ),
+        ENTRY( "Test_FilteredContact", CCVIMPSTStorageContactList_UT::Test_FilteredContact ),
+        ENTRY( "Test_FilterAllowsContact", CCVIMPSTStorageContactList_UT::Test_FilterAllowsContact ),
+        ENTRY( "Test_FilteredCount", CCVIMPSTStorageContactList_UT::Test_FilteredCount ),
+        ENTRY( "Test_FindIndexOfContact", CCVIMPSTStorageContactList_UT::Test_FindIndexOfContact ),
+        
+        //ADD NEW ENTRY HERE
+        // [test cases entries] - Do not remove
+
+        };
+
+    const TInt count = sizeof( KFunctions ) / 
+                        sizeof( TStifFunctionInfo );
+
+    return RunInternalL( KFunctions, count, aItem );
+
+    }
+//-----------------------------------------------------------------
+// CCVIMPSTStorageContactList_UT::Test_NewL
+// Function to test the NewL function of StorageContactList.
+//-----------------------------------------------------------------
+//
+TInt CCVIMPSTStorageContactList_UT::Test_NewL( CStifItemParser& aItem )
+    {
+    
+    TInt result = KErrGeneral;
+    
+    TPtrC listId;
+    TPtrC displayName;
+    
+    aItem.GetNextString( listId );
+    if( listId.Compare( _L("null") ) == 0 )
+        {
+        listId.Set( KNullDesC );
+        }
+    
+    aItem.GetNextString( displayName );
+    if( displayName.Compare( _L("null") ) == 0 )
+        {
+        displayName.Set( KNullDesC );
+        }
+
+    CVIMPSTStorageContactSorter* sorter = CVIMPSTStorageContactSorter::NewL(); 
+    
+    CVIMPSTStorageContactList* contactList = 
+            CVIMPSTStorageContactList::NewL( *sorter, listId, displayName );
+    
+    if( contactList )
+        {
+        result = KErrNone;
+        delete contactList;
+        }
+    
+    return result;
+    
+    }
+
+// ----------------------------------------------------------
+// CCVIMPSTStorageContactList_UT::Test_ListId
+// Function to test the ListId function of StorageContactList.
+// -----------------------------------------------------------
+//
+TInt CCVIMPSTStorageContactList_UT::Test_ListId( CStifItemParser& aItem )
+    {
+    TInt result = KErrGeneral;
+    
+    TPtrC listId;
+    TPtrC displayName;
+    
+    aItem.GetNextString( listId );
+    if( listId.Compare( _L("null") ) == 0 )
+        {
+        listId.Set( KNullDesC );
+        }
+    
+    displayName.Set( KNullDesC );
+
+    CVIMPSTStorageContactSorter* sorter = CVIMPSTStorageContactSorter::NewL(); 
+    
+    CVIMPSTStorageContactList* contactList = 
+            CVIMPSTStorageContactList::NewL( *sorter, listId, displayName );
+
+    TPtrC resultListId;
+    resultListId.Set(contactList->ListId());
+    
+    if( listId.Compare( resultListId ) == 0 )
+        {
+        result = KErrNone;
+        }
+    
+    if( contactList )
+        delete contactList;
+    
+    return result;
+    
+    }
+
+// ----------------------------------------------------------
+// CCVIMPSTStorageContactList_UT::Test_DisplayName
+// Function to test the ListId function of StorageContactList.
+// -----------------------------------------------------------
+//
+TInt CCVIMPSTStorageContactList_UT::Test_DisplayName( CStifItemParser& aItem )
+    {
+    TInt result = KErrGeneral;
+    
+    TPtrC listId;
+    TPtrC displayName;
+    
+    aItem.GetNextString( displayName );
+    if( displayName.Compare( _L("null") ) == 0 )
+        {
+        displayName.Set( KNullDesC );
+        }
+    aItem.GetNextString( listId );
+    if( listId.Compare( _L("null") ) == 0 )
+        {
+        listId.Set( KNullDesC );
+        }
+    CVIMPSTStorageContactSorter* sorter = CVIMPSTStorageContactSorter::NewL(); 
+    
+    CVIMPSTStorageContactList* contactList = 
+            CVIMPSTStorageContactList::NewL( *sorter, listId, displayName );
+
+    TPtrC resultDisplayName;
+    resultDisplayName.Set(contactList->DisplayName() );
+    
+    if( displayName.Compare( resultDisplayName ) == 0 )
+        {
+        result = KErrNone;
+        }
+    
+    if( contactList )
+        delete contactList;
+    
+    return result;
+    
+    }
+
+// ----------------------------------------------------------
+// CCVIMPSTStorageContactList_UT::Test_AddContactToList
+// Function to test the AddStorageContactToCacheL function of StorageContactList.
+// -----------------------------------------------------------
+//
+
+TInt CCVIMPSTStorageContactList_UT::Test_AddContactToList( CStifItemParser& aItem )
+    {
+    TInt result = KErrNotFound;
+    
+    TInt flag;
+    
+    aItem.GetNextInt( flag );
+    
+    CVIMPSTStorageContact* contact = NULL;
+    
+    //TVIMPSTEnums::TOnlineStatus status;
+    TBuf<64> userId;
+    TBuf<64> displayName;
+    
+    TBuf<64> listId;
+    
+    
+    userId.Copy( _L("jbl@nokia.com") );
+    displayName.Copy( _L("Jabber Limited") );
+    listId.Copy( _L("mycontacts") );
+    
+    CVIMPSTStorageContactSorter* sorter = CVIMPSTStorageContactSorter::NewL();
+    
+    displayName.Copy( _L("my list") );
+    CVIMPSTStorageContactList* list = CVIMPSTStorageContactList::NewL( *sorter, listId, displayName );
+    
+    TInt index = 0; // first element.
+    TInt err = 0; // no error
+    switch( flag )
+        {
+        case 1:
+            {
+            // this case tests addition of a normal contact to
+            // the contactlist.
+            contact = CVIMPSTStorageContact::NewL( userId, displayName );
+            err = list->AddStorageContactToCacheL( contact, index );
+            
+            if( 0 == err )
+                result = KErrNone;
+            
+            break;
+            }
+        case 2:
+            {
+            // this case tests addition of a null contact to the
+            // contactlist.
+            err = list->AddStorageContactToCacheL( contact, index );
+            
+            if( KErrArgument == err )
+                result = KErrNone;
+            
+            break;
+            }
+        case 3:
+            {
+            // this case tests addition of a contact by passing 
+            // positive index.
+            contact = CVIMPSTStorageContact::NewL( userId, displayName );
+            index = 2;
+            
+            err = list->AddStorageContactToCacheL( contact, index );
+            
+            if( 0 == err )
+                result = KErrNone;
+            
+            break;
+            }
+        case 4:
+            {
+            // this case tests addition of a contact by passing negative
+            // index.
+            contact = CVIMPSTStorageContact::NewL( userId, displayName );
+            index = -2;
+            
+            err = list->AddStorageContactToCacheL( contact, index );
+            
+            if( 0 == err )
+                result = KErrNone;
+
+            break;
+            }
+        case 5:
+            {
+            // this case tests addition of a contact by passing zero
+            // index.
+            contact = CVIMPSTStorageContact::NewL( userId, displayName );
+            index = 0;
+            
+            err = list->AddStorageContactToCacheL( contact, index );
+            
+            if( 0 == err )
+                result = KErrNone;
+
+            break;
+            }
+        case 6:
+            {
+            // This case adds same contact twice. 
+            contact = CVIMPSTStorageContact::NewL( userId, displayName );
+            list->AddStorageContactToCacheL( contact, index );
+            
+            index++;
+            
+            contact = CVIMPSTStorageContact::NewL( userId, displayName );
+            err = list->AddStorageContactToCacheL( contact, index );
+
+            if( KErrAlreadyExists == err )
+                result = KErrNone;
+            
+            break;
+            }
+        case 7:
+            {
+            
+            TInt err1, err2, err3;
+            
+            contact = CVIMPSTStorageContact::NewL( userId, displayName );
+            err1 = list->AddStorageContactToCacheL( contact, index );
+
+            userId.Copy( _L("bose@nokia.com") );
+            displayName.Copy( _L("Boss") );
+            contact = CVIMPSTStorageContact::NewL( userId, displayName );
+            err2 = list->AddStorageContactToCacheL( contact, index );
+
+            userId.Copy( _L("logitect@nokia.com") );
+            displayName.Copy( _L("Logis") );
+            contact = CVIMPSTStorageContact::NewL( userId, displayName );
+            err3 = list->AddStorageContactToCacheL( contact, index );
+
+            if( !err1 && !err2 && !err3)
+                result = KErrNone;
+            
+            break;
+            }
+            
+        }
+    return result;
+    
+    }
+
+// ----------------------------------------------------------
+// CCVIMPSTStorageContactList_UT::Test_RemoveContactFromList
+// Function to test the RemoveContactFromList function of StorageContactList.
+// -----------------------------------------------------------
+//
+
+TInt CCVIMPSTStorageContactList_UT::Test_RemoveContactFromList( CStifItemParser& aItem )
+    {
+    TInt result = KErrGeneral;
+    
+    /* Currently no test cases related to this function
+     * because we phonebook is stubbed and contactlink 
+     * is always returned as null.
+     * Once corrected, test cases can be written.
+     */
+    
+    return result;
+    }
+// -----------------------------------------------------------------------------
+//
+TInt CCVIMPSTStorageContactList_UT::Test_Count( CStifItemParser& aItem )
+    {
+    
+    TInt result = KErrGeneral;
+    
+    TInt flag;
+    
+    aItem.GetNextInt( flag );
+    
+    TBuf<64> userId;
+    TBuf<64> listId;
+    TBuf<64> displayName;
+    CVIMPSTStorageContact* contact = NULL;
+    CVIMPSTStorageContactSorter* sorter = CVIMPSTStorageContactSorter::NewL();
+    listId.Copy( _L("mycontacts") );
+    displayName.Copy( _L("my list") );
+    CVIMPSTStorageContactList* list = CVIMPSTStorageContactList::NewL( *sorter, listId, displayName );
+
+    TInt count = 0; // contacts count
+    TInt index = 0;
+    
+    switch( flag )
+        {
+        case 1:
+            {
+            userId.Copy( _L("logitect@nokia.com") );
+            displayName.Copy( _L("Logis") );
+            contact = CVIMPSTStorageContact::NewL( userId, displayName );
+            if( !list->AddStorageContactToCacheL( contact, index ) )
+                {
+                count++;
+                }
+            
+            userId.Copy( _L("bose@nokia.com") );
+            displayName.Copy( _L("Boss") );
+            contact = CVIMPSTStorageContact::NewL( userId, displayName );
+            if( !list->AddStorageContactToCacheL( contact, index ) )
+                {
+                count++;
+                }
+
+            // adding same contact, won't be added to list.
+            userId.Copy( _L("logitect@nokia.com") );
+            displayName.Copy( _L("argen") );
+            contact = CVIMPSTStorageContact::NewL( userId, displayName );
+            if( !list->AddStorageContactToCacheL( contact, index ) )
+                {
+                count++;
+                }
+            
+            break;
+            }
+        case 2:
+        default:
+            {
+            // No contacts added
+            break;
+            }
+        }
+    
+    TInt listCount = list->Count();
+    
+    if( listCount == count )
+        {
+        result = KErrNone;
+        }
+    
+    delete list;
+    delete sorter;
+    
+    return result;
+    
+    }
+// ----------------------------------------------------------
+// CCVIMPSTStorageContactList_UT::Test_Count
+// Function to test the Count function of StorageContactList.
+// -----------------------------------------------------------
+//
+
+TInt CCVIMPSTStorageContactList_UT::Test_FilteredContact( CStifItemParser& aItem )
+    {
+    TInt result = KErrGeneral;
+    
+    MVIMPSTStorageContactList* list = GetList();
+    
+    TInt flag;
+    aItem.GetNextInt( flag );
+    
+    switch( flag )
+        {
+        case 1:
+            {
+            // Variant 1.
+            MVIMPSTStorageContact& filteredContact =
+                    list->FilteredContact( 0, TVIMPSTEnums::EFilterNonOffline);
+            //MVIMPSTStorageContact& filteredContact = (*list[0]
+            TInt compare = ( (*list)[0].UserId() ).Compare( filteredContact.UserId() );
+            if( compare == 0 )
+                result = KErrNone;
+            break;
+            }
+        case 2:
+            {
+            // Variant 2.
+            MVIMPSTStorageContact& filteredContact =
+                    list->FilteredContact( 5, TVIMPSTEnums::EFilterNonOffline);
+            TInt compare = ( (*list)[5].UserId() ).Compare( filteredContact.UserId() );
+            if( compare == 0 )
+                result = KErrNone;
+            break;
+            }
+        case 3:
+            {
+            // Variant 3.
+            delete (CVIMPSTStorageContactSorter *) list;
+            CVIMPSTStorageContactSorter* sorter = CVIMPSTStorageContactSorter::NewL();
+            list = CVIMPSTStorageContactList::NewL( *sorter, _L("MyList"), _L("display") );
+            MVIMPSTStorageContact& filteredContact =
+                    list->FilteredContact( 1, TVIMPSTEnums::EFilterAway);
+            TInt compare = ( (*list)[6].UserId() ).Compare( filteredContact.UserId() );
+            if( compare == 0 )
+                result = KErrNone;
+            break;
+            }
+        }
+    
+    delete (CVIMPSTStorageContactSorter *) list;
+    
+    return result;
+    }
+
+// ----------------------------------------------------------
+// CCVIMPSTStorageContactList_UT::Test_Count
+// Function to test the Count function of StorageContactList.
+// -----------------------------------------------------------
+//
+
+TInt CCVIMPSTStorageContactList_UT::Test_FilterAllowsContact( CStifItemParser& aItem )
+    {
+    TInt result = KErrGeneral;
+    
+    TInt inputFilter;
+    TInt testCaseNumber;
+    TPtrC inputString;
+    TVIMPSTEnums::TFilterType filter;
+    
+    aItem.GetNextString( inputString );
+    aItem.GetNextInt( inputFilter );
+    aItem.GetNextInt( testCaseNumber );
+    
+    CVIMPSTStorageContact* contact = NULL;
+    CVIMPSTStorageContactSorter* sorter = CVIMPSTStorageContactSorter::NewL();
+
+    // Creating a contactList
+    TBuf<64> listId;
+    TBuf<64> displayName;
+    
+    listId.Copy( _L("contacts.manu") );
+    displayName.Copy( _L("Personal Contacts") );
+    CVIMPSTStorageContactList* list = CVIMPSTStorageContactList::NewL( *sorter, listId, displayName );
+    
+    TVIMPSTEnums::TOnlineStatus status;
+    // Create a list of 8 contacts
+    
+    filter = GetFilter( inputFilter );
+    
+    if( inputString.Compare( _L("null") ) != 0 )
+        {
+        TBuf<64> userId;
+        TInt index = 0;
+        // contact number 1
+        userId.Copy( _L("prashanth.ds@infosys.com") );
+        if( 31 != testCaseNumber )
+            {
+            status = TVIMPSTEnums::EOnline;
+            }
+        contact = CVIMPSTStorageContact::NewL( userId, displayName );
+        contact->SetOnlineStatus( status );
+        list->AddStorageContactToCacheL( contact, index );
+        }
+    
+    TBool funcValue;
+    funcValue = list->FilterAllowsContact( contact, filter );
+    
+    if( !funcValue && testCaseNumber == 28 )
+        result = KErrNone;
+    
+    if(  funcValue && testCaseNumber == 29 )
+        result = KErrNone;
+    
+    if( !funcValue && testCaseNumber == 30 )
+        result = KErrNone;
+    
+    if( funcValue && testCaseNumber == 31 )
+        result = KErrNone;
+        
+    delete sorter;
+    delete list;
+    
+    return result;
+    }
+
+// ----------------------------------------------------------
+// CCVIMPSTStorageContactList_UT::FilteredCount
+// -----------------------------------------------------------
+//
+
+TInt CCVIMPSTStorageContactList_UT::Test_FilteredCount( CStifItemParser& aItem )
+    {
+    TInt result = KErrGeneral;
+    
+    MVIMPSTStorageContactList* list = GetList();
+    
+    TInt inputFilter;
+    
+    aItem.GetNextInt( inputFilter );
+    
+    TVIMPSTEnums::TFilterType filter;
+    
+    switch( inputFilter )
+        {
+        case 1:
+            {
+            filter = TVIMPSTEnums::EFilterNotDefined;
+            if( 0 == list->FilteredCount( filter ) )
+                {
+                result = KErrNone;
+                }
+            }
+            break;
+        case 2:
+            {
+            filter = TVIMPSTEnums::EFilterOnline;
+            if( 4 == list->FilteredCount( filter ) )
+                {
+                result = KErrNone;
+                }
+            }
+            break;
+        case 3:
+            {
+            if( list->FilteredCount( filter ) )
+                {
+                result = KErrNone;
+                }
+            }
+            break;
+        }
+    delete (CVIMPSTStorageContactSorter *)list;
+    return result;
+    }
+
+
+TInt CCVIMPSTStorageContactList_UT::Test_FindIndexOfContact( CStifItemParser& aItem )
+    {
+    TInt result = KErrGeneral;
+    
+    CVIMPSTStorageContactList* list = (CVIMPSTStorageContactList *) GetList();
+    
+    MVIMPSTStorageContact* contact = NULL;
+    
+    contact = CVIMPSTStorageContact::NewL( KNullDesC, KNullDesC );
+    
+    TInt inputFilter;
+    
+    aItem.GetNextInt( inputFilter );
+    
+    TVIMPSTEnums::TFilterType filter;
+
+    filter = TVIMPSTEnums::EFilterOnline;
+    
+    switch( inputFilter )
+        {
+        case 1:
+            {
+            MVIMPSTStorageContact& contact1 = (*list)[0];
+            
+            if( 0 == list->FindIndexOfContact( &contact1 ) )
+                {
+                result = KErrNone;
+                }
+            }
+            break;
+        case 2:
+            {
+            MVIMPSTStorageContact& contact1 = (*list)[2];
+            
+            if( 2 == list->FindIndexOfContact( &contact1, filter ) )
+                {
+                result = KErrNone;
+                }
+            }
+            break;
+        case 3:
+            {
+            MVIMPSTStorageContact& contact1 = (*list)[5];
+            
+            if( KErrNotFound == list->FindIndexOfContact( &contact1, filter ) )
+                {
+                result = KErrNone;
+                }
+            }
+            break;
+        }
+
+    delete (CVIMPSTStorageContact *) contact;
+    delete (CVIMPSTStorageContactSorter *)list;
+
+    return result;
+    }
+
+// ----------------------------------------------------------
+// CCVIMPSTStorageContactList_UT::GetFilter
+// -----------------------------------------------------------
+//
+
+TVIMPSTEnums::TFilterType CCVIMPSTStorageContactList_UT::GetFilter( TInt aFilter )
+    {
+    TVIMPSTEnums::TFilterType filter;
+    switch( aFilter )
+        {
+        case -1:
+            {
+            filter = TVIMPSTEnums::EFilterNotDefined;
+            }
+        break;
+        case 0:
+            {
+            filter = TVIMPSTEnums::EFilterAll;
+            }
+        break;
+        case 1:
+            {
+            filter = TVIMPSTEnums::EFilterAndOperation;
+            }
+        break;
+        case 2:
+            {
+            filter = TVIMPSTEnums::EFilterOnline;
+            }
+        break;
+        case 4:
+            {
+            filter = TVIMPSTEnums::EFilterNonBlocked;
+            }
+        break;
+        case 8:
+            {
+            filter = TVIMPSTEnums::EFilterAway;
+            }
+        break;
+        case 16:
+            {
+            filter = TVIMPSTEnums::EFilterNonOffline;
+            }
+        break;
+
+        }
+    
+    return filter;
+    
+    }
+
+// ----------------------------------------------------------
+// CCVIMPSTStorageContactList_UT::GetStatus
+// -----------------------------------------------------------
+//
+TVIMPSTEnums::TOnlineStatus CCVIMPSTStorageContactList_UT::GetStatus( TInt aStatus )
+    {
+    TVIMPSTEnums::TOnlineStatus status;
+    switch( aStatus )
+        {
+        case 0:
+            {
+            status = TVIMPSTEnums::EUnknown;
+            }
+        break;
+        case 1:
+            {
+            status = TVIMPSTEnums::EOffline;
+            }
+        break;
+        case 2:
+            {
+            status = TVIMPSTEnums::EOnline;
+            }
+        break;
+        case 3:
+            {
+            status = TVIMPSTEnums::EInvisible;
+            }
+        break;
+        case 4:
+            {
+            status = TVIMPSTEnums::EAway;
+            }
+        break;
+        case 5:
+            {
+            status = TVIMPSTEnums::EBusy;
+            }
+        break;
+        case 6:
+            {
+            status = TVIMPSTEnums::EOnPhone;
+            }
+        break;
+        case 7:
+            {
+            status = TVIMPSTEnums::EDoNotDisturb;
+            }
+        break;
+        case 8:
+            {
+            status = TVIMPSTEnums::EPending;
+            }
+        break;
+        case 9:
+            {
+            status = TVIMPSTEnums::EBlocked;
+            }
+        break;
+        }
+    return status;
+    
+    }
+
+MVIMPSTStorageContactList* CCVIMPSTStorageContactList_UT::GetList( )
+    {
+    CVIMPSTStorageContact* contact = NULL;
+    CVIMPSTStorageContactSorter* sorter = CVIMPSTStorageContactSorter::NewL();
+
+    // Creating a contactList
+    TBuf<64> listId;
+    TBuf<64> displayName;
+    
+    listId.Copy( _L("contacts.manu") );
+    displayName.Copy( _L("Personal Contacts") );
+    
+    CVIMPSTStorageContactList* list = CVIMPSTStorageContactList::NewL( *sorter, listId, displayName );
+    
+    // Create a list of 8 contacts
+    
+    TBuf<64> userId;
+    TVIMPSTEnums::TOnlineStatus status;
+    TInt index = 0;
+        // contact number 1
+    userId.Copy( _L("prashanth.ds@infosys.com") );
+    displayName.Copy( _L("prashanth") );
+    status = TVIMPSTEnums::EOnline;
+    contact = CVIMPSTStorageContact::NewL( userId, displayName );
+    contact->SetOnlineStatus( status );
+    list->AddStorageContactToCacheL( contact, index );
+
+    // contact number 2
+    userId.Copy( _L("dovin.fern@tcs.com") );
+    displayName.Copy( _L("dovin") );
+    status = TVIMPSTEnums::EOnline;
+    contact = CVIMPSTStorageContact::NewL( userId, displayName );
+    contact->SetOnlineStatus( status );
+    list->AddStorageContactToCacheL( contact, index );
+    
+    // contact number 3
+    userId.Copy( _L("basavaraj.hn@accenture.com") );
+    displayName.Copy( _L("basava") );
+    status = TVIMPSTEnums::EOnline;
+    contact = CVIMPSTStorageContact::NewL( userId, displayName );
+    contact->SetOnlineStatus( status );
+    list->AddStorageContactToCacheL( contact, index );
+
+    // contact number 4
+    userId.Copy( _L("nandan.av@tcs.com") );
+    displayName.Copy( _L("nandan") );
+    status = TVIMPSTEnums::EOnline;
+    contact = CVIMPSTStorageContact::NewL( userId, displayName );
+    contact->SetOnlineStatus( status );
+    list->AddStorageContactToCacheL( contact, index );
+
+    // contact number 5
+    userId.Copy( _L("mithun.shettigara@tataelxsi.com") );
+    displayName.Copy( _L("Mithun") );
+    status = TVIMPSTEnums::EOffline;
+    contact = CVIMPSTStorageContact::NewL( userId, displayName );
+    contact->SetOnlineStatus( status );
+    list->AddStorageContactToCacheL( contact, index );
+
+    // contact number 6
+    userId.Copy( _L("santosh.wagle@bel.com") );
+    displayName.Copy( _L("Santhosh") );
+    status = TVIMPSTEnums::EAway;
+    contact = CVIMPSTStorageContact::NewL( userId, displayName );
+    contact->SetOnlineStatus( status );
+    list->AddStorageContactToCacheL( contact, index );
+
+    // contact number 7
+    userId.Copy( _L("sandeep.hebbar@tcs.com") );
+    displayName.Copy( _L("Sandeep") );
+    status = TVIMPSTEnums::EPending;
+    contact = CVIMPSTStorageContact::NewL( userId, displayName );
+    contact->SetOnlineStatus( status );
+    list->AddStorageContactToCacheL( contact, index );
+
+    // contact number 8
+    userId.Copy( _L("niranjan.murthy@mindtree.com") );
+    displayName.Copy( _L("Niranjan") );
+    status = TVIMPSTEnums::EBusy;
+    contact = CVIMPSTStorageContact::NewL( userId, displayName );
+    contact->SetOnlineStatus( status );
+    list->AddStorageContactToCacheL( contact, index );
+
+    
+    return list;
+    
+    }
+//  [End of File] - Do not remove