os/mm/mmlibs/mmfw/tsrc/mmfunittest/srssnk/TSU_MMF_SRSSNK.h
author sl
Tue, 10 Jun 2014 14:32:02 +0200
changeset 1 260cb5ec6c19
permissions -rw-r--r--
Update contrib.
sl@0
     1
// Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
sl@0
     2
// All rights reserved.
sl@0
     3
// This component and the accompanying materials are made available
sl@0
     4
// under the terms of "Eclipse Public License v1.0"
sl@0
     5
// which accompanies this distribution, and is available
sl@0
     6
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
sl@0
     7
//
sl@0
     8
// Initial Contributors:
sl@0
     9
// Nokia Corporation - initial contribution.
sl@0
    10
//
sl@0
    11
// Contributors:
sl@0
    12
//
sl@0
    13
// Description:
sl@0
    14
//
sl@0
    15
sl@0
    16
#ifndef __TSU_MMF_SRSSNK_H__
sl@0
    17
#define __TSU_MMF_SRSSNK_H__
sl@0
    18
sl@0
    19
#include <e32math.h>
sl@0
    20
sl@0
    21
#include <testframework.h>
sl@0
    22
#include <mmf/server/mmfdatapath.h>
sl@0
    23
sl@0
    24
#include "CmmfTestControllerUIDs.hrh"
sl@0
    25
#include <mmf/plugin/mmfformatimplementationuids.hrh>
sl@0
    26
#include "TS_Codes.h"
sl@0
    27
sl@0
    28
#include <mmf/common/mmffourcc.h>
sl@0
    29
#include <mmf/common/mmfcontroller.h>
sl@0
    30
#include <mmf/server/mmfdes.h>
sl@0
    31
#include <mmf/server/mmffile.h>
sl@0
    32
#include <mmf/server/mmfurl.h>
sl@0
    33
#include <mmf/server/mmfaudioinput.h>
sl@0
    34
#include <mmf/server/mmfaudiooutput.h>
sl@0
    35
#include "../../../../../mmplugins/mmfwplugins/src/Plugin/Format/MmfWAVFormat/mmfwavformat.h"
sl@0
    36
sl@0
    37
const TInt KTestBufferSize = 1032; // 1024 + 8
sl@0
    38
const TInt KTestDataSize = 51200; // 50K
sl@0
    39
const TInt KTestOverDataSize = KTestDataSize + 20;
sl@0
    40
sl@0
    41
const TInt KTestReadSize = KTestBufferSize/2;
sl@0
    42
const TInt KTestOverReadSize = KTestBufferSize + 10;
sl@0
    43
sl@0
    44
const TInt KTestWriteSize = KTestBufferSize/2;
sl@0
    45
const TInt KTestOverWriteSize = KTestBufferSize + 10;
sl@0
    46
sl@0
    47
class CTestSuite;
sl@0
    48
class CTestSuite_MMF_SRSSNK;
sl@0
    49
sl@0
    50
enum TSourceType
sl@0
    51
	{
sl@0
    52
	ESourceTypeDes,
sl@0
    53
	ESourceTypeFile,
sl@0
    54
	ESourceTypeFileHandle,
sl@0
    55
	ESourceTypeAudio
sl@0
    56
	};
sl@0
    57
	
sl@0
    58
enum TSinkType
sl@0
    59
	{
sl@0
    60
	ESinkTypeFile,
sl@0
    61
	ESinkTypeFileHandle
sl@0
    62
	};
sl@0
    63
sl@0
    64
sl@0
    65
class TThreadData
sl@0
    66
	{
sl@0
    67
public:
sl@0
    68
	TThreadData()
sl@0
    69
	: iFileSize(-1), iErr(KErrNone)
sl@0
    70
	{ }
sl@0
    71
sl@0
    72
public:
sl@0
    73
	CMMFFile* iFilePtr;
sl@0
    74
	MAsyncEventHandler *iEventHandler;
sl@0
    75
	TInt iFileSize;
sl@0
    76
	TInt iErr;
sl@0
    77
	};
sl@0
    78
sl@0
    79
const TUid KTestDummyUid = { -1 };
sl@0
    80
class CMMFTestBuffer : public CMMFBuffer
sl@0
    81
	{
sl@0
    82
public:
sl@0
    83
	CMMFTestBuffer()
sl@0
    84
	: CMMFBuffer(KTestDummyUid)
sl@0
    85
	{ }
sl@0
    86
sl@0
    87
	TUint BufferSize() const
sl@0
    88
	{ return 0; }
sl@0
    89
	};
sl@0
    90
	
sl@0
    91
	
sl@0
    92
MDataSink* CreateFileSinkL(TSinkType aSinkType, RFs& aFs, const TDesC& aFileName); 
sl@0
    93
MDataSource* CreateFileSourceL(TSourceType aSourceType, RFs& aFs, const TDesC& aFileName); 
sl@0
    94
MDataSource* CreateFileHandleSourceL(RFs& aFs, const TDesC& aFileName);
sl@0
    95
sl@0
    96
class CMMFDummySource : public CBase, public MDataSource, public MAsyncEventHandler
sl@0
    97
	{
sl@0
    98
public:
sl@0
    99
	CMMFDummySource();
sl@0
   100
	
sl@0
   101
	void SetExpectedEmptyCount(TInt aExpectedEmptyCount)
sl@0
   102
	{ iExpectedEmptyCount = aExpectedEmptyCount; }
sl@0
   103
sl@0
   104
	TBool BufferEmptiedOk()
sl@0
   105
		{
sl@0
   106
		TBool bufferEmptiedOk = iBufferEmptiedOk;
sl@0
   107
		if (bufferEmptiedOk)
sl@0
   108
			ResetBufferEmptiedOk();
sl@0
   109
sl@0
   110
		return bufferEmptiedOk;
sl@0
   111
		}
sl@0
   112
sl@0
   113
	void ResetBufferEmptiedOk()
sl@0
   114
	{ iBufferEmptiedOk = EFalse ; iEmptyCount = 0 ; iErrorCount = 0 ; iExpectedEmptyCount = 1; } 
sl@0
   115
	
sl@0
   116
	// From MDataSource
sl@0
   117
	TFourCC SourceDataTypeCode(TMediaId aMediaId);
sl@0
   118
	void FillBufferL(CMMFBuffer* aBuffer, MDataSink* aConsumer, TMediaId aMediaId);
sl@0
   119
	void BufferEmptiedL(CMMFBuffer* aBuffer);
sl@0
   120
	TBool CanCreateSourceBuffer();
sl@0
   121
	CMMFBuffer* CreateSourceBufferL(TMediaId aMediaId, TBool &aReference);
sl@0
   122
sl@0
   123
	// MAsyncEventHandler
sl@0
   124
	TInt SendEventToClient(const TMMFEvent& aEvent);
sl@0
   125
sl@0
   126
	TInt Error()
sl@0
   127
	{ ResetBufferEmptiedOk() ; return iError; }
sl@0
   128
sl@0
   129
	TInt ErrorCount()
sl@0
   130
	{ return iErrorCount; }
sl@0
   131
sl@0
   132
	void SetFillBuffer()
sl@0
   133
	{ iFillBuffer = ETrue; }
sl@0
   134
sl@0
   135
	void SetActiveScheduler()
sl@0
   136
	{ iActiveScheduler = CActiveScheduler::Current(); }
sl@0
   137
sl@0
   138
	void ClearActiveScheduler()
sl@0
   139
	{ iActiveScheduler = NULL; }
sl@0
   140
sl@0
   141
	CMMFBuffer* MmfBuffer()
sl@0
   142
	{ return iBuffer; }
sl@0
   143
sl@0
   144
protected:
sl@0
   145
	void ConstructSourceL(const TDesC8& aInitData);
sl@0
   146
sl@0
   147
private:
sl@0
   148
	TFourCC iSourceDataTypeCode;
sl@0
   149
	TBool iBufferEmptiedOk;
sl@0
   150
sl@0
   151
	TInt iEmptyCount;
sl@0
   152
	TInt iExpectedEmptyCount;
sl@0
   153
sl@0
   154
	CActiveScheduler *iActiveScheduler;
sl@0
   155
	TInt iError;
sl@0
   156
	TInt iErrorCount;
sl@0
   157
sl@0
   158
	TBool iFillBuffer;
sl@0
   159
sl@0
   160
	CMMFBuffer* iBuffer;	// buffer returned in BufferEmptiedL callback
sl@0
   161
	};
sl@0
   162
sl@0
   163
sl@0
   164
class CMMFDummySink : public CBase, public MDataSink, public MAsyncEventHandler
sl@0
   165
	{
sl@0
   166
public:
sl@0
   167
	CMMFDummySink();
sl@0
   168
	
sl@0
   169
	void SetExpectedFillCount(TInt aExpectedFillCount)
sl@0
   170
	{ iExpectedFillCount = aExpectedFillCount; }
sl@0
   171
sl@0
   172
	TBool BufferFilledOk()
sl@0
   173
		{
sl@0
   174
		TBool bufferFilledOk = iBufferFilledOk;
sl@0
   175
		if (bufferFilledOk)
sl@0
   176
			ResetBufferFilledOk();
sl@0
   177
sl@0
   178
		return bufferFilledOk;
sl@0
   179
		}
sl@0
   180
sl@0
   181
	void ResetBufferFilledOk()
sl@0
   182
	{ iBufferFilledOk = EFalse ; iFillCount = 0 ; iErrorCount = 0 ; iExpectedFillCount = 1; }
sl@0
   183
sl@0
   184
	void BufferFilledError();
sl@0
   185
	
sl@0
   186
	// From MDataSink
sl@0
   187
	TFourCC SinkDataTypeCode(TMediaId aMediaId);
sl@0
   188
	void EmptyBufferL(CMMFBuffer* aBuffer, MDataSource* aSupplier, TMediaId aMediaId);
sl@0
   189
	void BufferFilledL(CMMFBuffer* aBuffer);
sl@0
   190
	TBool CanCreateSinkBuffer();
sl@0
   191
	CMMFBuffer* CreateSinkBufferL(TMediaId aMediaId, TBool &aReference);
sl@0
   192
sl@0
   193
	// MAsyncEventHandler
sl@0
   194
	TInt SendEventToClient(const TMMFEvent& aEvent);
sl@0
   195
sl@0
   196
	TInt Error()
sl@0
   197
	{ ResetBufferFilledOk() ; return iError; }
sl@0
   198
sl@0
   199
	TInt ErrorCount()
sl@0
   200
	{ return iErrorCount; }
sl@0
   201
sl@0
   202
	CMMFBuffer* MmfBuffer()
sl@0
   203
	{ return iBuffer; }
sl@0
   204
sl@0
   205
protected:
sl@0
   206
	void ConstructSinkL(const TDesC8& aInitData);
sl@0
   207
sl@0
   208
private:
sl@0
   209
	TFourCC iSinkDataTypeCode;
sl@0
   210
	TBool iBufferFilledOk;
sl@0
   211
sl@0
   212
	TInt iFillCount;
sl@0
   213
	TInt iExpectedFillCount;
sl@0
   214
sl@0
   215
	CActiveScheduler *iActiveScheduler;
sl@0
   216
	TInt iError;
sl@0
   217
	TInt iErrorCount;
sl@0
   218
sl@0
   219
	CMMFBuffer* iBuffer;	// buffer returned in BufferFilledL callback
sl@0
   220
	};
sl@0
   221
sl@0
   222
class TTestStep
sl@0
   223
	{
sl@0
   224
public:
sl@0
   225
	TTestStep()
sl@0
   226
	: iSource(NULL), iSink(NULL)
sl@0
   227
	{ }
sl@0
   228
sl@0
   229
	TTestStep(MDataSource* aSource)
sl@0
   230
	: iSource(aSource), iSink(NULL)
sl@0
   231
	{ }
sl@0
   232
	
sl@0
   233
	TTestStep(MDataSink* aSink)
sl@0
   234
	: iSource(NULL), iSink(aSink)
sl@0
   235
	{ }
sl@0
   236
sl@0
   237
	TTestStep(MDataSource* aSource, MDataSink* aSink)
sl@0
   238
	: iSource(aSource), iSink(aSink)
sl@0
   239
	{ }
sl@0
   240
sl@0
   241
	virtual TVerdict DoTestStepL() = 0;
sl@0
   242
sl@0
   243
	virtual void DoTestPreambleL();
sl@0
   244
	virtual TVerdict DoTestPostambleL(TBool aCheck);
sl@0
   245
	virtual TVerdict DoNegativeTestPostambleL();
sl@0
   246
	virtual MDataSource* CreateSourceL(TSourceType aSourceType, HBufC8* aDes);
sl@0
   247
sl@0
   248
public:
sl@0
   249
	MDataSource* iSource;
sl@0
   250
	MDataSink* iSink;
sl@0
   251
	};
sl@0
   252
sl@0
   253
sl@0
   254
class TFileTestStep : public TTestStep
sl@0
   255
	{
sl@0
   256
public:
sl@0
   257
	TFileTestStep()
sl@0
   258
	: iFileFailureExpected(EFalse)
sl@0
   259
	{ }
sl@0
   260
sl@0
   261
	TFileTestStep(MDataSource* aSource)
sl@0
   262
	: TTestStep(aSource), iFileFailureExpected(EFalse)
sl@0
   263
	{ }
sl@0
   264
	
sl@0
   265
	TFileTestStep(MDataSink* aSink)
sl@0
   266
	: TTestStep(aSink), iFileFailureExpected(EFalse)
sl@0
   267
	{ }
sl@0
   268
sl@0
   269
	TFileTestStep(MDataSource* aSource, MDataSink* aSink)
sl@0
   270
	: TTestStep(aSource, aSink), iFileFailureExpected(EFalse)
sl@0
   271
	{ }
sl@0
   272
sl@0
   273
	TVerdict DoTestPostambleL(TBool aCheck);
sl@0
   274
	
sl@0
   275
public:
sl@0
   276
	TBool iFileFailureExpected;
sl@0
   277
	};
sl@0
   278
sl@0
   279
class TReadBufferTestStep : public TFileTestStep
sl@0
   280
	{
sl@0
   281
	public:
sl@0
   282
		TReadBufferTestStep(MDataSource* aSource, CMMFBuffer* aBuffer, TInt aPosition, const TDes8& aSourceDes)
sl@0
   283
		: TFileTestStep(aSource), iBuffer(aBuffer), iPosition(aPosition), iSourceDes(aSourceDes), iAsynchronousRead(EFalse)
sl@0
   284
		{ InitRandomNumberGenerator(); }
sl@0
   285
sl@0
   286
		TReadBufferTestStep(MDataSource* aSource, CMMFBuffer* aBuffer, TInt aPosition, MDataSink* aSink, const TDes8& aSourceDes)
sl@0
   287
		: TFileTestStep(aSource, aSink), iBuffer(aBuffer), iPosition(aPosition), iSourceDes(aSourceDes), iAsynchronousRead(EFalse)
sl@0
   288
		{ InitRandomNumberGenerator(); }
sl@0
   289
sl@0
   290
		void InitRandomNumberGenerator()
sl@0
   291
			{
sl@0
   292
			TTime seedTime;
sl@0
   293
			seedTime.UniversalTime();
sl@0
   294
			iSeed = seedTime.Int64();
sl@0
   295
			}
sl@0
   296
sl@0
   297
		void SetPosition(TInt aPosition)
sl@0
   298
		{ iPosition = aPosition; }
sl@0
   299
sl@0
   300
		void SetAsynchronousRead(TBool aAsynchronousRead)
sl@0
   301
		{ iAsynchronousRead = aAsynchronousRead; }
sl@0
   302
		
sl@0
   303
		void RandomiseBuffer();
sl@0
   304
		TInt CheckBuffer();
sl@0
   305
sl@0
   306
	public:
sl@0
   307
		CMMFBuffer* iBuffer;
sl@0
   308
		TInt64 iSeed;
sl@0
   309
sl@0
   310
		TInt iPosition;
sl@0
   311
		const TDes8& iSourceDes;
sl@0
   312
sl@0
   313
		TBool iAsynchronousRead;
sl@0
   314
	};
sl@0
   315
sl@0
   316
class TWriteBufferTestStep : public TFileTestStep
sl@0
   317
	{
sl@0
   318
	public:
sl@0
   319
		TWriteBufferTestStep(MDataSink* aSink, CMMFBuffer* aBuffer)
sl@0
   320
		: TFileTestStep(aSink), iBuffer(aBuffer), iPosition(0), iAsynchronousWrite(EFalse)
sl@0
   321
		{ InitRandomNumberGenerator(); }
sl@0
   322
sl@0
   323
		TWriteBufferTestStep(MDataSink* aSink, CMMFBuffer* aBuffer, TInt aPosition)
sl@0
   324
		: TFileTestStep(aSink), iBuffer(aBuffer), iPosition(aPosition), iAsynchronousWrite(EFalse)
sl@0
   325
		{ InitRandomNumberGenerator(); }
sl@0
   326
sl@0
   327
		TWriteBufferTestStep(MDataSink* aSink, CMMFBuffer* aBuffer, MDataSource* aSource)
sl@0
   328
		: TFileTestStep(aSource, aSink), iBuffer(aBuffer), iPosition(0), iAsynchronousWrite(EFalse)
sl@0
   329
		{ InitRandomNumberGenerator(); }
sl@0
   330
sl@0
   331
		TWriteBufferTestStep(MDataSink* aSink, CMMFBuffer* aBuffer, TInt aPosition, MDataSource* aSource)
sl@0
   332
		: TFileTestStep(aSource, aSink), iBuffer(aBuffer), iPosition(aPosition), iAsynchronousWrite(EFalse)
sl@0
   333
		{ InitRandomNumberGenerator(); }
sl@0
   334
sl@0
   335
		void InitRandomNumberGenerator()
sl@0
   336
			{
sl@0
   337
			TTime seedTime;
sl@0
   338
			seedTime.UniversalTime();
sl@0
   339
			iSeed = seedTime.Int64();
sl@0
   340
			}
sl@0
   341
sl@0
   342
		void SetPosition(TInt aPosition)
sl@0
   343
		{ iPosition = aPosition; }
sl@0
   344
sl@0
   345
		void SetAsynchronousWrite(TBool aAsynchronousWrite)
sl@0
   346
		{ iAsynchronousWrite = aAsynchronousWrite; }
sl@0
   347
sl@0
   348
		void RandomiseBuffer();
sl@0
   349
sl@0
   350
		TVerdict DoTestPostambleL(TBool aCheck);
sl@0
   351
		virtual TInt CheckDestinationL() = 0;
sl@0
   352
sl@0
   353
	public:
sl@0
   354
		CMMFBuffer* iBuffer;
sl@0
   355
		TInt64 iSeed;
sl@0
   356
sl@0
   357
		TInt iPosition;
sl@0
   358
		TBool iAsynchronousWrite;
sl@0
   359
	};
sl@0
   360
sl@0
   361
