1 /* |
|
2 * Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies). |
|
3 * All rights reserved. |
|
4 * This component and the accompanying materials are made available |
|
5 * under the terms of "Eclipse Public License v1.0" |
|
6 * which accompanies this distribution, and is available |
|
7 * at the URL "http://www.eclipse.org/legal/epl-v10.html". |
|
8 * |
|
9 * Initial Contributors: |
|
10 * Nokia Corporation - initial contribution. |
|
11 * |
|
12 * Contributors: |
|
13 * |
|
14 * Description: |
|
15 * |
|
16 */ |
|
17 |
|
18 #ifndef MDETESTSCRIPTER_H |
|
19 #define MDETESTSCRIPTER_H |
|
20 |
|
21 // INCLUDES |
|
22 #include <e32cmn.h> |
|
23 #include <StifLogger.h> |
|
24 #include <TestScripterInternal.h> |
|
25 #include <StifTestModule.h> |
|
26 #include <mdesession.h> |
|
27 #include <mdequery.h> |
|
28 |
|
29 // CONSTANTS |
|
30 const TInt KPathPrefixLength( 2 ); |
|
31 |
|
32 const TInt KLast = -1; |
|
33 |
|
34 const TInt KById = 0; |
|
35 const TInt KByUri = 1; |
|
36 const TInt KByGuid = 2; |
|
37 const TInt KByIds = 3; |
|
38 const TInt KByDef = 4; |
|
39 const TInt KByIndex = 5; |
|
40 |
|
41 const TInt KL = 0; |
|
42 const TInt KLC = 1; |
|
43 |
|
44 const TInt KAsync = 0; |
|
45 const TInt KSync = 1; |
|
46 |
|
47 const TInt ESession = 0; |
|
48 const TInt EObjectDef = 1; |
|
49 const TInt ERelationDef = 2; |
|
50 const TInt EPropertyDef = 3; |
|
51 const TInt EEventDef = 4; |
|
52 const TInt ENamespaceDef = 5; |
|
53 const TInt EObject = 6; |
|
54 const TInt ERelation = 7; |
|
55 const TInt EProperty = 8; |
|
56 const TInt EEvent = 9; |
|
57 |
|
58 // MACROS |
|
59 _LIT( KMdETestScripter, "MdETestScripter" ); |
|
60 #if ( defined (__WINS__) || defined (__WINSCW__) ) |
|
61 _LIT( KMdETestDataPath, "" ); |
|
62 #else |
|
63 _LIT( KMdETestDataPath, "\\testing" ); |
|
64 #endif |
|
65 |
|
66 _LIT( KMdETestScripterLogPath, "\\logs\\testframework\\MdETestScripter\\" ); |
|
67 |
|
68 // Log file |
|
69 _LIT( KMdETestScripterLogFile, "MdETestScripter.txt" ); |
|
70 _LIT( KMdETestScripterLogFileWithTitle, "MdETestScripter_[%S].txt" ); |
|
71 |
|
72 // Events |
|
73 // Events for schema |
|
74 _LIT( KMdESchemaModified, "ESchemaModified" ); |
|
75 |
|
76 // Events for async request |
|
77 _LIT( KMdEItemsAsyncAdd, "EItemsAsyncAdd" ); |
|
78 _LIT( KMdEObjectsAsyncAdd, "EObjectsAsyncAdd" ); |
|
79 _LIT( KMdERelationsAsyncAdd, "ERelationsAsyncAdd" ); |
|
80 _LIT( KMdEEventsAsyncAdd, "EEventsAsyncAdd" ); |
|
81 |
|
82 _LIT( KMdEItemsAsyncUpdate, "EItemsAsyncUpdate" ); |
|
83 _LIT( KMdEObjectsAsyncUpdate, "EObjectsAsyncUpdate" ); |
|
84 _LIT( KMdERelationsAsyncUpdate, "ERelationsAsyncUpdate" ); |
|
85 _LIT( KMdEEventsAsyncUpdate, "EEventsAsyncUpdate" ); |
|
86 |
|
87 _LIT( KMdEObjectsAsyncRemoved, "EObjectsAsyncRemoved" ); |
|
88 _LIT( KMdERelationsAsyncRemoved, "ERelationsAsyncRemoved" ); |
|
89 _LIT( KMdEEventsAsyncRemoved, "EEventsAsyncRemoved" ); |
|
90 |
|
91 |
|
92 // FUNCTION PROTOTYPES |
|
93 |
|
94 // FORWARD DECLARATIONS |
|
95 class CMdETestScripter; |
|
96 class CMdESession; |
|
97 class CMdENamespaceDef; |
|
98 class CMdEObject; |
|
99 class CMdEInstanceItem; |
|
100 class CMdEQuery; |
|
101 class CMdELogicCondition; |
|
102 class CMdETestScripterAO; |
|
103 |
|
104 // DATA TYPES |
|
105 |
|
106 // CLASS DECLARATION |
|
107 |
|
108 /** |
|
109 * CMdETestScripter test class for STIF Test Framework TestScripter. |
|
110 * ?other_description_lines |
|
111 * |
|
112 * @lib ?library |
|
113 * @since ?Series60_version |
|
114 */ |
|
115 NONSHARABLE_CLASS(CMdETestScripter) : public CScriptBase, |
|
116 public MMdESchemaObserver, |
|
117 public MMdEObjectObserver, |
|
118 public MMdEObjectObserverWithUri, |
|
119 public MMdEObjectPresentObserver, |
|
120 public MMdERelationObserver, |
|
121 public MMdERelationItemObserver, |
|
122 public MMdERelationPresentObserver, |
|
123 public MMdESessionObserver, |
|
124 public MMdEEventObserver, |
|
125 public MMdEQueryObserver |
|
126 { |
|
127 friend class CMdETestScripterAO; |
|
128 public: // Constructors and destructor |
|
129 |
|
130 /** |
|
131 * Two-phased constructor. |
|
132 */ |
|
133 static CMdETestScripter* NewL( CTestModuleIf& aTestModuleIf ); |
|
134 |
|
135 /** |
|
136 * Destructor. |
|
137 */ |
|
138 virtual ~CMdETestScripter(); |
|
139 |
|
140 public: // New functions |
|
141 |
|
142 public: // Functions from base classes |
|
143 virtual TInt RunMethodL( CStifItemParser& aItem ); |
|
144 |
|
145 protected: // New functions |
|
146 |
|
147 |
|
148 protected: // Functions from base classes |
|
149 |
|
150 |
|
151 private: |
|
152 |
|
153 /** |
|
154 * C++ default constructor. |
|
155 */ |
|
156 CMdETestScripter( CTestModuleIf& aTestModuleIf ); |
|
157 |
|
158 /** |
|
159 * By default Symbian 2nd phase constructor is private. |
|
160 */ |
|
161 void ConstructL(); |
|
162 |
|
163 /** |
|
164 * Frees all resources allocated from test methods. |
|
165 * @since ?Series60_version |
|
166 */ |
|
167 void Delete(); |
|
168 |
|
169 template <class T> T* SanitizeArrayIndexL( |
|
170 RPointerArray<T>& aArray, const CDesCArrayFlat& aNameArray, |
|
171 CStifItemParser& aItem ); |
|
172 CMdEInstanceItem* GetInstanceItemByArrayIndexL( |
|
173 TInt aMode, CStifItemParser& aItem ); |
|
174 void CheckTMdEObjectL( const TMdEObject& aTObject, const CMdEObject& aObject ); |
|
175 void CheckTMdERelationL( const TMdERelation& aTRelation, const CMdERelation& aRelation ); |
|
176 template <class T1, class T2> void CheckTInstanceL( const T1& aT1, const T2& aT2 ); |
|
177 void CheckTMdEObjectArrayL( |
|
178 const RArray<TMdEObject>& aTObjects, TInt objIndex, TInt aCount ); |
|
179 void CheckTMdERelationArrayL( |
|
180 const RArray<TMdERelation>& aTRelations, const TInt aObjIndex, const TInt aCount ); |
|
181 template <class T> void CheckTItemIdArrayL( |
|
182 const RArray<TItemId>& aTItemIds, const RPointerArray<T>& aArray, |
|
183 const TInt aIndex, const TInt aCount ); |
|
184 TInt CheckAsyncResultArrayL( TEventIf aEvent ); |
|
185 void FormInstanceItemArrayL( |
|
186 CStifItemParser& aItem, RPointerArray<CMdEInstanceItem>& aItemArray ) const; |
|
187 |
|
188 /** |
|
189 * Test methods are listed below. |
|
190 */ |
|
191 |
|
192 // Observer add/remove test primitives |
|
193 virtual TInt AddSchemaObserverL( CStifItemParser& aItem ); |
|
194 virtual TInt RemoveSchemaObserverL( CStifItemParser& aItem ); |
|
195 virtual TInt AddObjectObserverL( CStifItemParser& aItem ); |
|
196 virtual TInt RemoveObjectObserverL( CStifItemParser& aItem ); |
|
197 virtual TInt AddObjectObserverWithUriL( CStifItemParser& aItem ); |
|
198 virtual TInt RemoveObjectObserverWithUriL( CStifItemParser& aItem ); |
|
199 virtual TInt AddObjectPresentObserverL( CStifItemParser& aItem ); |
|
200 virtual TInt RemoveObjectPresentObserverL( CStifItemParser& aItem ); |
|
201 virtual TInt AddRelationObserverL( CStifItemParser& aItem ); |
|
202 virtual TInt RemoveRelationObserverL( CStifItemParser& aItem ); |
|
203 virtual TInt AddRelationItemObserverL( CStifItemParser& aItem ); |
|
204 virtual TInt RemoveRelationItemObserverL( CStifItemParser& aItem ); |
|
205 virtual TInt AddRelationPresentObserverL( CStifItemParser& aItem ); |
|
206 virtual TInt RemoveRelationPresentObserverL( CStifItemParser& aItem ); |
|
207 virtual TInt AddEventObserverL( CStifItemParser& aItem ); |
|
208 virtual TInt RemoveEventObserverL( CStifItemParser& aItem ); |
|
209 |
|
210 // Notification resulated test primitives |
|
211 virtual TInt VerifyTItemIdsL( CStifItemParser& aItem ); |
|
212 virtual TInt VerifyMdERelationsL( CStifItemParser& aItem ); |
|
213 virtual TInt VerifyObserverNotificationTypeL( CStifItemParser& aItem ); |
|
214 |
|
215 // Metadata/schema/namespace test primitives. |
|
216 virtual TInt ObjectDefCountL( CStifItemParser& aItem ); |
|
217 virtual TInt ObjectDefL( CStifItemParser& aItem ); |
|
218 virtual TInt GetObjectDefL( CStifItemParser& aItem ); |
|
219 virtual TInt RelationDefCountL( CStifItemParser& aItem ); |
|
220 virtual TInt RelationDefL( CStifItemParser& aItem ); |
|
221 virtual TInt GetRelationDefL( CStifItemParser& aItem ); |
|
222 virtual TInt EventDefCountL( CStifItemParser& aItem ); |
|
223 virtual TInt EventDefL( CStifItemParser& aItem ); |
|
224 virtual TInt GetEventDefL( CStifItemParser& aItem ); |
|
225 |
|
226 virtual TInt ExportMetadataL( CStifItemParser& aItem ); |
|
227 virtual TInt ImportMetadataL( CStifItemParser& aItem ); |
|
228 virtual TInt ImportSchemaL( CStifItemParser& aItem ); |
|
229 virtual TInt NamespaceDefCountL( CStifItemParser& aItem ); |
|
230 virtual TInt NamespaceDefL( CStifItemParser& aItem ); |
|
231 virtual TInt GetNamespaceDefL( CStifItemParser& aItem ); |
|
232 virtual TInt ResetNamespaceDefArray( CStifItemParser& aItem ); |
|
233 virtual TInt GetDefaultNamespaceDefL( CStifItemParser& aItem ); |
|
234 virtual TInt LoadSchemaL( CStifItemParser& aItem ); |
|
235 virtual TInt EngineSessionL( CStifItemParser& aItem ); |
|
236 virtual TInt GetSchemaVersionL( CStifItemParser& aItem ); |
|
237 virtual TInt SetObjectToPresentByGuidL( CStifItemParser& aItem ); |
|
238 |
|
239 // Item / InstanceItem test primitives. |
|
240 virtual TInt BelongsToSessionL( CStifItemParser& aItem ); |
|
241 virtual TInt SessionL( CStifItemParser& aItem ); |
|
242 virtual TInt InDatabaseL( CStifItemParser& aItem ); |
|
243 virtual TInt AddItemsL( CStifItemParser& aItem ); |
|
244 virtual TInt UpdateItemsL( CStifItemParser& aItem ); |
|
245 |
|
246 // Definition test primitives. |
|
247 virtual TInt AddRelationDefL( CStifItemParser& aItem ); |
|
248 virtual TInt AddEventDefL( CStifItemParser& aItem ); |
|
249 virtual TInt PropertyDefCountL( CStifItemParser& aItem ); |
|
250 virtual TInt PropertyDefL( CStifItemParser& aItem ); |
|
251 virtual TInt GetPropertyDefL( CStifItemParser& aItem ); |
|
252 virtual TInt MandatoryL( CStifItemParser& aItem ); |
|
253 virtual TInt MinInt32ValueL( CStifItemParser& aItem ); |
|
254 virtual TInt MaxInt32ValueL( CStifItemParser& aItem ); |
|
255 virtual TInt MinUint32ValueL( CStifItemParser& aItem ); |
|
256 virtual TInt MaxUint32ValueL( CStifItemParser& aItem ); |
|
257 virtual TInt MinInt64ValueL( CStifItemParser& aItem ); |
|
258 virtual TInt MaxInt64ValueL( CStifItemParser& aItem ); |
|
259 virtual TInt MinRealValueL( CStifItemParser& aItem ); |
|
260 virtual TInt MaxRealValueL( CStifItemParser& aItem ); |
|
261 virtual TInt MinTimeValueL( CStifItemParser& aItem ); |
|
262 virtual TInt MaxTimeValueL( CStifItemParser& aItem ); |
|
263 virtual TInt MinTextLengthL( CStifItemParser& aItem ); |
|
264 virtual TInt MaxTextLengthL( CStifItemParser& aItem ); |
|
265 virtual TInt CompareL( CStifItemParser& aItem ); |
|
266 virtual TInt ParentL( CStifItemParser& aItem ); |
|
267 virtual TInt NameL( CStifItemParser& aItem ); |
|
268 virtual TInt ReadOnlyL( CStifItemParser& aItem ); |
|
269 virtual TInt DefL( CStifItemParser& aItem ); |
|
270 |
|
271 // Object test primitives. |
|
272 virtual TInt SetDefL( CStifItemParser& aItem ); |
|
273 virtual TInt UriL( CStifItemParser& aItem ); |
|
274 virtual TInt SetUriL( CStifItemParser& aItem ); |
|
275 virtual TInt ConfidentialL( CStifItemParser& aItem ); |
|
276 virtual TInt SetConfidentialL( CStifItemParser& aItem ); |
|
277 virtual TInt PlaceholderL( CStifItemParser& aItem ); |
|
278 virtual TInt SetPlaceholderL( CStifItemParser& aItem ); |
|
279 virtual TInt MediaIdL( CStifItemParser& aItem ); |
|
280 virtual TInt SetMediaIdL( CStifItemParser& aItem ); |
|
281 virtual TInt UsageCountL( CStifItemParser& aItem ); |
|
282 virtual TInt GuidL( CStifItemParser& aItem ); |
|
283 virtual TInt SetGuidL( CStifItemParser& aItem ); |
|
284 virtual TInt OpenForModificationsL( CStifItemParser& aItem ); |
|
285 virtual TInt NewObjectL( CStifItemParser& aItem ); |
|
286 virtual TInt AddObjectL( CStifItemParser& aItem ); |
|
287 virtual TInt AddObjectsL( CStifItemParser& aItem ); |
|
288 virtual TInt GetObjectL( CStifItemParser& aItem ); |
|
289 virtual TInt GetFullObjectL( CStifItemParser& aItem ); |
|
290 virtual TInt CheckObjectL( CStifItemParser& aItem ); |
|
291 virtual TInt RemoveObjectL( CStifItemParser& aItem ); |
|
292 virtual TInt RemoveObjectsL( CStifItemParser& aItem ); |
|
293 virtual TInt RemoveAllObjectsL( CStifItemParser& aItem ); |
|
294 virtual TInt OpenObjectL( CStifItemParser& aItem ); |
|
295 virtual TInt OpenFullObjectL( CStifItemParser& aItem ); |
|
296 virtual TInt CommitObjectL( CStifItemParser& aItem ); |
|
297 virtual TInt CommitObjectsL( CStifItemParser& aItem ); |
|
298 virtual TInt CancelObjectL( CStifItemParser& aItem ); |
|
299 |
|
300 virtual TInt PropertyL( CStifItemParser& aItem ); |
|
301 virtual TInt PropertyCountL( CStifItemParser& aItem ); |
|
302 virtual TInt AddBoolPropertyL( CStifItemParser& aItem ); |
|
303 virtual TInt AddInt8PropertyL( CStifItemParser& aItem ); |
|
304 virtual TInt AddUint8PropertyL( CStifItemParser& aItem ); |
|
305 virtual TInt AddInt16PropertyL( CStifItemParser& aItem ); |
|
306 virtual TInt AddUint16PropertyL( CStifItemParser& aItem ); |
|
307 virtual TInt AddInt32PropertyL( CStifItemParser& aItem ); |
|
308 virtual TInt AddUint32PropertyL( CStifItemParser& aItem ); |
|
309 virtual TInt AddInt64PropertyL( CStifItemParser& aItem ); |
|
310 virtual TInt AddReal32PropertyL( CStifItemParser& aItem ); |
|
311 virtual TInt AddReal64PropertyL( CStifItemParser& aItem ); |
|
312 virtual TInt AddTextPropertyL( CStifItemParser& aItem ); |
|
313 virtual TInt AddTimePropertyL( CStifItemParser& aItem ); |
|
314 |
|
315 // Property test primitives. |
|
316 virtual TInt ObjectL( CStifItemParser& aItem ); |
|
317 virtual TInt BoolValueL( CStifItemParser& aItem ); |
|
318 virtual TInt Int8ValueL( CStifItemParser& aItem ); |
|
319 virtual TInt Uint8ValueL( CStifItemParser& aItem ); |
|
320 virtual TInt Int16ValueL( CStifItemParser& aItem ); |
|
321 virtual TInt Uint16ValueL( CStifItemParser& aItem ); |
|
322 virtual TInt Int32ValueL( CStifItemParser& aItem ); |
|
323 virtual TInt Uint32ValueL( CStifItemParser& aItem ); |
|
324 virtual TInt Int64ValueL( CStifItemParser& aItem ); |
|
325 virtual TInt Real32ValueL( CStifItemParser& aItem ); |
|
326 virtual TInt Real64ValueL( CStifItemParser& aItem ); |
|
327 virtual TInt TimeValueL( CStifItemParser& aItem ); |
|
328 virtual TInt TextValueL( CStifItemParser& aItem ); |
|
329 virtual TInt SetBoolValueL( CStifItemParser& aItem ); |
|
330 virtual TInt SetInt8ValueL( CStifItemParser& aItem ); |
|
331 virtual TInt SetUint8ValueL( CStifItemParser& aItem ); |
|
332 virtual TInt SetInt16ValueL( CStifItemParser& aItem ); |
|
333 virtual TInt SetUint16ValueL( CStifItemParser& aItem ); |
|
334 virtual TInt SetInt32ValueL( CStifItemParser& aItem ); |
|
335 virtual TInt SetUint32ValueL( CStifItemParser& aItem ); |
|
336 virtual TInt SetInt64ValueL( CStifItemParser& aItem ); |
|
337 virtual TInt SetReal32ValueL( CStifItemParser& aItem ); |
|
338 virtual TInt SetReal64ValueL( CStifItemParser& aItem ); |
|
339 virtual TInt SetTimeValueL( CStifItemParser& aItem ); |
|
340 virtual TInt SetTextValueL( CStifItemParser& aItem ); |
|
341 virtual TInt RemovePropertyL( CStifItemParser& aItem ); |
|
342 virtual TInt MovePropertiesL( CStifItemParser& aItem ); |
|
343 |
|
344 // Free text test primitives. |
|
345 virtual TInt FreeTextCountL( CStifItemParser& aItem ); |
|
346 virtual TInt FreeTextL( CStifItemParser& aItem ); |
|
347 virtual TInt FreeTextIndexL( CStifItemParser& aItem ); |
|
348 virtual TInt AddFreeTextL( CStifItemParser& aItem ); |
|
349 virtual TInt RemoveFreeTextL( CStifItemParser& aItem ); |
|
350 |
|
351 // Relation test primitives. |
|
352 virtual TInt NewRelationL( CStifItemParser& aItem ); |
|
353 virtual TInt AddRelationL( CStifItemParser& aItem ); |
|
354 virtual TInt LeftObjectIdL( CStifItemParser& aItem ); |
|
355 virtual TInt RightObjectIdL( CStifItemParser& aItem ); |
|
356 virtual TInt ParameterL( CStifItemParser& aItem ); |
|
357 virtual TInt SetParameterL( CStifItemParser& aItem ); |
|
358 virtual TInt SetLeftObjectIdL( CStifItemParser& aItem ); |
|
359 virtual TInt SetRightObjectIdL( CStifItemParser& aItem ); |
|
360 virtual TInt LastModifiedDateL( CStifItemParser& aItem ); |
|
361 virtual TInt SetLastModifiedDateL( CStifItemParser& aItem ); |
|
362 virtual TInt GetRelationL( CStifItemParser& aItem ); |
|
363 virtual TInt UpdateRelationL( CStifItemParser& aItem ); |
|
364 virtual TInt RemoveRelationL( CStifItemParser& aItem ); |
|
365 virtual TInt RemoveRelationsL( CStifItemParser& aItem ); |
|
366 |
|
367 // Event test primitives. |
|
368 virtual TInt NewEventL( CStifItemParser& aItem ); |
|
369 virtual TInt AddEventL( CStifItemParser& aItem ); |
|
370 virtual TInt ObjectIdL( CStifItemParser& aItem ); |
|
371 virtual TInt TimeL( CStifItemParser& aItem ); |
|
372 virtual TInt SourceL( CStifItemParser& aItem ); |
|
373 virtual TInt ParticipantL( CStifItemParser& aItem ); |
|
374 virtual TInt GetEventL( CStifItemParser& aItem ); |
|
375 virtual TInt RemoveEventL( CStifItemParser& aItem ); |
|
376 virtual TInt RemoveEventsL( CStifItemParser& aItem ); |
|
377 //[TestMethods] - Do not remove |
|
378 |
|
379 // Metadata framework observer callback methods |
|
380 void HandleObjectNotification( CMdESession& aSession, |
|
381 TObserverNotificationType aType, |
|
382 const RArray<TItemId>& aObjectIdArray ); |
|
383 void HandleUriObjectNotification(CMdESession& aSession, |
|
384 TObserverNotificationType aType, |
|
385 const RArray<TItemId>& aObjectIdArray, |
|
386 const RPointerArray<HBufC>& aObjectUriArray); |
|
387 void HandleObjectPresentNotification(CMdESession& aSession, |
|
388 TBool aPresent, const RArray<TItemId>& aObjectIdArray); |
|
389 void HandleRelationNotification( CMdESession& aSession, |
|
390 TObserverNotificationType aType, |
|
391 const RArray<TItemId>& aRelationIdArray ); |
|
392 void HandleRelationItemNotification(CMdESession& aSession, |
|
393 TObserverNotificationType aType, |
|
394 const RArray<TMdERelation>& aRelationArray); |
|
395 void HandleRelationPresentNotification(CMdESession& aSession, |
|
396 TBool aPresent, const RArray<TItemId>& aRelationIdArray); |
|
397 void HandleEventNotification( CMdESession& aSession, |
|
398 TObserverNotificationType aType, |
|
399 const RArray<TItemId>& aEventIdArray ); |
|
400 void HandleSessionOpened( CMdESession& aSession, TInt aError ); |
|
401 void HandleSessionError( CMdESession& aSession, TInt aError ); |
|
402 void HandleSchemaModified(); |
|
403 TInt QueryObjectL( CStifItemParser& aItem ); |
|
404 TInt QueryRelationL( CStifItemParser& aItem ); |
|
405 TInt QueryEventL( CStifItemParser& aItem ); |
|
406 |
|
407 TInt TestPopulateDbL( CStifItemParser& aItem ); |
|
408 |
|
409 private: |
|
410 CMdEObjectDef& GetObjectDefStrL( CStifItemParser& aItem ); |
|
411 CMdERelationDef& GetRelationDefStrL( CStifItemParser& aItem ); |
|
412 static TQueryResultMode CMdETestScripter::ResultModeL(TDesC& aModeString); |
|
413 static TObjectConditionCompareMethod CompareMethodL( TDesC& aMethodString ); |
|
414 static TMdERangeType RangeTypeL( TDesC& aTypeString ); |
|
415 |
|
416 TInt GetObjectDefIndexL( CStifItemParser& aItem ); |
|
417 TInt GetRelationDefIndexL( CStifItemParser& aItem ); |
|
418 TInt GetEventDefIndexL( CStifItemParser& aItem ); |
|
419 TInt GetPropertyDefIndexL( CStifItemParser& aItem ); |
|
420 |
|
421 TInt GetObjectIndexL( CStifItemParser& aItem ); |
|
422 TInt GetEventIndexL( CStifItemParser& aItem ); |
|
423 TInt GetRelationIndexL( CStifItemParser& aItem ); |
|
424 TInt GetPropertyIndexL( CStifItemParser& aItem ); |
|
425 |
|
426 TInt GetLogicConditionIndexL( CStifItemParser& aItem ); |
|
427 TInt GetRelationConditionIndexL( CStifItemParser& aItem ); |
|
428 |
|
429 void AppendNameL(CDesCArrayFlat* aNameArray, const TDesC& aName) |
|
430 { |
|
431 TInt pos; |
|
432 TBuf<32> name(aName); |
|
433 pos = name.Find(_L("ARRAY_INDEX")); |
|
434 if ( pos != KErrNotFound ) |
|
435 { |
|
436 name.SetLength( pos ); |
|
437 name.AppendNum( aNameArray->Count() ); |
|
438 } |
|
439 if ( aNameArray->Find( name, pos ) ) |
|
440 { |
|
441 aNameArray->AppendL( name ); |
|
442 } |
|
443 else |
|
444 { // |
|
445 iLog->Log( _L( "indentifier = %S already used" ), &name ); |
|
446 User::Leave( KErrAlreadyExists ); |
|
447 } |
|
448 } |
|
449 |
|
450 |
|
451 public: |
|
452 |
|
453 TInt NewObjectQueryL( CStifItemParser& aItem ); |
|
454 TInt NewRelationQueryL( CStifItemParser& aItem ); |
|
455 TInt NewEventQueryL( CStifItemParser& aItem ); |
|
456 TInt AddPropertyFilterL( CStifItemParser& aItem ); |
|
457 TInt AppendOrderRuleL( CStifItemParser& aItem ); |
|
458 TInt NewLogicConditionL( CStifItemParser& aItem ); |
|
459 TInt AddLogicConditionL( CStifItemParser& aItem ); |
|
460 TInt AddObjectConditionL( CStifItemParser& aItem ); |
|
461 TInt AddPropertyConditionL( CStifItemParser& aItem ); |
|
462 TInt AddRelationConditionL( CStifItemParser& aItem ); |
|
463 TInt AddEventConditionL( CStifItemParser& aItem ); |
|
464 |
|
465 TInt ObjectConditionsL( CStifItemParser& aItem ); |
|
466 |
|
467 TInt RightL( CStifItemParser& aItem ); |
|
468 TInt LeftL( CStifItemParser& aItem ); |
|
469 TInt SetOperatorL( CStifItemParser& aItem ); |
|
470 TInt SetNegateL( CStifItemParser& aItem ); |
|
471 |
|
472 TInt FindL( CStifItemParser& aItem ); |
|
473 |
|
474 void HandleQueryCompleted( CMdEQuery& aQuery, TInt aError ); |
|
475 |
|
476 void HandleQueryNewResults(CMdEQuery& aQuery, |
|
477 TInt aFirstNewItemIndex, |
|
478 TInt aNewItemCount); |
|
479 TInt SetObjectQueryResultL( CStifItemParser& aItem ); |
|
480 TInt SetEventQueryResultL( CStifItemParser& aItem ); |
|
481 TInt SetRelationQueryResultL( CStifItemParser& aItem ); |
|
482 |
|
483 private: |
|
484 // Data |
|
485 TInt iError; |
|
486 |
|
487 RPointerArray<CMdEObjectDef> iObjectDefArray; |
|
488 RPointerArray<CMdERelationDef> iRelationDefArray; |
|
489 RPointerArray<CMdEEventDef> iEventDefArray; |
|
490 RPointerArray<CMdEPropertyDef> iPropertyDefArray; |
|
491 RPointerArray<CMdENamespaceDef> iNamespaceDefArray; |
|
492 |
|
493 RPointerArray<CMdEObject> iObjectArray; |
|
494 RPointerArray<CMdERelation> iRelationArray; |
|
495 RPointerArray<CMdEEvent> iEventArray; |
|
496 RPointerArray<CMdEProperty> iPropertyArray; |
|
497 RPointerArray<CMdELogicCondition> iLogicConditionArray; |
|
498 RPointerArray<CMdERelationCondition> iRelationConditionArray; |
|
499 RPointerArray<CMdEObjectCondition> iObjectConditionArray; |
|
500 RPointerArray<CMdEPropertyCondition> iPropertyConditionArray; |
|
501 RPointerArray<CMdEEventCondition> iEventConditionArray; |
|
502 |
|
503 // Result data from callbacks. |
|
504 TObserverNotificationType iNotificationType; |
|
505 CMdESession* iNotificationSession; |
|
506 RArray<TMdERelation> iNotificationRelationArray; |
|
507 RArray<TItemId> iNotificationItemIdArray; |
|
508 |
|
509 CDesCArrayFlat *iObjectDefNameArray; |
|
510 CDesCArrayFlat *iRelationDefNameArray; |
|
511 CDesCArrayFlat *iEventDefNameArray; |
|
512 CDesCArrayFlat *iPropertyDefNameArray; |
|
513 CDesCArrayFlat *iNamespaceDefNameArray; |
|
514 |
|
515 CDesCArrayFlat *iObjectNameArray; |
|
516 CDesCArrayFlat *iRelationNameArray; |
|
517 CDesCArrayFlat *iEventNameArray; |
|
518 |
|
519 CDesCArrayFlat *iPropertyNameArray; |
|
520 |
|
521 CDesCArrayFlat *iRelationConditionNameArray; |
|
522 CDesCArrayFlat *iObjectConditionNameArray; |
|
523 CDesCArrayFlat *iEventConditionNameArray; |
|
524 |
|
525 CDesCArrayFlat *iLogicConditionNameArray; |
|
526 CDesCArrayFlat *iPropertyConditionNameArray; |
|
527 |
|
528 RArray<TInt> iResultIndices; |
|
529 |
|
530 CMdESession* iMdeSession; |
|
531 CMdENamespaceDef* iDefaultNamespaceDef; |
|
532 CMdEQuery *iQuery; |
|
533 CMdELogicCondition *iQueryRoot; |
|
534 TFileName iFilePath; |
|
535 |
|
536 CMdETestScripterAO* iAsyncHandler; |
|
537 RMdEDataBuffer iMdEDataBuf; // Buffer for mde async request results |
|
538 RPointerArray<CMdEInstanceItem> iItemArray; |
|
539 TInt iItemCount; |
|
540 }; |
|
541 |
|
542 #endif // MDETESTSCRIPTER_H |
|
543 |
|
544 // End of File |
|