mmlibs/mmfw/tsrc/mmfunittest/MidiClnt/TS_MMFMIDICLNTsuite.cpp
changeset 0 b8ed18f6c07b
equal deleted inserted replaced
-1:000000000000 0:b8ed18f6c07b
       
     1 
       
     2 // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
       
     3 // All rights reserved.
       
     4 // This component and the accompanying materials are made available
       
     5 // under the terms of "Eclipse Public License v1.0"
       
     6 // which accompanies this distribution, and is available
       
     7 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 //
       
     9 // Initial Contributors:
       
    10 // Nokia Corporation - initial contribution.
       
    11 //
       
    12 // Contributors:
       
    13 //
       
    14 // Description:
       
    15 //
       
    16 
       
    17 
       
    18 // EPOC includes
       
    19 #include <e32base.h>
       
    20 
       
    21 // Test system includes
       
    22 #include <testframework.h>
       
    23 
       
    24 #include "TSU_MMFMIDICLNT.h"
       
    25 #include "TS_MMFMIDICLNTsuite.h"
       
    26 #include "TestMidiClientUtility.h"
       
    27 #include "TestStepMidiClntAllocFailNew.h"
       
    28 #include "TestStepMidiClntAllocFailOpen.h"
       
    29 #include "TestMidiClientSharedHeap.h"
       
    30 
       
    31 
       
    32 #define KFileNameKey _S("MidiDrmContent")
       
    33 #define KUnlimitPlayContent _S("midiIdPlayUnlim")
       
    34 
       
    35 const TDrmTestParams KDrm0321 =
       
    36 	{
       
    37 	KFileNameKey, 		//iFileNameKey
       
    38 	KUnlimitPlayContent,		//iUniqueId;
       
    39 	ContentAccess::EUnknown,	//iIntent;
       
    40 	KErrCANoPermission,			//iExpectedError;	
       
    41 	TDrmTestParams::EFileName					// iSourceType;
       
    42 	};
       
    43 	
       
    44 const TDrmTestParams KDrm0322 =
       
    45 	{
       
    46 	KFileNameKey,				//iFileNameKey
       
    47 	_S("midiIdNoRights"),		//iUniqueId;
       
    48 	ContentAccess::EPlay,		//iIntent;
       
    49 	KErrCANoRights,			//iExpectedError;	
       
    50 	TDrmTestParams::EFileName					// iSourceType;
       
    51 	};
       
    52 	
       
    53 const TDrmTestParams KDrm0323 =
       
    54 	{
       
    55 	KFileNameKey,		//iFileNameKey
       
    56 	_S("midiIdPlay01"),		//iUniqueId;
       
    57 	ContentAccess::EPlay,		//iIntent;
       
    58 	KErrCANoPermission,			//iExpectedError;	
       
    59 	TDrmTestParams::EFileName,	// iSourceType;
       
    60 	2							// iNumPlayLoops
       
    61 	};
       
    62 		
       
    63 const TDrmTestParams KDrm0324 =
       
    64 	{
       
    65 	KFileNameKey,	//iFileNameKey
       
    66 	_S("Wrong Id"),				//iUniqueId;
       
    67 	ContentAccess::EPlay,		//iIntent;
       
    68 	KErrNotFound,			//iExpectedError;	
       
    69 	TDrmTestParams::EFileName					// iSourceType;
       
    70 	};
       
    71 
       
    72 const TDrmTestParams KDrm1011 =
       
    73 	{
       
    74 	KFileNameKey,		//iFileNameKey
       
    75 	KUnlimitPlayContent,		//iUniqueId;
       
    76 	ContentAccess::EPlay,		//iIntent;
       
    77 	KErrNone,			//iExpectedError;	
       
    78 	TDrmTestParams::EFileName					// iSourceType;
       
    79 	};
       
    80 
       
    81 const TDrmTestParams KDrm1012 =
       
    82 	{
       
    83 	KFileNameKey,		//iFileNameKey
       
    84 	KUnlimitPlayContent,		//iUniqueId;
       
    85 	ContentAccess::EPlay,		//iIntent;
       
    86 	KErrNone,			//iExpectedError;	
       
    87 	TDrmTestParams::EFileHandle					// iSourceType;
       
    88 	};
       
    89 	
       
    90 const TDrmTestParams KDrm1013 =
       
    91 	{
       
    92 	KFileNameKey,		//iFileNameKey
       
    93 	KUnlimitPlayContent,		//iUniqueId;
       
    94 	ContentAccess::EPlay,		//iIntent;
       
    95 	KErrNone,			//iExpectedError;	
       
    96 	TDrmTestParams::EFileName					// iSourceType;
       
    97 	};
       
    98 	
       
    99 const TDrmTestParams KDrm1014 =
       
   100 	{
       
   101 	KFileNameKey,		//iFileNameKey
       
   102 	KUnlimitPlayContent,		//iUniqueId;
       
   103 	ContentAccess::EPlay,		//iIntent;
       
   104 	KErrNone,			//iExpectedError;	
       
   105 	TDrmTestParams::EFileName,	// iSourceType;
       
   106 	1,							// iNumPlayLoops
       
   107 	TDrmTestParams::EAlloc			// iTestMode
       
   108 	};
       
   109 	
       
   110 const TDrmTestParams KDrm1015 =
       
   111 	{
       
   112 	KFileNameKey,		//iFileNameKey
       
   113 	KUnlimitPlayContent,		//iUniqueId;
       
   114 	ContentAccess::EPlay,		//iIntent;
       
   115 	KErrNone,					//iExpectedError;	
       
   116 	TDrmTestParams::EFileHandle,// iSourceType;
       
   117 	1,							// iNumPlayLoops							
       
   118 	TDrmTestParams::EAlloc		// iTestMode
       
   119 	};
       
   120 	
       
   121 const TDrmTestParams KDrm1016 =
       
   122 	{
       
   123 	KFileNameKey,		//iFileNameKey
       
   124 	KUnlimitPlayContent,		//iUniqueId;
       
   125 	ContentAccess::EPlay,		//iIntent;
       
   126 	KErrNone,					//iExpectedError;	
       
   127 	TDrmTestParams::EFileHandle,// iSourceType;
       
   128 	1							// iNumPlayLoops							
       
   129 	};	
       
   130 
       
   131 
       
   132 /**
       
   133  * NewTestSuite is exported at ordinal 1
       
   134  * this provides the interface to allow schedule test
       
   135  * to create instances of this test suite
       
   136  */
       
   137 EXPORT_C CTestSuite* NewTestSuiteL()
       
   138     {
       
   139 	CTestMmfMidiClntSuite* result = new (ELeave) CTestMmfMidiClntSuite;
       
   140 	CleanupStack::PushL(result);
       
   141 	result->ConstructL();
       
   142 	CleanupStack::Pop(); // result
       
   143 	return result;
       
   144     }
       
   145 
       
   146 /**
       
   147  * destructor
       
   148  */
       
   149 CTestMmfMidiClntSuite::~CTestMmfMidiClntSuite()
       
   150 	{
       
   151 	}
       
   152 
       
   153 /**
       
   154  * make a version string available for test system
       
   155  * @return version string
       
   156  */
       
   157 TPtrC CTestMmfMidiClntSuite::GetVersion()
       
   158 	{
       
   159 	_LIT(KTxtVersion,"1.0");
       
   160 	return KTxtVersion();
       
   161 	}
       
   162 
       
   163 /**
       
   164  * Constructor for test suite
       
   165  * this creates all the test steps and 
       
   166  * stores them inside CTestMmfMidiClntSuite 
       
   167  */
       
   168 void CTestMmfMidiClntSuite::InitialiseL()
       
   169 	{
       
   170 	// store the name of this test suite 
       
   171 	iSuiteName = _L("MMF_MIDICLNT");
       
   172 
       
   173 	//TTimeIntervalMicroSeconds position = TInt64(0);
       
   174 
       
   175 	_LIT(KSectionOne, "SectionOne");
       
   176 	_LIT(KSectionTwo, "SectionTwo");
       
   177 	_LIT(KFilename, "filename");
       
   178 
       
   179 // POSITIVE TEST
       
   180 	
       
   181 	//Return the state
       
   182 	AddTestStepL( CTestMidiClntGetState::NewL( _L("MM-MMF-MIDICLNT-U-0016"), KSectionOne, KFilename, ETestValid, ETrue));
       
   183 
       
   184 	//Open 'maintest.wav'
       
   185 	AddTestStepL( CTestMidiClntOpenFile::NewL( _L("MM-MMF-MIDICLNT-U-0018"), KSectionOne, KFilename, ETrue) );
       
   186 	
       
   187 	//Open Descriptor
       
   188 	AddTestStepL( CTestMidiClntOpenDes::NewL( _L("MM-MMF-MIDICLNT-U-0020"), KSectionOne, KFilename, ETrue) );
       
   189 
       
   190 	//Open valid URL - www.yahoo.co.uk
       
   191 	AddTestStepL( CTestMidiClntOpenUrl::NewL( _L("MM-MMF-MIDICLNT-U-0023"), KSectionOne, KFilename, ETrue) );
       
   192 
       
   193 	//Closes any currently open resource and deletes any plugins in use
       
   194 	AddTestStepL( CTestMidiClntClose::NewL( _L("MM-MMF-MIDICLNT-U-0027")));
       
   195 
       
   196 	//Initialize or resume playback
       
   197 	AddTestStepL( CTestMidiClntPlay::NewL( _L("MM-MMF-MIDICLNT-U-0029"),  ETestValid));
       
   198 
       
   199 	//Stops playback of a resource
       
   200 	AddTestStepL( CTestMidiClntStop::NewL( _L("MM-MMF-MIDICLNT-U-0035"), ETestValid));
       
   201 
       
   202 	//Play a single note
       
   203 	AddTestStepL( CTestMidiClntPlayNote::NewL( _L("MM-MMF-MIDICLNT-U-0038"), ETestValid));
       
   204 
       
   205 	//Stop all notes
       
   206 	AddTestStepL( CTestMidiClntStopNotes::NewL( _L("MM-MMF-MIDICLNT-U-0047"), ETestValid));
       
   207 
       
   208 	//Commence playback of a note
       
   209 	AddTestStepL( CTestMidiClntNoteOn::NewL( _L("MM-MMF-MIDICLNT-U-0050"), ETestValid));
       
   210 
       
   211 	//Terminate playback of a note
       
   212 	AddTestStepL( CTestMidiClntNoteOff::NewL( _L("MM-MMF-MIDICLNT-U-0056"), ETestValid));
       
   213 
       
   214 	//Returns the current tempo
       
   215 	AddTestStepL( CTestMidiClntTempoMicroBeatsPerMinute::NewL( _L("MM-MMF-MIDICLNT-U-0060"), ETestValid));
       
   216 
       
   217 	//Sets the tempo
       
   218 	AddTestStepL( CTestMidiClntSetTempo::NewL( _L("MM-MMF-MIDICLNT-U-0062"), ETestValid));
       
   219 
       
   220 	//Returns the pitch shift
       
   221 	AddTestStepL( CTestMidiClntGetPitchTranspositionCents::NewL( _L("MM-MMF-MIDICLNT-U-0066"),ETestValid));
       
   222 
       
   223 	//Set the pitch shift
       
   224 	AddTestStepL( CTestMidiClntSetPitchTransposition::NewL( _L("MM-MMF-MIDICLNT-U-0072"),ETestValid));
       
   225 
       
   226 	//Returns the length of midi resource
       
   227 	AddTestStepL( CTestMidiClntDurationMicroSeconds::NewL( _L("MM-MMF-MIDICLNT-U-0076"), ETestValid));
       
   228 
       
   229 	//The length of midi resource by Beats
       
   230 	AddTestStepL( CTestMidiClntDurationMicroBeats::NewL( _L("MM-MMF-MIDICLNT-U-0078"), ETestValid));
       
   231 
       
   232 	//Number of tracks
       
   233 	AddTestStepL( CTestMidiClntNumTracks::NewL( _L("MM-MMF-MIDICLNT-U-0080"), ETestValid));
       
   234 
       
   235 	//Mutes a particular track
       
   236 	AddTestStepL( CTestMidiClntSetTrackMute::NewL( _L("MM-MMF-MIDICLNT-U-0082"), ETestValid));
       
   237 
       
   238 	//Channels Supported
       
   239 	AddTestStepL( CTestChannelsSupported::NewL( _L("MM-MMF-MIDICLNT-U-0085"), ETestValid));
       
   240 
       
   241 	//Queries the type
       
   242 	AddTestStepL( CTestMidiClntMimeType::NewL( _L("MM-MMF-MIDICLNT-U-0087"), ETestValid));
       
   243 
       
   244 	//Current temporal position
       
   245 	AddTestStepL( CTestMidiClntReturnPositionMicroSeconds::NewL( _L("MM-MMF-MIDICLNT-U-0092"), ETestValid));
       
   246 	
       
   247 	//Change the position
       
   248 	AddTestStepL( CTestMidiClntSetPositionMicroSeconds::NewL( _L("MM-MMF-MIDICLNT-U-0095"), ETestValid));
       
   249 
       
   250 	//Current metrical position
       
   251 	AddTestStepL( CTestMidiClntReturnsPositionMicroBeats::NewL( _L("MM-MMF-MIDICLNT-U-0099"), ETestValid));
       
   252 
       
   253 	//Change the metrical position
       
   254 	AddTestStepL( CTestMidiClntSetPositionMicroBeats::NewL( _L("MM-MMF-MIDICLNT-U-0102"), ETestValid));
       
   255 
       
   256 	//Sets the frequency
       
   257 	AddTestStepL( CTestSetSyncUpdateCallbackInterval::NewL( _L("MM-MMF-MIDICLNT-U-0106"), ETestValid));
       
   258 
       
   259 	//Sends a midi message 
       
   260 	AddTestStepL( CTestSendMessage::NewL( _L("MM-MMF-MIDICLNT-U-0111"), ETestValid, _L8("MIDI Message")) );
       
   261 
       
   262 	//Sends a mip message 
       
   263 	AddTestStepL( CTestSendMipMessage::NewL( _L("MM-MMF-MIDICLNT-U-0115"), ETestValid) );
       
   264 	
       
   265 	//The number of sound banks
       
   266 	AddTestStepL( CTestNumberOfBanks::NewL( _L("MM-MMF-MIDICLNT-U-0121"),ETestValid));
       
   267 
       
   268 	//The identifier of a sound bank
       
   269 	AddTestStepL( CTestGetBankId::NewL( _L("MM-MMF-MIDICLNT-U-0124"),ETestValid));
       
   270 
       
   271 	//Loads a custom sound bank
       
   272 	AddTestStepL( CTestLoadCustomBank::NewL( _L("MM-MMF-MIDICLNT-U-0129"),ETestValid));
       
   273 
       
   274 	//Removes a custom sound bank
       
   275 //	AddTestStepL( CTestUnloadCustomBank::NewL( _L("MM-MMF-MIDICLNT-U-0133"),ETestValid));
       
   276 
       
   277 	//Unload all custom banks  -- DEFERED (No suitable Midi Controller)
       
   278 //	AddTestStepL( CTestUnloadAllCustomBanks::NewL( _L("MM-MMF-MIDICLNT-U-0135"),ETestValid));
       
   279 
       
   280 	//Gets the number of instruments
       
   281 	AddTestStepL( CTestNumberOfInstruments::NewL( _L("MM-MMF-MIDICLNT-U-0137"),ETestValid));
       
   282 
       
   283 	//Gets the identifier of a instrument
       
   284 	AddTestStepL( CTestGetInstrumentId::NewL( _L("MM-MMF-MIDICLNT-U-0141"),ETestValid));
       
   285 
       
   286 	//Gets the name of a instrument
       
   287 	AddTestStepL( CTestReturnsInstrumentName::NewL( _L("MM-MMF-MIDICLNT-U-0146"),ETestValid));
       
   288 
       
   289 	//Sets a channel to use the instrument
       
   290 	AddTestStepL( CTestSetInstrument::NewL( _L("MM-MMF-MIDICLNT-U-0148"),ETestValid));
       
   291 
       
   292 	//Loads a custom Instrument
       
   293 	AddTestStepL( CTestLoadCustomInstrument::NewL( _L("MM-MMF-MIDICLNT-U-0151"),ETestValid));
       
   294 
       
   295 	//Removes a instrument
       
   296 	AddTestStepL( CTestUnloadCustomInstrument::NewL( _L("MM-MMF-MIDICLNT-U-0155"),ETestValid ));
       
   297 
       
   298 	//Queries the name of a particular percussion key
       
   299 	AddTestStepL( CTestPercussionKeyName::NewL( _L("MM-MMF-MIDICLNT-U-0159"),ETestValid));
       
   300 	
       
   301 	//Stop Time
       
   302 	AddTestStepL( CTestStopTime::NewL( _L("MM-MMF-MIDICLNT-U-0161"),ETestValid));
       
   303 
       
   304 	//Set Stop Time
       
   305 	AddTestStepL( CTestSetStopTime::NewL( _L("MM-MMF-MIDICLNT-U-0163"),ETestValid));
       
   306 
       
   307 	//Set the number of times to repeat
       
   308 	AddTestStepL( CTestSetRepeats::NewL( _L("MM-MMF-MIDICLNT-U-0168"),ETestValid));
       
   309 
       
   310 	//Gets the polyphony
       
   311 	AddTestStepL( CTestPolyphony::NewL( _L("MM-MMF-MIDICLNT-U-0173"),ETestValid));
       
   312 
       
   313 	//volume setting of a channel
       
   314 	AddTestStepL( CTestReturnChannelVolume::NewL( _L("MM-MMF-MIDICLNT-U-0174"), ETestValid));
       
   315 
       
   316 	//Set the volume of a channel
       
   317 	AddTestStepL( CTestSetChannelVolume::NewL( _L("MM-MMF-MIDICLNT-U-0177"), ETestValid));
       
   318 
       
   319 	//Set the muting state of a channel 
       
   320 	AddTestStepL( CTestSetChannelMute::NewL( _L("MM-MMF-MIDICLNT-U-0181"), ETestValid));
       
   321 
       
   322 	//Get the overall volume of the midi client
       
   323 	AddTestStepL( CTestReturnVolume::NewL( _L("MM-MMF-MIDICLNT-U-0183"), ETestValid));
       
   324 
       
   325 	//Maximum volume setting
       
   326 	AddTestStepL( CTestReturnMaxVolume::NewL( _L("MM-MMF-MIDICLNT-U-0184"), ETestValid));
       
   327 
       
   328 	//Set the overall volume
       
   329 	AddTestStepL( CTestSetVolume::NewL( _L("MM-MMF-MIDICLNT-U-0185"), ETestValid));
       
   330 
       
   331 	//Length of time over which the volume is faded up
       
   332 	AddTestStepL( CTestSetVolumeRamp::NewL( _L("MM-MMF-MIDICLNT-U-0188"), ETestValid));
       
   333 
       
   334 	//Get the stereo balance value
       
   335 	AddTestStepL( CTestGetBalance::NewL( _L("MM-MMF-MIDICLNT-U-0191"), ETestValid));
       
   336 
       
   337 	//Set the stereo balance value
       
   338 	AddTestStepL( CTestSetBalance::NewL( _L("MM-MMF-MIDICLNT-U-0193"), ETestValid));
       
   339 
       
   340 	//Set the priority 
       
   341 	AddTestStepL( CTestSetPriority::NewL( _L("MM-MMF-MIDICLNT-U-0197"), ETestValid));
       
   342 
       
   343 	//Get the number of meta data entries
       
   344 	AddTestStepL( CTestNumberOfXmfMetaDataEntries::NewL( _L("MM-MMF-MIDICLNT-U-0199"), ETestValid));
       
   345 
       
   346 	//Retrieve the specified meta data entry
       
   347 //	AddTestStepL( CTestGetXmfMetaDataEntry::NewL( _L("MM-MMF-MIDICLNT-U-0201"), ETestValid));
       
   348 
       
   349 	//Returns the current playback rate
       
   350 	AddTestStepL( CTestMidiClntReturnPlaybackRate::NewL( _L("MM-MMF-MIDICLNT-U-0210"), ETestValid));
       
   351 
       
   352 	//Sets the playback rate
       
   353 	AddTestStepL( CTestMidiClntSetPlaybackRate::NewL( _L("MM-MMF-MIDICLNT-U-0211"), ETestValid));
       
   354 
       
   355 	//Sets the playback rate [No Resource]	- DEFERRED
       
   356 	//AddTestStepL( CTestMidiClntSetPlaybackRate::NewL( _L("MM-MMF-MIDICLNT-U-0226"), ETestNoResource));
       
   357 	
       
   358 	//Sets the playback rate [Out of range high] - DEFERRED
       
   359 	//AddTestStepL( CTestMidiClntSetPlaybackRate::NewL( _L("MM-MMF-MIDICLNT-U-0227"), ETestOutOfRangeHigh));
       
   360 
       
   361 	//Sets the playback rate [Out of range low] - DEFERRED
       
   362 	//AddTestStepL( CTestMidiClntSetPlaybackRate::NewL( _L("MM-MMF-MIDICLNT-U-0228"), ETestOutOfRangeLow));
       
   363 
       
   364 	//Query the maximum playback rate
       
   365 	AddTestStepL( CTestMidiClntReturnMaxPlayRate::NewL( _L("MM-MMF-MIDICLNT-U-0213"), ETestValid));
       
   366 
       
   367 	//Query the minimum playback rate
       
   368 	AddTestStepL( CTestMidiClntReturnMinPlayRate::NewL( _L("MM-MMF-MIDICLNT-U-0214"), ETestValid));
       
   369 
       
   370 	//Plugin required to do negative tests//
       
   371 	//Query the instrument assigned to a specified channel.
       
   372 	AddTestStepL( CTestGetInstrument::NewL( _L("MM-MMF-MIDICLNT-U-0215"), ETestValid));
       
   373 
       
   374 	//Loads an individual instrument from descriptor
       
   375 	AddTestStepL( CTestLoadCustomInstrumentData::NewL( _L("MM-MMF-MIDICLNT-U-0219"), ETestValid));
       
   376 
       
   377 	// Returns the maximum volume setting
       
   378 	AddTestStepL( CTestMaxChannelVolume::NewL( _L("MM-MMF-MIDICLNT-U-0225"), ETestValid));
       
   379 	
       
   380 	// Checks that the client can hold more than 10 events in its queue
       
   381 	AddTestStepL( CTestMidiClntThirteenMidiEvents::NewL( _L("MM-MMF-MIDICLNT-U-0301"), ETestValid));
       
   382 	
       
   383 	// Checks that the transtion from EMidiStateClosedDisengaged to EMidiStateClosedEngaged is made without any problems.
       
   384 	AddTestStepL( CTestTrasitionFromEClosedToEClosedEngaged::NewL( _L("MM-MMF-MIDICLNT-U-0302"), ETestValid));
       
   385 
       
   386 	// Checks that the transtion from EMidiStateClosedDisengaged to ECOpenEngaged is made without any problems.
       
   387 	AddTestStepL( CTestTrasitionFromEClosedToEOpenEngaged::NewL( _L("MM-MMF-MIDICLNT-U-0303"), ETestValid));
       
   388 
       
   389 	// Checks that the transtion from EMidiStateOpenEngaged to EMidiStateClosedEngaged is made without any problems.
       
   390 	AddTestStepL( CTestTrasitionFromEOpenEngagedToEClosedEngaged::NewL( _L("MM-MMF-MIDICLNT-U-0304"), ETestValid));
       
   391 	
       
   392 	// Checks that the transtion from EMidiStateClosedEngaged to EMidiStateClosedDisengaged is made without any problems (using Stop()).
       
   393 	AddTestStepL( CTestTrasitionFromEClosedEngagedToEClosed::NewL( _L("MM-MMF-MIDICLNT-U-0305"), ETestValid));
       
   394 
       
   395 	AddTestStepL( CTestMidiOpenFileHandleRepeat::NewL( _L("MM-MMF-MIDICLNT-U-0306"), KSectionOne, KFilename, ETrue) );
       
   396 
       
   397 // NEGATIVE TEST
       
   398 
       
   399 	//Return the state before any initialisation has been done
       
   400 //	AddTestStepL( CTestMidiClntGetState::NewL( _L("MM-MMF-MIDICLNT-U-0017"), KSectionOne, KFilename, ETestNegative, ETrue));
       
   401 
       
   402 	//Open 'Invalid File Name'
       
   403 	AddTestStepL( CTestMidiClntOpenFile::NewL( _L("MM-MMF-MIDICLNT-U-0019"), KSectionOne, KFilename, ETrue) );
       
   404 
       
   405 	//Open NULL Descriptor
       
   406 	AddTestStepL( CTestMidiClntOpenDes::NewL( _L("MM-MMF-MIDICLNT-U-0021"), KSectionOne, KFilename, ETrue) );
       
   407 
       
   408 	//Open Invalid Data Descriptor
       
   409 	AddTestStepL( CTestMidiClntOpenDes::NewL( _L("MM-MMF-MIDICLNT-U-0022"), KSectionOne, KFilename, ETrue) );
       
   410 
       
   411 	//Open invalid URL - www.yahoo.coo.uuk
       
   412 	AddTestStepL( CTestMidiClntOpenUrl::NewL( _L("MM-MMF-MIDICLNT-U-0024"), KSectionOne, KFilename, ETrue) );
       
   413 
       
   414 	//Open invalid IAP - TInt aIapId = KUseInvalidIap
       
   415 	AddTestStepL( CTestMidiClntOpenUrl::NewL( _L("MM-MMF-MIDICLNT-U-0025"), KSectionOne, KFilename, ETrue) );
       
   416 
       
   417 	//Open invalid MIME type - TDesC8& = Invalid MIME Type
       
   418 	AddTestStepL( CTestMidiClntOpenUrl::NewL( _L("MM-MMF-MIDICLNT-U-0026"), KSectionOne, KFilename, ETrue) );
       
   419 
       
   420 	//Closes any currently open resource and deletes any plugins in use (No plugin available)
       
   421 	AddTestStepL( CTestMidiClntClose::NewL( _L("MM-MMF-MIDICLNT-U-0028")));
       
   422 
       
   423 	//Initiate or resume playback (No plugin available)
       
   424 //	AddTestStepL( CTestMidiClntPlay::NewL( _L("MM-MMF-MIDICLNT-U-0030"),  ETestNoPlugin));
       
   425 	
       
   426 	//Initiate or resume playback (Invalid System State)
       
   427 //	AddTestStepL( CTestMidiClntPlay::NewL( _L("MM-MMF-MIDICLNT-U-0031"), ETestInvalidState));
       
   428 
       
   429 	// Disabled until real MIDI controller available
       
   430 	//Stops playback of a resource (No Resource Is Playing)
       
   431 	//AddTestStepL( CTestMidiClntStop::NewL( _L("MM-MMF-MIDICLNT-U-0036"), ETestNoResource));
       
   432 
       
   433 	//Stops playback of a resource (No Plugin Available)
       
   434 	AddTestStepL( CTestMidiClntStop::NewL( _L("MM-MMF-MIDICLNT-U-0037"), ETestNoPlugin));
       
   435 
       
   436 	//Play a single note (Zero duration)
       
   437 //	AddTestStepL( CTestMidiClntPlayNote::NewL( _L("MM-MMF-MIDICLNT-U-0039"), ETestZeroDurationOutOfRange));
       
   438 
       
   439 	//Play a single note (Invalid Channel)
       
   440 	AddTestStepL( CTestMidiClntPlayNote::NewL( _L("MM-MMF-MIDICLNT-U-0040"), ETestInvalidChannelOutOfRange));
       
   441 
       
   442 	//Play a single note (Note out of range high)
       
   443 	AddTestStepL( CTestMidiClntPlayNote::NewL( _L("MM-MMF-MIDICLNT-U-0041"), ETestNoteHighOutOfRange));
       
   444 
       
   445 	//Play a single note (Note out of range low)
       
   446 	AddTestStepL( CTestMidiClntPlayNote::NewL( _L("MM-MMF-MIDICLNT-U-0042"), ETestNoteLowOutOfRange));
       
   447 
       
   448 	//Play a single note (Attack out of range high)
       
   449 	AddTestStepL( CTestMidiClntPlayNote::NewL( _L("MM-MMF-MIDICLNT-U-0043"), ETestAttackHighOutOfRange));
       
   450 
       
   451 	//Play a single note (Attack out of range low)
       
   452 	AddTestStepL( CTestMidiClntPlayNote::NewL( _L("MM-MMF-MIDICLNT-U-0044"), ETestAttackLowOutOfRange));
       
   453 
       
   454 	//Play a single note (Release out of range high)
       
   455 	AddTestStepL( CTestMidiClntPlayNote::NewL( _L("MM-MMF-MIDICLNT-U-0045"), ETestReleaseHighOutOfRange));
       
   456 
       
   457 	//Play a single note (Release out of range low)
       
   458 	AddTestStepL( CTestMidiClntPlayNote::NewL( _L("MM-MMF-MIDICLNT-U-0046"), ETestReleaseLowOutOfRange));
       
   459 
       
   460 	//Stop all notes (Invalid Channel Number)
       
   461 	AddTestStepL( CTestMidiClntStopNotes::NewL( _L("MM-MMF-MIDICLNT-U-0048"), ETestInvalidChannelOutOfRange));
       
   462 
       
   463 	//Stop all notes (No Note Available)
       
   464 	AddTestStepL( CTestMidiClntStopNotes::NewL( _L("MM-MMF-MIDICLNT-U-0049"), ETestNoNoteAvailable));
       
   465 
       
   466 	//Commence playback of a note (Invalid Channel Number)
       
   467 	AddTestStepL( CTestMidiClntNoteOn::NewL( _L("MM-MMF-MIDICLNT-U-0051"), ETestInvalidChannelOutOfRange));
       
   468 
       
   469 	//Commence playback of a note (Out of Range Low Note)
       
   470 	AddTestStepL( CTestMidiClntNoteOn::NewL( _L("MM-MMF-MIDICLNT-U-0052"), ETestNoteLowOutOfRange));
       
   471 
       
   472 	//Commence playback of a note (Out of Range High Note)
       
   473 	AddTestStepL( CTestMidiClntNoteOn::NewL( _L("MM-MMF-MIDICLNT-U-0053"), ETestNoteHighOutOfRange));
       
   474 
       
   475 	//Commence playback of a note (Out of Range Low Velocity)
       
   476 	AddTestStepL( CTestMidiClntNoteOn::NewL( _L("MM-MMF-MIDICLNT-U-0054"), ETestVelocityLowOutOfRange));
       
   477 
       
   478 	//Commence playback of a note (Out of Range High Velocity)
       
   479 	AddTestStepL( CTestMidiClntNoteOn::NewL( _L("MM-MMF-MIDICLNT-U-0055"), ETestVelocityHighOutOfRange));
       
   480 
       
   481 	//Terminate playback of a note (Invalid Channel Number)
       
   482 	AddTestStepL( CTestMidiClntNoteOff::NewL( _L("MM-MMF-MIDICLNT-U-0057"), ETestInvalidChannelOutOfRange));
       
   483 
       
   484 	//Terminate playback of a note (No Note Currently Playing)
       
   485 	AddTestStepL( CTestMidiClntNoteOff::NewL( _L("MM-MMF-MIDICLNT-U-0058"), ETestNoNoteAvailable));
       
   486 
       
   487 	//Terminate playback of a note (Selected Note / Velocity Set is different to those playing)
       
   488 //	AddTestStepL( CTestMidiClntNoteOff::NewL( _L("MM-MMF-MIDICLNT-U-0059"), ETestDifferentNoteVelocity));
       
   489 
       
   490 	//Returns the current tempo (No Resource is Open)
       
   491 //	AddTestStepL( CTestMidiClntTempoMicroBeatsPerMinute::NewL( _L("MM-MMF-MIDICLNT-U-0061"), ETestNoResource ));
       
   492 
       
   493 	//Sets the tempo (Beats Out of Range Low)
       
   494 	AddTestStepL( CTestMidiClntSetTempo::NewL( _L("MM-MMF-MIDICLNT-U-0063"), ETestBeatsLowOutOfRange));
       
   495 
       
   496 // Does not calculate errors on out of range values, all values above 0 are a pass, Invalid test
       
   497 	//Sets the tempo (Beats Out of Range High)
       
   498 //	AddTestStepL( CTestMidiClntSetTempo::NewL( _L("MM-MMF-MIDICLNT-U-0064"), ETestBeatsHighOutOfRange));
       
   499 
       
   500 	//Sets the tempo (No Resource is Open)
       
   501 //	AddTestStepL( CTestMidiClntSetTempo::NewL( _L("MM-MMF-MIDICLNT-U-0065"), ETestNoResource));
       
   502 
       
   503 	//Returns the pitch shift (No Resource is Open)
       
   504 	//AddTestStepL( CTestMidiClntGetPitchTranspositionCents::NewL( _L("MM-MMF-MIDICLNT-U-0067"),ETestNoResource ));
       
   505 
       
   506 	//Set the pitch shift (No Resource is Open)
       
   507 	//AddTestStepL( CTestMidiClntSetPitchTransposition::NewL( _L("MM-MMF-MIDICLNT-U-0073"),ETestNoResource ));
       
   508 
       
   509 	//Set the pitch shift (Out of Range Value High)
       
   510 	AddTestStepL( CTestMidiClntSetPitchTransposition::NewL( _L("MM-MMF-MIDICLNT-U-0074"),ETestOutOfRangeHigh ));
       
   511 
       
   512 	//Set the pitch shift (Out of Range Value Low)
       
   513 //	AddTestStepL( CTestMidiClntSetPitchTransposition::NewL( _L("MM-MMF-MIDICLNT-U-0075"),ETestOutOfRangeLow ));
       
   514 
       
   515 	//Returns the length of midi resource (No Resource is Open)
       
   516 //	AddTestStepL( CTestMidiClntDurationMicroSeconds::NewL( _L("MM-MMF-MIDICLNT-U-0077"), ETestNoResource));
       
   517 
       
   518 	//The length of midi resource by Beats (No Resource is Open)
       
   519 //	AddTestStepL( CTestMidiClntDurationMicroBeats::NewL( _L("MM-MMF-MIDICLNT-U-0079"), ETestNoResource));
       
   520 
       
   521 	// Disabled until real MIDI controller available
       
   522 	//Number of tracks (No Resource is Open)
       
   523 	//AddTestStepL( CTestMidiClntNumTracks::NewL( _L("MM-MMF-MIDICLNT-U-0081"),ETestNoResource));
       
   524 
       
   525 	//Mutes a particular track (Invalid Track)
       
   526 	AddTestStepL( CTestMidiClntSetTrackMute::NewL( _L("MM-MMF-MIDICLNT-U-0083"), ETestInvalidTrack));
       
   527 
       
   528 	//Mutes a particular track (No Resource is Open)
       
   529 //	AddTestStepL( CTestMidiClntSetTrackMute::NewL( _L("MM-MMF-MIDICLNT-U-0084"), ETestNoResource));
       
   530 
       
   531 	// Disabled until real MIDI controller available
       
   532 	//Number of channels (No Resource is Open)
       
   533 	//AddTestStepL( CTestChannelsSupported::NewL( _L("MM-MMF-MIDICLNT-U-0086"),ETestNoResource));
       
   534 
       
   535 	//Queries the type (No Resource is Open)
       
   536 //	AddTestStepL( CTestMidiClntMimeType::NewL( _L("MM-MMF-MIDICLNT-U-0088"), ETestNoResource));
       
   537 
       
   538 	//Current temporal position (No Resource is Open)
       
   539 //	AddTestStepL( CTestMidiClntReturnPositionMicroSeconds::NewL( _L("MM-MMF-MIDICLNT-U-0093"), ETestNoResource));
       
   540 
       
   541 	//Current temporal position (Resource is not Playing)
       
   542 //	AddTestStepL( CTestMidiClntReturnPositionMicroSeconds::NewL( _L("MM-MMF-MIDICLNT-U-0094"), ETestNoResourcePlaying));
       
   543 
       
   544 	//Change the position (No Resource is Open)
       
   545 //	AddTestStepL( CTestMidiClntSetPositionMicroSeconds::NewL( _L("MM-MMF-MIDICLNT-U-0096"), ETestNoResource));
       
   546 
       
   547 //Taken out as controller does not check values
       
   548 	//Change the position (Out of Range Value Low)
       
   549 //	AddTestStepL( CTestMidiClntSetPositionMicroSeconds::NewL( _L("MM-MMF-MIDICLNT-U-0097"), ETestMicrosecondsLowOutOfRange));
       
   550 
       
   551 //Taken out as controller does not check values
       
   552 	//Change the position (Out of Range Value High)
       
   553 //	AddTestStepL( CTestMidiClntSetPositionMicroSeconds::NewL( _L("MM-MMF-MIDICLNT-U-0098"), ETestMicrosecondsHighOutOfRange));
       
   554 
       
   555 	//Current metrical position (No Resource is Open)
       
   556 //	AddTestStepL( CTestMidiClntReturnsPositionMicroBeats::NewL( _L("MM-MMF-MIDICLNT-U-0100"), ETestNoResource));
       
   557 
       
   558 	//Current metrical position (Resource is not Playing)
       
   559 //	AddTestStepL( CTestMidiClntReturnsPositionMicroBeats::NewL( _L("MM-MMF-MIDICLNT-U-0101"), ETestNoResourcePlaying));
       
   560 
       
   561 	//Change the metrical position (No Resource is Open)
       
   562 //	AddTestStepL( CTestMidiClntSetPositionMicroBeats::NewL( _L("MM-MMF-MIDICLNT-U-0103"), ETestNoResource));
       
   563 
       
   564 //Taken out as controller does not check values
       
   565 	//Change the metrical position (Out of Range Value Low)
       
   566 //	AddTestStepL( CTestMidiClntSetPositionMicroBeats::NewL( _L("MM-MMF-MIDICLNT-U-0104"), ETestMicrobeatsLowOutOfRange));
       
   567 
       
   568 //Taken out as controller does not check values
       
   569 	//Change the metrical position (Out of Range Value High)
       
   570 //	AddTestStepL( CTestMidiClntSetPositionMicroBeats::NewL( _L("MM-MMF-MIDICLNT-U-0105"), ETestMicrobeatsHighOutOfRange ));
       
   571 
       
   572 	//Sets the frequency (Both Arguments are Set to Zero)
       
   573 //	AddTestStepL( CTestSetSyncUpdateCallbackInterval::NewL( _L("MM-MMF-MIDICLNT-U-0107"), ETestMicrosecondsMicrobeatsZero));
       
   574 
       
   575 	//Sets the frequency (Microseconds Value is Out of Range)
       
   576 	AddTestStepL( CTestSetSyncUpdateCallbackInterval::NewL( _L("MM-MMF-MIDICLNT-U-0108"), ETestMicrosecondsLowOutOfRange));
       
   577 
       
   578 	//Sets the frequency (Out of Range Interval Low)
       
   579 	AddTestStepL( CTestSetSyncUpdateCallbackInterval::NewL( _L("MM-MMF-MIDICLNT-U-0109"), ETestMicrobeatsLowOutOfRange));
       
   580 
       
   581 // Does not calculate errors on out of range values, all values above 0 are a pass, Invalid test
       
   582 	//Sets the frequency (Out of Range Interval High)
       
   583 //	AddTestStepL( CTestSetSyncUpdateCallbackInterval::NewL( _L("MM-MMF-MIDICLNT-U-0110"), ETestMicrobeatsHighOutOfRange));
       
   584 
       
   585 	//Sends a midi message (Call With NULL Message)
       
   586 //	AddTestStepL( CTestSendMessage::NewL( _L("MM-MMF-MIDICLNT-U-0112"), ETestNullMessage, KNullDesC8) );
       
   587 
       
   588 	//Sends a midi message (Call With Unsupported Message)
       
   589 //	AddTestStepL( CTestSendMessage::NewL( _L("MM-MMF-MIDICLNT-U-0113"), ETestUnsupported, _L8("Unsupported MIDI Message")) );
       
   590 
       
   591 	//Sends a midi message (Call With Corrupt Message)
       
   592 //	AddTestStepL( CTestSendMessage::NewL( _L("MM-MMF-MIDICLNT-U-0114"), ETestCorrupt, _L8("Corrupt MIDI Message")) );
       
   593 
       
   594 	//Sends a mip message (Invalid Device ID)
       
   595 //	AddTestStepL( CTestSendMipMessage::NewL( _L("MM-MMF-MIDICLNT-U-0116"), ETestInvalidId ));
       
   596 
       
   597 	//Sends a mip message  (NULL Message)
       
   598 //	AddTestStepL( CTestSendMipMessage::NewL( _L("MM-MMF-MIDICLNT-U-0117"), ETestNullMessage) );
       
   599 
       
   600 	//Sends a mip message (Unsupported Message)
       
   601 //	AddTestStepL( CTestSendMipMessage::NewL( _L("MM-MMF-MIDICLNT-U-0118"), ETestUnsupported) );
       
   602 
       
   603 	// Duplicate requirement
       
   604 	//Sends a mip message (Unsupported Message)
       
   605 //	AddTestStepL( CTestSendMipMessage::NewL( _L("MM-MMF-MIDICLNT-U-0119"), ETestUnsupported ));
       
   606 
       
   607 	//Sends a mip message (Corrupt Message)
       
   608 //	AddTestStepL( CTestSendMipMessage::NewL( _L("MM-MMF-MIDICLNT-U-0120"), ETestCorrupt) );
       
   609 
       
   610 	//The number of sound banks (No Custom banks Exist)
       
   611 //	AddTestStepL( CTestNumberOfBanks::NewL( _L("MM-MMF-MIDICLNT-U-0122"), ETestNoCustomBanks) );
       
   612 
       
   613 	//The number of sound banks (No Standard bank Exist)
       
   614 //	AddTestStepL( CTestNumberOfBanks::NewL( _L("MM-MMF-MIDICLNT-U-0123"), ETestNoStandardBanks ));
       
   615 
       
   616 	//The identifier of a sound bank (Invalid Bank Index)
       
   617 //	AddTestStepL( CTestGetBankId::NewL( _L("MM-MMF-MIDICLNT-U-0125"), ETestInvalidIndex) );
       
   618 
       
   619 	//The identifier of a sound bank (No Custom Banks Exist)
       
   620 //	AddTestStepL( CTestGetBankId::NewL( _L("MM-MMF-MIDICLNT-U-0126"), ETestNoCustomBanks) );
       
   621 
       
   622 	//The identifier of a sound bank  (No Standard Banks Exist)
       
   623 //	AddTestStepL( CTestGetBankId::NewL( _L("MM-MMF-MIDICLNT-U-0127"), ETestNoStandardBanks ));
       
   624 
       
   625 	//Loads a custom sound bank (Null Filename)
       
   626 //	AddTestStepL( CTestLoadCustomBank::NewL( _L("MM-MMF-MIDICLNT-U-0130"), ETestNullMessage) );
       
   627 
       
   628 	//Loads a custom sound bank (lnvalid Filename)
       
   629 //	AddTestStepL( CTestLoadCustomBank::NewL( _L("MM-MMF-MIDICLNT-U-0131"), ETestInvalidMessage) );
       
   630 
       
   631 	//Loads a custom sound bank (Unsupported File)
       
   632 //	AddTestStepL( CTestLoadCustomBank::NewL( _L("MM-MMF-MIDICLNT-U-0132"), ETestUnsupported) );
       
   633 
       
   634 	//Removes a custom sound bank (ID of Bank Not Loaded)
       
   635 //	AddTestStepL( CTestUnloadCustomBank::NewL( _L("MM-MMF-MIDICLNT-U-0134"), ETestNotLoaded ));
       
   636 
       
   637 	//Gets the number of instruments  (Invalid Bank Index)
       
   638 //	AddTestStepL( CTestNumberOfInstruments::NewL( _L("MM-MMF-MIDICLNT-U-0138"), ETestInvalidIndex ));
       
   639 
       
   640 	//Gets the number of instruments  (No Custome Banks Exist)
       
   641 //	AddTestStepL( CTestNumberOfInstruments::NewL( _L("MM-MMF-MIDICLNT-U-0139"), ETestNoCustomBanks ));
       
   642 
       
   643 	//Gets the number of instruments  (No Standard Banks Exist)
       
   644 //	AddTestStepL( CTestNumberOfInstruments::NewL( _L("MM-MMF-MIDICLNT-U-0140"), ETestNoStandardBanks ));
       
   645 
       
   646 	//Gets the identifier of a instrument  (Invalid Bank ID)
       
   647 //	AddTestStepL( CTestGetInstrumentId::NewL( _L("MM-MMF-MIDICLNT-U-0142"), ETestInvalidId ));
       
   648 
       
   649 	//Gets the identifier of a instrument (No Custome Banks Exist)
       
   650 //	AddTestStepL( CTestGetInstrumentId::NewL( _L("MM-MMF-MIDICLNT-U-0143"), ETestNoCustomBanks ));
       
   651 
       
   652 	//Gets the identifier of a instrument (No Standard Banks Exist)
       
   653 //	AddTestStepL( CTestGetInstrumentId::NewL( _L("MM-MMF-MIDICLNT-U-0144"), ETestNoStandardBanks ));
       
   654 
       
   655 	//Gets the identifier of a instrument (Invalid Program/Instrument Index)
       
   656 //	AddTestStepL( CTestGetInstrumentId::NewL( _L("MM-MMF-MIDICLNT-U-0145"), ETestInvalidIndex ));
       
   657 
       
   658 //Check this//
       
   659 	//Change it to return EFail for failing negative test
       
   660 	//Gets the name of a instrument (Invalid Program/Instrument Information)
       
   661 	AddTestStepL( CTestReturnsInstrumentName::NewL( _L("MM-MMF-MIDICLNT-U-0147"), ETestNegative ));
       
   662 //
       
   663 
       
   664 	//Sets a channel to use the instrument  (Invalid Channel)
       
   665 //	AddTestStepL( CTestSetInstrument::NewL( _L("MM-MMF-MIDICLNT-U-0149"), ETestInvalidChannel ));
       
   666 
       
   667 	//Sets a channel to use the instrument (Invalid Program/Instrument ID)
       
   668 //	AddTestStepL( CTestSetInstrument::NewL( _L("MM-MMF-MIDICLNT-U-0150"), ETestInvalidId ));
       
   669 
       
   670 	//Loads a custom Instrument (Invalid Bank ID)
       
   671 //	AddTestStepL( CTestLoadCustomInstrument::NewL( _L("MM-MMF-MIDICLNT-U-0152"), ETestInvalidId ));
       
   672 
       
   673 	//Loads a custom Instrument (Load Program/Instrument Already Loaded)
       
   674 //	AddTestStepL( CTestLoadCustomInstrument::NewL( _L("MM-MMF-MIDICLNT-U-0153"), ETestAlreadyLoaded ));
       
   675 
       
   676 	//Loads a custom Instrument (Load Unsupported Program/Instrument)
       
   677 //	AddTestStepL( CTestLoadCustomInstrument::NewL( _L("MM-MMF-MIDICLNT-U-0154"), ETestUnsupported ));
       
   678 
       
   679 	//Removes a instrument (Invalid Bank ID)
       
   680 //	AddTestStepL( CTestUnloadCustomInstrument::NewL( _L("MM-MMF-MIDICLNT-U-0156"), ETestInvalidId ));
       
   681 
       
   682 	//Removes a instrument (ID of Program not Loaded)
       
   683 //	AddTestStepL( CTestUnloadCustomInstrument::NewL( _L("MM-MMF-MIDICLNT-U-0157"), ETestNotLoaded ));
       
   684 
       
   685 	//Removes a instrument (Non-unloadable Program/Instrument)
       
   686 //	AddTestStepL( CTestUnloadCustomInstrument::NewL( _L("MM-MMF-MIDICLNT-U-0158"), ETestNotUnloadable ));
       
   687 
       
   688 	//Queries the name of a particular percussion key (Invalid Note)
       
   689 //	AddTestStepL( CTestPercussionKeyName::NewL( _L("MM-MMF-MIDICLNT-U-0160"), ETestInvalidId ));
       
   690 
       
   691 	// Disabled until real MIDI controller available
       
   692 	//Stop Time (No Midi Resource is Open)
       
   693 	//AddTestStepL( CTestStopTime::NewL( _L("MM-MMF-MIDICLNT-U-0162"),ETestNoResource));
       
   694 
       
   695 	//Set Stop Time (Stop time out of range high)
       
   696 	AddTestStepL( CTestSetStopTime::NewL( _L("MM-MMF-MIDICLNT-U-0164"),ETestOutOfRangeHigh));
       
   697 
       
   698 	//Set Stop Time (Stop time out of range low)
       
   699 	AddTestStepL( CTestSetStopTime::NewL( _L("MM-MMF-MIDICLNT-U-0165"),ETestOutOfRangeLow));
       
   700 
       
   701 	//Set the number of times to repeat (Repeat: Out of Range High, Trailing Silence: Out of Range High)
       
   702 	AddTestStepL( CTestSetRepeats::NewL( _L("MM-MMF-MIDICLNT-U-0169"), ETestOutOfRange ));
       
   703 
       
   704 	//It gave no error even it is Channel16. So it should be because no plugin.
       
   705 	//volume setting of a channel (Invalid Channel)  -- DEFERED (No suitable Midi Controller)
       
   706 	AddTestStepL( CTestReturnChannelVolume::NewL( _L("MM-MMF-MIDICLNT-U-0175"), ETestInvalidChannel ));
       
   707 
       
   708 	//Set the volume of a channel (Invalid Channel Number)
       
   709 	AddTestStepL( CTestSetChannelVolume::NewL( _L("MM-MMF-MIDICLNT-U-0178"), ETestInvalidChannelOutOfRange));
       
   710 
       
   711 	//Set the volume of a channel (Volume out of Range High)
       
   712 	AddTestStepL( CTestSetChannelVolume::NewL( _L("MM-MMF-MIDICLNT-U-0179"), ETestVolumeHighOutOfRange));
       
   713 
       
   714 	//Set the volume of a channel (Volume out of Range Low)
       
   715 	AddTestStepL( CTestSetChannelVolume::NewL( _L("MM-MMF-MIDICLNT-U-0180"), ETestVolumeLowOutOfRange));
       
   716 
       
   717 //Check this
       
   718 //Is the error message 'NotSupported' corect??
       
   719 	//Set the muting state of a channel (Invalid Channel)
       
   720 	AddTestStepL( CTestSetChannelMute::NewL( _L("MM-MMF-MIDICLNT-U-0182"), ETestInvalidChannelOutOfRange));
       
   721 //
       
   722 
       
   723 //Taken out as controller does not check values
       
   724 	//Set the overall volume (Out of Range Volume Low) 
       
   725 //	AddTestStepL( CTestSetVolume::NewL( _L("MM-MMF-MIDICLNT-U-0186"), ETestVolumeLowOutOfRange));
       
   726 
       
   727 //Taken out as controller does not check values
       
   728 	//Set the overall volume (Out of Range Volume High) 
       
   729 //	AddTestStepL( CTestSetVolume::NewL( _L("MM-MMF-MIDICLNT-U-0187"), ETestVolumeHighOutOfRange));
       
   730 
       
   731 //Taken out as controller does not check values
       
   732 	//Length of time over which the volume is faded up (Out of Range Volume Low) 
       
   733 //	AddTestStepL( CTestSetVolumeRamp::NewL( _L("MM-MMF-MIDICLNT-U-0189"), ETestRampDurationLowOutOfRange));
       
   734 
       
   735 //Taken out as controller does not check values
       
   736 	//Length of time over which the volume is faded up (Out of Range Volume High) 
       
   737 //	AddTestStepL( CTestSetVolumeRamp::NewL( _L("MM-MMF-MIDICLNT-U-0190"), ETestRampDurationHighOutOfRange));
       
   738 
       
   739 	//Get the stereo balance value (Plugin Does Not Support Balance)
       
   740 //	AddTestStepL( CTestGetBalance::NewL( _L("MM-MMF-MIDICLNT-U-0192"), ETestUnsupported));
       
   741 
       
   742 	//Set the stereo balance value  (Plugin Does Not Support Balance)
       
   743 //	AddTestStepL( CTestSetBalance::NewL( _L("MM-MMF-MIDICLNT-U-0194"), ETestUnsupported));
       
   744 
       
   745 //Taken out as controller does not check values
       
   746 	//Set the stereo balance value (Out of Range Volume Low)
       
   747 //	AddTestStepL( CTestSetBalance::NewL( _L("MM-MMF-MIDICLNT-U-0195"), ETestBalanceLowOutOfRange));
       
   748 
       
   749 //Taken out as controller does not check values
       
   750 	//Set the stereo balance value (Out of Range Volume High)
       
   751 //	AddTestStepL( CTestSetBalance::NewL( _L("MM-MMF-MIDICLNT-U-0196"), ETestBalanceHighOutOfRange));
       
   752 
       
   753 //  We need this to confict and cause PreferenceConflictsCannotBeResolved
       
   754 	//Set the priority (Preference Conflicts Cannot be Resolved)  -- DEFERED (Need another Midi Client)
       
   755 //	AddTestStepL( CTestSetPriority::NewL( _L("MM-MMF-MIDICLNT-U-0198"), ETestPreferenceConflictsCannotBeResolved));
       
   756 
       
   757 // Taken out we need plugin
       
   758 	//Get the number of meta data entries  (Plugin Does Not Support Metadata)
       
   759 //	AddTestStepL( CTestNumberOfXmfMetaDataEntries::NewL( _L("MM-MMF-MIDICLNT-U-0200"), ETestUnsupported));
       
   760 
       
   761 //Causes Access Violation
       
   762 	//Retrieve the specified meta data entry (Invalid Index)
       
   763 //	AddTestStepL( CTestGetXmfMetaDataEntry::NewL( _L("MM-MMF-MIDICLNT-U-0202"), ETestMetaDataIndexInvalid));
       
   764 
       
   765 //Causes Access Violation
       
   766 	//Retrieve the specified meta data entry (Plugin Does Not Support Metadata)
       
   767 //	AddTestStepL( CTestGetXmfMetaDataEntry::NewL( _L("MM-MMF-MIDICLNT-U-0203"), ETestUnsupported));
       
   768 	
       
   769 	//Query the instrument (Invalid channel) - DEFERRED
       
   770 	//AddTestStepL( CTestGetInstrument::NewL( _L("MM-MMF-MIDICLNT-U-0216"), ETestInvalidChannel));
       
   771 
       
   772 	//Query the instrument (Invalid Id) - DEFERRED
       
   773 	//AddTestStepL( CTestGetInstrument::NewL( _L("MM-MMF-MIDICLNT-U-0217"), ETestInvalidId));
       
   774 
       
   775 	//Loads an individual instrument from descriptor (Invalid ID) - DEFERRED
       
   776 	//AddTestStepL( CTestLoadCustomInstrumentData::NewL( _L("MM-MMF-MIDICLNT-U-0220"), ETestInvalidId));
       
   777 
       
   778 	//Loads an individual instrument from descriptor (Already loaded) - DEFERRED
       
   779 	//AddTestStepL( CTestLoadCustomInstrumentData::NewL( _L("MM-MMF-MIDICLNT-U-0221"), ETestAlreadyLoaded));
       
   780 
       
   781 	//Loads an individual instrument from descriptor (Unsupported / Bad instrument data) - DEFERRED
       
   782 	//AddTestStepL( CTestLoadCustomInstrumentData::NewL( _L("MM-MMF-MIDICLNT-U-0222"), ETestUnsupported));
       
   783 	
       
   784 	AddTestStepL( CTestCheckInterface::NewL( _L("MM-MMF-MIDICLNT-U-0300"), ETestValid));
       
   785 
       
   786 	AddTestStepL(CTestStepMidiClntAllocFailNew::NewL());
       
   787 	AddTestStepL(CTestStepMidiClntAllocFailOpenFile::NewL(_L("MM-MMF-MIDICLNT-U-0200-CP")));
       
   788 	AddTestStepL(CTestStepMidiClntAllocFailOpenDes::NewL());
       
   789 	AddTestStepL(CTestStepMidiClntAllocFailOpenUrl::NewL());
       
   790 
       
   791 	//MS 3.4 File Handles API
       
   792 	//NEGATIVE TESTS
       
   793 	//Open a MIDI File containing text data and try to perform initialisation ready for playback - (Invalid File).
       
   794 	AddTestStepL( CTestMidiClntOpenFileByHandle::NewL( _L("MM-MMF-MIDICLNT-U-0223"), KSectionTwo, KFilename, ETrue, ETestValid) );
       
   795 	
       
   796 	//POSITIVE TESTS
       
   797 	//Open a file containing midi data and perform initialisation ready for playback.
       
   798 	AddTestStepL( CTestMidiClntOpenFileByHandle::NewL( _L("MM-MMF-MIDICLNT-U-1001"), KSectionOne, KFilename, ETrue, ETestValid) );
       
   799 	//Initiate or resume playback of a previously opened resource.
       
   800 	AddTestStepL( CTestMidiClntPlayFileByHandle::NewL( _L("MM-MMF-MIDICLNT-U-1002")));
       
   801 	
       
   802 	//ALLOC TESTS
       
   803 	//Alloc test to Open a file containing midi data and perform initialisation ready for playback.
       
   804 	AddTestStepL(CTestStepMidiClntAllocFailOpenFile::NewL(_L("MM-MMF-MIDICLNT-U-1003")));
       
   805 	
       
   806 	AddTestStepL(CTestDrmNegative::NewL(_L("MM-MMF-MIDICLNT-U-0321-HP"),ETestNegative ,KDrm0321));
       
   807 	AddTestStepL(CTestDrmNegative::NewL(_L("MM-MMF-MIDICLNT-U-0322-HP"),ETestNegative ,KDrm0322));
       
   808 	AddTestStepL(CTestDrmPlay::NewL(_L("MM-MMF-MIDICLNT-U-0323-HP"),ETestValid ,KDrm0323));
       
   809 	AddTestStepL(CTestDrmNegative::NewL(_L("MM-MMF-MIDICLNT-U-0324-HP"),ETestNegative ,KDrm0324));
       
   810 	AddTestStepL(CTestDrmPlay::NewL(_L("MM-MMF-MIDICLNT-U-1011-HP"),ETestValid ,KDrm1011));
       
   811 	AddTestStepL(CTestDrmPlay::NewL(_L("MM-MMF-MIDICLNT-U-1012-HP"),ETestValid ,KDrm1012));
       
   812 	AddTestStepL(CTestDrmPlayStop::NewL(_L("MM-MMF-MIDICLNT-U-1013-HP"),ETestValid ,KDrm1013));
       
   813 	AddTestStepL(CTestDrmPlay::NewL(_L("MM-MMF-MIDICLNT-U-1014-HP"),ETestValid ,KDrm1014));
       
   814 	AddTestStepL(CTestDrmPlay::NewL(_L("MM-MMF-MIDICLNT-U-1015-HP"),ETestValid ,KDrm1015));
       
   815 	AddTestStepL(CTestDrmPlayWithUI::NewL(_L("MM-MMF-MIDICLNT-U-1016-HP"),ETestValid ,KDrm1016));
       
   816 	
       
   817 	//Play a midifile without opening it and check the status while playing and after it is been  stopped.
       
   818 	AddTestStepL(CTestMidiClntPlayWithoutFile::NewL(_L("MM-MMF-MIDICLNT-U-1020-HP")));
       
   819 	//Open and Play a midifile and check the status while playing and after it is been  stopped.
       
   820 	AddTestStepL(CTestMidiClntOpenAndPlayFile::NewL(_L("MM-MMF-MIDICLNT-U-1021-HP"),KSectionOne, KFilename));
       
   821 	
       
   822 	//Open and play multiple concurrent midi objects, using shared heap mode, to check we don't run out of heaps
       
   823 	AddTestStepL(CTestMidiClntMultiSharedHeap::NewL(_L("MM-MMF-MIDICLNT-U-2000-HP"),KSectionOne, KFilename, EFalse));
       
   824 	AddTestStepL(CTestMidiClntMultiSharedHeap::NewL(_L("MM-MMF-MIDICLNT-U-2001-HP"),KSectionOne, KFilename, ETrue));
       
   825 	
       
   826 	// repeatedly create and delete multiple concurrent midi objects, using shared heap mode, to check no chunks are leaked
       
   827 	AddTestStepL(CTestMidiClntRepeatMultiSharedHeap::NewL(_L("MM-MMF-MIDICLNT-U-2002-HP"),KSectionOne, KFilename, EFalse));
       
   828 	AddTestStepL(CTestMidiClntRepeatMultiSharedHeap::NewL(_L("MM-MMF-MIDICLNT-U-2003-HP"),KSectionOne, KFilename, ETrue));
       
   829 }
       
   830 
       
   831