pimprotocols/phonebooksync/Test/TE_Sync/TE_SyncBase.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Tue, 02 Feb 2010 10:12:17 +0200
changeset 0 e686773b3f54
permissions -rw-r--r--
Revision: 201003 Kit: 201005

// Copyright (c) 2000-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:
//

/**
 @file
 @internalComponent 
*/


#ifndef _TE_SYNCSUITE_H_
#define _TE_SYNCSUITE_H_


#include "f32file.h"
#include "c32comm.h"

#include <e32base.h>
#include <e32test.h>
#include <phbksync.h>
#include <cntdb.h>
#include <cntdef.h>
#include <etelmm.h>
#include <simtsy.h>
#include <connect/sbeclient.h>
#include <testconfigfileparser.h>
#include <test/testexecuteserverbase.h>

using namespace conn;


_LIT(KNameFormat,"AAAAAAAAAAAAAAAAA%03d");
_LIT(KNumberFormat,"00000000000000000%03d");
_LIT(KModifiedName,"ABC");
_LIT(KTestName,"Name");
_LIT(KTestNumber,"02079460099");


//
// Test macros
//
_LIT(KTestCheckFailText, "Failed: Got %d while expecting %d.");
_LIT(KTestCheckConditionFailText, "Failed: Condition was false.");
_LIT(KTestCheckStringFailText, "Failed: Got \"%S\" while expecting \"%S\".");

#define TESTCHECKL(a, b) \
    { \
    if((a)!=(b)) \
	    { \
	    INFO_PRINTF3(KTestCheckFailText, a, b); \
        SetTestStepResult(EFail); \
        User::Leave(EFail); \
        } \
    }

#define TESTCHECKCONDITIONL(a) \
    { \
    if (!(a)) \
	    { \
	    INFO_PRINTF1(KTestCheckConditionFailText); \
        SetTestStepResult(EFail); \
        User::Leave(EFail); \
        } \
    }

#define TESTCHECKSTRL(a, b) \
    { \
    if((a)!=(b)) \
	    { \
	    INFO_PRINTF3(KTestCheckStringFailText, &(a), &(b)); \
        SetTestStepResult(EFail); \
        User::Leave(EFail); \
        } \
    }
    
#define TESTCHECK(a, b) \
    { \
    if((a)!=(b)) \
	    { \
	    INFO_PRINTF3(KTestCheckFailText, a, b); \
        SetTestStepResult(EFail); \
        } \
    }

#define TESTCHECKCONDITION(a) \
    { \
    if (!(a)) \
	    { \
	    INFO_PRINTF1(KTestCheckConditionFailText); \
        SetTestStepResult(EFail); \
        } \
    }
    
#define TESTCHECKSTR(a, b) \
    { \
    if((a)!=(b)) \
	    { \
	    INFO_PRINTF3(KTestCheckStringFailText, &(a), &(b)); \
        SetTestStepResult(EFail); \
        } \
    }


class CSyncTestStep : public CTestStep
{
public:
	class TContactICCEntry
	/**
	 * This class is used to store the contacts phonebook data (supplied in CContactICCEntry)
	 * in the Phonebook Server internal format.
	 */
		{
	public:
		TContactICCEntry();
		void Reset();
	public:
		enum 
		{
		KMaxPhBkNameSize=241
		};

		TBuf16<KMaxPhBkNameSize> iName;
		TBuf16<RMobilePhone::KMaxMobileTelNumberSize> iNumber;
		TInt iSlotNum;
		RMobilePhone::TMobileTON iTON;
		TContactItemId iContactUID;
		};

	typedef TPckg<TContactICCEntry> TContactICCEntryPckg;

public:
	virtual TVerdict doTestStepPreambleL();
	virtual TVerdict doTestStepPostambleL();

	void WriteContactToICCL(TContactICCEntry& iccEntry, TRequestStatus& aStatus);
	void AddTextFieldToIccContactL(TStorageType aType, TFieldType aFieldType, TUid aMapping, TDesC& aField, CContactICCEntry* aIccEntry);
	TContactItemId GetValidUIDFromContactsDbL();

	void ConfigurePhbkSyncToIdleL();
	void ConfigurePhbkSyncToFullL();

public:
	RPhoneBookSession  iSession;

private:
	CActiveScheduler*  iScheduler;
	CSBEClient*  iSecureBackupEngine;
};


#endif