os/mm/mmlibs/mmfw/tsrc/mmfunittest/MidiClnt/TS_MMFMIDICLNTsuite.cpp
author sl@SLION-WIN7.fritz.box
Fri, 15 Jun 2012 03:10:57 +0200
changeset 0 bde4ae8d615e
permissions -rw-r--r--
First public contribution.
     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