class TWriteBufferToDescriptorTestStep : public TWriteBufferTestStep
sl@0
   362
	{
sl@0
   363
	public:
sl@0
   364
		TWriteBufferToDescriptorTestStep(MDataSink* aSink, CMMFBuffer* aBuffer, const TDes8& aDestinationDes, TDes8& aCopyOfDestinationDes)
sl@0
   365
		: TWriteBufferTestStep(aSink, aBuffer), iDestinationDes(aDestinationDes), iCopyOfDestinationDes(aCopyOfDestinationDes)
sl@0
   366
		{ }
sl@0
   367
sl@0
   368
		TWriteBufferToDescriptorTestStep(MDataSink* aSink, CMMFBuffer* aBuffer, TInt aPosition, const TDes8& aDestinationDes, TDes8& aCopyOfDestinationDes)
sl@0
   369
		: TWriteBufferTestStep(aSink, aBuffer, aPosition), iDestinationDes(aDestinationDes), iCopyOfDestinationDes(aCopyOfDestinationDes)
sl@0
   370
		{ }
sl@0
   371
sl@0
   372
		TWriteBufferToDescriptorTestStep(MDataSink* aSink, CMMFBuffer* aBuffer, MDataSource* aSource, const TDes8& aDestinationDes, TDes8& aCopyOfDestinationDes)
sl@0
   373
		: TWriteBufferTestStep(aSink, aBuffer, aSource), iDestinationDes(aDestinationDes), iCopyOfDestinationDes(aCopyOfDestinationDes)
sl@0
   374
		{ }
sl@0
   375
sl@0
   376
		TWriteBufferToDescriptorTestStep(MDataSink* aSink, CMMFBuffer* aBuffer, TInt aPosition, MDataSource* aSource, const TDes8& aDestinationDes, TDes8& aCopyOfDestinationDes)
sl@0
   377
		: TWriteBufferTestStep(aSink, aBuffer, aPosition, aSource), iDestinationDes(aDestinationDes), iCopyOfDestinationDes(aCopyOfDestinationDes)
sl@0
   378
		{ }
sl@0
   379
sl@0
   380
		TInt CheckDestinationL();
sl@0
   381
sl@0
   382
	public:
sl@0
   383
		const TDes8& iDestinationDes;
sl@0
   384
		TDes8& iCopyOfDestinationDes;
sl@0
   385
	};
sl@0
   386
sl@0
   387
class TWriteBufferToFileTestStep : public TWriteBufferTestStep
sl@0
   388
	{
sl@0
   389
	public:
sl@0
   390
		TWriteBufferToFileTestStep(MDataSink* aSink, CMMFBuffer* aBuffer, RFs& aFsSession, const TFileName& aDestinationFileName, TDes8& aCopyOfDestinationDes)
sl@0
   391
		: TWriteBufferTestStep(aSink, aBuffer), iFsSession(aFsSession), iDestinationFileName(aDestinationFileName), iCopyOfDestinationDes(aCopyOfDestinationDes)
sl@0
   392
		{ }
sl@0
   393
sl@0
   394
		TWriteBufferToFileTestStep(MDataSink* aSink, CMMFBuffer* aBuffer, TInt aPosition, RFs& aFsSession, const TFileName& aDestinationFileName, TDes8& aCopyOfDestinationDes)
sl@0
   395
		: TWriteBufferTestStep(aSink, aBuffer, aPosition), iFsSession(aFsSession), iDestinationFileName(aDestinationFileName), iCopyOfDestinationDes(aCopyOfDestinationDes)
sl@0
   396
		{ }
sl@0
   397
sl@0
   398
		TWriteBufferToFileTestStep(MDataSink* aSink, CMMFBuffer* aBuffer, MDataSource* aSource, RFs& aFsSession, const TFileName& aDestinationFileName, TDes8& aCopyOfDestinationDes)
sl@0
   399
		: TWriteBufferTestStep(aSink, aBuffer, aSource), iFsSession(aFsSession), iDestinationFileName(aDestinationFileName), iCopyOfDestinationDes(aCopyOfDestinationDes)
sl@0
   400
		{ }
sl@0
   401
sl@0
   402
		TWriteBufferToFileTestStep(MDataSink* aSink, CMMFBuffer* aBuffer, TInt aPosition, MDataSource* aSource, RFs& aFsSession, const TFileName& aDestinationFileName, TDes8& aCopyOfDestinationDes)
sl@0
   403
		: TWriteBufferTestStep(aSink, aBuffer, aPosition, aSource), iFsSession(aFsSession), iDestinationFileName(aDestinationFileName), iCopyOfDestinationDes(aCopyOfDestinationDes)
sl@0
   404
		{ }
sl@0
   405
sl@0
   406
		TInt CheckDestinationL();
sl@0
   407
		void DoTestPreambleL();
sl@0
   408
sl@0
   409
	public:
sl@0
   410
		RFs& iFsSession;
sl@0
   411
		const TFileName& iDestinationFileName;
sl@0
   412
		TDes8& iCopyOfDestinationDes;
sl@0
   413
	};
sl@0
   414
sl@0
   415
sl@0
   416
class TNewSourceTestStep : public TFileTestStep
sl@0
   417
	{
sl@0
   418
public:
sl@0
   419
	TNewSourceTestStep(TUid aUid, TDesC8& aConfigDes)
sl@0
   420
	: iUid(aUid), iConfigDes(&aConfigDes)
sl@0
   421
	{ }
sl@0
   422
sl@0
   423
	TVerdict DoTestStepL();
sl@0
   424
sl@0
   425
public:
sl@0
   426
	TUid iUid;
sl@0
   427
	TDesC8* iConfigDes;
sl@0
   428
	};
sl@0
   429
sl@0
   430
sl@0
   431
class TSourceTypeTestStep : public TTestStep
sl@0
   432
	{
sl@0
   433
public:
sl@0
   434
	TSourceTypeTestStep(MDataSource* aSource, TUid aUid, TFourCC aFourCC, TBool aCanSetSourceDataType)
sl@0
   435
	: TTestStep(aSource), iUid(aUid), iFourCC(aFourCC), iCanSetSourceDataType(aCanSetSourceDataType)
sl@0
   436
	{ }
sl@0
   437
sl@0
   438
	TVerdict DoTestStepL();
sl@0
   439
sl@0
   440
public:
sl@0
   441
	TUid iUid;
sl@0
   442
	TFourCC iFourCC;
sl@0
   443
	TBool iCanSetSourceDataType;
sl@0
   444
	};
sl@0
   445
sl@0
   446
class TCanCreateSourceBufferTestStep : public TTestStep
sl@0
   447
	{
sl@0
   448
public:
sl@0
   449
	TCanCreateSourceBufferTestStep(MDataSource* aSource, TBool aCanCreateSourceBuffer)
sl@0
   450
	: TTestStep(aSource), iCanCreateSourceBuffer(aCanCreateSourceBuffer)
sl@0
   451
	{ }
sl@0
   452
sl@0
   453
	TVerdict DoTestStepL();
sl@0
   454
sl@0
   455
public:
sl@0
   456
	TBool iCanCreateSourceBuffer;
sl@0
   457
	};
sl@0
   458
sl@0
   459
class TSourceSampleConvertTestStep : public TTestStep
sl@0
   460
	{
sl@0
   461
public:
sl@0
   462
	TSourceSampleConvertTestStep(MDataSource* aSource, TBool aSourceSampleConvert)
sl@0
   463
	: TTestStep(aSource), iSourceSampleConvert(aSourceSampleConvert)
sl@0
   464
	{ }
sl@0
   465
sl@0
   466
	TVerdict DoTestStepL();
sl@0
   467
sl@0
   468
public:
sl@0
   469
	TBool iSourceSampleConvert;
sl@0
   470
	};
sl@0
   471
sl@0
   472
class TCreateSourceBuffer1TestStep : public TTestStep, public MAsyncEventHandler
sl@0
   473
	{
sl@0
   474
public:
sl@0
   475
	TCreateSourceBuffer1TestStep(TSourceType aSourceType, MDataSink* aSink, TUid aExpectedType, TBool aExpectedRef, TInt aExpectedMaxLength = 0)
sl@0
   476
	: TTestStep(NULL, aSink), iSourceType(aSourceType), iExpectedType(aExpectedType), iExpectedRef(aExpectedRef), iExpectedMaxLength(aExpectedMaxLength)
sl@0
   477
	{ }
sl@0
   478
sl@0
   479
	TVerdict DoTestStepL();
sl@0
   480
	TInt SendEventToClient(const TMMFEvent& aEvent);
sl@0
   481
sl@0
   482
public:
sl@0
   483
	TSourceType iSourceType;
sl@0
   484
	CMMFBuffer* iSinkBuffer;
sl@0
   485
	TUid iExpectedType;
sl@0
   486
	TBool iExpectedRef;
sl@0
   487
	TInt iExpectedMaxLength;
sl@0
   488
};
sl@0
   489
sl@0
   490
class TCreateSourceBuffer2TestStep : public TTestStep, public MAsyncEventHandler
sl@0
   491
	{
sl@0
   492
public:
sl@0
   493
	TCreateSourceBuffer2TestStep(TSourceType aSourceType, MDataSink* aSink, CMMFBuffer* aSinkBuffer, TUid aExpectedType, TBool aExpectedRef, TInt aExpectedMaxLength = 0)
sl@0
   494
	: TTestStep(NULL, aSink), iSourceType(aSourceType), iSinkBuffer(aSinkBuffer), iExpectedType(aExpectedType), iExpectedRef(aExpectedRef), iExpectedMaxLength(aExpectedMaxLength)
sl@0
   495
	{ }
sl@0
   496
sl@0
   497
	TVerdict DoTestStepL();
sl@0
   498
	TInt SendEventToClient(const TMMFEvent& aEvent);
sl@0
   499
sl@0
   500
public:
sl@0
   501
	TSourceType iSourceType;
sl@0
   502
	CMMFBuffer* iSinkBuffer;
sl@0
   503
	TUid iExpectedType;
sl@0
   504
	TBool iExpectedRef;
sl@0
   505
	TInt iExpectedMaxLength;
sl@0
   506
};
sl@0
   507
sl@0
   508
class TSourceThreadLogonTestStep : public TFileTestStep
sl@0
   509
	{
sl@0
   510
public:
sl@0
   511
	TSourceThreadLogonTestStep(MDataSource* aSource, MAsyncEventHandler* aEventHandler)
sl@0
   512
	: TFileTestStep(aSource), iEventHandler(aEventHandler)
sl@0
   513
	{ }
sl@0
   514
sl@0
   515
	TVerdict DoTestStepL();
sl@0
   516
sl@0
   517
public:
sl@0
   518
	MAsyncEventHandler* iEventHandler;
sl@0
   519
	};
sl@0
   520
sl@0
   521
class TNegotiateSourceTestStep : public TTestStep
sl@0
   522
	{
sl@0
   523
public:
sl@0
   524
	TNegotiateSourceTestStep(MDataSource* aSource, MDataSink* aSink)
sl@0
   525
	: TTestStep(aSource, aSink)
sl@0
   526
	{ }
sl@0
   527
sl@0
   528
	TVerdict DoTestStepL();
sl@0
   529
	};
sl@0
   530
sl@0
   531
class TFillBufferTestStep : public TReadBufferTestStep
sl@0
   532
	{
sl@0
   533
public:
sl@0
   534
	TFillBufferTestStep(MDataSource* aSource, CMMFBuffer* aBuffer, CMMFDummySink* aSink, const TDes8& aSourceDes, TUint aReadLength = 0)
sl@0
   535
	: TReadBufferTestStep(aSource, aBuffer, 0, aSink, aSourceDes), iReadLength(aReadLength)
sl@0
   536
	{ }
sl@0
   537
sl@0
   538
	void SetReadLength(TInt aReadLength)
sl@0
   539
	{ iReadLength = aReadLength; }
sl@0
   540
sl@0
   541
	TVerdict DoTestStepL();
sl@0
   542
sl@0
   543
public:
sl@0
   544
	TInt iReadLength;
sl@0
   545
	};
sl@0
   546
sl@0
   547
class TFillLastBufferTestStep : public TReadBufferTestStep
sl@0
   548
	{
sl@0
   549
public:
sl@0
   550
	TFillLastBufferTestStep(TUid aSourceUid, TDesC8& aConfigDes, CMMFDummySink* aSink, const TDes8& aSourceDes)
sl@0
   551
	: TReadBufferTestStep(NULL, NULL, 0, aSink, aSourceDes), iSourceUid(aSourceUid), iConfigDes(aConfigDes)
sl@0
   552
	{ }
sl@0
   553
sl@0
   554
	TVerdict DoTestStepL();
sl@0
   555
sl@0
   556
public:
sl@0
   557
	TUid iSourceUid;
sl@0
   558
	TDesC8 &iConfigDes;
sl@0
   559
	};
sl@0
   560
sl@0
   561
class TReadLastBufferTestStep : public TReadBufferTestStep
sl@0
   562
	{
sl@0
   563
public:
sl@0
   564
	TReadLastBufferTestStep(CMMFClip* aClip, CMMFDummySink* aSink, const TDes8& aSourceDes)
sl@0
   565
	: TReadBufferTestStep(aClip, NULL, 0, aSink, aSourceDes)
sl@0
   566
	{ }
sl@0
   567
sl@0
   568
	TVerdict DoTestStepL();
sl@0
   569
	};
sl@0
   570
sl@0
   571
class TReadLastBuffer2TestStep : public TReadBufferTestStep
sl@0
   572
	{
sl@0
   573
public:
sl@0
   574
	TReadLastBuffer2TestStep(CMMFClip* aClip, CMMFDummySink* aSink, const TDes8& aSourceDes)
sl@0
   575
	: TReadBufferTestStep(aClip, NULL, 0, aSink, aSourceDes)
sl@0
   576
	{ }
sl@0
   577
sl@0
   578
	TVerdict DoTestStepL();
sl@0
   579
	};
sl@0
   580
sl@0
   581
class TReadLastBuffer3TestStep : public TReadBufferTestStep
sl@0
   582
	{
sl@0
   583
public:
sl@0
   584
	TReadLastBuffer3TestStep(CMMFClip* aClip, const TDes8& aSourceDes)
sl@0
   585
	: TReadBufferTestStep(aClip, NULL, 0, NULL, aSourceDes)
sl@0
   586
	{ }
sl@0
   587
sl@0
   588
	TVerdict DoTestStepL();
sl@0
   589
	};
sl@0
   590
sl@0
   591
sl@0
   592
class TNewSinkTestStep : public TFileTestStep
sl@0
   593
	{
sl@0
   594
public:
sl@0
   595
	TNewSinkTestStep(TUid aUid, TDesC8& aConfigDes)
sl@0
   596
	: iUid(aUid), iConfigDes(&aConfigDes)
sl@0
   597
	{ }
sl@0
   598
sl@0
   599
	TVerdict DoTestStepL();
sl@0
   600
sl@0
   601
public:
sl@0
   602
	TUid iUid;
sl@0
   603
	TDesC8* iConfigDes;
sl@0
   604
	};
sl@0
   605
sl@0
   606
sl@0
   607
class TSinkTypeTestStep : public TTestStep
sl@0
   608
	{
sl@0
   609
public:
sl@0
   610
	TSinkTypeTestStep(MDataSink* aSink, TUid aUid, TFourCC aFourCC, TBool aCanSetSinkDataType)
sl@0
   611
	: TTestStep(aSink), iUid(aUid), iFourCC(aFourCC), iCanSetSinkDataType(aCanSetSinkDataType)
sl@0
   612
	{ }
sl@0
   613
sl@0
   614
	TVerdict DoTestStepL();
sl@0
   615
sl@0
   616
public:
sl@0
   617
	TUid iUid;
sl@0
   618
	TFourCC iFourCC;
sl@0
   619
	TBool iCanSetSinkDataType;
sl@0
   620
	};
sl@0
   621
sl@0
   622
class TCanCreateSinkBufferTestStep : public TTestStep
sl@0
   623
	{
sl@0
   624
public:
sl@0
   625
	TCanCreateSinkBufferTestStep(MDataSink* aSink, TBool aCanCreateSinkBuffer)
sl@0
   626
	: TTestStep(aSink), iCanCreateSinkBuffer(aCanCreateSinkBuffer)
sl@0
   627
	{ }
sl@0
   628
sl@0
   629
	TVerdict DoTestStepL();
sl@0
   630
sl@0
   631
public:
sl@0
   632
	TBool iCanCreateSinkBuffer;
sl@0
   633
	};
sl@0
   634
sl@0
   635
class TCreateSinkBufferTestStep0 : public TTestStep
sl@0
   636
	{
sl@0
   637
public:
sl@0
   638
	TCreateSinkBufferTestStep0(MDataSink* aSink, TUid aExpectedType, TBool aExpectedRef, TInt aExpectedMaxLength = 0, CMMFDummySource* aSource = NULL)
sl@0
   639
	: TTestStep(aSource, aSink), iExpectedType(aExpectedType), iExpectedRef(aExpectedRef), iExpectedMaxLength(aExpectedMaxLength)
sl@0
   640
	{ }
sl@0
   641
sl@0
   642
	TVerdict DoTestStepL();
sl@0
   643
sl@0
   644
public:
sl@0
   645
	TUid iExpectedType;
sl@0
   646
	TBool iExpectedRef;
sl@0
   647
	CMMFFormatDecode* iFormat;
sl@0
   648
	TInt iExpectedMaxLength;
sl@0
   649
	};
sl@0
   650
sl@0
   651
class TCreateSinkBufferTestStep : public TTestStep
sl@0
   652
	{
sl@0
   653
public:
sl@0
   654
	TCreateSinkBufferTestStep(TUid aExpectedType, TBool aExpectedRef, CMMFFormatDecode* aFormat,
sl@0
   655
							  TInt aExpectedMaxLength = 0, CMMFDummySource* aSource = NULL)
sl@0
   656
		: TTestStep(aSource, NULL), iExpectedType(aExpectedType), iExpectedRef(aExpectedRef), iFormat(aFormat), iExpectedMaxLength(aExpectedMaxLength)
sl@0
   657
		{
sl@0
   658
		}
sl@0
   659
sl@0
   660
	TVerdict DoTestPostambleL(TBool aCheck);
sl@0
   661
	
sl@0
   662
public:
sl@0
   663
	TUid iExpectedType;
sl@0
   664
	TBool iExpectedRef;
sl@0
   665
	CMMFFormatDecode* iFormat;
sl@0
   666
	TInt iExpectedMaxLength;
sl@0
   667
	};
sl@0
   668
sl@0
   669
class TCreateSinkBufferTestStep1 : public TCreateSinkBufferTestStep 
sl@0
   670
	{
sl@0
   671
public:
sl@0
   672
	TCreateSinkBufferTestStep1(TUid aExpectedType, TBool aExpectedRef, CMMFFormatDecode* aFormat,
sl@0
   673
							  TInt aExpectedMaxLength = 0, CMMFDummySource* aSource = NULL)
sl@0
   674
		: TCreateSinkBufferTestStep(aExpectedType, aExpectedRef, aFormat, aExpectedMaxLength, aSource)
sl@0
   675
		{
sl@0
   676
		}
sl@0
   677
sl@0
   678
	TVerdict DoTestStepL();
sl@0
   679
	};
sl@0
   680
sl@0
   681
class TCreateSinkBufferTestStep2 : public TCreateSinkBufferTestStep 
sl@0
   682
	{
sl@0
   683
public:
sl@0
   684
	TCreateSinkBufferTestStep2(TUid aExpectedType, TBool aExpectedRef, CMMFFormatDecode* aFormat,
sl@0
   685
							  TInt aExpectedMaxLength = 0, CMMFDummySource* aSource = NULL)
sl@0
   686
		: TCreateSinkBufferTestStep(aExpectedType, aExpectedRef, aFormat, aExpectedMaxLength, aSource)
sl@0
   687
		{
sl@0
   688
		}
sl@0
   689
sl@0
   690
	TVerdict DoTestStepL();
sl@0
   691
	};
sl@0
   692
sl@0
   693
class TCreateSinkBufferTestStep3 : public TCreateSinkBufferTestStep 
sl@0
   694
	{
sl@0
   695
public:
sl@0
   696
	TCreateSinkBufferTestStep3(TUid aExpectedType, TBool aExpectedRef, CMMFFormatDecode* aFormat,
sl@0
   697
							  TInt aExpectedMaxLength = 0, CMMFDummySource* aSource = NULL)
sl@0
   698
		: TCreateSinkBufferTestStep(aExpectedType, aExpectedRef, aFormat, aExpectedMaxLength, aSource)
sl@0
   699
		{
sl@0
   700
		}
sl@0
   701
sl@0
   702
	TVerdict DoTestStepL();
sl@0
   703
	};
