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