|
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 MMdEObjectPresentObserver, |
|
119 public MMdERelationObserver, |
|
120 public MMdERelationItemObserver, |
|
121 public MMdERelationPresentObserver, |
|
122 public MMdESessionObserver, |
|
123 public MMdEEventObserver, |
|
124 public MMdEQueryObserver |
|
125 { |
|
126 friend class CMdETestScripterAO; |
|
127 public: // Constructors and destructor |
|
128 |
|
129 /** |
|
130 * Two-phased constructor. |
|
131 */ |
|
132 static CMdETestScripter* NewL( CTestModuleIf& aTestModuleIf ); |
|
133 |
|
134 /** |
|
135 * Destructor. |
|
136 */ |
|
137 virtual ~CMdETestScripter(); |
|
138 |
|
139 public: // New functions |
|
140 |
|
141 public: // Functions from base classes |
|
142 virtual TInt RunMethodL( CStifItemParser& aItem ); |
|
143 |
|
144 protected: // New functions |
|
145 |
|
146 |
|
147 protected: // Functions from base classes |
|
148 |
|
149 |
|
150 private: |
|
151 |
|
152 /** |
|
153 * C++ default constructor. |
|
154 */ |
|
155 CMdETestScripter( CTestModuleIf& aTestModuleIf ); |
|
156 |
|
157 /** |
|
158 * By default Symbian 2nd phase constructor is private. |
|
159 */ |
|
160 void ConstructL(); |
|
161 |
|
162 /** |
|
163 * Frees all resources allocated from test methods. |
|
164 * @since ?Series60_version |
|
165 */ |
|
166 void Delete(); |
|
167 |
|
168 template <class T> T* SanitizeArrayIndexL( |
|
169 RPointerArray<T>& aArray, const CDesCArrayFlat& aNameArray, |
|
170 CStifItemParser& aItem ); |
|
171 CMdEInstanceItem* GetInstanceItemByArrayIndexL( |
|
172 TInt aMode, CStifItemParser& aItem ); |
|
173 void CheckTMdEObjectL( const TMdEObject& aTObject, const CMdEObject& aObject ); |
|
174 void CheckTMdERelationL( const TMdERelation& aTRelation, const CMdERelation& aRelation ); |
|
175 template <class T1, class T2> void CheckTInstanceL( const T1& aT1, const T2& aT2 ); |
|
176 void CheckTMdEObjectArrayL( |
|
177 const RArray<TMdEObject>& aTObjects, TInt objIndex, TInt aCount ); |
|
178 void CheckTMdERelationArrayL( |
|
179 const RArray<TMdERelation>& aTRelations, const TInt aObjIndex, const TInt aCount ); |
|
180 template <class T> void CheckTItemIdArrayL( |
|
181 const RArray<TItemId>& aTItemIds, const RPointerArray<T>& aArray, |
|
182 const TInt aIndex, const TInt aCount ); |
|
183 TInt CheckAsyncResultArrayL( TEventIf aEvent ); |
|
184 void FormInstanceItemArrayL( |
|
185 CStifItemParser& aItem, RPointerArray<CMdEInstanceItem>& aItemArray ) const; |
|
186 |
|
187 /** |
|
188 * Test methods are listed below. |
|
189 */ |
|
190 |
|
191 // Observer add/remove test primitives |
|
192 virtual TInt AddSchemaObserverL( CStifItemParser& aItem ); |
|
193 virtual TInt RemoveSchemaObserverL( CStifItemParser& aItem ); |
|
194 virtual TInt AddObjectObserverL( CStifItemParser& aItem ); |
|
195 virtual TInt RemoveObjectObserverL( CStifItemParser& aItem ); |
|
196 virtual TInt AddObjectPresentObserverL( CStifItemParser& aItem ); |
|
197 virtual TInt RemoveObjectPresentObserverL( CStifItemParser& aItem ); |
|
198 virtual TInt AddRelationObserverL( CStifItemParser& aItem ); |
|
199 virtual TInt RemoveRelationObserverL( CStifItemParser& aItem ); |
|
200 virtual TInt AddRelationItemObserverL( CStifItemParser& aItem ); |
|
201 virtual TInt RemoveRelationItemObserverL( CStifItemParser& aItem ); |
|
202 virtual TInt AddRelationPresentObserverL( CStifItemParser& aItem ); |
|
203 virtual TInt RemoveRelationPresentObserverL( CStifItemParser& aItem ); |
|
204 virtual TInt AddEventObserverL( CStifItemParser& aItem ); |
|
205 virtual TInt RemoveEventObserverL( CStifItemParser& aItem ); |
|
206 |
|
207 // Notification resulated test primitives |
|
208 virtual TInt VerifyTItemIdsL( CStifItemParser& aItem ); |
|
209 virtual TInt VerifyMdERelationsL( CStifItemParser& aItem ); |
|
210 virtual TInt VerifyObserverNotificationTypeL( CStifItemParser& aItem ); |
|
211 |
|
212 // Metadata/schema/namespace test primitives. |
|
213 virtual TInt ObjectDefCountL( CStifItemParser& aItem ); |
|
214 virtual TInt ObjectDefL( CStifItemParser& aItem ); |
|
215 virtual TInt GetObjectDefL( CStifItemParser& aItem ); |
|
216 virtual TInt RelationDefCountL( CStifItemParser& aItem ); |
|
217 virtual TInt RelationDefL( CStifItemParser& aItem ); |
|
218 virtual TInt GetRelationDefL( CStifItemParser& aItem ); |
|
219 virtual TInt EventDefCountL( CStifItemParser& aItem ); |
|
220 virtual TInt EventDefL( CStifItemParser& aItem ); |
|
221 virtual TInt GetEventDefL( CStifItemParser& aItem ); |
|
222 |
|
223 virtual TInt ExportMetadataL( CStifItemParser& aItem ); |
|
224 virtual TInt ImportMetadataL( CStifItemParser& aItem ); |
|
225 virtual TInt ImportSchemaL( CStifItemParser& aItem ); |
|
226 virtual TInt NamespaceDefCountL( CStifItemParser& aItem ); |
|
227 virtual TInt NamespaceDefL( CStifItemParser& aItem ); |
|
228 virtual TInt GetNamespaceDefL( CStifItemParser& aItem ); |
|
229 virtual TInt ResetNamespaceDefArray( CStifItemParser& aItem ); |
|
230 virtual TInt GetDefaultNamespaceDefL( CStifItemParser& aItem ); |
|
231 virtual TInt LoadSchemaL( CStifItemParser& aItem ); |
|
232 virtual TInt EngineSessionL( CStifItemParser& aItem ); |
|
233 virtual TInt GetSchemaVersionL( CStifItemParser& aItem ); |
|
234 virtual TInt SetObjectToPresentByGuidL( CStifItemParser& aItem ); |
|
235 |
|
236 // Item / InstanceItem test primitives. |
|
237 virtual TInt BelongsToSessionL( CStifItemParser& aItem ); |
|
238 virtual TInt SessionL( CStifItemParser& aItem ); |
|
239 virtual TInt InDatabaseL( CStifItemParser& aItem ); |
|
240 virtual TInt AddItemsL( CStifItemParser& aItem ); |
|
241 virtual TInt UpdateItemsL( CStifItemParser& aItem ); |
|
242 |
|
243 // Definition test primitives. |
|
244 virtual TInt AddRelationDefL( CStifItemParser& aItem ); |
|
245 virtual TInt AddEventDefL( CStifItemParser& aItem ); |
|
246 virtual TInt PropertyDefCountL( CStifItemParser& aItem ); |
|
247 virtual TInt PropertyDefL( CStifItemParser& aItem ); |
|
248 virtual TInt GetPropertyDefL( CStifItemParser& aItem ); |
|
249 virtual TInt MandatoryL( CStifItemParser& aItem ); |
|
250 virtual TInt MinInt32ValueL( CStifItemParser& aItem ); |
|
251 virtual TInt MaxInt32ValueL( CStifItemParser& aItem ); |
|
252 virtual TInt MinUint32ValueL( CStifItemParser& aItem ); |
|
253 virtual TInt MaxUint32ValueL( CStifItemParser& aItem ); |
|
254 virtual TInt MinInt64ValueL( CStifItemParser& aItem ); |
|
255 virtual TInt MaxInt64ValueL( CStifItemParser& aItem ); |
|
256 virtual TInt MinRealValueL( CStifItemParser& aItem ); |
|
257 virtual TInt MaxRealValueL( CStifItemParser& aItem ); |
|
258 virtual TInt MinTimeValueL( CStifItemParser& aItem ); |
|
259 virtual TInt MaxTimeValueL( CStifItemParser& aItem ); |
|
260 virtual TInt MinTextLengthL( CStifItemParser& aItem ); |
|
261 virtual TInt MaxTextLengthL( CStifItemParser& aItem ); |
|
262 virtual TInt CompareL( CStifItemParser& aItem ); |
|
263 virtual TInt ParentL( CStifItemParser& aItem ); |
|
264 virtual TInt NameL( CStifItemParser& aItem ); |
|
265 virtual TInt ReadOnlyL( CStifItemParser& aItem ); |
|
266 virtual TInt DefL( CStifItemParser& aItem ); |
|
267 |
|
268 // Object test primitives. |
|
269 virtual TInt SetDefL( CStifItemParser& aItem ); |
|
270 virtual TInt UriL( CStifItemParser& aItem ); |
|
271 virtual TInt SetUriL( CStifItemParser& aItem ); |
|
272 virtual TInt ConfidentialL( CStifItemParser& aItem ); |
|
273 virtual TInt SetConfidentialL( CStifItemParser& aItem ); |
|
274 virtual TInt PlaceholderL( CStifItemParser& aItem ); |
|
275 virtual TInt SetPlaceholderL( CStifItemParser& aItem ); |
|
276 virtual TInt MediaIdL( CStifItemParser& aItem ); |
|
277 virtual TInt SetMediaIdL( CStifItemParser& aItem ); |
|
278 virtual TInt UsageCountL( CStifItemParser& aItem ); |
|
279 virtual TInt GuidL( CStifItemParser& aItem ); |
|
280 virtual TInt SetGuidL( CStifItemParser& aItem ); |
|
281 virtual TInt OpenForModificationsL( CStifItemParser& aItem ); |
|
282 virtual TInt NewObjectL( CStifItemParser& aItem ); |
|
283 virtual TInt AddObjectL( CStifItemParser& aItem ); |
|
284 virtual TInt AddObjectsL( CStifItemParser& aItem ); |
|
285 virtual TInt GetObjectL( CStifItemParser& aItem ); |
|
286 virtual TInt GetFullObjectL( CStifItemParser& aItem ); |
|
287 virtual TInt CheckObjectL( CStifItemParser& aItem ); |
|
288 virtual TInt RemoveObjectL( CStifItemParser& aItem ); |
|
289 virtual TInt RemoveObjectsL( CStifItemParser& aItem ); |
|
290 virtual TInt RemoveAllObjectsL( CStifItemParser& aItem ); |
|
291 virtual TInt OpenObjectL( CStifItemParser& aItem ); |
|
292 virtual TInt OpenFullObjectL( CStifItemParser& aItem ); |
|
293 virtual TInt CommitObjectL( CStifItemParser& aItem ); |
|
294 virtual TInt CommitObjectsL( CStifItemParser& aItem ); |
|
295 virtual TInt CancelObjectL( CStifItemParser& aItem ); |
|
296 |
|
297 virtual TInt PropertyL( CStifItemParser& aItem ); |
|
298 virtual TInt PropertyCountL( CStifItemParser& aItem ); |
|
299 virtual TInt AddBoolPropertyL( CStifItemParser& aItem ); |
|
300 virtual TInt AddInt8PropertyL( CStifItemParser& aItem ); |
|
301 virtual TInt AddUint8PropertyL( CStifItemParser& aItem ); |
|
302 virtual TInt AddInt16PropertyL( CStifItemParser& aItem ); |
|
303 virtual TInt AddUint16PropertyL( CStifItemParser& aItem ); |
|
304 virtual TInt AddInt32PropertyL( CStifItemParser& aItem ); |
|
305 virtual TInt AddUint32PropertyL( CStifItemParser& aItem ); |
|
306 virtual TInt AddInt64PropertyL( CStifItemParser& aItem ); |
|
307 virtual TInt AddReal32PropertyL( CStifItemParser& aItem ); |
|
308 virtual TInt AddReal64PropertyL( CStifItemParser& aItem ); |
|
309 virtual TInt AddTextPropertyL( CStifItemParser& aItem ); |
|
310 virtual TInt AddTimePropertyL( CStifItemParser& aItem ); |
|
311 |
|
312 // Property test primitives. |
|
313 virtual TInt ObjectL( CStifItemParser& aItem ); |
|
314 virtual TInt BoolValueL( CStifItemParser& aItem ); |
|
315 virtual TInt Int8ValueL( CStifItemParser& aItem ); |
|
316 virtual TInt Uint8ValueL( CStifItemParser& aItem ); |
|
317 virtual TInt Int16ValueL( CStifItemParser& aItem ); |
|
318 virtual TInt Uint16ValueL( CStifItemParser& aItem ); |
|
319 virtual TInt Int32ValueL( CStifItemParser& aItem ); |
|
320 virtual TInt Uint32ValueL( CStifItemParser& aItem ); |
|
321 virtual TInt Int64ValueL( CStifItemParser& aItem ); |
|
322 virtual TInt Real32ValueL( CStifItemParser& aItem ); |
|
323 virtual TInt Real64ValueL( CStifItemParser& aItem ); |
|
324 virtual TInt TimeValueL( CStifItemParser& aItem ); |
|
325 virtual TInt TextValueL( CStifItemParser& aItem ); |
|
326 virtual TInt SetBoolValueL( CStifItemParser& aItem ); |
|
327 virtual TInt SetInt8ValueL( CStifItemParser& aItem ); |
|
328 virtual TInt SetUint8ValueL( CStifItemParser& aItem ); |
|
329 virtual TInt SetInt16ValueL( CStifItemParser& aItem ); |
|
330 virtual TInt SetUint16ValueL( CStifItemParser& aItem ); |
|
331 virtual TInt SetInt32ValueL( CStifItemParser& aItem ); |
|
332 virtual TInt SetUint32ValueL( CStifItemParser& aItem ); |
|
333 virtual TInt SetInt64ValueL( CStifItemParser& aItem ); |
|
334 virtual TInt SetReal32ValueL( CStifItemParser& aItem ); |
|
335 virtual TInt SetReal64ValueL( CStifItemParser& aItem ); |
|
336 virtual TInt SetTimeValueL( CStifItemParser& aItem ); |
|
337 virtual TInt SetTextValueL( CStifItemParser& aItem ); |
|
338 virtual TInt RemovePropertyL( CStifItemParser& aItem ); |
|
339 virtual TInt MovePropertiesL( CStifItemParser& aItem ); |
|
340 |
|
341 // Free text test primitives. |
|
342 virtual TInt FreeTextCountL( CStifItemParser& aItem ); |
|
343 virtual TInt FreeTextL( CStifItemParser& aItem ); |
|
344 virtual TInt FreeTextIndexL( CStifItemParser& aItem ); |
|
345 virtual TInt AddFreeTextL( CStifItemParser& aItem ); |
|
346 virtual TInt RemoveFreeTextL( CStifItemParser& aItem ); |
|
347 |
|
348 // Relation test primitives. |
|
349 virtual TInt NewRelationL( CStifItemParser& aItem ); |
|
350 virtual TInt AddRelationL( CStifItemParser& aItem ); |
|
351 virtual TInt LeftObjectIdL( CStifItemParser& aItem ); |
|
352 virtual TInt RightObjectIdL( CStifItemParser& aItem ); |
|
353 virtual TInt ParameterL( CStifItemParser& aItem ); |
|
354 virtual TInt SetParameterL( CStifItemParser& aItem ); |
|
355 virtual TInt SetLeftObjectIdL( CStifItemParser& aItem ); |
|
356 virtual TInt SetRightObjectIdL( CStifItemParser& aItem ); |
|
357 virtual TInt LastModifiedDateL( CStifItemParser& aItem ); |
|
358 virtual TInt SetLastModifiedDateL( CStifItemParser& aItem ); |
|
359 virtual TInt GetRelationL( CStifItemParser& aItem ); |
|
360 virtual TInt UpdateRelationL( CStifItemParser& aItem ); |
|
361 virtual TInt RemoveRelationL( CStifItemParser& aItem ); |
|
362 virtual TInt RemoveRelationsL( CStifItemParser& aItem ); |
|
363 |
|
364 // Event test primitives. |
|
365 virtual TInt NewEventL( CStifItemParser& aItem ); |
|
366 virtual TInt AddEventL( CStifItemParser& aItem ); |
|
367 virtual TInt ObjectIdL( CStifItemParser& aItem ); |
|
368 virtual TInt TimeL( CStifItemParser& aItem ); |
|
369 virtual TInt SourceL( CStifItemParser& aItem ); |
|
370 virtual TInt ParticipantL( CStifItemParser& aItem ); |
|
371 virtual TInt GetEventL( CStifItemParser& aItem ); |
|
372 virtual TInt RemoveEventL( CStifItemParser& aItem ); |
|
373 virtual TInt RemoveEventsL( CStifItemParser& aItem ); |
|
374 //[TestMethods] - Do not remove |
|
375 |
|
376 // Metadata framework observer callback methods |
|
377 void HandleObjectNotification( CMdESession& aSession, |
|
378 TObserverNotificationType aType, |
|
379 const RArray<TItemId>& aObjectIdArray ); |
|
380 void HandleObjectPresentNotification(CMdESession& aSession, |
|
381 TBool aPresent, const RArray<TItemId>& aObjectIdArray); |
|
382 void HandleRelationNotification( CMdESession& aSession, |
|
383 TObserverNotificationType aType, |
|
384 const RArray<TItemId>& aRelationIdArray ); |
|
385 void HandleRelationItemNotification(CMdESession& aSession, |
|
386 TObserverNotificationType aType, |
|
387 const RArray<TMdERelation>& aRelationArray); |
|
388 void HandleRelationPresentNotification(CMdESession& aSession, |
|
389 TBool aPresent, const RArray<TItemId>& aRelationIdArray); |
|
390 void HandleEventNotification( CMdESession& aSession, |
|
391 TObserverNotificationType aType, |
|
392 const RArray<TItemId>& aEventIdArray ); |
|
393 void HandleSessionOpened( CMdESession& aSession, TInt aError ); |
|
394 void HandleSessionError( CMdESession& aSession, TInt aError ); |
|
395 void HandleSchemaModified(); |
|
396 TInt QueryObjectL( CStifItemParser& aItem ); |
|
397 TInt QueryRelationL( CStifItemParser& aItem ); |
|
398 TInt QueryEventL( CStifItemParser& aItem ); |
|
399 |
|
400 TInt TestPopulateDbL( CStifItemParser& aItem ); |
|
401 |
|
402 private: |
|
403 CMdEObjectDef& GetObjectDefStrL( CStifItemParser& aItem ); |
|
404 CMdERelationDef& GetRelationDefStrL( CStifItemParser& aItem ); |
|
405 static TQueryResultMode CMdETestScripter::ResultModeL(TDesC& aModeString); |
|
406 static TObjectConditionCompareMethod CompareMethodL( TDesC& aMethodString ); |
|
407 static TMdERangeType RangeTypeL( TDesC& aTypeString ); |
|
408 |
|
409 TInt GetObjectDefIndexL( CStifItemParser& aItem ); |
|
410 TInt GetRelationDefIndexL( CStifItemParser& aItem ); |
|
411 TInt GetEventDefIndexL( CStifItemParser& aItem ); |
|
412 TInt GetPropertyDefIndexL( CStifItemParser& aItem ); |
|
413 |
|
414 TInt GetObjectIndexL( CStifItemParser& aItem ); |
|
415 TInt GetEventIndexL( CStifItemParser& aItem ); |
|
416 TInt GetRelationIndexL( CStifItemParser& aItem ); |
|
417 TInt GetPropertyIndexL( CStifItemParser& aItem ); |
|
418 |
|
419 TInt GetLogicConditionIndexL( CStifItemParser& aItem ); |
|
420 TInt GetRelationConditionIndexL( CStifItemParser& aItem ); |
|
421 |
|
422 void AppendNameL(CDesCArrayFlat* aNameArray, const TDesC& aName) |
|
423 { |
|
424 TInt pos; |
|
425 TBuf<32> name(aName); |
|
426 pos = name.Find(_L("ARRAY_INDEX")); |
|
427 if ( pos != KErrNotFound ) |
|
428 { |
|
429 name.SetLength( pos ); |
|
430 name.AppendNum( aNameArray->Count() ); |
|
431 } |
|
432 if ( aNameArray->Find( name, pos ) ) |
|
433 { |
|
434 aNameArray->AppendL( name ); |
|
435 } |
|
436 else |
|
437 { // |
|
438 iLog->Log( _L( "indentifier = %S already used" ), &name ); |
|
439 User::Leave( KErrAlreadyExists ); |
|
440 } |
|
441 } |
|
442 |
|
443 |
|
444 public: |
|
445 |
|
446 TInt NewObjectQueryL( CStifItemParser& aItem ); |
|
447 TInt NewRelationQueryL( CStifItemParser& aItem ); |
|
448 TInt NewEventQueryL( CStifItemParser& aItem ); |
|
449 TInt AddPropertyFilterL( CStifItemParser& aItem ); |
|
450 TInt AppendOrderRuleL( CStifItemParser& aItem ); |
|
451 TInt NewLogicConditionL( CStifItemParser& aItem ); |
|
452 TInt AddLogicConditionL( CStifItemParser& aItem ); |
|
453 TInt AddObjectConditionL( CStifItemParser& aItem ); |
|
454 TInt AddPropertyConditionL( CStifItemParser& aItem ); |
|
455 TInt AddRelationConditionL( CStifItemParser& aItem ); |
|
456 TInt AddEventConditionL( CStifItemParser& aItem ); |
|
457 |
|
458 TInt ObjectConditionsL( CStifItemParser& aItem ); |
|
459 |
|
460 TInt RightL( CStifItemParser& aItem ); |
|
461 TInt LeftL( CStifItemParser& aItem ); |
|
462 TInt SetOperatorL( CStifItemParser& aItem ); |
|
463 TInt SetNegateL( CStifItemParser& aItem ); |
|
464 |
|
465 TInt FindL( CStifItemParser& aItem ); |
|
466 |
|
467 void HandleQueryCompleted( CMdEQuery& aQuery, TInt aError ); |
|
468 |
|
469 void HandleQueryNewResults(CMdEQuery& aQuery, |
|
470 TInt aFirstNewItemIndex, |
|
471 TInt aNewItemCount); |
|
472 TInt SetObjectQueryResultL( CStifItemParser& aItem ); |
|
473 TInt SetEventQueryResultL( CStifItemParser& aItem ); |
|
474 TInt SetRelationQueryResultL( CStifItemParser& aItem ); |
|
475 |
|
476 private: |
|
477 // Data |
|
478 TInt iError; |
|
479 |
|
480 RPointerArray<CMdEObjectDef> iObjectDefArray; |
|
481 RPointerArray<CMdERelationDef> iRelationDefArray; |
|
482 RPointerArray<CMdEEventDef> iEventDefArray; |
|
483 RPointerArray<CMdEPropertyDef> iPropertyDefArray; |
|
484 RPointerArray<CMdENamespaceDef> iNamespaceDefArray; |
|
485 |
|
486 RPointerArray<CMdEObject> iObjectArray; |
|
487 RPointerArray<CMdERelation> iRelationArray; |
|
488 RPointerArray<CMdEEvent> iEventArray; |
|
489 RPointerArray<CMdEProperty> iPropertyArray; |
|
490 RPointerArray<CMdELogicCondition> iLogicConditionArray; |
|
491 RPointerArray<CMdERelationCondition> iRelationConditionArray; |
|
492 RPointerArray<CMdEObjectCondition> iObjectConditionArray; |
|
493 RPointerArray<CMdEPropertyCondition> iPropertyConditionArray; |
|
494 RPointerArray<CMdEEventCondition> iEventConditionArray; |
|
495 |
|
496 // Result data from callbacks. |
|
497 TObserverNotificationType iNotificationType; |
|
498 CMdESession* iNotificationSession; |
|
499 RArray<TMdERelation> iNotificationRelationArray; |
|
500 RArray<TItemId> iNotificationItemIdArray; |
|
501 |
|
502 CDesCArrayFlat *iObjectDefNameArray; |
|
503 CDesCArrayFlat *iRelationDefNameArray; |
|
504 CDesCArrayFlat *iEventDefNameArray; |
|
505 CDesCArrayFlat *iPropertyDefNameArray; |
|
506 CDesCArrayFlat *iNamespaceDefNameArray; |
|
507 |
|
508 CDesCArrayFlat *iObjectNameArray; |
|
509 CDesCArrayFlat *iRelationNameArray; |
|
510 CDesCArrayFlat *iEventNameArray; |
|
511 |
|
512 CDesCArrayFlat *iPropertyNameArray; |
|
513 |
|
514 CDesCArrayFlat *iRelationConditionNameArray; |
|
515 CDesCArrayFlat *iObjectConditionNameArray; |
|
516 CDesCArrayFlat *iEventConditionNameArray; |
|
517 |
|
518 CDesCArrayFlat *iLogicConditionNameArray; |
|
519 CDesCArrayFlat *iPropertyConditionNameArray; |
|
520 |
|
521 RArray<TInt> iResultIndices; |
|
522 |
|
523 CMdESession* iMdeSession; |
|
524 CMdENamespaceDef* iDefaultNamespaceDef; |
|
525 CMdEQuery *iQuery; |
|
526 CMdELogicCondition *iQueryRoot; |
|
527 TFileName iFilePath; |
|
528 |
|
529 CMdETestScripterAO* iAsyncHandler; |
|
530 RMdEDataBuffer iMdEDataBuf; // Buffer for mde async request results |
|
531 RPointerArray<CMdEInstanceItem> iItemArray; |
|
532 TInt iItemCount; |
|
533 }; |
|
534 |
|
535 #endif // MDETESTSCRIPTER_H |
|
536 |
|
537 // End of File |