sl@0
   704
sl@0
   705
class TCreateSinkBufferTestStep4 : public TCreateSinkBufferTestStep 
sl@0
   706
	{
sl@0
   707
public:
sl@0
   708
	TCreateSinkBufferTestStep4(TUid aExpectedType, TBool aExpectedRef, CMMFFormatDecode* aFormat,
sl@0
   709
							  TInt aExpectedMaxLength = 0, CMMFDummySource* aSource = NULL)
sl@0
   710
		: TCreateSinkBufferTestStep(aExpectedType, aExpectedRef, aFormat, aExpectedMaxLength, aSource)
sl@0
   711
		{
sl@0
   712
		}
sl@0
   713
sl@0
   714
	TVerdict DoTestStepL();
sl@0
   715
	};
sl@0
   716
sl@0
   717
class TSinkThreadLogonTestStep : public TFileTestStep
sl@0
   718
	{
sl@0
   719
public:
sl@0
   720
	TSinkThreadLogonTestStep(MDataSink* aSink, MAsyncEventHandler* aEventHandler)
sl@0
   721
	: TFileTestStep(aSink), iEventHandler(aEventHandler)
sl@0
   722
	{ }
sl@0
   723
sl@0
   724
	TVerdict DoTestStepL();
sl@0
   725
sl@0
   726
public:
sl@0
   727
	MAsyncEventHandler* iEventHandler;
sl@0
   728
	};
sl@0
   729
sl@0
   730
class TNegotiateTestStep : public TTestStep
sl@0
   731
	{
sl@0
   732
public:
sl@0
   733
	TNegotiateTestStep(MDataSink* aSink, MDataSource* aSource)
sl@0
   734
	: TTestStep(aSource, aSink)
sl@0
   735
	{ }
sl@0
   736
sl@0
   737
	TVerdict DoTestStepL();
sl@0
   738
	};
sl@0
   739
sl@0
   740
class TEmptyBufferTestStep : public TWriteBufferToDescriptorTestStep
sl@0
   741
	{
sl@0
   742
public:
sl@0
   743
	TEmptyBufferTestStep(MDataSink* aSink, CMMFBuffer* aBuffer, CMMFDummySource* aSource, const TDes8& aDestinationDes, TDes8& aCopyOfDestinationDes)
sl@0
   744
	: TWriteBufferToDescriptorTestStep(aSink, aBuffer, aSource, aDestinationDes, aCopyOfDestinationDes), iWriteLength((aBuffer != NULL) ? aBuffer->BufferSize() : 0)
sl@0
   745
	{ }
sl@0
   746
sl@0
   747
	void SetWriteLength(TInt aWriteLength)
sl@0
   748
	{ iWriteLength = aWriteLength; }
sl@0
   749
sl@0
   750
	TVerdict DoTestStepL();
sl@0
   751
sl@0
   752
public:
sl@0
   753
	TInt iWriteLength;
sl@0
   754
	};
sl@0
   755
sl@0
   756
sl@0
   757
class TClipBytesFreeTestStep : public TFileTestStep
sl@0
   758
	{
sl@0
   759
public:
sl@0
   760
	TClipBytesFreeTestStep(CMMFClip* aClip, TInt64 aExpectedBytesFree)
sl@0
   761
	: TFileTestStep(aClip, aClip), iExpectedBytesFree(aExpectedBytesFree)
sl@0
   762
	{ }
sl@0
   763
sl@0
   764
	TVerdict DoTestStepL();
sl@0
   765
sl@0
   766
public:
sl@0
   767
	TInt64 iExpectedBytesFree;
sl@0
   768
	};
sl@0
   769
	
sl@0
   770
class TClipSizeTestStep : public TFileTestStep
sl@0
   771
	{
sl@0
   772
public:
sl@0
   773
	TClipSizeTestStep(CMMFClip* aClip, TInt aExpectedSize)
sl@0
   774
	: TFileTestStep(aClip, aClip), iExpectedSize(aExpectedSize)
sl@0
   775
	{ }
sl@0
   776
sl@0
   777
	TVerdict DoTestStepL();
sl@0
   778
sl@0
   779
public:
sl@0
   780
	TInt iExpectedSize;
sl@0
   781
	};
sl@0
   782
sl@0
   783
class TClipSetSizeTestStep : public TFileTestStep
sl@0
   784
	{
sl@0
   785
public:
sl@0
   786
	TClipSetSizeTestStep(CMMFClip* aClip, TBool aCanSetSize)
sl@0
   787
	: TFileTestStep(aClip, aClip), iCanSetSize(aCanSetSize)
sl@0
   788
	{ }
sl@0
   789
sl@0
   790
	TVerdict DoTestStepL();
sl@0
   791
sl@0
   792
public:
sl@0
   793
	TBool iCanSetSize;
sl@0
   794
	};
sl@0
   795
sl@0
   796
class TClipDeleteTestStep : public TFileTestStep
sl@0
   797
	{
sl@0
   798
public:
sl@0
   799
	TClipDeleteTestStep(CMMFClip* aClip)
sl@0
   800
	: TFileTestStep(aClip, aClip)
sl@0
   801
	{ }
sl@0
   802
	
sl@0
   803
	TVerdict DoTestStepL();
sl@0
   804
	};
sl@0
   805
sl@0
   806
class TClipReadBufferTestStep : public TReadBufferTestStep
sl@0
   807
	{
sl@0
   808
public:
sl@0
   809
	TClipReadBufferTestStep(CMMFClip* aClip, CMMFBuffer* aBuffer, TInt aPosition, CMMFDummySink* aSink, const TDes8& aSourceDes, TUint aReadLength = 0)
sl@0
   810
	: TReadBufferTestStep(aClip, aBuffer, aPosition, aSink, aSourceDes), iReadLength(aReadLength)
sl@0
   811
	{ }
sl@0
   812
sl@0
   813
	void SetReadLength(TInt aReadLength)
sl@0
   814
	{ iReadLength = aReadLength; }
sl@0
   815
sl@0
   816
	TVerdict DoTestStepL();
sl@0
   817
sl@0
   818
public:
sl@0
   819
	TInt iReadLength;
sl@0
   820
	};
sl@0
   821
sl@0
   822
class TClipReadBuffer2TestStep : public TReadBufferTestStep
sl@0
   823
	{
sl@0
   824
public:
sl@0
   825
	TClipReadBuffer2TestStep(CMMFClip* aClip, CMMFBuffer* aBuffer, TInt aPosition, CMMFDummySink* aSink, const TDes8& aSourceDes, TUint aReadLength = 0)
sl@0
   826
	: TReadBufferTestStep(aClip, aBuffer, aPosition, aSink, aSourceDes), iReadLength(aReadLength)
sl@0
   827
	{ }
sl@0
   828
sl@0
   829
	void SetReadLength(TInt aReadLength)
sl@0
   830
	{ iReadLength = aReadLength; }
sl@0
   831
sl@0
   832
	TVerdict DoTestStepL();
sl@0
   833
sl@0
   834
public:
sl@0
   835
	TInt iReadLength;
sl@0
   836
	};
sl@0
   837
	
sl@0
   838
class TClipReadBuffer3TestStep : public TReadBufferTestStep
sl@0
   839
	{
sl@0
   840
public:
sl@0
   841
	TClipReadBuffer3TestStep(CMMFClip* aClip, CMMFBuffer* aBuffer, TInt aPosition, const TDes8& aSourceDes, TUint aReadLength = 0)
sl@0
   842
	: TReadBufferTestStep(aClip, aBuffer, aPosition, aSourceDes), iReadLength(aReadLength)
sl@0
   843
	{ }
sl@0
   844
sl@0
   845
	void SetReadLength(TInt aReadLength)
sl@0
   846
	{ iReadLength = aReadLength; }
sl@0
   847
sl@0
   848
	TVerdict DoTestStepL();
sl@0
   849
sl@0
   850
public:
sl@0
   851
	TInt iReadLength;
sl@0
   852
	};
sl@0
   853
sl@0
   854
class TClipReadBuffer4TestStep : public TReadBufferTestStep
sl@0
   855
	{
sl@0
   856
public:
sl@0
   857
	TClipReadBuffer4TestStep(CMMFClip* aClip, CMMFBuffer* aBuffer, TInt aPosition, CMMFDummySink* aSink, const TDes8& aSourceDes, TUint aReadLength = 0)
sl@0
   858
	: TReadBufferTestStep(aClip, aBuffer, aPosition, aSink, aSourceDes), iReadLength(aReadLength), iExpectedReadLength(aReadLength)
sl@0
   859
	{ }
sl@0
   860
sl@0
   861
	void SetReadLength(TInt aReadLength)
sl@0
   862
	{ iReadLength = aReadLength; }
sl@0
   863
sl@0
   864
	void SetExpectedReadLength(TInt aExpectedReadLength)
sl@0
   865
	{ iExpectedReadLength = aExpectedReadLength; }
sl@0
   866
sl@0
   867
	TVerdict DoTestStepL();
sl@0
   868
sl@0
   869
public:
sl@0
   870
	TInt iReadLength;
sl@0
   871
	TInt iExpectedReadLength;
sl@0
   872
	};
sl@0
   873
sl@0
   874
sl@0
   875
class TDescriptorClipWriteBufferTestStep : public TWriteBufferToDescriptorTestStep
sl@0
   876
	{
sl@0
   877
public:
sl@0
   878
	TDescriptorClipWriteBufferTestStep(CMMFClip* aClip, CMMFBuffer* aBuffer, TInt aPosition, CMMFDummySource* aSource, const TDes8& aDestinationDes, TDes8& aCopyOfDestinationDes, TUint aWriteLength = 0)
sl@0
   879
	: TWriteBufferToDescriptorTestStep(aClip, aBuffer, aPosition, aSource, aDestinationDes, aCopyOfDestinationDes), iWriteLength(aWriteLength)
sl@0
   880
	{ }
sl@0
   881
sl@0
   882
	void SetWriteLength(TInt aWriteLength)
sl@0
   883
	{ iWriteLength = aWriteLength; }
sl@0
   884
sl@0
   885
	TVerdict DoTestStepL();
sl@0
   886
sl@0
   887
public:
sl@0
   888
	TInt iWriteLength;
sl@0
   889
	};
sl@0
   890
sl@0
   891
class TDescriptorClipWriteBuffer2TestStep : public TWriteBufferToDescriptorTestStep
sl@0
   892
	{
sl@0
   893
public:
sl@0
   894
	TDescriptorClipWriteBuffer2TestStep(CMMFClip* aClip, CMMFBuffer* aBuffer, TInt aPosition, CMMFDummySource* aSource, const TDes8& aDestinationDes, TDes8& aCopyOfDestinationDes, TUint aWriteLength = 0)
sl@0
   895
	: TWriteBufferToDescriptorTestStep(aClip, aBuffer, aPosition, aSource, aDestinationDes, aCopyOfDestinationDes), iWriteLength(aWriteLength)
sl@0
   896
	{ }
sl@0
   897
sl@0
   898
	void SetWriteLength(TInt aWriteLength)
sl@0
   899
	{ iWriteLength = aWriteLength; }
sl@0
   900
sl@0
   901
	TVerdict DoTestStepL();
sl@0
   902
sl@0
   903
public:
sl@0
   904
	TInt iWriteLength;
sl@0
   905
	};
sl@0
   906
sl@0
   907
class TDescriptorClipWriteBuffer3TestStep : public TWriteBufferToDescriptorTestStep
sl@0
   908
	{
sl@0
   909
public:
sl@0
   910
	TDescriptorClipWriteBuffer3TestStep(CMMFClip* aClip, CMMFBuffer* aBuffer, TInt aPosition, const TDes8& aDestinationDes, TDes8& aCopyOfDestinationDes, TUint aWriteLength = 0)
sl@0
   911
	: TWriteBufferToDescriptorTestStep(aClip, aBuffer, aPosition, aDestinationDes, aCopyOfDestinationDes), iWriteLength(aWriteLength)
sl@0
   912
	{ }
sl@0
   913
sl@0
   914
	void SetWriteLength(TInt aWriteLength)
sl@0
   915
	{ iWriteLength = aWriteLength; }
sl@0
   916
sl@0
   917
	TVerdict DoTestStepL();
sl@0
   918
sl@0
   919
public:
sl@0
   920
	TInt iWriteLength;
sl@0
   921
	};
sl@0
   922
sl@0
   923
class TNewFileSourceTestStep : public TNewSourceTestStep
sl@0
   924
	{
sl@0
   925
public:
sl@0
   926
	TNewFileSourceTestStep(TUid aUid, TDesC8& aConfigDes)
sl@0
   927
	: TNewSourceTestStep(aUid, aConfigDes)
sl@0
   928
	{ }
sl@0
   929
sl@0
   930
	TVerdict DoTestStepL();
sl@0
   931
	};
sl@0
   932
sl@0
   933
class TFileSourceThreadLogonTestStep : public TSourceThreadLogonTestStep
sl@0
   934
	{
sl@0
   935
public:
sl@0
   936
	TFileSourceThreadLogonTestStep(MDataSource* aSource, MAsyncEventHandler* aEventHandler, TInt aFileSize)
sl@0
   937
	: TSourceThreadLogonTestStep(aSource, aEventHandler), iFileSize(aFileSize)
sl@0
   938
	{ }
sl@0
   939
sl@0
   940
	TVerdict DoTestStepL();
sl@0
   941
sl@0
   942
public:
sl@0
   943
	TInt iFileSize;
sl@0
   944
	};
sl@0
   945
sl@0
   946
class TFileFillBufferTestStep : public TFillBufferTestStep
sl@0
   947
	{
sl@0
   948
public:
sl@0
   949
	TFileFillBufferTestStep(TSourceType aSourceType, TDesC& aFileName, CMMFBuffer* aBuffer, CMMFDummySink* aSink, const TDes8& aSourceDes, TUint aReadLength = 0)
sl@0
   950
	: TFillBufferTestStep(NULL, aBuffer, aSink, aSourceDes, aReadLength), iFileName(aFileName), iSourceType(aSourceType)
sl@0
   951
	{ }
sl@0
   952
sl@0
   953
	TVerdict DoTestStepL();
sl@0
   954
sl@0
   955
public:
sl@0
   956
	TDesC& iFileName;
sl@0
   957
	TSourceType iSourceType;
sl@0
   958
	};
sl@0
   959
sl@0
   960
class TFileFillBuffer2TestStep : public TFileFillBufferTestStep
sl@0
   961
	{
sl@0
   962
public:
sl@0
   963
	TFileFillBuffer2TestStep(TSourceType aSourceType, TDesC& aFileName, CMMFBuffer* aBuffer, CMMFDummySink* aSink, const TDes8& aSourceDes)
sl@0
   964
	: TFileFillBufferTestStep(aSourceType, aFileName, aBuffer, aSink, aSourceDes)
sl@0
   965
	{ }
sl@0
   966
sl@0
   967
	TVerdict DoTestStepL();
sl@0
   968
	};
sl@0
   969
sl@0
   970
class TFileFillBuffer3TestStep : public TFileFillBufferTestStep
sl@0
   971
	{
sl@0
   972
public:
sl@0
   973
	TFileFillBuffer3TestStep(TSourceType aSourceType, TDesC& aFileName, RPointerArray<CMMFBuffer>* aBufferArray, CMMFDummySink* aSink, const TDes8& aSourceDes, TInt aReadLength = 0)
sl@0
   974
	: TFileFillBufferTestStep(aSourceType, aFileName, NULL, aSink, aSourceDes, aReadLength), iBufferArray(aBufferArray), iMaxRequestCount(20)
sl@0
   975
	{ }
sl@0
   976
sl@0
   977
	void SetMaxRequestCount(TInt aMaxRequestCount)
sl@0
   978
	{ iMaxRequestCount = aMaxRequestCount; }
sl@0
   979
	
sl@0
   980
	TVerdict DoTestStepL();
sl@0
   981
sl@0
   982
public:
sl@0
   983
	RPointerArray<CMMFBuffer>* iBufferArray;
sl@0
   984
	TInt iMaxRequestCount;
sl@0
   985
	};
sl@0
   986
sl@0
   987
class TFileFillBuffer4TestStep : public TFillBufferTestStep
sl@0
   988
	{
sl@0
   989
public:
sl@0
   990
	TFileFillBuffer4TestStep(MDataSource* aSource, RPointerArray<CMMFBuffer>* aBufferArray, CMMFDummySink* aSink, const TDes8& aSourceDes, TInt aReadLength = 0)
sl@0
   991
	: TFillBufferTestStep(aSource, NULL, aSink, aSourceDes, aReadLength), iBufferArray(aBufferArray), iMaxRequestCount(3)
sl@0
   992
	{ }
sl@0
   993
sl@0
   994
	void SetMaxRequestCount(TInt aMaxRequestCount)
sl@0
   995
	{ iMaxRequestCount = aMaxRequestCount; }
sl@0
   996
	
sl@0
   997
	TVerdict DoTestStepL();
sl@0
   998
sl@0
   999
public:
sl@0
  1000
	RPointerArray<CMMFBuffer>* iBufferArray;
sl@0
  1001
	TInt iMaxRequestCount;
sl@0
  1002
	};
sl@0
  1003
sl@0
  1004
class TFileReadBufferTestStep : public TClipReadBufferTestStep
sl@0
  1005
	{
sl@0
  1006
public:
sl@0
  1007
	TFileReadBufferTestStep(TSourceType aSourceType, const TDesC& aFileName, CMMFBuffer* aBuffer, TInt aPosition, CMMFDummySink* aSink, const TDes8& aSourceDes, TUint aReadLength = 0)
sl@0
  1008
	: TClipReadBufferTestStep(NULL, aBuffer, aPosition, aSink, aSourceDes, aReadLength), iSourceType(aSourceType), iFileName(aFileName)
sl@0
  1009
	{ }
sl@0
  1010
sl@0
  1011
	TVerdict DoTestStepL();
sl@0
  1012
sl@0
  1013
public:
sl@0
  1014
	TSourceType iSourceType;
sl@0
  1015
	const TDesC& iFileName;
sl@0
  1016
	
sl@0
  1017
	};
sl@0
  1018
sl@0
  1019
class TFileReadBuffer2TestStep : public TClipReadBuffer2TestStep
sl@0
  1020
	{
sl@0
  1021
public:
sl@0
  1022
	TFileReadBuffer2TestStep(TSourceType aSourceType, const TDesC& aFileName, CMMFBuffer* aBuffer, TInt aPosition, CMMFDummySink* aSink, const TDes8& aSourceDes, TUint aReadLength = 0)
sl@0
  1023
	: TClipReadBuffer2TestStep(NULL, aBuffer, aPosition, aSink, aSourceDes, aReadLength), iSourceType(aSourceType), iFileName(aFileName)
sl@0
  1024
	{ }
sl@0
  1025
sl@0
  1026
	TVerdict DoTestStepL();
sl@0
  1027
sl@0
  1028
public:
sl@0
  1029
	TSourceType iSourceType;
sl@0
  1030
	const TDesC& iFileName;
sl@0
  1031
	};
sl@0
  1032
sl@0
  1033
class TFileReadBuffer3TestStep : public TClipReadBuffer3TestStep
sl@0
  1034
	{
sl@0
  1035
public:
sl@0
  1036
	TFileReadBuffer3TestStep(TSourceType aSourceType, const TDesC& aFileName, CMMFBuffer* aBuffer, TInt aPosition, const TDes8& aSourceDes, TUint aReadLength = 0)
sl@0
  1037
	: TClipReadBuffer3TestStep(NULL, aBuffer, aPosition, aSourceDes, aReadLength), iSourceType(aSourceType), iFileName(aFileName)
sl@0
  1038
	{ }
sl@0
  1039
sl@0
  1040
	void SetReadLength(TInt aReadLength)
sl@0
  1041
	{ iReadLength = aReadLength; }
sl@0
  1042
sl@0
  1043
	TVerdict DoTestStepL();
sl@0
  1044
sl@0
  1045
public:
sl@0
  1046
	TSourceType iSourceType;
sl@0
  1047
	const TDesC& iFileName;
sl@0
  1048
	};
