contentctrl_plat/ds_contactsdatastoreextension_api/tsrc/src/TestCntDataStoreExtnBlocks.cpp
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Tue, 31 Aug 2010 15:05:37 +0300
branchRCL_3
changeset 51 8e7494275d3a
permissions -rw-r--r--
Revision: 201033 Kit: 201035

/*
* Copyright (c) 2002 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 all functions that can be called from cfg file.
*				 These functions call the necessary methods for getting the operation done and 
*				 writes the output to the Log.
*
*/



// INCLUDE FILES
#include <e32svr.h>
#include<BADESCA.H> 
#include <StifParser.h>
#include <Stiftestinterface.h>
#include "TestCntDataStoreExtn.h"
#include <utf.h>
#include <f32file.h>
#include <e32base.h> 

_LIT8(KContact1, "BEGIN:VCARD\r\nVERSION:2.1\r\nN:Contact;Test1;;;\r\nTEL;CELL:1234567890\r\nEND:VCARD\r\n");
_LIT8(KContact2, "BEGIN:VCARD\r\nVERSION:2.1\r\nN:Contact;Test2;;;\r\nTEL;CELL:0987654321\r\nEND:VCARD\r\n");
_LIT8(KContact3, "BEGIN:VCARD\r\nVERSION:2.1\r\nN:Contact;Test3;;;\r\nTEL;CELL:1324576809\r\nEND:VCARD\r\n");
_LIT8(KContact4, "BEGIN:VCARD\r\nVERSION:2.1\r\nN:Contact;Test4;;;\r\nTEL;CELL:0897645321\r\nEND:VCARD\r\n");
_LIT8(KContact5, "BEGIN:VCARD\r\nVERSION:2.1\r\nN:Contact;Test5;;;\r\nTEL;CELL:1432586790\r\nEND:VCARD\r\n");

// ============================ MEMBER FUNCTIONS ===============================

// -----------------------------------------------------------------------------
// CTestCntDataStoreExtn::Delete
// Delete here all resources allocated and opened from test methods. 
// Called from destructor. 
// -----------------------------------------------------------------------------
//
void CTestCntDataStoreExtn::Delete() 
    {

    }

// -----------------------------------------------------------------------------
// CTestCntDataStoreExtn::RunMethodL
// Run specified method. Contains also table of test mothods and their names.
// -----------------------------------------------------------------------------
//
TInt CTestCntDataStoreExtn::RunMethodL( 
    CStifItemParser& aItem ) 
    {

    static TStifFunctionInfo const KFunctions[] =
        {  
        ENTRY( "ExportContacts"   , CTestCntDataStoreExtn::ExportContactsL ),
        ENTRY( "ImportContacts"   , CTestCntDataStoreExtn::ImportContactsL ),
        ENTRY( "ReadContact"      , CTestCntDataStoreExtn::ReadContactL ),
        ENTRY( "ListContacts"     , CTestCntDataStoreExtn::ListContactsL ),
        ENTRY( "DeleteContact"    , CTestCntDataStoreExtn::DeleteContactL ),
        ENTRY( "DeleteContacts"   , CTestCntDataStoreExtn::DeleteContactsL ),
        ENTRY( "DeleteAllContacts", CTestCntDataStoreExtn::DeleteAllContactsL ),
        ENTRY( "ListStores"       , CTestCntDataStoreExtn::ListStoresL ),
        ENTRY( "MachineID"        , CTestCntDataStoreExtn::MachineIdL ),
        };

    const TInt count = sizeof( KFunctions ) / 
                        sizeof( TStifFunctionInfo );

    return RunInternalL( KFunctions, count, aItem );

    }

// -----------------------------------------------------------------------------
// CTestCntDataStoreExtn::ListContactsL
// Method to List contacts
// -----------------------------------------------------------------------------
//
TInt CTestCntDataStoreExtn::ListContactsL( CStifItemParser& aItem )
    {  
    iLog->Log( _L("ListContactsL Begin") );
    
    if( iEntryArray )
        {
        iEntryArray->Reset();
        TRAPD( err, iCntDataStoreExtension->ListContactsL( iEntryArray ) );
        if( err )
            {
            return KErrGeneral;
            }
        }
    else
        {
        return KErrGeneral;
        }
    iLog->Log( _L("ListContactsL End") );
    return KErrNone;
    }

// -----------------------------------------------------------------------------
// CTestCntDataStoreExtn::ExportContactsL
// Method to export contacts
// -----------------------------------------------------------------------------
//
TInt CTestCntDataStoreExtn::ExportContactsL( CStifItemParser& aItem )
    {   
    iLog->Log( _L("ExportContactsL Begin") );
    
    TInt ret = KErrNone;
    if( iEntryArray )
        {
        if( iEntryArray->Count() > 0 )
            {
            for( TInt count = 0; count < iEntryArray->Count(); count++ )
                {
                CBufBase* tempData = CBufFlat::NewL( 1024 );
                TRAPD( err, ret = iCntDataStoreExtension->ExportContactsL( iEntryArray->At(count), *tempData ) );
                delete tempData;
                if ( err || ret )
                    {
                    return KErrGeneral; 
                    }
                }
            }
        else
           {
           return KErrGeneral;
           }    
        }
    else
        {
        return KErrGeneral;
        }
    
    iLog->Log( _L("ExportContactsL End") );
    return KErrNone;
    }

