summaryrefslogtreecommitdiffstats
path: root/plugins/contacts/symbian/contactsmodel/tsrc/integration/perffuncsuite/inc/performancefunctionalitybase.h
blob: 56b2322ffe4f75e9802cb9ecfc163f1d392e5334 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
/*
* Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
* Contact: http://www.qt-project.org/legal
* 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 
 @publishedAll
 @released
*/

#ifndef __PERFORMANCEFUNCTIONALITY_BASE__
#define __PERFORMANCEFUNCTIONALITY_BASE__
#include <test/testexecutestepbase.h>
#include <cntdb.h>
#include <cntitem.h>
#include "rcntlist.h"
#include "performancefunctionalityserver.h"

class CPerformanceFunctionalityBase;


class TActiveRecoverObserver : public MContactUiCompactObserver
    {
//from MContactUiCompactObserver
public:
    TActiveRecoverObserver(CPerformanceFunctionalityBase *aTestStep);
	void Step(TInt );
	void HandleError(TInt aError);
public:
   	TInt		                    iCompressOrRecoverError;//active recover/compress error
   	CPerformanceFunctionalityBase*  iTestStep;
    };

class CPerformanceFunctionalityBase : public CTestStep
	{
public:
	virtual TVerdict doTestStepPreambleL(); 
	virtual TVerdict doTestStepPostambleL();
	~CPerformanceFunctionalityBase();
protected:
	virtual void PreTestL() = 0;
	CPerformanceFunctionalityBase(const TInt aContacts) 
	        : iContacts(aContacts), iParent(NULL), iActiveRecoverObserver(this)
		{
		}
	CPerformanceFunctionalityBase(const TInt aContacts, CPerformanceFunctionalityTestsSuite &aParent) 
	        : iContacts(aContacts), iParent(&aParent), iActiveRecoverObserver(this)
		{
		}
	virtual void InitializeL();
	virtual void Cleanup();
	void AddEmptyContactsL(const TInt aNumber, const TBool aTrans);
	void DeleteContactL(const TContactItemId aCid, const TBool aTrans);
	TPtrC GetNextFieldL(const TDesC &aConfigSection, const TDesC &aName, const TBool aNewSection);
	TPtrC GetFieldL(const TDesC &aConfigSection, const TDesC &aName, const TInt aIndex);
	void OpenL( const TContactItemId aCid );
	void CommitL(const TBool aTrans);
	void ReadL( const TContactItemId aCid );
	void CloseL(const TBool aClose);
	void SetFieldL(const TInt aPos, const TDesC& aText);
	TBool CompareFieldL(const TInt aPos, const TDesC& aText);
	void SetAllFieldsL(const TDesC& aText);
	void SetManyFieldsL(const TDesC& aText, const TInt aMany);
	TBool CheckAllFieldsL(const TDesC& aText);
	void ExportVcardL(const TBool aDelete, const TDesC &aVCard);
	void ImportVcardL(const TInt aMany, RFileReadStream &aRfrs);
	TInt GetSharedIntL(const TDesC &aShare);
	void ShareIntL(const TDesC & aShare, const TInt aInt, const TBool aAppend=EFalse, const TDesC &aSeperator=KNullDesC);
	void SetSharedTextL(const TDesC &aShare, const TDesC &aText, const TBool aAppend);
	TInt SharedCountL(const TDesC &aShare);
	void MissingTestPanic() const;
	const TText* PrintNotification(const TInt aNotification) const;
	void PrintNotifications(const TDesC &aType, const RArray<TInt> &aEvents, 
					 		const RArray<TInt> &aContacts);
	void WaitForServerToExitL();
   	void PrintTestComparison(       	const TBool aResult, 
        								const TText *aCompare, 
        								const TInt aLine, 
        								const TText *aFile);
	void PrintTestComparisonIteration(	const TBool aResult,
										const TInt aIteration, 
										const TText *aCompare, 
										const TInt aLine, 
										const TText *aFile);

	TBool StringComparisonTestPrint(	const TDesC &aCompareL,
										const TText *aCompareOperator,  
										const TDesC	&aCompareR, 
										const TBool aResult,
										const TInt 	aIteration,  
										const TInt 	aSubIteration, 
										const TInt 	aLine, 
										const TText *aFile);
									
	TBool IntegerComparisonTestPrint(	const TInt	aCompareL,
										const TText *aCompareOperator,  
										const TInt 	aCompareR, 
										const TBool aResult,
										const TInt 	aIteration, 
										const TInt 	aSubIteration,  
										const TInt 	aLine, 
										const TText *aFile);
//utitilty functions
protected:
	void StartCompressL();
	void EndCompressL();	
	void StartRecoverL();
	void EndRecoverL();			

private:						
    void CloseProcessL(const TDesC& aProcessName, const TInt aIteration);
    										
protected:
    // number of contacts created / used by this test
	TInt                                    iContacts; 
	CContactDatabase*                       iContactsDatabase;
	CContactItemViewDef*                    iViewAll;
	CContactItem*                           iContactItem;
	CContactItemFieldSet*                   iFields;
	RCntList*                               iIterate;
	CPerformanceFunctionalityTestsSuite*    iParent;
	CContactTemplate*                       iTemplate;
	TBool                                   iConcurrent;
	TBool                                   iUnclean;
	//complete active compress/recover, as opposed to cancelling
	TBool 	                            	iCompleteSteps;
	TActiveRecoverObserver                  iActiveRecoverObserver;

private:
	TInt                                    iNextFieldPosition;
	CContactActiveRecover*	                iRecover;
	CContactActiveCompress*                 iCompress;

	};

#endif