sl@0
  1049
sl@0
  1050
class TFileReadBuffer4TestStep : public TClipReadBuffer4TestStep
sl@0
  1051
	{
sl@0
  1052
public:
sl@0
  1053
	TFileReadBuffer4TestStep(TSourceType aSourceType, const TDesC& aFileName, CMMFBuffer* aBuffer, TInt aPosition, CMMFDummySink* aSink, const TDes8& aSourceDes, TUint aReadLength = 0)
sl@0
  1054
	: TClipReadBuffer4TestStep(NULL, aBuffer, aPosition, aSink, aSourceDes, aReadLength), iSourceType(aSourceType), iFileName(aFileName)
sl@0
  1055
	{ }
sl@0
  1056
sl@0
  1057
	TVerdict DoTestStepL();
sl@0
  1058
sl@0
  1059
public:
sl@0
  1060
	TSourceType iSourceType;
sl@0
  1061
	const TDesC& iFileName;
sl@0
  1062
	};
sl@0
  1063
sl@0
  1064
class TFileReadBuffer5TestStep : public TClipReadBuffer4TestStep
sl@0
  1065
	{
sl@0
  1066
public:
sl@0
  1067
	TFileReadBuffer5TestStep(TSourceType aSourceType, const TDesC& aFileName, RPointerArray<CMMFBuffer>* aBufferArray, TInt aPosition, CMMFDummySink* aSink, const TDes8& aSourceDes, TUint aReadLength = 0)
sl@0
  1068
	: TClipReadBuffer4TestStep(NULL, NULL, aPosition, aSink, aSourceDes, aReadLength), iSourceType(aSourceType), iFileName(aFileName), iBufferArray(aBufferArray), iMaxRequestCount(20)
sl@0
  1069
	{ }
sl@0
  1070
sl@0
  1071
	void SetMaxRequestCount(TInt aMaxRequestCount)
sl@0
  1072
	{ iMaxRequestCount = aMaxRequestCount; }
sl@0
  1073
sl@0
  1074
	TVerdict DoTestStepL();
sl@0
  1075
sl@0
  1076
public:
sl@0
  1077
	TSourceType iSourceType;
sl@0
  1078
	const TDesC& iFileName;
sl@0
  1079
	RPointerArray<CMMFBuffer>* iBufferArray;
sl@0
  1080
	TInt iMaxRequestCount;
sl@0
  1081
	};
sl@0
  1082
sl@0
  1083
class TFileReadBuffer6TestStep : public TClipReadBuffer4TestStep
sl@0
  1084
	{
sl@0
  1085
public:
sl@0
  1086
	TFileReadBuffer6TestStep(TSourceType aSourceType, const TDesC& aFileName, RPointerArray<CMMFBuffer>* aBufferArray, TInt aPosition, CMMFDummySink* aSink, const TDes8& aSourceDes, TUint aReadLength = 0)
sl@0
  1087
	: TClipReadBuffer4TestStep(NULL, NULL, aPosition, aSink, aSourceDes, aReadLength), iSourceType(aSourceType), iFileName(aFileName), iBufferArray(aBufferArray), iMaxRequestCount(20)
sl@0
  1088
	{ }
sl@0
  1089
sl@0
  1090
	void SetMaxRequestCount(TInt aMaxRequestCount)
sl@0
  1091
	{ iMaxRequestCount = aMaxRequestCount; }
sl@0
  1092
sl@0
  1093
	TVerdict DoTestStepL();
sl@0
  1094
sl@0
  1095
public:
sl@0
  1096
	TSourceType iSourceType;
sl@0
  1097
	const TDesC& iFileName;
sl@0
  1098
	RPointerArray<CMMFBuffer>* iBufferArray;
sl@0
  1099
	TInt iMaxRequestCount;
sl@0
  1100
	};
sl@0
  1101
sl@0
  1102
class TFileReadBuffer7TestStep : public TClipReadBuffer4TestStep
sl@0
  1103
	{
sl@0
  1104
public:
sl@0
  1105
	TFileReadBuffer7TestStep(CMMFClip* aSource, RPointerArray<CMMFBuffer>* aBufferArray, TInt aPosition, CMMFDummySink* aSink, const TDes8& aSourceDes, TUint aReadLength = 0)
sl@0
  1106
	: TClipReadBuffer4TestStep(aSource, NULL, aPosition, aSink, aSourceDes, aReadLength), iBufferArray(aBufferArray), iMaxRequestCount(3)
sl@0
  1107
	{ }
sl@0
  1108
sl@0
  1109
	void SetMaxRequestCount(TInt aMaxRequestCount)
sl@0
  1110
	{ iMaxRequestCount = aMaxRequestCount; }
sl@0
  1111
sl@0
  1112
	TVerdict DoTestStepL();
sl@0
  1113
sl@0
  1114
public:
sl@0
  1115
	RPointerArray<CMMFBuffer>* iBufferArray;
sl@0
  1116
	TInt iMaxRequestCount;
sl@0
  1117
	};
sl@0
  1118
sl@0
  1119
class TFileReadBuffer8TestStep : public TClipReadBuffer4TestStep
sl@0
  1120
	{
sl@0
  1121
public:
sl@0
  1122
	TFileReadBuffer8TestStep(CMMFClip* aSource, RPointerArray<CMMFBuffer>* aBufferArray, TInt aPosition, CMMFDummySink* aSink, const TDes8& aSourceDes, TUint aReadLength = 0)
sl@0
  1123
	: TClipReadBuffer4TestStep(aSource, NULL, aPosition, aSink, aSourceDes, aReadLength), iBufferArray(aBufferArray), iMaxRequestCount(3)
sl@0
  1124
	{ }
sl@0
  1125
sl@0
  1126
	void SetMaxRequestCount(TInt aMaxRequestCount)
sl@0
  1127
	{ iMaxRequestCount = aMaxRequestCount; }
sl@0
  1128
sl@0
  1129
	TVerdict DoTestStepL();
sl@0
  1130
sl@0
  1131
public:
sl@0
  1132
	RPointerArray<CMMFBuffer>* iBufferArray;
sl@0
  1133
	TInt iMaxRequestCount;
sl@0
  1134
	};
sl@0
  1135
sl@0
  1136
sl@0
  1137
class TNewFileSinkTestStep : public TNewSinkTestStep
sl@0
  1138
	{
sl@0
  1139
public:
sl@0
  1140
	TNewFileSinkTestStep(TUid aUid, TDesC8& aConfigDes)
sl@0
  1141
	: TNewSinkTestStep(aUid, aConfigDes)
sl@0
  1142
	{ }
sl@0
  1143
sl@0
  1144
	TVerdict DoTestStepL();
sl@0
  1145
	};
sl@0
  1146
sl@0
  1147
class TFileSinkSetSizeTestStep : public TClipSetSizeTestStep
sl@0
  1148
	{
sl@0
  1149
public:
sl@0
  1150
	TFileSinkSetSizeTestStep(CMMFClip* aClip, TBool aCanSetSize)
sl@0
  1151
	: TClipSetSizeTestStep(aClip, aCanSetSize)
sl@0
  1152
	{ }
sl@0
  1153
sl@0
  1154
	TVerdict DoTestStepL();
sl@0
  1155
	};
sl@0
  1156
sl@0
  1157
class TFileSinkThreadLogonTestStep : public TSinkThreadLogonTestStep
sl@0
  1158
	{
sl@0
  1159
public:
sl@0
  1160
	TFileSinkThreadLogonTestStep(MDataSink* aSink, MAsyncEventHandler* aEventHandler, TInt aFileSize)
sl@0
  1161
	: TSinkThreadLogonTestStep(aSink, aEventHandler), iFileSize(aFileSize)
sl@0
  1162
	{ }
sl@0
  1163
sl@0
  1164
	TVerdict DoTestStepL();
sl@0
  1165
sl@0
  1166
public:
sl@0
  1167
	TInt iFileSize;
sl@0
  1168
	};
sl@0
  1169
sl@0
  1170
class TFileEmptyBufferTestStep : public TWriteBufferToFileTestStep
sl@0
  1171
	{
sl@0
  1172
public:
sl@0
  1173
	TFileEmptyBufferTestStep(MDataSink* aSink, CMMFBuffer* aBuffer, CMMFDummySource* aSource, RFs& aFsSession, const TFileName& aDestinationFile, TDes8& aCopyOfDestinationDes)
sl@0
  1174
	: TWriteBufferToFileTestStep(aSink, aBuffer, aSource, aFsSession, aDestinationFile, aCopyOfDestinationDes), iWriteLength((aBuffer != NULL) ? aBuffer->BufferSize() : 0)
sl@0
  1175
	{ }
sl@0
  1176
sl@0
  1177
	void SetWriteLength(TInt aWriteLength)
sl@0
  1178
	{ iWriteLength = aWriteLength; }
sl@0
  1179
sl@0
  1180
	TVerdict DoTestStepL();
sl@0
  1181
sl@0
  1182
public:
sl@0
  1183
	TInt iWriteLength;
sl@0
  1184
	};
sl@0
  1185
sl@0
  1186
class TFileEmptyBuffer2TestStep : public TFileEmptyBufferTestStep
sl@0
  1187
	{
sl@0
  1188
public:
sl@0
  1189
	TFileEmptyBuffer2TestStep(TSinkType aSinkType, CMMFBuffer* aBuffer, CMMFDummySource* aSource, RFs& aFsSession, const TFileName& aDestinationFile, TDes8& aCopyOfDestinationDes)
sl@0
  1190
	: TFileEmptyBufferTestStep(NULL, aBuffer, aSource, aFsSession, aDestinationFile, aCopyOfDestinationDes), iSinkType(aSinkType)
sl@0
  1191
	{ }
sl@0
  1192
sl@0
  1193
	TVerdict DoTestStepL();
sl@0
  1194
protected:
sl@0
  1195
	TSinkType iSinkType;
sl@0
  1196
	};
sl@0
  1197
sl@0
  1198
class TFileEmptyBuffer3TestStep : public TFileEmptyBuffer2TestStep
sl@0
  1199
	{
sl@0
  1200
public:
sl@0
  1201
	TFileEmptyBuffer3TestStep(TSinkType aSinkType, CMMFBuffer* aBuffer, CMMFDummySource* aSource, RFs& aFsSession, const TFileName& aDestinationFile, TDes8& aCopyOfDestinationDes)
sl@0
  1202
	: TFileEmptyBuffer2TestStep(aSinkType, aBuffer, aSource, aFsSession, aDestinationFile, aCopyOfDestinationDes)
sl@0
  1203
	{ }
sl@0
  1204
sl@0
  1205
	TVerdict DoTestStepL();
sl@0
  1206
sl@0
  1207
	void DoTestPreambleL();
sl@0
  1208
	TVerdict DoTestPostambleL(TBool aCheck);
sl@0
  1209
	};
sl@0
  1210
sl@0
  1211
class TFileEmptyBuffer4TestStep : public TFileEmptyBuffer3TestStep
sl@0
  1212
	{
sl@0
  1213
public:
sl@0
  1214
	TFileEmptyBuffer4TestStep(TSinkType aSinkType, RPointerArray<CMMFBuffer>* aBufferArray, CMMFDummySource* aSource, RFs& aFsSession, const TFileName& aDestinationFile, TDes8& aCopyOfDestinationDes)
sl@0
  1215
	: TFileEmptyBuffer3TestStep(aSinkType, NULL, aSource, aFsSession, aDestinationFile, aCopyOfDestinationDes), iBufferArray(aBufferArray), iMaxRequestCount(20)
sl@0
  1216
	{ }
sl@0
  1217
sl@0
  1218
	void SetMaxRequestCount(TInt aMaxRequestCount)
sl@0
  1219
	{ iMaxRequestCount = aMaxRequestCount; }
sl@0
  1220
	
sl@0
  1221
	TVerdict DoTestStepL();
sl@0
  1222
sl@0
  1223
	void DoTestPreambleL();
sl@0
  1224
	TVerdict DoTestPostambleL(TBool aCheck);
sl@0
  1225
sl@0
  1226
public:
sl@0
  1227
	RPointerArray<CMMFBuffer>* iBufferArray;
sl@0
  1228
	TInt iMaxRequestCount;
sl@0
  1229
	};
sl@0
  1230
sl@0
  1231
class TFileEmptyBuffer5TestStep : public TFileEmptyBuffer4TestStep
sl@0
  1232
	{
sl@0
  1233
public:
sl@0
  1234
	TFileEmptyBuffer5TestStep(TSinkType aSinkType, RPointerArray<CMMFBuffer>* aBufferArray, CMMFDummySource* aSource, RFs& aFsSession, const TFileName& aDestinationFile, TDes8& aCopyOfDestinationDes)
sl@0
  1235
	: TFileEmptyBuffer4TestStep(aSinkType, aBufferArray, aSource, aFsSession, aDestinationFile, aCopyOfDestinationDes)
sl@0
  1236
	{ }
sl@0
  1237
sl@0
  1238
	TInt CheckDestinationL();
sl@0
  1239
	};
sl@0
  1240
sl@0
  1241
class TFileEmptyBuffer6TestStep : public TFileEmptyBufferTestStep
sl@0
  1242
	{
sl@0
  1243
public:
sl@0
  1244
	TFileEmptyBuffer6TestStep(MDataSink* aSink, RPointerArray<CMMFBuffer>* aBufferArray, CMMFDummySource* aSource, RFs& aFsSession, const TFileName& aDestinationFile, TDes8& aCopyOfDestinationDes)
sl@0
  1245
	: TFileEmptyBufferTestStep(aSink, NULL, aSource, aFsSession, aDestinationFile, aCopyOfDestinationDes), iBufferArray(aBufferArray), iMaxRequestCount(3)
sl@0
  1246
	{ }
sl@0
  1247
sl@0
  1248
	TVerdict DoTestStepL();
sl@0
  1249
	TInt CheckDestinationL();
sl@0
  1250
sl@0
  1251
public:
sl@0
  1252
	RPointerArray<CMMFBuffer>* iBufferArray;
sl@0
  1253
	TInt iMaxRequestCount;
sl@0
  1254
	};
sl@0
  1255
sl@0
  1256
class TFileWriteBufferTestStep : public TWriteBufferToFileTestStep
sl@0
  1257
	{
sl@0
  1258
public:
sl@0
  1259
	TFileWriteBufferTestStep(CMMFClip* aClip, CMMFBuffer* aBuffer, TInt aPosition, CMMFDummySource* aSource, RFs& aFsSession, const TFileName& aDestinationFileName, TDes8& aCopyOfDestinationDes, TUint aWriteLength = 0)
sl@0
  1260
	: TWriteBufferToFileTestStep(aClip, aBuffer, aPosition, aSource, aFsSession, aDestinationFileName, aCopyOfDestinationDes), iWriteLength(aWriteLength)
sl@0
  1261
	{ iAsynchronousWrite = ETrue; }
sl@0
  1262
sl@0
  1263
	void SetWriteLength(TInt aWriteLength)
sl@0
  1264
	{ iWriteLength = aWriteLength; }
sl@0
  1265
sl@0
  1266
	TVerdict DoTestStepL();
sl@0
  1267
sl@0
  1268
public:
sl@0
  1269
	TInt iWriteLength;
sl@0
  1270
	};
sl@0
  1271
sl@0
  1272
class TFileWriteBuffer2TestStep : public TFileWriteBufferTestStep
sl@0
  1273
	{
sl@0
  1274
public:
sl@0
  1275
	TFileWriteBuffer2TestStep(CMMFClip* aClip, CMMFBuffer* aBuffer, TInt aPosition, CMMFDummySource* aSource, RFs& aFsSession, const TFileName& aDestinationFileName, TDes8& aCopyOfDestinationDes, TUint aWriteLength = 0)
sl@0
  1276
	: TFileWriteBufferTestStep(aClip, aBuffer, aPosition, aSource, aFsSession, aDestinationFileName, aCopyOfDestinationDes, aWriteLength)
sl@0
  1277
	{ iAsynchronousWrite = ETrue; }
sl@0
  1278
sl@0
  1279
	TVerdict DoTestStepL();
sl@0
  1280
	};
sl@0
  1281
sl@0
  1282
class TFileWriteBuffer3TestStep : public TFileWriteBufferTestStep
sl@0
  1283
	{
sl@0
  1284
public:
sl@0
  1285
	TFileWriteBuffer3TestStep(CMMFClip* aClip, CMMFBuffer* aBuffer, TInt aPosition, RFs& aFsSession, const TFileName& aDestinationFileName, TDes8& aCopyOfDestinationDes, TUint aWriteLength = 0)
sl@0
  1286
	: TFileWriteBufferTestStep(aClip, aBuffer, aPosition, NULL, aFsSession, aDestinationFileName, aCopyOfDestinationDes, aWriteLength)
sl@0
  1287
	{ }
sl@0
  1288
sl@0
  1289
	TVerdict DoTestStepL();
sl@0
  1290
	};
sl@0
  1291
sl@0
  1292
class TFileWriteBuffer4TestStep : public TWriteBufferToFileTestStep
sl@0
  1293
	{
sl@0
  1294
public:
sl@0
  1295
	TFileWriteBuffer4TestStep(TSinkType aSinkType, TDesC& aFileName, CMMFBuffer* aBuffer, TInt aPosition, CMMFDummySource* aSource, RFs& aFsSession, const TFileName& aDestinationFileName, TDes8& aCopyOfDestinationDes, TUint aWriteLength = 0)
sl@0
  1296
	: TWriteBufferToFileTestStep(NULL, aBuffer, aPosition, aSource, aFsSession, aDestinationFileName, aCopyOfDestinationDes), iWriteLength(aWriteLength), iSinkType(aSinkType), iFileName(aFileName)
sl@0
  1297
	{ iAsynchronousWrite = ETrue; }
sl@0
  1298
sl@0
  1299
	void SetWriteLength(TInt aWriteLength)
sl@0
  1300
	{ iWriteLength = aWriteLength; }
sl@0
  1301
sl@0
  1302
	TVerdict DoTestStepL();
sl@0
  1303
sl@0
  1304
public:
sl@0
  1305
	TInt iWriteLength;
sl@0
  1306
	TSinkType iSinkType;
sl@0
  1307
	TDesC& iFileName;
sl@0
  1308
	};
sl@0
  1309
sl@0
  1310
class TFileWriteBuffer5TestStep : public TFileWriteBuffer4TestStep
sl@0
  1311
	{
sl@0
  1312
public:
sl@0
  1313
	TFileWriteBuffer5TestStep(TSinkType aSinkType, TDesC& aFileName, CMMFBuffer* aBuffer, TInt aPosition, CMMFDummySource* aSource, RFs& aFsSession, const TFileName& aDestinationFileName, TDes8& aCopyOfDestinationDes, TUint aWriteLength = 0)
sl@0
  1314
	: TFileWriteBuffer4TestStep(aSinkType, aFileName, aBuffer, aPosition, aSource, aFsSession, aDestinationFileName, aCopyOfDestinationDes, aWriteLength)
sl@0
  1315
	{ }
sl@0
  1316
sl@0
  1317
	TInt CheckDestinationL();
sl@0
  1318
	TVerdict DoNegativeTestPostambleL();
sl@0
  1319
	};
sl@0
  1320
sl@0
  1321