// -----------------------------------------------------------------------------
// CTestCntDataStoreExtn::ImportContactsL
// Method to import contacts
// -----------------------------------------------------------------------------
//
TInt CTestCntDataStoreExtn::ImportContactsL( CStifItemParser& aItem )
    {   
    iLog->Log( _L("ImportContactsL Begin") );
    
    HBufC8* cntbuf = HBufC8::NewL(500);
    CArrayFixFlat<TUid>* entryArray = NULL;
    
    *cntbuf = KContact1;    
    
    TPtr8 ptr = cntbuf->Des();
    ptr.Append(KContact2);
    ptr.Append(KContact3);
    ptr.Append(KContact4);
    ptr.Append(KContact5);
    
    TRAPD( ret, entryArray = iCntDataStoreExtension->ImportContactsL(*cntbuf) );
    delete cntbuf;
    
    
    if( ret || (entryArray == NULL) )
        {
        iLog->Log( _L("ImportContactsL Error") );
        return KErrGeneral;
        }
      
    delete entryArray;
    
    iLog->Log( _L("ImportContactsL End") );
    return KErrNone;
    }

// -----------------------------------------------------------------------------
// CTestCntDataStoreExtn::ReadContactL
// Method to read contact
// -----------------------------------------------------------------------------
//
TInt CTestCntDataStoreExtn::ReadContactL( CStifItemParser& aItem )
    {
    iLog->Log( _L("ReadContactL Begin") );
    if( iEntryArray )
        {
        if( iEntryArray->Count() > 0 )
           {
           TInt ret( KErrNone );
           for( TInt count = 0; count < iEntryArray->Count(); count++ )
               {
               CNsmlContactItem* contactitem = CNsmlContactItem::NewL();
               TRAPD(err, ret = iCntDataStoreExtension->ReadContactL( iEntryArray->At(count), contactitem ));
               delete contactitem;
               if( err || ret )
                   {
                   return KErrGeneral;
                   }
               }
           }
        else
            {
            return KErrGeneral;
            }
        }
    else
        {
        return KErrGeneral;
        }     
    
    iLog->Log( _L("ReadContactL End") );
    return KErrNone;
    }

// -----------------------------------------------------------------------------
// CTestCntDataStoreExtn::DeleteContactL
// Method to delete contact
// -----------------------------------------------------------------------------
//
TInt CTestCntDataStoreExtn::DeleteContactL( CStifItemParser& aItem )
    {
    iLog->Log( _L("DeleteContactL Begin") );
    
    if( iEntryArray )
        {
        if( iEntryArray->Count() > 0 )
           {
           TBool ret;
           for( TInt count = 0; count < iEntryArray->Count(); count++ )
               {
               TRAPD( err, ret = iCntDataStoreExtension->DeleteContactL( iEntryArray->At(count) ) );
               if( err || ( ret == EFalse) )
                   {
                   return KErrGeneral;
                   }               
               }
           }
        else
            {
            return KErrGeneral;
            }
        }
    else
        {
        return KErrGeneral;
        }
    iEntryArray->Reset();
    iLog->Log( _L("DeleteContactL End") );
    return KErrNone;
    }

// -----------------------------------------------------------------------------
// CTestCntDataStoreExtn::DeleteContacts
// Method to delete contacts
// -----------------------------------------------------------------------------
//
TInt CTestCntDataStoreExtn::DeleteContactsL( CStifItemParser& aItem )
    {
    iLog->Log( _L("DeleteContactsL Begin") );
    
    if( iEntryArray )
        {
        if( iEntryArray->Count() > 0 )
           {
           TBool ret;           
           TRAPD( err, ret = iCntDataStoreExtension->DeleteContactsL( iEntryArray ) );
           if( err || ( ret == EFalse) )
               {
               return KErrGeneral;
               }
           }
        else
            {
            return KErrGeneral;
            }
        }
    else
        {
        return KErrGeneral;
        }
    iEntryArray->Reset();
    iLog->Log( _L("DeleteContactsL End") );
    return KErrNone;
    }

// -----------------------------------------------------------------------------
// CTestCntDataStoreExtn::DeleteAllContactsL
// Method to delete all contacts
// -----------------------------------------------------------------------------
//
TInt CTestCntDataStoreExtn::DeleteAllContactsL( CStifItemParser& aItem )
    {
    iLog->Log( _L("DeleteAllContacts Begin") );
    
    if( iEntryArray )
        {
        if( iEntryArray->Count() > 0 )
           {
           TBool ret;
           TRAPD( err, ret = iCntDataStoreExtension->DeleteAllContactsL() );
           if( err || ( ret == EFalse) )
               {
               return KErrGeneral;
               }
           }
        else
            {
            return KErrGeneral;
            }
        }
    else
        {
        return KErrGeneral;
        }
    iEntryArray->Reset();
    iLog->Log( _L("DeleteAllContactsL End") );
    return KErrNone;
    }

// -----------------------------------------------------------------------------
// CTestCntDataStoreExtn::ListStoresL
// Method to list stores
// -----------------------------------------------------------------------------
//
TInt CTestCntDataStoreExtn::ListStoresL( CStifItemParser& aItem )
    {
    iLog->Log( _L("ListStoresL Begin") );
    
    CDesCArray* cntStores = new (ELeave) CDesCArrayFlat(1);
    TRAPD( err, iCntDataStoreExtension->ListStoresL( cntStores ) );
    delete cntStores;
    if(err )
        {
        return KErrGeneral;
        }
    
    iLog->Log( _L("ListStoresL End") );
    return KErrNone;
    }

// -----------------------------------------------------------------------------
// CTestCntDataStoreExtn::MachineIdL
// Method to fetch machine id
// -----------------------------------------------------------------------------
//
TInt CTestCntDataStoreExtn::MachineIdL( CStifItemParser& aItem )
    {
    iLog->Log( _L("MachineIdL Begin") );
    TRAPD( err, iCntDataStoreExtension->MachineIdL( ) );
    if(err)
        {
        return KErrGeneral;
        }    
    iLog->Log( _L("MachineIdL End") );
    return KErrNone;
    }

//  End of File