class TFileWriteBuffer6TestStep : public TWriteBufferToFileTestStep
sl@0
  1322
	{
sl@0
  1323
public:
sl@0
  1324
	TFileWriteBuffer6TestStep(TSinkType aSinkType, TDesC& aFileName, CMMFBuffer* aBuffer, TInt aPosition, CMMFDummySource* aSource, RFs& aFsSession, const TFileName& aDestinationFileName, TDes8& aCopyOfDestinationDes, TUint aWriteLength = 0)
sl@0
  1325
	: TWriteBufferToFileTestStep(NULL, aBuffer, aPosition, aSource, aFsSession, aDestinationFileName, aCopyOfDestinationDes), iWriteLength(aWriteLength), iSinkType(aSinkType), iFileName(aFileName)
sl@0
  1326
	{ }
sl@0
  1327
sl@0
  1328
	void SetWriteLength(TInt aWriteLength)
sl@0
  1329
	{ iWriteLength = aWriteLength; }
sl@0
  1330
sl@0
  1331
	TVerdict DoTestStepL();
sl@0
  1332
sl@0
  1333
public:
sl@0
  1334
	TInt iWriteLength;
sl@0
  1335
	TSinkType iSinkType;
sl@0
  1336
	TDesC& iFileName;
sl@0
  1337
	};
sl@0
  1338
sl@0
  1339
class TFileWriteBuffer7TestStep : public TWriteBufferToFileTestStep
sl@0
  1340
	{
sl@0
  1341
public:
sl@0
  1342
	TFileWriteBuffer7TestStep(TSinkType aSinkType, TDesC& aFileName, CMMFBuffer* aBuffer, TInt aPosition, RFs& aFsSession, const TFileName& aDestinationFileName, TDes8& aCopyOfDestinationDes, TUint aWriteLength = 0)
sl@0
  1343
	: TWriteBufferToFileTestStep(NULL, aBuffer, aPosition, aFsSession, aDestinationFileName, aCopyOfDestinationDes),iSinkType(aSinkType), iFileName(aFileName), iWriteLength(aWriteLength)
sl@0
  1344
	{ }
sl@0
  1345
sl@0
  1346
	void SetWriteLength(TInt aWriteLength)
sl@0
  1347
	{ iWriteLength = aWriteLength; }
sl@0
  1348
sl@0
  1349
	TVerdict DoTestStepL();
sl@0
  1350
sl@0
  1351
public:
sl@0
  1352
	TSinkType iSinkType;
sl@0
  1353
	TDesC& iFileName;
sl@0
  1354
	TInt iWriteLength;
sl@0
  1355
	};
sl@0
  1356
sl@0
  1357
class TFileWriteBuffer8TestStep : public TWriteBufferToFileTestStep
sl@0
  1358
	{
sl@0
  1359
public:
sl@0
  1360
	TFileWriteBuffer8TestStep(TSinkType aSinkType, TDesC& aFileName, RPointerArray<CMMFBuffer>* aBufferArray, TInt aPosition, CMMFDummySource* aSource, RFs& aFsSession, const TFileName& aDestinationFileName, TDes8& aCopyOfDestinationDes, TUint aWriteLength = 0)
sl@0
  1361
	: TWriteBufferToFileTestStep(NULL, NULL, aPosition, aSource, aFsSession, aDestinationFileName, aCopyOfDestinationDes), iSinkType(aSinkType), iFileName(aFileName), iWriteLength(aWriteLength), iBufferArray(aBufferArray), iMaxRequestCount(20)
sl@0
  1362
	{ }
sl@0
  1363
sl@0
  1364
	void SetWriteLength(TInt aWriteLength)
sl@0
  1365
	{ iWriteLength = aWriteLength; }
sl@0
  1366
sl@0
  1367
	void SetMaxRequestCount(TInt aMaxRequestCount)
sl@0
  1368
	{ iMaxRequestCount = aMaxRequestCount; }
sl@0
  1369
sl@0
  1370
	TVerdict DoTestStepL();
sl@0
  1371
sl@0
  1372
public:
sl@0
  1373
	TSinkType iSinkType;
sl@0
  1374
	TDesC& iFileName;
sl@0
  1375
	TInt iWriteLength;
sl@0
  1376
	RPointerArray<CMMFBuffer>* iBufferArray;
sl@0
  1377
	TInt iMaxRequestCount;
sl@0
  1378
	};
sl@0
  1379
sl@0
  1380
class TFileWriteBuffer9TestStep : public TWriteBufferToFileTestStep
sl@0
  1381
	{
sl@0
  1382
public:
sl@0
  1383
	TFileWriteBuffer9TestStep(TSinkType aSinkType, TDesC& aFileName, RPointerArray<CMMFBuffer>* aBufferArray, TInt aPosition, CMMFDummySource* aSource, RFs& aFsSession, const TFileName& aDestinationFileName, TDes8& aCopyOfDestinationDes, TUint aWriteLength = 0)
sl@0
  1384
	: TWriteBufferToFileTestStep(NULL, NULL, aPosition, aSource, aFsSession, aDestinationFileName, aCopyOfDestinationDes), iFileName(aFileName), iWriteLength(aWriteLength), iBufferArray(aBufferArray), iMaxRequestCount(20), iSinkType(aSinkType)
sl@0
  1385
	{ }
sl@0
  1386
sl@0
  1387
	void SetWriteLength(TInt aWriteLength)
sl@0
  1388
	{ iWriteLength = aWriteLength; }
sl@0
  1389
sl@0
  1390
	void SetMaxRequestCount(TInt aMaxRequestCount)
sl@0
  1391
	{ iMaxRequestCount = aMaxRequestCount; }
sl@0
  1392
sl@0
  1393
	TVerdict DoTestStepL();
sl@0
  1394
sl@0
  1395
public:
sl@0
  1396
	TDesC& iFileName;
sl@0
  1397
	TInt iWriteLength;
sl@0
  1398
	RPointerArray<CMMFBuffer>* iBufferArray;
sl@0
  1399
	TInt iMaxRequestCount;
sl@0
  1400
	TSinkType iSinkType;
sl@0
  1401
	};
sl@0
  1402
sl@0
  1403
class TFileWriteBuffer10TestStep : public TFileWriteBuffer8TestStep
sl@0
  1404
	{
sl@0
  1405
public:
sl@0
  1406
	TFileWriteBuffer10TestStep(TSinkType aSinkType, TDesC& aFileName, RPointerArray<CMMFBuffer>* aBufferArray, TInt aPosition, CMMFDummySource* aSource, RFs& aFsSession, const TFileName& aDestinationFileName, TDes8& aCopyOfDestinationDes, TUint aWriteLength = 0)
sl@0
  1407
	: TFileWriteBuffer8TestStep(aSinkType, aFileName, aBufferArray, aPosition, aSource, aFsSession, aDestinationFileName, aCopyOfDestinationDes, aWriteLength)
sl@0
  1408
	{ iMaxRequestCount = 3; }
sl@0
  1409
sl@0
  1410
	TInt CheckDestinationL();
sl@0
  1411
	};
sl@0
  1412
sl@0
  1413
class TFileWriteBuffer11TestStep : public TFileWriteBuffer9TestStep
sl@0
  1414
	{
sl@0
  1415
public:
sl@0
  1416
	TFileWriteBuffer11TestStep(TSinkType aSinkType, TDesC& aFileName, RPointerArray<CMMFBuffer>* aBufferArray, TInt aPosition, CMMFDummySource* aSource, RFs& aFsSession, const TFileName& aDestinationFileName, TDes8& aCopyOfDestinationDes, TUint aWriteLength = 0)
sl@0
  1417
	: TFileWriteBuffer9TestStep(aSinkType, aFileName, aBufferArray, aPosition, aSource, aFsSession, aDestinationFileName, aCopyOfDestinationDes, aWriteLength)
sl@0
  1418
	{ iMaxRequestCount = 3; }
sl@0
  1419
sl@0
  1420
	TInt CheckDestinationL();
sl@0
  1421
	};
sl@0
  1422
sl@0
  1423
class TFileWriteBuffer12TestStep : public TWriteBufferToFileTestStep
sl@0
  1424
	{
sl@0
  1425
public:
sl@0
  1426
	TFileWriteBuffer12TestStep(MDataSink* aSink, RPointerArray<CMMFBuffer>* aBufferArray, TInt aPosition, CMMFDummySource* aSource, RFs& aFsSession, const TFileName& aDestinationFileName, TDes8& aCopyOfDestinationDes, TUint aWriteLength = 0)
sl@0
  1427
	: TWriteBufferToFileTestStep(aSink, NULL, aPosition, aSource, aFsSession, aDestinationFileName, aCopyOfDestinationDes), iWriteLength(aWriteLength), iBufferArray(aBufferArray), iMaxRequestCount(3)
sl@0
  1428
	{ ASSERT(iBufferArray->Count() == 5); }
sl@0
  1429
sl@0
  1430
	void SetWriteLength(TInt aWriteLength)
sl@0
  1431
	{ iWriteLength = aWriteLength; }
sl@0
  1432
sl@0
  1433
	void SetMaxRequestCount(TInt aMaxRequestCount)
sl@0
  1434
	{ iMaxRequestCount = aMaxRequestCount; }
sl@0
  1435
sl@0
  1436
	TVerdict DoTestStepL();
sl@0
  1437
	TInt CheckDestinationL();
sl@0
  1438
sl@0
  1439
public:
sl@0
  1440
	TInt iWriteLength;
sl@0
  1441
sl@0
  1442
	RPointerArray<CMMFBuffer>* iBufferArray;
sl@0
  1443
	TInt iMaxRequestCount;
sl@0
  1444
	};
sl@0
  1445
sl@0
  1446
class TFileWriteBuffer13TestStep : public TWriteBufferToFileTestStep
sl@0
  1447
	{
sl@0
  1448
public:
sl@0
  1449
	TFileWriteBuffer13TestStep(MDataSink* aSink, RPointerArray<CMMFBuffer>* aBufferArray, TInt aPosition, CMMFDummySource* aSource, RFs& aFsSession, const TFileName& aDestinationFileName, TDes8& aCopyOfDestinationDes, TUint aWriteLength = 0)
sl@0
  1450
	: TWriteBufferToFileTestStep(aSink, NULL, aPosition, aSource, aFsSession, aDestinationFileName, aCopyOfDestinationDes), iWriteLength(aWriteLength), iBufferArray(aBufferArray), iMaxRequestCount(3)
sl@0
  1451
	{ ASSERT(iBufferArray->Count() == 5); }
sl@0
  1452
sl@0
  1453
	void SetWriteLength(TInt aWriteLength)
sl@0
  1454
	{ iWriteLength = aWriteLength; }
sl@0
  1455
sl@0
  1456
	void SetMaxRequestCount(TInt aMaxRequestCount)
sl@0
  1457
	{ iMaxRequestCount = aMaxRequestCount; }
sl@0
  1458
sl@0
  1459
	TVerdict DoTestStepL();
sl@0
  1460
	TInt CheckDestinationL();
sl@0
  1461
sl@0
  1462
public:
sl@0
  1463
	TInt iWriteLength;
sl@0
  1464
sl@0
  1465
	RPointerArray<CMMFBuffer>* iBufferArray;
sl@0
  1466
	TInt iMaxRequestCount;
sl@0
  1467
	};
sl@0
  1468
sl@0
  1469
class TAudioInputCreateSourceBuffer1TestStep : public TTestStep
sl@0
  1470
	{
sl@0
  1471
public:
sl@0
  1472
	TAudioInputCreateSourceBuffer1TestStep(CMMFAudioInput* aSource)
sl@0
  1473
	: TTestStep(aSource)
sl@0
  1474
	{ }
sl@0
  1475
sl@0
  1476
	TVerdict DoTestStepL();
sl@0
  1477
};
sl@0
  1478
sl@0
  1479
class TAudioInputCreateSourceBuffer2TestStep : public TTestStep
sl@0
  1480
	{
sl@0
  1481
public:
sl@0
  1482
	TAudioInputCreateSourceBuffer2TestStep(CMMFAudioInput* aSource, CMMFBuffer* aSinkBuffer)
sl@0
  1483
	: TTestStep(aSource), iSinkBuffer(aSinkBuffer)
sl@0
  1484
	{ }
sl@0
  1485
sl@0
  1486
	TVerdict DoTestStepL();
sl@0
  1487
sl@0
  1488
public:
sl@0
  1489
	CMMFBuffer* iSinkBuffer;
sl@0
  1490
};
sl@0
  1491
sl@0
  1492
class TAudioInputFillBufferTestStep : public TTestStep
sl@0
  1493
	{
sl@0
  1494
public:
sl@0
  1495
	TAudioInputFillBufferTestStep(MDataSource* aSource, CMMFBuffer* aBuffer, CMMFDummySink* aSink)
sl@0
  1496
	: TTestStep(aSource, aSink), iBuffer(aBuffer)
sl@0
  1497
	{ }
sl@0
  1498
sl@0
  1499
	TVerdict DoTestStepL();
sl@0
  1500
sl@0
  1501
public:
sl@0
  1502
	CMMFBuffer* iBuffer;
sl@0
  1503
	};
sl@0
  1504
sl@0
  1505
class TAudioInputFillBuffer2TestStep : public TAudioInputFillBufferTestStep
sl@0
  1506
	{
sl@0
  1507
public:
sl@0
  1508
	TAudioInputFillBuffer2TestStep(MDataSource* aSource, CMMFBuffer* aBuffer, CMMFDummySink* aSink)
sl@0
  1509
	: TAudioInputFillBufferTestStep(aSource, aBuffer, aSink)
sl@0
  1510
	{ }
sl@0
  1511
sl@0
  1512
	TVerdict DoTestStepL();
sl@0
  1513
	};
sl@0
  1514
sl@0
  1515
class TAudioInputFillBuffer3TestStep : public TAudioInputFillBufferTestStep
sl@0
  1516
	{
sl@0
  1517
public:
sl@0
  1518
	TAudioInputFillBuffer3TestStep(MDataSource* aSource, CMMFBuffer* aBuffer, CMMFDummySink* aSink)
sl@0
  1519
	: TAudioInputFillBufferTestStep(aSource, aBuffer, aSink)
sl@0
  1520
	{ }
sl@0
  1521
sl@0
  1522
	TVerdict DoTestStepL();
sl@0
  1523
	};
sl@0
  1524
sl@0
  1525
class TAudioInputFillBuffer4TestStep : public TAudioInputFillBufferTestStep
sl@0
  1526
	{
sl@0
  1527
public:
sl@0
  1528
	TAudioInputFillBuffer4TestStep(CMMFBuffer* aBuffer, CMMFDummySink* aSink)
sl@0
  1529
	: TAudioInputFillBufferTestStep(NULL, aBuffer, aSink)
sl@0
  1530
	{ }
sl@0
  1531
sl@0
  1532
	TVerdict DoTestStepL();
sl@0
  1533
	};
sl@0
  1534
	
sl@0
  1535
class TAudioInputFillBuffer5TestStep : public TAudioInputFillBufferTestStep
sl@0
  1536
	{
sl@0
  1537
public:
sl@0
  1538
	TAudioInputFillBuffer5TestStep(CMMFBuffer* aBuffer, CMMFDummySink* aSink)
sl@0
  1539
	: TAudioInputFillBufferTestStep(NULL, aBuffer, aSink)
sl@0
  1540
	{ }
sl@0
  1541
sl@0
  1542
	TVerdict DoTestStepL();
sl@0
  1543
	};
sl@0
  1544
sl@0
  1545
class TAudioInputFillBuffer6TestStep : public TAudioInputFillBufferTestStep
sl@0
  1546
	{
sl@0
  1547
public:
sl@0
  1548
	TAudioInputFillBuffer6TestStep(CMMFBuffer* aBuffer, CMMFDummySink* aSink)
sl@0
  1549
	: TAudioInputFillBufferTestStep(NULL, aBuffer, aSink)
sl@0
  1550
	{ }
sl@0
  1551
sl@0
  1552
	TVerdict DoTestStepL();
sl@0
  1553
	};
sl@0
  1554
sl@0
  1555
class TAudioInputFillBuffer7TestStep : public TAudioInputFillBufferTestStep
sl@0
  1556
	{
sl@0
  1557
public:
sl@0
  1558
	TAudioInputFillBuffer7TestStep(CMMFBuffer* aBuffer, CMMFDummySink* aSink)
sl@0
  1559
	: TAudioInputFillBufferTestStep(NULL, aBuffer, aSink)
sl@0
  1560
	{ }
sl@0
  1561
sl@0
  1562
	TVerdict DoTestStepL();
sl@0
  1563
	};
sl@0
  1564
sl@0
  1565
class TAudioInputFillBuffer8TestStep : public TAudioInputFillBufferTestStep
sl@0
  1566
	{
sl@0
  1567
public:
sl@0
  1568
	TAudioInputFillBuffer8TestStep(CMMFBuffer* aBuffer, CMMFDummySink* aSink)
sl@0
  1569
	: TAudioInputFillBufferTestStep(NULL, aBuffer, aSink)
sl@0
  1570
	{ }
sl@0
  1571
sl@0
  1572
	TVerdict DoTestStepL();
sl@0
  1573
	};
sl@0
  1574
sl@0
  1575
sl@0
  1576
class TAudioOutputEmptyBufferTestStep : public TTestStep
sl@0
  1577
	{
sl@0
  1578
public:
sl@0
  1579
	TAudioOutputEmptyBufferTestStep(MDataSink* aSink, CMMFBuffer* aBuffer, CMMFDummySource* aSource)
sl@0
  1580
	: TTestStep(aSource, aSink), iBuffer(aBuffer), iAsynchronousWrite(EFalse)
sl@0
  1581
	{ }
sl@0
  1582
sl@0
  1583
	void SetAsynchronousWrite()
sl@0
  1584
	{ iAsynchronousWrite = ETrue; }
sl@0
  1585
	
sl@0
  1586
	TVerdict DoTestStepL();
sl@0
  1587
sl@0
  1588
public:
sl@0
  1589
	CMMFBuffer* iBuffer;
sl@0
  1590
	TBool iAsynchronousWrite;
sl@0
  1591
	};
sl@0
  1592
sl@0
  1593
class TAudioOutputEmptyBuffer2TestStep : public TAudioOutputEmptyBufferTestStep
sl@0
  1594
	{
sl@0
  1595
public:
sl@0
  1596
	TAudioOutputEmptyBuffer2TestStep(MDataSink* aSink, CMMFBuffer* aBuffer, CMMFDummySource* aSource)
sl@0
  1597
	: TAudioOutputEmptyBufferTestStep(aSink, aBuffer, aSource)
sl@0
  1598
	{ iAsynchronousWrite = ETrue; }
sl@0
  1599
	
sl@0
  1600
	TVerdict DoTestStepL();
sl@0
  1601
	};
sl@0
  1602
sl@0
  1603
class TAudioOutputEmptyBuffer3TestStep : public TAudioOutputEmptyBufferTestStep
sl@0
  1604
	{
sl@0
  1605
public:
sl@0
  1606
	TAudioOutputEmptyBuffer3TestStep(MDataSink* aSink, CMMFBuffer* aBuffer, CMMFDummySource* aSource)
sl@0
  1607
	: TAudioOutputEmptyBufferTestStep(aSink, aBuffer, aSource)
sl@0
  1608
	{ iAsynchronousWrite = ETrue; }
sl@0
  1609
	
sl@0
  1610
	TVerdict DoTestStepL();
sl@0
  1611
	};
sl@0
  1612
sl@0
  1613
class TAudioOutputEmptyBuffer4TestStep : public TAudioOutputEmptyBufferTestStep
sl@0
  1614
	{
sl@0
  1615
public:
sl@0
  1616
	TAudioOutputEmptyBuffer4TestStep(CMMFBuffer* aBuffer, CMMFDummySource* aSource, MDataSource& aRealFormat)
sl@0
  1617
	: TAudioOutputEmptyBufferTestStep(NULL, aBuffer, aSource), iRealFormat(aRealFormat)
sl@0
  1618
	{ }
sl@0
  1619
	
sl@0
  1620
	TVerdict DoTestStepL();
sl@0
  1621
sl@0
  1622
public:
sl@0
  1623
	MDataSource& iRealFormat;
sl@0
  1624
	};
sl@0
  1625
	
sl@0
  1626
class TAudioOutputEmptyBuffer5TestStep : public TAudioOutputEmptyBufferTestStep
sl@0
  1627
	{
sl@0
  1628
public:
sl@0
  1629
	TAudioOutputEmptyBuffer5TestStep(CMMFBuffer* aBuffer, CMMFDummySource* aSource, MDataSource& aRealFormat)
sl@0
  1630
	: TAudioOutputEmptyBufferTestStep(NULL, aBuffer, aSource), iRealFormat(aRealFormat)
sl@0
  1631
	{ }
sl@0
  1632
	
sl@0
  1633
	TVerdict DoTestStepL();
sl@0
  1634
sl@0
  1635
public:
sl@0
  1636
	MDataSource& iRealFormat;
sl@0
  1637
	};
sl@0
  1638
sl@0
  1639
class TAudioOutputEmptyBuffer6TestStep : public TAudioOutputEmptyBufferTestStep
sl@0
  1640
	{
sl@0
  1641
public:
sl@0
  1642
	TAudioOutputEmptyBuffer6TestStep(CMMFBuffer* aBuffer, CMMFDummySource* aSource, MDataSource& aRealFormat)
sl@0
  1643
	: TAudioOutputEmptyBufferTestStep(NULL, aBuffer, aSource), iRealFormat(aRealFormat)
sl@0
  1644
	{ }
sl@0
  1645
	
sl@0
  1646
	TVerdict DoTestStepL();
sl@0
  1647
sl@0
  1648
public:
sl@0
  1649
	MDataSource& iRealFormat;
sl@0
  1650
	};
sl@0
  1651
sl@0
  1652
class TPrimeStopTestStep : public TFileTestStep
sl@0
  1653
	{
sl@0
  1654
public:
sl@0
  1655
	TPrimeStopTestStep()
sl@0
  1656
		{ }
sl@0
  1657
sl@0
  1658
	virtual TVerdict DoTestStepL();
sl@0
  1659
	};
sl@0
  1660
sl@0
  1661
sl@0
  1662
class TPrimeStopSinkTestStep : public TFileTestStep
sl@0
  1663
	{
sl@0
  1664
public:
sl@0
  1665
	TPrimeStopSinkTestStep()
sl@0
  1666
		{ }
sl@0
  1667
sl@0
  1668
	virtual TVerdict DoTestStepL();
sl@0
  1669
	};
sl@0
  1670
sl@0
  1671
sl@0
  1672
/**
sl@0
  1673
 *
sl@0
  1674
 * CTestStep_MMF_SRSSNK, which is the base class for all 
sl@0
  1675
 * the SelfTest suite test steps.
sl@0
  1676
 *
sl@0
  1677
 * @lib "TSU_MMF_SRSSNK.lib"
sl@0
  1678
 *
sl@0
  1679
 * @xxxx
sl@0
  1680
 *
sl@0
  1681
 */
sl@0
  1682
const TInt KErrFileFail = -12345;
sl@0
  1683
class CTestStep_MMF_SRSSNK : public CTestStep
sl@0
  1684
	{
sl@0
  1685
public:
sl@0
  1686
	CTestStep_MMF_SRSSNK(TBool aIsAllocTest = ETrue);
sl@0
  1687
	~CTestStep_MMF_SRSSNK();
sl@0
  1688
	static void CleanUp(TAny *aPtr);
sl@0
  1689
	inline void SetTestSuite(const CTestSuite_MMF_SRSSNK* aTestSuite);
sl@0
  1690
sl@0
  1691
	void DoTestStep(TTestStep& aTestStep, TPtrC aTestDescription, TInt aExpectedTestResult, TInt aHeapCellCount = 0);
sl@0
  1692
	void DoTestStepWithAllocFail(TTestStep& aTestStep, TPtrC aTestDescription, TInt aExpectedTestResult, TInt aHeapCellCount = 0);
sl@0
  1693
	void DoTestStepWithFileFail(TFileTestStep& aTestStep, TPtrC aTestDescription, TInt aExpectedTestResult, TInt aHeapCellCount = 0);
sl@0
  1694
	void DoTestStepWithAllocAndFileFail(TFileTestStep& aTestStep, TPtrC aTestDescription, TInt aExpectedTestResult);
sl@0
  1695
sl@0
  1696
	void DoTest(TTestStep& aTestStep, TPtrC aTestDescription, TInt aExpectedTestResult, TInt aHeapCellCount = 0);
sl@0
  1697
	void DoFileTest(TFileTestStep& aTestStep, TPtrC aTestDescription, TInt aExpectedTestResult);
sl@0
  1698
	void DoFileTestWithoutAllocFail(TFileTestStep& aTestStep, TPtrC aTestDescription, TInt aExpectedTestResult, TInt aHeapCellCount);
sl@0
  1699
	
sl@0
  1700
	// from CTestStep
sl@0
  1701
public:
sl@0
  1702
	TVerdict OpenL();
sl@0
  1703
sl@0
  1704
protected:
sl@0
  1705
	void CopyFileL(RFs& aFs, const TDesC& aOld, const TDesC& aNew);
sl@0
  1706
	
sl@0
  1707
	void OpenFileL(const TDesC& aFileName, TInt aMode, TBool aShareProtected=EFalse);
sl@0
  1708
	void CloseFile();
sl@0
  1709
	
sl@0
  1710
	void DeleteFileSinkL(TSinkType aSinkType, RFs& aFs, TDesC& aFileName);
sl@0
  1711
sl@0
  1712
sl@0
  1713
protected:
sl@0
  1714
	// pointer to suite which owns this test 
sl@0
  1715
	const CTestSuite_MMF_SRSSNK* iMMFBaseClTestSuite;
sl@0
  1716
sl@0
  1717
	TVerdict iTestResult;
sl@0
  1718
	TBool iIsAllocTest;
sl@0
  1719
	TBool iFileFailureTestingEnabled;
sl@0
  1720
	RFile iFile;
sl@0
  1721
	RFs iFs;
sl@0
  1722
	};
sl@0
  1723
sl@0
  1724
inline void CTestStep_MMF_SRSSNK::SetTestSuite(const CTestSuite_MMF_SRSSNK* aTestSuite)
sl@0
  1725
	{
sl@0
  1726
	iMMFBaseClTestSuite = aTestSuite;
sl@0
  1727
	}
sl@0
  1728
sl@0
  1729
/**
sl@0
  1730
 *
sl@0
  1731
 *
sl@0
  1732
 */
sl@0
  1733
class CTestStep_MMF_SRSSNK_U_0001 : public CTestStep_MMF_SRSSNK
sl@0
  1734
	{
sl@0
  1735
public:
sl@0
  1736
	CTestStep_MMF_SRSSNK_U_0001();
sl@0
  1737
	~CTestStep_MMF_SRSSNK_U_0001();
sl@0
  1738
	virtual TVerdict DoTestStepL();
sl@0
  1739
	};
sl@0
  1740
sl@0
  1741
sl@0
  1742
/**
sl@0
  1743
 *
sl@0
  1744
 *
sl@0
  1745
 */
sl@0
  1746
class CTestStep_MMF_SRSSNK_U_0002 : public CTestStep_MMF_SRSSNK
sl@0
  1747
	{
sl@0
  1748
public:
sl@0
  1749
	CTestStep_MMF_SRSSNK_U_0002();
sl@0
  1750
	~CTestStep_MMF_SRSSNK_U_0002();
sl@0
  1751
	virtual TVerdict DoTestStepL();
sl@0
  1752
	};
sl@0
  1753
sl@0
  1754
/**
sl@0
  1755
 *
sl@0
  1756
 *
sl@0
  1757
 */
sl@0
  1758
class CTestStep_MMF_SRSSNK_U_0003 : public CTestStep_MMF_SRSSNK
sl@0
  1759
	{
sl@0
  1760
public:
sl@0
  1761
	CTestStep_MMF_SRSSNK_U_0003();
sl@0
  1762
	~CTestStep_MMF_SRSSNK_U_0003();
sl@0
  1763
	virtual TVerdict DoTestStepL();
sl@0
  1764
	};
sl@0
  1765
sl@0
  1766
sl@0
  1767
/**
sl@0
  1768
 *
sl@0
  1769
 *
sl@0
  1770
 */
sl@0
  1771
class CTestStep_MMF_SRSSNK_U_0004 : public CTestStep_MMF_SRSSNK
sl@0
  1772
	{
sl@0
  1773
public:
sl@0
  1774
	CTestStep_MMF_SRSSNK_U_0004();
sl@0
  1775
	~CTestStep_MMF_SRSSNK_U_0004();
sl@0
  1776
	virtual TVerdict DoTestStepL();
sl@0
  1777
	};
sl@0
  1778
sl@0
  1779
sl@0
  1780
/**
sl@0
  1781
 *
sl@0
  1782
 *
sl@0
  1783
 */
sl@0
  1784
class CTestStep_MMF_SRSSNK_U_0005 : public CTestStep_MMF_SRSSNK
sl@0
  1785
	{
sl@0
  1786
public:
sl@0
  1787
	CTestStep_MMF_SRSSNK_U_0005();
sl@0
  1788
	~CTestStep_MMF_SRSSNK_U_0005();
sl@0
  1789
	virtual TVerdict DoTestStepL();
sl@0
  1790
	};
sl@0
  1791
sl@0
  1792
sl@0
  1793
/**
sl@0
  1794
 *
sl@0
  1795
 *
sl@0
  1796
 */
sl@0
  1797
class CTestStep_MMF_SRSSNK_U_0006 : public CTestStep_MMF_SRSSNK
sl@0
  1798
	{
sl@0
  1799
public:
sl@0
  1800
	CTestStep_MMF_SRSSNK_U_0006();
sl@0
  1801
	~CTestStep_MMF_SRSSNK_U_0006();
sl@0
  1802
	virtual TVerdict DoTestStepL();
sl@0
  1803
	};
sl@0
  1804
sl@0
  1805
sl@0
  1806
/**
sl@0
  1807
 *
sl@0
  1808
 *
sl@0
  1809
 */
sl@0
  1810
class CTestStep_MMF_SRSSNK_U_0007 : public CTestStep_MMF_SRSSNK
sl@0
  1811
	{
sl@0
  1812
public:
sl@0
  1813
	CTestStep_MMF_SRSSNK_U_0007();
sl@0
  1814
	~CTestStep_MMF_SRSSNK_U_0007();
sl@0
  1815
	virtual TVerdict DoTestStepL();
sl@0
  1816
	};
sl@0
  1817
sl@0
  1818
sl@0
  1819
/**
sl@0
  1820
 *
sl@0
  1821
 *
sl@0
  1822
 */
sl@0
  1823
class CTestStep_MMF_SRSSNK_U_0008 : public CTestStep_MMF_SRSSNK
sl@0
  1824
	{
sl@0
  1825
public:
sl@0
  1826
	CTestStep_MMF_SRSSNK_U_0008();
sl@0
  1827
	~CTestStep_MMF_SRSSNK_U_0008();
sl@0
  1828
	virtual TVerdict DoTestStepL();
sl@0
  1829
	};
sl@0
  1830
sl@0
  1831
sl@0
  1832
/**
sl@0
  1833
 *
sl@0
  1834
 *
sl@0
  1835
 */
sl@0
  1836
class CTestStep_MMF_SRSSNK_U_0009 : public CTestStep_MMF_SRSSNK
sl@0
  1837
	{
sl@0
  1838
public:
sl@0
  1839
	CTestStep_MMF_SRSSNK_U_0009();
sl@0
  1840
	~CTestStep_MMF_SRSSNK_U_0009();
sl@0
  1841
	virtual TVerdict DoTestStepL();
sl@0
  1842
	};
sl@0
  1843
sl@0
  1844
sl@0
  1845
/**
sl@0
  1846
 *
sl@0
  1847
 *
sl@0
  1848
 */
sl@0
  1849
class CTestStep_MMF_SRSSNK_U_0010 : public CTestStep_MMF_SRSSNK
sl@0
  1850
	{
sl@0
  1851
public:
sl@0
  1852
	CTestStep_MMF_SRSSNK_U_0010();
sl@0
  1853
	~CTestStep_MMF_SRSSNK_U_0010();
sl@0
  1854
	virtual TVerdict DoTestStepL();
sl@0
  1855
	};
sl@0
  1856
sl@0
  1857
/**
sl@0
  1858
 *
sl@0
  1859
 *
sl@0
  1860
 */
sl@0
  1861
class CTestStep_MMF_SRSSNK_U_0011 : public CTestStep_MMF_SRSSNK
sl@0
  1862
	{
sl@0
  1863
public:
sl@0
  1864
	CTestStep_MMF_SRSSNK_U_0011();
sl@0
  1865
	~CTestStep_MMF_SRSSNK_U_0011();
sl@0
  1866
	virtual TVerdict DoTestStepL();
sl@0
  1867
	};
sl@0
  1868
sl@0
  1869
/**
sl@0
  1870
 *
sl@0
  1871
 *
sl@0
  1872
 */
sl@0
  1873
class CTestStep_MMF_SRSSNK_U_0012 : public CTestStep_MMF_SRSSNK
sl@0
  1874
	{
sl@0
  1875
public:
sl@0
  1876
	CTestStep_MMF_SRSSNK_U_0012();
sl@0
  1877
	~CTestStep_MMF_SRSSNK_U_0012();
sl@0
  1878
	virtual TVerdict DoTestStepL();
sl@0
  1879
	};
sl@0
  1880
sl@0
  1881
/**
sl@0
  1882
 *
sl@0
  1883
 *
sl@0
  1884
 */
sl@0
  1885
class CTestStep_MMF_SRSSNK_U_0013 : public CTestStep_MMF_SRSSNK
sl@0
  1886
	{
sl@0
  1887
public:
sl@0
  1888
	CTestStep_MMF_SRSSNK_U_0013();
sl@0
  1889
	~CTestStep_MMF_SRSSNK_U_0013();
sl@0
  1890
	virtual TVerdict DoTestStepL();
sl@0
  1891
	};
sl@0
  1892
sl@0
  1893
/**
sl@0
  1894
 *
sl@0
  1895
 *
sl@0
  1896
 */
sl@0
  1897
class CTestStep_MMF_SRSSNK_U_0014 : public CTestStep_MMF_SRSSNK
sl@0
  1898
	{
sl@0
  1899
public:
sl@0
  1900
	CTestStep_MMF_SRSSNK_U_0014();
sl@0
  1901
	~CTestStep_MMF_SRSSNK_U_0014();
sl@0
  1902
	virtual TVerdict DoTestStepL();
sl@0
  1903
	};
sl@0
  1904
sl@0
  1905
/**
sl@0
  1906
 *
sl@0
  1907
 *
sl@0
  1908
 */
sl@0
  1909
class CTestStep_MMF_SRSSNK_U_0015 : public CTestStep_MMF_SRSSNK
sl@0
  1910
	{
sl@0
  1911
public:
sl@0
  1912
	CTestStep_MMF_SRSSNK_U_0015();
sl@0
  1913
	~CTestStep_MMF_SRSSNK_U_0015();
sl@0
  1914
	virtual TVerdict DoTestStepL();
sl@0
  1915
	};
sl@0
  1916
sl@0
  1917
sl@0
  1918
/**
sl@0
  1919
 *
sl@0
  1920
 *
sl@0
  1921
 */
sl@0
  1922
class CTestStep_MMF_SRSSNK_U_0101 : public CTestStep_MMF_SRSSNK
sl@0
  1923
	{
sl@0
  1924
public:
sl@0
  1925
	CTestStep_MMF_SRSSNK_U_0101();
sl@0
  1926
	~CTestStep_MMF_SRSSNK_U_0101();
sl@0
  1927
	virtual TVerdict DoTestStepL();
sl@0
  1928
	};
sl@0
  1929
sl@0
  1930
/**
sl@0
  1931
 *
sl@0
  1932
 *
sl@0
  1933
 */
sl@0
  1934
class CTestStep_MMF_SRSSNK_U_0102 : public CTestStep_MMF_SRSSNK
sl@0
  1935
	{
sl@0
  1936
public:
sl@0
  1937
	CTestStep_MMF_SRSSNK_U_0102();
sl@0
  1938
	~CTestStep_MMF_SRSSNK_U_0102();
sl@0
  1939
	virtual TVerdict DoTestStepL();
sl@0
  1940
	};
sl@0
  1941
sl@0
  1942
sl@0
  1943
/**
sl@0
  1944
 *
sl@0
  1945
 *
sl@0
  1946
 */
sl@0
  1947
class CTestStep_MMF_SRSSNK_U_0103 : public CTestStep_MMF_SRSSNK
sl@0
  1948
	{
sl@0
  1949
public:
sl@0
  1950
	CTestStep_MMF_SRSSNK_U_0103();
sl@0
  1951
	~CTestStep_MMF_SRSSNK_U_0103();
sl@0
  1952
	virtual TVerdict DoTestStepL();
sl@0
  1953
	};
sl@0
  1954
sl@0
  1955
sl@0
  1956
/**
sl@0
  1957
 *
sl@0
  1958
 *
sl@0
  1959
 */
sl@0
  1960
class CTestStep_MMF_SRSSNK_U_0104 : public CTestStep_MMF_SRSSNK
sl@0
  1961
	{
sl@0
  1962
public:
sl@0
  1963
	CTestStep_MMF_SRSSNK_U_0104();
sl@0
  1964
	~CTestStep_MMF_SRSSNK_U_0104();
sl@0
  1965
	virtual TVerdict DoTestStepL();
sl@0
  1966
	};
sl@0
  1967
sl@0
  1968
sl@0
  1969
sl@0
  1970
/**
sl@0
  1971
 *
sl@0
  1972
 *
sl@0
  1973
 */
sl@0
  1974
class CTestStep_MMF_SRSSNK_FileSourceMisc : public CTestStep_MMF_SRSSNK
sl@0
  1975
	{
sl@0
  1976
public:
sl@0
  1977
	CTestStep_MMF_SRSSNK_FileSourceMisc(TSourceType aSourceType);
sl@0
  1978
	~CTestStep_MMF_SRSSNK_FileSourceMisc();
sl@0
  1979
	virtual TVerdict DoTestStepL();
sl@0
  1980
private:
sl@0
  1981
	TSourceType iSourceType;
sl@0
  1982
	};
sl@0
  1983
sl@0
  1984
sl@0
  1985
/**
sl@0
  1986
 *
sl@0
  1987
 *
sl@0
  1988
 */
sl@0
  1989
class CTestStep_MMF_SRSSNK_FileFillBuffer : public CTestStep_MMF_SRSSNK
sl@0
  1990
	{
sl@0
  1991
public:
sl@0
  1992
	CTestStep_MMF_SRSSNK_FileFillBuffer(TSourceType aSourceType);
sl@0
  1993
	~CTestStep_MMF_SRSSNK_FileFillBuffer();
sl@0
  1994
	virtual TVerdict DoTestStepL();
sl@0
  1995
private:
sl@0
  1996
	TSourceType iSourceType;
sl@0
  1997
	};
sl@0
  1998
sl@0
  1999
sl@0
  2000
sl@0
  2001
sl@0
  2002
/**
sl@0
  2003
 *
sl@0
  2004
 *
sl@0
  2005
 */
sl@0
  2006
class CTestStep_MMF_SRSSNK_U_0107 : public CTestStep_MMF_SRSSNK
sl@0
  2007
	{
sl@0
  2008
public:
sl@0
  2009
	CTestStep_MMF_SRSSNK_U_0107();
sl@0
  2010
	~CTestStep_MMF_SRSSNK_U_0107();
sl@0
  2011
	virtual TVerdict DoTestStepL();
sl@0
  2012
	};
sl@0
  2013
sl@0
  2014
sl@0
  2015
/**
sl@0
  2016
 *
sl@0
  2017
 *
sl@0
  2018
 */
sl@0
  2019
class CTestStep_MMF_SRSSNK_FileReadBuffer : public CTestStep_MMF_SRSSNK
sl@0
  2020
	{
sl@0
  2021
public:
sl@0
  2022
	CTestStep_MMF_SRSSNK_FileReadBuffer(TSourceType aSourceType);
sl@0
  2023
	~CTestStep_MMF_SRSSNK_FileReadBuffer();
sl@0
  2024
	virtual TVerdict DoTestStepL();
sl@0
  2025
private:
sl@0
  2026
	TSourceType iSourceType;
sl@0
  2027
	};
sl@0
  2028
sl@0
  2029
sl@0
  2030
/**
sl@0
  2031
 *
sl@0
  2032
 *
sl@0
  2033
 */
sl@0
  2034
class CTestStep_MMF_SRSSNK_U_0109 : public CTestStep_MMF_SRSSNK
sl@0
  2035
	{
sl@0
  2036
public:
sl@0
  2037
	CTestStep_MMF_SRSSNK_U_0109();
sl@0
  2038
	~CTestStep_MMF_SRSSNK_U_0109();
sl@0
  2039
	virtual TVerdict DoTestStepL();
sl@0
  2040
	};
sl@0
  2041
sl@0
  2042
sl@0
  2043
/**
sl@0
  2044
 *
sl@0
  2045
 *
sl@0
  2046
 */
sl@0
  2047
class CTestStep_MMF_SRSSNK_FileSinkMisc : public CTestStep_MMF_SRSSNK
sl@0
  2048
	{
sl@0
  2049
public:
sl@0
  2050
	CTestStep_MMF_SRSSNK_FileSinkMisc(TSinkType aSinkType);
sl@0
  2051
	~CTestStep_MMF_SRSSNK_FileSinkMisc();
sl@0
  2052
	virtual TVerdict DoTestStepL();
sl@0
  2053
private:
sl@0
  2054
	TSinkType iSinkType;
sl@0
  2055
	};
sl@0
  2056
sl@0
  2057
sl@0
  2058
/**
sl@0
  2059
 *
sl@0
  2060
 *
sl@0
  2061
 */
sl@0
  2062
class CTestStep_MMF_SRSSNK_FileEmptyBuffer : public CTestStep_MMF_SRSSNK
sl@0
  2063
	{
sl@0
  2064
public:
sl@0
  2065
	CTestStep_MMF_SRSSNK_FileEmptyBuffer(TSinkType aSinkType);
sl@0
  2066
	~CTestStep_MMF_SRSSNK_FileEmptyBuffer();
sl@0
  2067
	virtual TVerdict DoTestStepL();
sl@0
  2068
	
sl@0
  2069
private:
sl@0
  2070
	TSinkType iSinkType;
sl@0
  2071
	};
sl@0
  2072
sl@0
  2073
sl@0
  2074
/**
sl@0
  2075
 *
sl@0
  2076
 *
sl@0
  2077
 */
sl@0
  2078
class CTestStep_MMF_SRSSNK_U_0112 : public CTestStep_MMF_SRSSNK
sl@0
  2079
	{
sl@0
  2080
public:
sl@0
  2081
	CTestStep_MMF_SRSSNK_U_0112();
sl@0
  2082
	~CTestStep_MMF_SRSSNK_U_0112();
sl@0
  2083
	virtual TVerdict DoTestStepL();
sl@0
  2084
	};
sl@0
  2085
sl@0
  2086
sl@0
  2087
/**
sl@0
  2088
 *
sl@0
  2089
 *
sl@0
  2090
 */
sl@0
  2091
class CTestStep_MMF_SRSSNK_FileWriteBuffer : public CTestStep_MMF_SRSSNK
sl@0
  2092
	{
sl@0
  2093
public:
sl@0
  2094
	CTestStep_MMF_SRSSNK_FileWriteBuffer(TSinkType aSinkType);
sl@0
  2095
	~CTestStep_MMF_SRSSNK_FileWriteBuffer();
sl@0
  2096
	virtual TVerdict DoTestStepL();
sl@0
  2097
sl@0
  2098
private:
sl@0
  2099
	TSinkType iSinkType;
sl@0
  2100
	};
sl@0
  2101
sl@0
  2102
sl@0
  2103
/**
sl@0
  2104
 *
sl@0
  2105
 *
sl@0
  2106
 */
sl@0
  2107
class CTestStep_MMF_SRSSNK_U_0114 : public CTestStep_MMF_SRSSNK
sl@0
  2108
	{
sl@0
  2109
public:
sl@0
  2110
	CTestStep_MMF_SRSSNK_U_0114();
sl@0
  2111
	~CTestStep_MMF_SRSSNK_U_0114();
sl@0
  2112
	virtual TVerdict DoTestStepL();
sl@0
  2113
	};
sl@0
  2114
sl@0
  2115
/**
sl@0
  2116
 *
sl@0
  2117
 *
sl@0
  2118
 */
sl@0
  2119
class CTestStep_MMF_SRSSNK_U_0115 : public CTestStep_MMF_SRSSNK
sl@0
  2120
	{
sl@0
  2121
public:
sl@0
  2122
	CTestStep_MMF_SRSSNK_U_0115();
sl@0
  2123
	~CTestStep_MMF_SRSSNK_U_0115();
sl@0
  2124
	virtual TVerdict DoTestStepL();
sl@0
  2125
	};
sl@0
  2126
sl@0
  2127
sl@0
  2128
/**
sl@0
  2129
 *
sl@0
  2130
 *
sl@0
  2131
 */
sl@0
  2132
class CTestStep_MMF_SRSSNK_FileEvaluateIntent : public CTestStep_MMF_SRSSNK
sl@0
  2133
	{
sl@0
  2134
public:
sl@0
  2135
	CTestStep_MMF_SRSSNK_FileEvaluateIntent(TSourceType aSourceType);
sl@0
  2136
	~CTestStep_MMF_SRSSNK_FileEvaluateIntent();
sl@0
  2137
	virtual TVerdict DoTestStepL();
sl@0
  2138
private:
sl@0
  2139
	TSourceType iSourceType;
sl@0
  2140
	TSinkType iSinkType;
sl@0
  2141
	};
sl@0
  2142
sl@0
  2143
/**
sl@0
  2144
 *
sl@0
  2145
 *
sl@0
  2146
 */
sl@0
  2147
class CTestStep_MMF_SRSSNK_FileExecuteIntent : public CTestStep_MMF_SRSSNK
sl@0
  2148
	{
sl@0
  2149
public:
sl@0
  2150
	CTestStep_MMF_SRSSNK_FileExecuteIntent(TSourceType aSourceType);
sl@0
  2151
	~CTestStep_MMF_SRSSNK_FileExecuteIntent();
sl@0
  2152
	virtual TVerdict DoTestStepL();
sl@0
  2153
private:
sl@0
  2154
	TSourceType iSourceType;
sl@0
  2155
	TSinkType iSinkType;
sl@0
  2156
	};
sl@0
  2157
sl@0
  2158
sl@0
  2159
/*
sl@0
  2160
 *
sl@0
  2161
 *
sl@0
  2162
 */
sl@0
  2163
class CTestStep_MMF_SRSSNK_FileIsProtected : public CTestStep_MMF_SRSSNK
sl@0
  2164
	{
sl@0
  2165
public:
sl@0
  2166
	CTestStep_MMF_SRSSNK_FileIsProtected(TSourceType aSourceType);
sl@0
  2167
	~CTestStep_MMF_SRSSNK_FileIsProtected();
sl@0
  2168
	virtual TVerdict DoTestStepL();
sl@0
  2169
private:
sl@0
  2170
	TSourceType iSourceType;
sl@0
  2171
	TSinkType iSinkType;
sl@0
  2172
	};
sl@0
  2173
sl@0
  2174
/*
sl@0
  2175
 *
sl@0
  2176
 *
sl@0
  2177
 */
sl@0
  2178
class CTestStep_MMF_SRSSNK_U_0119 : public CTestStep_MMF_SRSSNK
sl@0
  2179
	{
sl@0
  2180
public:
sl@0
  2181
	CTestStep_MMF_SRSSNK_U_0119();
sl@0
  2182
	~CTestStep_MMF_SRSSNK_U_0119();
sl@0
  2183
	virtual TVerdict DoTestStepL();
sl@0
  2184
	};
sl@0
  2185
sl@0
  2186
sl@0
  2187
/**
sl@0
  2188
 *
sl@0
  2189
 *
sl@0
  2190
 */
sl@0
  2191
class CTestStep_MMF_SRSSNK_U_0201 : public CTestStep_MMF_SRSSNK
sl@0
  2192
	{
sl@0
  2193
public:
sl@0
  2194
	CTestStep_MMF_SRSSNK_U_0201();
sl@0
  2195
	~CTestStep_MMF_SRSSNK_U_0201();
sl@0
  2196
	virtual TVerdict DoTestStepL();
sl@0
  2197
	};
sl@0
  2198
sl@0
  2199
sl@0
  2200
/**
sl@0
  2201
 *
sl@0
  2202
 *
sl@0
  2203
 */
sl@0
  2204
class CTestStep_MMF_SRSSNK_U_0202 : public CTestStep_MMF_SRSSNK
sl@0
  2205
	{
sl@0
  2206
public:
sl@0
  2207
	CTestStep_MMF_SRSSNK_U_0202();
sl@0
  2208
	~CTestStep_MMF_SRSSNK_U_0202();
sl@0
  2209
	virtual TVerdict DoTestStepL();
sl@0
  2210
	};
sl@0
  2211
sl@0
  2212
sl@0
  2213
/**
sl@0
  2214
 *
sl@0
  2215
 *
sl@0
  2216
 */
sl@0
  2217
class CTestStep_MMF_SRSSNK_U_0203 : public CTestStep_MMF_SRSSNK
sl@0
  2218
	{
sl@0
  2219
public:
sl@0
  2220
	CTestStep_MMF_SRSSNK_U_0203();
sl@0
  2221
	~CTestStep_MMF_SRSSNK_U_0203();
sl@0
  2222
	virtual TVerdict DoTestStepL();
sl@0
  2223
	};
sl@0
  2224
sl@0
  2225
/**
sl@0
  2226
 *
sl@0
  2227
 *
sl@0
  2228
 */
sl@0
  2229
class CTestStep_MMF_SRSSNK_U_0204 : public CTestStep_MMF_SRSSNK
sl@0
  2230
	{
sl@0
  2231
public:
sl@0
  2232
	CTestStep_MMF_SRSSNK_U_0204();
sl@0
  2233
	~CTestStep_MMF_SRSSNK_U_0204();
sl@0
  2234
	virtual TVerdict DoTestStepL();
sl@0
  2235
	};
sl@0
  2236
sl@0
  2237
/**
sl@0
  2238
 *
sl@0
  2239
 *
sl@0
  2240
 */
sl@0
  2241
class CTestStep_MMF_SRSSNK_U_0205 : public CTestStep_MMF_SRSSNK
sl@0
  2242
	{
sl@0
  2243
public:
sl@0
  2244
	CTestStep_MMF_SRSSNK_U_0205();
sl@0
  2245
	~CTestStep_MMF_SRSSNK_U_0205();
sl@0
  2246
	virtual TVerdict DoTestStepL();
sl@0
  2247
	};
sl@0
  2248
sl@0
  2249
/**
sl@0
  2250
 *
sl@0
  2251
 *
sl@0
  2252
 */
sl@0
  2253
class CTestStep_MMF_SRSSNK_U_0206 : public CTestStep_MMF_SRSSNK
sl@0
  2254
	{
sl@0
  2255
public:
sl@0
  2256
	CTestStep_MMF_SRSSNK_U_0206();
sl@0
  2257
	~CTestStep_MMF_SRSSNK_U_0206();
sl@0
  2258
	virtual TVerdict DoTestStepL();
sl@0
  2259
	};
sl@0
  2260
sl@0
  2261
/**
sl@0
  2262
 *
sl@0
  2263
 *
sl@0
  2264
 */
sl@0
  2265
class CTestStep_MMF_SRSSNK_U_0207 : public CTestStep_MMF_SRSSNK, public MDevSoundObserver
sl@0
  2266
	{
sl@0
  2267
public:
sl@0
  2268
	CTestStep_MMF_SRSSNK_U_0207();
sl@0
  2269
	~CTestStep_MMF_SRSSNK_U_0207();
sl@0
  2270
	virtual TVerdict DoTestStepL();
sl@0
  2271
sl@0
  2272
	// from MDevSoundObserver
sl@0
  2273
	virtual void InitializeComplete(TInt aError);
sl@0
  2274
	virtual void ToneFinished(TInt /*aError*/) {};
sl@0
  2275
	virtual void BufferToBeFilled(CMMFBuffer* /*aBuffer*/) {};
sl@0
  2276
	virtual void PlayError(TInt /*aError*/) {};
sl@0
  2277
	virtual void BufferToBeEmptied(CMMFBuffer* /*aBuffer*/) {};
sl@0
  2278
	virtual void RecordError(TInt /*aError*/) {};
sl@0
  2279
	virtual void ConvertError(TInt /*aError*/) {};
sl@0
  2280
	virtual void DeviceMessage(TUid /*aMessageType*/, const TDesC8& /*aMsg*/) {};
sl@0
  2281
	virtual void SendEventToClient(const TMMFEvent& /*aEvent*/) {};
sl@0
  2282
	CMMFAudioInput* iSource; // not owned by CTestStep_MMF_SRSSNK_U_0207, but transient
sl@0
  2283
	TInt iError;
sl@0
  2284
	};
sl@0
  2285
sl@0
  2286
/**
sl@0
  2287
 *
sl@0
  2288
 *
sl@0
  2289
 */
sl@0
  2290
class CTestStep_MMF_SRSSNK_U_0208 : public CTestStep_MMF_SRSSNK
sl@0
  2291
	{
sl@0
  2292
public:
sl@0
  2293
	CTestStep_MMF_SRSSNK_U_0208();
sl@0
  2294
	~CTestStep_MMF_SRSSNK_U_0208();
sl@0
  2295
	virtual TVerdict DoTestStepL();
sl@0
  2296
	};
sl@0
  2297
sl@0
  2298
/**
sl@0
  2299
 *
sl@0
  2300
 *
sl@0
  2301
 */
sl@0
  2302
class CTestStep_MMF_SRSSNK_U_0209 : public CTestStep_MMF_SRSSNK
sl@0
  2303
	{
sl@0
  2304
public:
sl@0
  2305
	CTestStep_MMF_SRSSNK_U_0209();
sl@0
  2306
	~CTestStep_MMF_SRSSNK_U_0209();
sl@0
  2307
	virtual TVerdict DoTestStepL();
sl@0
  2308
	};
sl@0
  2309
sl@0
  2310
/**
sl@0
  2311
 *
sl@0
  2312
 *
sl@0
  2313
 */
sl@0
  2314
class CTestStep_MMF_SRSSNK_U_0210 : public CTestStep_MMF_SRSSNK
sl@0
  2315
	{
sl@0
  2316
public:
sl@0
  2317
	CTestStep_MMF_SRSSNK_U_0210();
sl@0
  2318
	~CTestStep_MMF_SRSSNK_U_0210();
sl@0
  2319
	virtual TVerdict DoTestStepL();
sl@0
  2320
	};
sl@0
  2321
sl@0
  2322
/**
sl@0
  2323
 *
sl@0
  2324
 *
sl@0
  2325
 */
sl@0
  2326
class CTestStep_MMF_SRSSNK_U_0211 : public CTestStep_MMF_SRSSNK
sl@0
  2327
	{
sl@0
  2328
public:
sl@0
  2329
	CTestStep_MMF_SRSSNK_U_0211();
sl@0
  2330
	~CTestStep_MMF_SRSSNK_U_0211();
sl@0
  2331
	virtual TVerdict DoTestStepL();
sl@0
  2332
	};
sl@0
  2333
sl@0
  2334
/**
sl@0
  2335
 *
sl@0
  2336
 *
sl@0
  2337
 */
sl@0
  2338
class CTestStep_MMF_SRSSNK_U_0212 : public CTestStep_MMF_SRSSNK
sl@0
  2339
	{
sl@0
  2340
public:
sl@0
  2341
	CTestStep_MMF_SRSSNK_U_0212();
sl@0
  2342
	~CTestStep_MMF_SRSSNK_U_0212();
sl@0
  2343
	virtual TVerdict DoTestStepL();
sl@0
  2344
	};
sl@0
  2345
sl@0
  2346
/*
sl@0
  2347
 *
sl@0
  2348
 *
sl@0
  2349
 */
sl@0
  2350
class CTestStep_MMF_SRSSNK_U_0301 : public CTestStep_MMF_SRSSNK
sl@0
  2351
	{
sl@0
  2352
public:
sl@0
  2353
	CTestStep_MMF_SRSSNK_U_0301();
sl@0
  2354
	~CTestStep_MMF_SRSSNK_U_0301();
sl@0
  2355
	virtual TVerdict DoTestStepL();
sl@0
  2356
	};
sl@0
  2357
sl@0
  2358
/*
sl@0
  2359
 *
sl@0
  2360
 *
sl@0
  2361
 */
sl@0
  2362
class CTestStep_MMF_SRSSNK_U_0302 : public CTestStep_MMF_SRSSNK
sl@0
  2363
	{
sl@0
  2364
public:
sl@0
  2365
	CTestStep_MMF_SRSSNK_U_0302();
sl@0
  2366
	~CTestStep_MMF_SRSSNK_U_0302();
sl@0
  2367
	virtual TVerdict DoTestStepL();
sl@0
  2368
	};
sl@0
  2369
sl@0
  2370
sl@0
  2371
/*  Testing of the Source and Sink
sl@0
  2372
 *
sl@0
  2373
 *
sl@0
  2374
 */
sl@0
  2375
sl@0
  2376
class CTestStep_MMF_SRSSNK_U_0400 : public CTestStep_MMF_SRSSNK
sl@0
  2377
	{
sl@0
  2378
public:
sl@0
  2379
	CTestStep_MMF_SRSSNK_U_0400();
sl@0
  2380
	~CTestStep_MMF_SRSSNK_U_0400();
sl@0
  2381
	virtual TVerdict DoTestStepL();
sl@0
  2382
	};
sl@0
  2383
sl@0
  2384
class CTestStep_MMF_SRSSNK_U_0405 : public CTestStep_MMF_SRSSNK
sl@0
  2385
	{
sl@0
  2386
public:
sl@0
  2387
	CTestStep_MMF_SRSSNK_U_0405();
sl@0
  2388
	~CTestStep_MMF_SRSSNK_U_0405();
sl@0
  2389
	virtual TVerdict DoTestStepL();
sl@0
  2390
	};
sl@0
  2391
sl@0
  2392
class CTestStep_MMF_SRSSNK_U_0406 : public CTestStep_MMF_SRSSNK
sl@0
  2393
	{
sl@0
  2394
public:
sl@0
  2395
	CTestStep_MMF_SRSSNK_U_0406();
sl@0
  2396
	~CTestStep_MMF_SRSSNK_U_0406();
sl@0
  2397
	virtual TVerdict DoTestStepL();
sl@0
  2398
	};
sl@0
  2399
sl@0
  2400
class CTestStep_MMF_SRSSNK_U_0407 : public CTestStep_MMF_SRSSNK
sl@0
  2401
	{
sl@0
  2402
public:
sl@0
  2403
	CTestStep_MMF_SRSSNK_U_0407();
sl@0
  2404
	~CTestStep_MMF_SRSSNK_U_0407();
sl@0
  2405
	virtual TVerdict DoTestStepL();
sl@0
  2406
	};
sl@0
  2407
sl@0
  2408
class CTestStep_MMF_SRSSNK_U_0408 : public CTestStep_MMF_SRSSNK
sl@0
  2409
	{
sl@0
  2410
public:
sl@0
  2411
	CTestStep_MMF_SRSSNK_U_0408();
sl@0
  2412
	~CTestStep_MMF_SRSSNK_U_0408();
sl@0
  2413
	virtual TVerdict DoTestStepL();
sl@0
  2414
	};
sl@0
  2415
sl@0
  2416
sl@0
  2417
class CTestStep_MMF_SRSSNK_U_0409 : public CTestStep_MMF_SRSSNK
sl@0
  2418
	{
sl@0
  2419
public:
sl@0
  2420
	CTestStep_MMF_SRSSNK_U_0409();
sl@0
  2421
	~CTestStep_MMF_SRSSNK_U_0409();
sl@0
  2422
	virtual TVerdict DoTestStepL();
sl@0
  2423
	};
sl@0
  2424
sl@0
  2425
class CTestStep_MMF_SRSSNK_U_0410 : public CTestStep_MMF_SRSSNK
sl@0
  2426
	{
sl@0
  2427
public:
sl@0
  2428
	CTestStep_MMF_SRSSNK_U_0410();
sl@0
  2429
	~CTestStep_MMF_SRSSNK_U_0410();
sl@0
  2430
	virtual TVerdict DoTestStepL();
sl@0
  2431
	};
sl@0
  2432
sl@0
  2433
class CTestStep_MMF_SRSSNK_U_0411 : public CTestStep_MMF_SRSSNK
sl@0
  2434
	{
sl@0
  2435
public:
sl@0
  2436
	CTestStep_MMF_SRSSNK_U_0411();
sl@0
  2437
	~CTestStep_MMF_SRSSNK_U_0411();
sl@0
  2438
	virtual TVerdict DoTestStepL();
sl@0
  2439
	};
sl@0
  2440
sl@0
  2441
class CTestStep_MMF_SRSSNK_U_0412 : public CTestStep_MMF_SRSSNK
sl@0
  2442
	{
sl@0
  2443
public:
sl@0
  2444
	CTestStep_MMF_SRSSNK_U_0412();
sl@0
  2445
	~CTestStep_MMF_SRSSNK_U_0412();
sl@0
  2446
	virtual TVerdict DoTestStepL();
sl@0
  2447
	};
sl@0
  2448
sl@0
  2449
class CTestStep_MMF_SRSSNK_U_0413 : public CTestStep_MMF_SRSSNK
sl@0
  2450
	{
sl@0
  2451
public:
sl@0
  2452
	CTestStep_MMF_SRSSNK_U_0413();
sl@0
  2453
	~CTestStep_MMF_SRSSNK_U_0413();
sl@0
  2454
	virtual TVerdict DoTestStepL();
sl@0
  2455
	};
sl@0
  2456
sl@0
  2457
class CTestStep_MMF_SRSSNK_U_0414 : public CTestStep_MMF_SRSSNK
sl@0
  2458
	{
sl@0
  2459
public:
sl@0
  2460
	CTestStep_MMF_SRSSNK_U_0414();
sl@0
  2461
	~CTestStep_MMF_SRSSNK_U_0414();
sl@0
  2462
	virtual TVerdict DoTestStepL();
sl@0
  2463
	};
sl@0
  2464
sl@0
  2465
class CTestStep_MMF_SRSSNK_U_0415 : public CTestStep_MMF_SRSSNK
sl@0
  2466
	{
sl@0
  2467
public:
sl@0
  2468
	CTestStep_MMF_SRSSNK_U_0415();
sl@0
  2469
	~CTestStep_MMF_SRSSNK_U_0415();
sl@0
  2470
	virtual TVerdict DoTestStepL();
sl@0
  2471
	};
sl@0
  2472
sl@0
  2473
class CTestStep_MMF_SRSSNK_U_0416 : public CTestStep_MMF_SRSSNK
sl@0
  2474
	{
sl@0
  2475
public:
sl@0
  2476
	CTestStep_MMF_SRSSNK_U_0416();
sl@0
  2477
	~CTestStep_MMF_SRSSNK_U_0416();
sl@0
  2478
	virtual TVerdict DoTestStepL();
sl@0
  2479
	};
sl@0
  2480
sl@0
  2481
class CTestStep_MMF_SRSSNK_U_0417 : public CTestStep_MMF_SRSSNK
sl@0
  2482
	{
sl@0
  2483
public:
sl@0
  2484
	CTestStep_MMF_SRSSNK_U_0417();
sl@0
  2485
	~CTestStep_MMF_SRSSNK_U_0417();
sl@0
  2486
	virtual TVerdict DoTestStepL();
sl@0
  2487
	};
sl@0
  2488
sl@0
  2489
class CTestStep_MMF_SRSSNK_U_0418 : public CTestStep_MMF_SRSSNK
sl@0
  2490
	{
sl@0
  2491
public:
sl@0
  2492
	CTestStep_MMF_SRSSNK_U_0418();
sl@0
  2493
	~CTestStep_MMF_SRSSNK_U_0418();
sl@0
  2494
	virtual TVerdict DoTestStepL();
sl@0
  2495
	};
sl@0
  2496
sl@0
  2497
class CTestStep_MMF_SRSSNK_U_0419 : public CTestStep_MMF_SRSSNK
sl@0
  2498
	{
sl@0
  2499
public:
sl@0
  2500
	CTestStep_MMF_SRSSNK_U_0419();
sl@0
  2501
	~CTestStep_MMF_SRSSNK_U_0419();
sl@0
  2502
	virtual TVerdict DoTestStepL();
sl@0
  2503
	};
sl@0
  2504
sl@0
  2505
class CTestStep_MMF_SRSSNK_U_0420 : public CTestStep_MMF_SRSSNK
sl@0
  2506
	{
sl@0
  2507
public:
sl@0
  2508
	CTestStep_MMF_SRSSNK_U_0420();
sl@0
  2509
	~CTestStep_MMF_SRSSNK_U_0420();
sl@0
  2510
	virtual TVerdict DoTestStepL();
sl@0
  2511
	};
sl@0
  2512
sl@0
  2513
class CTestStep_MMF_SRSSNK_U_0421 : public CTestStep_MMF_SRSSNK
sl@0
  2514
	{
sl@0
  2515
public:
sl@0
  2516
	CTestStep_MMF_SRSSNK_U_0421();
sl@0
  2517
	~CTestStep_MMF_SRSSNK_U_0421();
sl@0
  2518
	virtual TVerdict DoTestStepL();
sl@0
  2519
	};
sl@0
  2520
sl@0
  2521
/*
sl@0
  2522
 *
sl@0
  2523
 *  Sinks
sl@0
  2524
 *
sl@0
  2525
 */
sl@0
  2526
sl@0
  2527
class CTestStep_MMF_SRSSNK_U_0500 : public CTestStep_MMF_SRSSNK
sl@0
  2528
	{
sl@0
  2529
public:
sl@0
  2530
	CTestStep_MMF_SRSSNK_U_0500();
sl@0
  2531
	~CTestStep_MMF_SRSSNK_U_0500();
sl@0
  2532
	virtual TVerdict DoTestStepL();
sl@0
  2533
	};
sl@0
  2534
sl@0
  2535
class CTestStep_MMF_SRSSNK_U_0505 : public CTestStep_MMF_SRSSNK
sl@0
  2536
	{
sl@0
  2537
public:
sl@0
  2538
	CTestStep_MMF_SRSSNK_U_0505();
sl@0
  2539
	~CTestStep_MMF_SRSSNK_U_0505();
sl@0
  2540
	virtual TVerdict DoTestStepL();
sl@0
  2541
	};
sl@0
  2542
sl@0
  2543
class CTestStep_MMF_SRSSNK_U_0506 : public CTestStep_MMF_SRSSNK
sl@0
  2544
	{
sl@0
  2545
public:
sl@0
  2546
	CTestStep_MMF_SRSSNK_U_0506();
sl@0
  2547
	~CTestStep_MMF_SRSSNK_U_0506();
sl@0
  2548
	virtual TVerdict DoTestStepL();
sl@0
  2549
	};
sl@0
  2550
sl@0
  2551
sl@0
  2552
class CTestStep_MMF_SRSSNK_U_0507 : public CTestStep_MMF_SRSSNK
sl@0
  2553
	{
sl@0
  2554
public:
sl@0
  2555
	CTestStep_MMF_SRSSNK_U_0507();
sl@0
  2556
	~CTestStep_MMF_SRSSNK_U_0507();
sl@0
  2557
	virtual TVerdict DoTestStepL();
sl@0
  2558
	};
sl@0
  2559
sl@0
  2560
sl@0
  2561
class CTestStep_MMF_SRSSNK_U_0508 : public CTestStep_MMF_SRSSNK
sl@0
  2562
	{
sl@0
  2563
public:
sl@0
  2564
	CTestStep_MMF_SRSSNK_U_0508();
sl@0
  2565
	~CTestStep_MMF_SRSSNK_U_0508();
sl@0
  2566
	virtual TVerdict DoTestStepL();
sl@0
  2567
	};
sl@0
  2568
sl@0
  2569
class CTestStep_MMF_SRSSNK_U_0509 : public CTestStep_MMF_SRSSNK
sl@0
  2570
	{
sl@0
  2571
public:
sl@0
  2572
	CTestStep_MMF_SRSSNK_U_0509();
sl@0
  2573
	~CTestStep_MMF_SRSSNK_U_0509();
sl@0
  2574
	virtual TVerdict DoTestStepL();
sl@0
  2575
	};
sl@0
  2576
sl@0
  2577
sl@0
  2578
sl@0
  2579
class CTestStep_MMF_SRSSNK_U_0510 : public CTestStep_MMF_SRSSNK
sl@0
  2580
	{
sl@0
  2581
public:
sl@0
  2582
	CTestStep_MMF_SRSSNK_U_0510();
sl@0
  2583
	~CTestStep_MMF_SRSSNK_U_0510();
sl@0
  2584
	virtual TVerdict DoTestStepL();
sl@0
  2585
	};
sl@0
  2586
sl@0
  2587
sl@0
  2588
sl@0
  2589
class CTestStep_MMF_SRSSNK_U_0511 : public CTestStep_MMF_SRSSNK
sl@0
  2590
	{
sl@0
  2591
public:
sl@0
  2592
	CTestStep_MMF_SRSSNK_U_0511();
sl@0
  2593
	~CTestStep_MMF_SRSSNK_U_0511();
sl@0
  2594
	virtual TVerdict DoTestStepL();
sl@0
  2595
	};
sl@0
  2596
sl@0
  2597
sl@0
  2598
class CTestStep_MMF_SRSSNK_U_0512 : public CTestStep_MMF_SRSSNK
sl@0
  2599
	{
sl@0
  2600
public:
sl@0
  2601
	CTestStep_MMF_SRSSNK_U_0512();
sl@0
  2602
	~CTestStep_MMF_SRSSNK_U_0512();
sl@0
  2603
	virtual TVerdict DoTestStepL();
sl@0
  2604
	};
sl@0
  2605
sl@0
  2606
sl@0
  2607
class CTestStep_MMF_SRSSNK_U_0513 : public CTestStep_MMF_SRSSNK
sl@0
  2608
	{
sl@0
  2609
public:
sl@0
  2610
	CTestStep_MMF_SRSSNK_U_0513();
sl@0
  2611
	~CTestStep_MMF_SRSSNK_U_0513();
sl@0
  2612
	virtual TVerdict DoTestStepL();
sl@0
  2613
	};
sl@0
  2614
sl@0
  2615
sl@0
  2616
sl@0
  2617
class CTestStep_MMF_SRSSNK_U_0514 : public CTestStep_MMF_SRSSNK
sl@0
  2618
	{
sl@0
  2619
public:
sl@0
  2620
	CTestStep_MMF_SRSSNK_U_0514();
sl@0
  2621
	~CTestStep_MMF_SRSSNK_U_0514();
sl@0
  2622
	virtual TVerdict DoTestStepL();
sl@0
  2623
	};
sl@0
  2624
sl@0
  2625
sl@0
  2626
class CTestStep_MMF_SRSSNK_U_0515 : public CTestStep_MMF_SRSSNK
sl@0
  2627
	{
sl@0
  2628
public:
sl@0
  2629
	CTestStep_MMF_SRSSNK_U_0515();
sl@0
  2630
	~CTestStep_MMF_SRSSNK_U_0515();
sl@0
  2631
	virtual TVerdict DoTestStepL();
sl@0
  2632
	};
sl@0
  2633
sl@0
  2634
sl@0
  2635
class CTestStep_MMF_SRSSNK_U_0516 : public CTestStep_MMF_SRSSNK
sl@0
  2636
	{
sl@0
  2637
public:
sl@0
  2638
	CTestStep_MMF_SRSSNK_U_0516();
sl@0
  2639
	~CTestStep_MMF_SRSSNK_U_0516();
sl@0
  2640
	virtual TVerdict DoTestStepL();
sl@0
  2641
	};
sl@0
  2642
sl@0
  2643
sl@0
  2644
class CTestStep_MMF_SRSSNK_U_0517 : public CTestStep_MMF_SRSSNK
sl@0
  2645
	{
sl@0
  2646
public:
sl@0
  2647
	CTestStep_MMF_SRSSNK_U_0517();
sl@0
  2648
	~CTestStep_MMF_SRSSNK_U_0517();
sl@0
  2649
	virtual TVerdict DoTestStepL();
sl@0
  2650
	};
sl@0
  2651
sl@0
  2652
sl@0
  2653
sl@0
  2654
class CTestStep_MMF_SRSSNK_U_0518 : public CTestStep_MMF_SRSSNK
sl@0
  2655
	{
sl@0
  2656
public:
sl@0
  2657
	CTestStep_MMF_SRSSNK_U_0518();
sl@0
  2658
	~CTestStep_MMF_SRSSNK_U_0518();
sl@0
  2659
	virtual TVerdict DoTestStepL();
sl@0
  2660
	};
sl@0
  2661
sl@0
  2662
sl@0
  2663
sl@0
  2664
class CTestStep_MMF_SRSSNK_U_0519 : public CTestStep_MMF_SRSSNK
sl@0
  2665
	{
sl@0
  2666
public:
sl@0
  2667
	CTestStep_MMF_SRSSNK_U_0519();
sl@0
  2668
	~CTestStep_MMF_SRSSNK_U_0519();
sl@0
  2669
	virtual TVerdict DoTestStepL();
sl@0
  2670
	};
sl@0
  2671
	
sl@0
  2672
	
sl@0
  2673
class CTestStep_MMF_SRSSNK_MultipleStop : public CTestStep_MMF_SRSSNK
sl@0
  2674
	{
sl@0
  2675
public:
sl@0
  2676
	CTestStep_MMF_SRSSNK_MultipleStop(); // U_520
sl@0
  2677
	~CTestStep_MMF_SRSSNK_MultipleStop();
sl@0
  2678
	virtual TVerdict DoTestStepL();
sl@0
  2679
private:
sl@0
  2680
	TSourceType iSourceType;
sl@0
  2681
	};
sl@0
  2682
sl@0
  2683
// INC085391: CMMFFile::iFilePath and iFileDrive should be initialised for KMMFileHandleSource
sl@0
  2684
class CTestStep_MMF_SRSSNK_U_0600 : public CTestStep_MMF_SRSSNK
sl@0
  2685
	{
sl@0
  2686
public:
sl@0
  2687
	CTestStep_MMF_SRSSNK_U_0600();
sl@0
  2688
	~CTestStep_MMF_SRSSNK_U_0600();
sl@0
  2689
	virtual TVerdict DoTestStepL();
sl@0
  2690
	};
sl@0
  2691
sl@0
  2692
//CR0854 - Provide access to the file data via the CData object 
sl@0
  2693
class CTestStep_MMF_SRSSNK_U_0521 : public CTestStep_MMF_SRSSNK
sl@0
  2694
	{
sl@0
  2695
public:
sl@0
  2696
	CTestStep_MMF_SRSSNK_U_0521();
sl@0
  2697
	~CTestStep_MMF_SRSSNK_U_0521();
sl@0
  2698
	virtual TVerdict DoTestStepL();
sl@0
  2699
	};
sl@0
  2700
sl@0
  2701
//CR0854 - Provide access to the file data via the CData object 
sl@0
  2702
class CTestStep_MMF_SRSSNK_U_0522 : public CTestStep_MMF_SRSSNK
sl@0
  2703
	{
sl@0
  2704
public:
sl@0
  2705
	CTestStep_MMF_SRSSNK_U_0522();
sl@0
  2706
	~CTestStep_MMF_SRSSNK_U_0522();
sl@0
  2707
	virtual TVerdict DoTestStepL();
sl@0
  2708
	};
sl@0
  2709
	 
sl@0
  2710
// PDEF102849: Invalid Remaining Space value obtained for E:\ (memory card)
sl@0
  2711
class CTestStep_MMF_SRSSNK_U_0523 : public CTestStep_MMF_SRSSNK
sl@0
  2712
	{
sl@0
  2713
public:
sl@0
  2714
	CTestStep_MMF_SRSSNK_U_0523();
sl@0
  2715
	~CTestStep_MMF_SRSSNK_U_0523();
sl@0
  2716
	virtual TVerdict DoTestStepL();
sl@0
  2717
	};
sl@0
  2718
sl@0
  2719
//PDEF137282 - Answering VoIP call doesn't work 
sl@0
  2720
class CTestStep_MMF_SRSSNK_U_0524 : public CTestStep_MMF_SRSSNK
sl@0
  2721
	{
sl@0
  2722
public:
sl@0
  2723
	CTestStep_MMF_SRSSNK_U_0524();
sl@0
  2724
	~CTestStep_MMF_SRSSNK_U_0524();
sl@0
  2725
	virtual TVerdict DoTestStepL();
sl@0
  2726
	};
sl@0
  2727
sl@0
  2728
class TCreateSourceBuffer3TestStep : public TTestStep, public MAsyncEventHandler
sl@0
  2729
	{
sl@0
  2730
public:
sl@0
  2731
	TCreateSourceBuffer3TestStep(TSourceType aSourceType, MDataSink* aSink, TUid aExpectedType, TBool aExpectedRef, TInt aExpectedMaxLength = 0)
sl@0
  2732
	: TTestStep(NULL, aSink), iSourceType(aSourceType), iExpectedType(aExpectedType), iExpectedRef(aExpectedRef), iExpectedMaxLength(aExpectedMaxLength)
sl@0
  2733
	{ }
sl@0
  2734
sl@0
  2735
	TVerdict DoTestStepL();
sl@0
  2736
	TInt SendEventToClient(const TMMFEvent& aEvent);
sl@0
  2737
sl@0
  2738
public:
sl@0
  2739
	TSourceType iSourceType;
sl@0
  2740
	CMMFBuffer* iSinkBuffer;
sl@0
  2741
	TUid iExpectedType;
sl@0
  2742
	TBool iExpectedRef;
sl@0
  2743
	TInt iExpectedMaxLength;
sl@0
  2744
	};
sl@0
  2745
sl@0
  2746
#endif /* __TSU_MMF_SRSSNK_H__ */
sl@0
  2747
sl@0
  2748
sl@0
  2749
sl@0
  2750
sl@0
  2751
sl@0
  2752