mmlibs/mmfw/tsrc/mmfunittest/aclnt/TSU_MMF_ACLNT_01/TestSuiteUnitMMFAudClient.cpp
changeset 0 b8ed18f6c07b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mmlibs/mmfw/tsrc/mmfunittest/aclnt/TSU_MMF_ACLNT_01/TestSuiteUnitMMFAudClient.cpp	Thu Oct 07 22:34:12 2010 +0100
@@ -0,0 +1,656 @@
+// Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+// EPOC includes
+#include <e32base.h>
+
+#include <mdaaudiosampleplayer.h>
+#include <mdaaudiosampleeditor.h>
+#include <mdaaudiotoneplayer.h>
+
+// Test system includes
+#include <testframework.h>
+#include "TestStepUnitMMFAudClient.h"
+#include "TestSuiteUnitMMFAudClient.h"
+
+#include "OneExampleUnitMMFAudClientTest.h"
+#include "TestStepPlayerNew.h"
+#include "TestStepPlayerManip.h"
+#include "TestStepPlayerAllocFailNew.h"
+#include "TestStepPlayerAllocFailOpen.h"
+
+#include "TestStepRecorder.h"
+#include "TestStepRecorderAllocFail.h"
+
+#include "TestStepTone.h"
+#include "TestStepConvert.h"
+#include "TestStepAudOutStream.h"
+#include "TestStepAudOutStreamGSM610.h"
+#include "TestStepAudInStream.h"
+#include "TestStepPlayerBitRate.h"
+#include "TestStepRecorderBitRate.h"
+#include "TestStepMiscAud.h"
+#include "TestStepResourceNotification.h"
+#include "TestStepPlayerSharedHeap.h"
+
+#include "TestStepAudioPlayerDRM.h"
+#include "TestStepAudioRecorderDRM.h"
+#include "TestStepRecorderSharedHeap.h"
+#include "TestStepConverterSharedHeap.h"
+#include "TestStepCtrlSetRepeatsCustomCommands.h"
+
+/**
+ *
+ * Create an instance of this test suite.
+ *
+ * NewTestSuiteUnitMMFAudClientL is exported at ordinal 1.
+ * This provides the interface to allow the Test Framework
+ * to create instances of this test suite.
+ *
+ * @return	"CTestSuiteUnitMMFAudClient*"
+ *			The newly created test suite
+ */
+EXPORT_C CTestSuiteUnitMMFAudClient* NewTestSuiteUnitMMFAudClientL() 
+    { 
+	CTestSuiteUnitMMFAudClient* result = new (ELeave) CTestSuiteUnitMMFAudClient;
+	CleanupStack::PushL(result);
+	result->ConstructL();
+	CleanupStack::Pop(); // result
+	return result;
+    }
+
+/**
+ *
+ * CTestSuiteUnitMMFAudClient destructor
+ *
+ * @xxxx
+ * 
+ */
+CTestSuiteUnitMMFAudClient::~CTestSuiteUnitMMFAudClient()
+	{
+	}
+
+/**
+ *
+ * This test suite version string
+ *
+ * @xxxx
+ *
+ */
+_LIT(KTxtVersion,"0.1a (build 13-Aug-2002)");
+
+/**
+ *
+ * Get test suite version.
+ *
+ * @return	"TPtrC"
+ *			The version string.
+ *
+ * @xxxx
+ *
+ */
+TPtrC CTestSuiteUnitMMFAudClient::GetVersion() const
+	{
+	return KTxtVersion();
+	}
+
+/**
+ *
+ * Add a test step into the suite.
+ *
+ * @param	"CTestStepUnitMMFAudClient* aTestStep"
+ *			The test step to be added.
+ * @xxxx
+ * 
+ */
+void CTestSuiteUnitMMFAudClient::AddTestStepL( CTestStepUnitMMFAudClient* aTestStep )
+	{
+	// test steps contain a pointer back to the suite which owns them
+	aTestStep->SetUnitMMFAudClientSuite(this); 
+
+	// add the step using tyhe base class method
+	CTestSuite::AddTestStepL(aTestStep);
+	}
+
+void CTestSuiteUnitMMFAudClient::AddTestStepL( RTestStep* aTestStep )
+	{
+
+	// add the step using tyhe base class method
+	CTestSuite::AddTestStepL(aTestStep);
+	}
+
+/**
+ *
+ * Initialiser for test suite.
+ * This creates all the test steps and stores them
+ * inside CTestSuiteUnitMMFAudClient
+ *
+ * @xxxx
+ * 
+ */
+void CTestSuiteUnitMMFAudClient::InitialiseL()
+	{
+	InitSystemPath();
+	// store the name of this test suite
+	iSuiteName = _L("TSU_MMF_ACLNT_01");
+
+	// add test steps
+	AddTestStepL(CTestStepPlayerNew::NewL());
+	AddTestStepL(CTestStepPlayerNewFilePlayer::NewL());
+	AddTestStepL(CTestStepPlayerNewDescPlayer::NewL());
+	AddTestStepL(CTestStepPlayerNewPriorPrefer::NewL());
+	AddTestStepL(CTestStepPlayerNewPrefer::NewL());
+	AddTestStepL(CTestStepPlayerPlay::NewL());
+	AddTestStepL(CTestStepPlayerPlayTwice::NewL());
+	AddTestStepL(CTestStepPlayerPlayThreeTimes::NewL());
+	AddTestStepL(CTestStepPlayerClosePlay::NewL());
+	AddTestStepL(CTestStepPlayerOpenUrl::NewL());
+
+	AddTestStepL(CTestStepPlayerPlayAu::NewL());
+    AddTestStepL(CTestStepCheckHeaderTag::NewL());
+	AddTestStepL(CTestStepPlayerFileHandle::NewL());
+	AddTestStepL(CTestStepPlayerStop::NewL());
+	AddTestStepL(CTestStepPlayerDuration::NewL());
+	AddTestStepL(CTestStepPlayerRepeats::NewL(_L("MM-MMF-ACLNT-U-0036-CP"), _L("SectionOne"), _L("AudioPlayFName1")));
+	//Test step for tone repeats
+	AddTestStepL(CTestStepPlayerRepeats::NewL(_L("MM-MMF-ACLNT-U-0067-HP"), _L("SectionOne"), _L("AudioPlayFName12")));
+	AddTestStepL(CTestStepPlayerVol::NewL());
+	AddTestStepL(CTestStepPlayerVolRamp::NewL());
+	AddTestStepL(CTestStepPlayerPosition::NewL());
+	AddTestStepL(CTestStepPlayerPlayWindow::NewL());
+	AddTestStepL(CTestStepPlayerBalance::NewL());
+	AddTestStepL(CTestStepPlayerClose::NewL());
+	AddTestStepL(CTestStepPlayerMeta::NewL());
+	AddTestStepL(CTestStepPlayerPriority::NewL());
+	AddTestStepL(CTestStepPlayerPauseSetPosPlay::NewL());
+	AddTestStepL(CTestStepPlayerPlayWaitSetPos::NewL());
+	AddTestStepL(CTestStepMultipleSetPlayerPriority::NewL());
+	AddTestStepL(CTestStepPlayerPlayPausePlay::NewL());
+	
+	AddTestStepL(CTestStepPlayerGetImplementationInfo::NewL());
+	AddTestStepL(CTestStepPlayerSendCustomCommandSync::NewL());
+	AddTestStepL(CTestStepPlayerSendCustomCommandAsync::NewL());
+	AddTestStepL(CTestStepPlayerReloadingTest::NewL());
+	//DEF083334 SWSV_604_R4B_Video: Real media icon still visible when changing to a non realVideo file
+	AddTestStepL(CTestStepPlayerCheckImplementationInfo::NewL());
+
+	AddTestStepL(CTestStepPlayerAllocFailNew::NewL());
+	AddTestStepL(CTestStepPlayerAllocFailNewFilePlayer::NewL());
+	AddTestStepL(CTestStepPlayerAllocFailPlay::NewL());
+	AddTestStepL(CTestStepPlayerAllocFailNewDescPlayer::NewL());
+
+	AddTestStepL(CTestStepPlayerAllocFailOpenFile::NewL(EFalse));
+	AddTestStepL(CTestStepPlayerAllocFailOpenDesc::NewL());
+
+	AddTestStepL(CTestStepRecorderNew::NewL());
+	AddTestStepL(CTestStepRecorderOpen::NewL());
+	AddTestStepL(CTestStepRecorderOpenFile::NewL(ETrue));
+	AddTestStepL(CTestStepRecorderOpenFile::NewL(EFalse));
+	AddTestStepL(CTestStepRecorderOpenDesc::NewL());
+	AddTestStepL(CTestStepRecorderOpenUrl::NewL());
+	AddTestStepL(CTestStepRecorderRecord::NewL());
+	AddTestStepL(CTestStepRecorderError::NewL());
+
+	AddTestStepL(CTestStepRecorderRecordPause::NewL(_L("MM-MMF-ACLNT-U-0210-CP")));
+	//Test Step added for DEF140670
+	AddTestStepL(CTestStepRecorderRecordPause::NewL(_L("MM-MMF-ACLNT-U-0211-CP")));
+
+	AddTestStepL(CTestStepRecorderReopen::NewL());
+	AddTestStepL(CTestStepRecorderRecordPlay::NewL());
+
+	AddTestStepL(CTestStepRecorderPlayRecordPlay::NewL());
+	
+	AddTestStepL(CTestStepRecorderClearWindowPlay::NewL());
+	AddTestStepL(CTestStepRecorderDuration::NewL());
+	AddTestStepL(CTestStepRecorderType::NewL());
+	AddTestStepL(CTestStepRecorderState::NewL());
+	AddTestStepL(CTestStepRecorderRepeats::NewL());
+	AddTestStepL(CTestStepRecorderVolRamp::NewL());
+	AddTestStepL(CTestStepRecorderVol::NewL());
+	AddTestStepL(CTestStepRecorderBalancePlay::NewL());
+	AddTestStepL(CTestStepRecorderBalanceRecord::NewL());
+	AddTestStepL(CTestStepRecorderGain::NewL());
+	// some recorder tests are used for converter utility testing
+	// because they tests the same API, which is implemented independently
+	// both in the converter and recorder utility classes
+	AddTestStepL(CTestStepRecorderWindowPlay::NewL(_L("MM-MMF-ACLNT-U-0246-HP"), EFalse));
+	AddTestStepL(CTestStepRecorderWindowPlayTwice::NewL(_L("MM-MMF-ACLNT-U-0830-HP")));
+	AddTestStepL(CTestStepRecorderPosPlay::NewL(_L("MM-MMF-ACLNT-U-0232-HP"), EFalse));
+	AddTestStepL(CTestStepRecorderCrop::NewL(_L("MM-MMF-ACLNT-U-0240-HP"), EFalse));
+	AddTestStepL(CTestStepRecorderSetPriority::NewL());
+	AddTestStepL(CTestStepRecorderRecordTimeAvail::NewL());
+	AddTestStepL(CTestStepRecorderSetMaxWriteLen::NewL(_L("MM-MMF-ACLNT-U-0250-HP"), EFalse));
+	AddTestStepL(CTestStepRecorderGetNumMeta::NewL());
+	AddTestStepL(CTestStepRecorderGetMeta::NewL());
+	AddTestStepL(CTestStepRecorderAddDelMeta::NewL());
+	AddTestStepL(CTestStepRecorderReplaceMeta::NewL());
+	AddTestStepL(CTestStepRecorderDestinDataType::NewL(_L("MM-MMF-ACLNT-U-0264-HP"), EFalse));
+	AddTestStepL(CTestStepRecorderBitRate::NewL(_L("MM-MMF-ACLNT-U-0265-HP"), EFalse));
+	AddTestStepL(CTestStepRecorderSampleRate::NewL(_L("MM-MMF-ACLNT-U-0266-HP"), EFalse));
+	AddTestStepL(CTestStepRecorderFormat::NewL(_L("MM-MMF-ACLNT-U-0267-HP"), EFalse));
+	AddTestStepL(CTestStepRecorderChannels::NewL(_L("MM-MMF-ACLNT-U-0268-HP"), EFalse));
+	AddTestStepL(CTestStepRecorderGetImplementationInfo::NewL());
+	AddTestStepL(CTestStepRecorderSendCustomCommandSync::NewL());
+	AddTestStepL(CTestStepRecorderSendCustomCommandAsync::NewL());
+	AddTestStepL(CTestStepRecorderReloadingTest::NewL());
+	//DEF083334 SWSV_604_R4B_Video: Real media icon still visible when changing to a non realVideo file
+	AddTestStepL(CTestStepRecorderCheckPlayImplementationInfo::NewL());
+	//DEF083334 SWSV_604_R4B_Video: Real media icon still visible when changing to a non realVideo file
+	AddTestStepL(CTestStepRecorderCheckRecordImplementationInfo::NewL());
+
+	AddTestStepL(CTestStepRecorderAllocFailNew::NewL());
+	AddTestStepL(CTestStepRecorderAllocFailOpenFile::NewL(EFalse));
+	AddTestStepL(CTestStepRecorderAllocFailOpenDesc::NewL());
+	AddTestStepL(CTestStepRecorderAllocFailOpenUrl::NewL());
+	AddTestStepL(CTestStepRecorderAllocFailOpen::NewL());
+	AddTestStepL(CTestStepRecorderAllocFailPlay::NewL());
+	AddTestStepL(CTestStepRecorderAllocFailRecord::NewL());
+	AddTestStepL(CTestStepRecorderAllocFailCrop::NewL());
+
+	AddTestStepL(CTestStepToneNew::NewL());
+	AddTestStepL(CTestStepToneNewPriorPref::NewL());
+	AddTestStepL(CTestStepTonePrepareToPlayTone::NewL());
+	AddTestStepL(CTestStepTonePrepareToPlayTonePlay::NewL());
+	AddTestStepL(CTestStepTonePrepareToPlayDualTonePlay::NewL());
+	AddTestStepL(CTestStepTonePrepareToPlayDTMFString::NewL());
+	AddTestStepL(CTestStepTonePrepareToPlayFileSeq::NewL());
+	// INC087436: 3.1. DRM NRT audio files are not working properly as calender alarm tone
+	AddTestStepL(CTestStepTonePrepareToPlayDRMFileSeq::NewL());
+	AddTestStepL(CTestStepTonePrepareToPlayDescSeq::NewL());
+	AddTestStepL(CTestStepTonePrepareToPlayFixedSeq::NewL());
+	AddTestStepL(CTestStepToneCancelPlay::NewL());
+	AddTestStepL(CTestStepToneCancelPrepare::NewL());
+	AddTestStepL(CTestStepToneSetDTMFLengths::NewL());
+	AddTestStepL(CTestStepToneSetVolume::NewL());
+	AddTestStepL(CTestStepToneGetVolume::NewL());
+	AddTestStepL(CTestStepToneSetPriority::NewL());
+	AddTestStepL(CTestStepToneSetRepeats::NewL());
+	AddTestStepL(CTestStepToneSetVolumeRamp::NewL());
+	AddTestStepL(CTestStepToneGetFixedSeq::NewL());
+	AddTestStepL(CTestStepToneState::NewL());
+
+	AddTestStepL(CTestStepToneAllocFailNew::NewL());
+
+	AddTestStepL(CTestStepConvertAllocFailNew::NewL());
+	AddTestStepL(CTestStepConvertAllocFailOpen::NewL());
+
+	AddTestStepL(CTestStepConvertNew::NewL());
+	AddTestStepL(CTestStepConvertOpen::NewL());
+	AddTestStepL(CTestStepConvertOpenLocFormat::NewL());
+	AddTestStepL(CTestStepConvertOpenLocFormat2::NewL());
+	AddTestStepL(CTestStepConvertOpenLocFormat3::NewL());
+
+	AddTestStepL(CTestStepConvertGetImplementationInfo::NewL());
+	AddTestStepL(CTestStepConvertSendCustomCommandSync::NewL());
+	AddTestStepL(CTestStepConvertSendCustomCommandAsync::NewL());
+	//DEF083334 SWSV_604_R4B_Video: Real media icon still visible when changing to a non realVideo file
+	AddTestStepL(CTestStepConvertCheckImplementationInfo::NewL());
+	
+	// the following converter tests are implemented by the corresponding 
+	// recorder tests since it's the same API implemented independently in both
+	// recorder and converter classes.
+	AddTestStepL(CTestStepRecorderDestinDataType::NewL(_L("MM-MMF-ACLNT-U-0557-HP"), ETrue));
+	AddTestStepL(CTestStepRecorderBitRate::NewL(_L("MM-MMF-ACLNT-U-0558-HP"), ETrue));
+	AddTestStepL(CTestStepRecorderSampleRate::NewL(_L("MM-MMF-ACLNT-U-0559-HP"), ETrue));
+	AddTestStepL(CTestStepRecorderFormat::NewL(_L("MM-MMF-ACLNT-U-0560-HP"), ETrue));
+	AddTestStepL(CTestStepRecorderChannels::NewL(_L("MM-MMF-ACLNT-U-0561-HP"), ETrue));
+	AddTestStepL(CTestStepRecorderPosPlay::NewL(_L("MM-MMF-ACLNT-U-0562-HP"), ETrue));
+	AddTestStepL(CTestStepRecorderWindowPlay::NewL(_L("MM-MMF-ACLNT-U-0564-HP"), ETrue));
+	AddTestStepL(CTestStepRecorderSetMaxWriteLen::NewL(_L("MM-MMF-ACLNT-U-0565-HP"), ETrue));
+	AddTestStepL(CTestStepRecorderCrop::NewL(_L("MM-MMF-ACLNT-U-0566-HP"), ETrue));
+
+	AddTestStepL(CTestStepAudOutStream::NewL());
+	AddTestStepL(CTestStepAudOutStreamNew::NewL());
+	AddTestStepL(CTestStepAudOutStreamOpen::NewL());
+	AddTestStepL(CTestStepAudOutStreamOpenZero::NewL());
+	
+	AddTestStepL(CTestStepAudOutStreamWrite::NewL());	
+	AddTestStepL(CTestStepAudOutStreamSetProp::NewL());
+	AddTestStepL(CTestStepAudOutStreamSetVol::NewL());
+	AddTestStepL(CTestStepAudOutStreamSetPrior::NewL());
+	AddTestStepL(CTestStepAudOutStreamSetBalance::NewL());
+	AddTestStepL(CTestStepAudOutStreamPosition::NewL());
+	AddTestStepL(CTestStepAudOutStreamStop::NewL());
+	AddTestStepL(CTestStepAudOutStreamGetBytes::NewL());
+	AddTestStepL(CTestStepAudOutStreamMapChannels::NewL());
+	AddTestStepL(CTestStepAudOutStreamDataType::NewL());
+	
+	
+	AddTestStepL(CTestStepAudOutStreamFormats::NewL(0));
+	AddTestStepL(CTestStepAudOutStreamFormats::NewL(1));
+	AddTestStepL(CTestStepAudOutStreamFormats::NewL(2));
+	AddTestStepL(CTestStepAudOutStreamFormats::NewL(3));
+	AddTestStepL(CTestStepAudOutStreamFormats::NewL(4));
+	AddTestStepL(CTestStepAudOutStreamFormats::NewL(5));
+	AddTestStepL(CTestStepAudOutStreamFormats::NewL(6));
+	AddTestStepL(CTestStepAudOutStreamFormats::NewL(7));
+	AddTestStepL(CTestStepAudOutStreamFormats::NewL(8));	
+	AddTestStepL(CTestStepAudOutStreamFormats::NewL(9));
+	AddTestStepL(CTestStepAudOutStreamFormats::NewL(10));
+
+	// PDEF092098: DevSound fails to update policy if error occurs in StartPlayDataL
+	AddTestStepL(CTestStepAudOutStreamImadPolicy::NewL(11));
+
+	AddTestStepL(CTestStepAudOutStreamPlayError::NewL(12));
+	
+	AddTestStepL(CTestStepAudOutStreamGSM610Formats::NewL(0));
+	
+	AddTestStepL(CTestStepAudInStreamNew::NewL());
+	AddTestStepL(CTestStepAudInStreamOpen::NewL());
+
+	AddTestStepL(CTestStepAudInStreamRead::NewL(0));	
+	AddTestStepL(CTestStepAudInStreamRead::NewL(1));	
+	AddTestStepL(CTestStepAudInStreamRead::NewL(2));	
+	AddTestStepL(CTestStepAudInStreamRead::NewL(3));
+	AddTestStepL(CTestStepAudInStreamRead::NewL(4));
+	AddTestStepL(CTestStepAudInStreamRead::NewL(5));
+	AddTestStepL(CTestStepAudInStreamRead::NewL(6));
+	
+	AddTestStepL(CTestStepAudInStreamSetProp::NewL());
+	AddTestStepL(CTestStepAudInStreamSetGain::NewL());
+	AddTestStepL(CTestStepAudInStreamSetPrior::NewL());
+	AddTestStepL(CTestStepAudInStreamSetBalance::NewL());
+	AddTestStepL(CTestStepAudInStreamPosition::NewL());
+	AddTestStepL(CTestStepAudInStreamStop::NewL());
+	AddTestStepL(CTestStepAudInStreamGetBytes::NewL());
+	AddTestStepL(CTestStepAudInStreamDataType::NewL());
+
+	AddTestStepL(CTestStepTonePrepareToPlayIllegalDTMFString::NewL());
+
+	// Test to check record to wav from audio input
+	// with nonexistent file
+	//<In Progress> 
+	AddTestStepL(CTestStepRecorderRecordWav::NewL());
+	
+	AddTestStepL(CTestStepRecorderMaxWriteLength::NewL());
+
+	// 
+	AddTestStepL(CTestStepRecorderRecordAu::NewL());
+	
+	//
+	AddTestStepL(CTestStepRecorderRecordRaw::NewL());
+
+	//
+	AddTestStepL(CTestStepRecorderRecordWavGsm::NewL());
+	
+	//
+	AddTestStepL(CTestStepRecorderRecordWavGsmFail::NewL());
+
+	// Negative test for setting invalid channels and sample rates
+	AddTestStepL(CTestStepAudOutStreamSetPropNeg::NewL());
+
+	//[ add test to test cropping a descriptor ]
+	AddTestStepL( CTestStepRecCropDescriptor::NewL( _L("MM-MMF-ACLNT-U-0568-HP"), ETrue));
+
+	AddTestStepL( CTestStepRecCropDescriptor::NewL( _L("MM-MMF-ACLNT-U-0569-HP"), EFalse));
+
+	// DEF036477
+	AddTestStepL(CTestStepRecorderSimultaneousPlay1::NewL());
+
+	// INC0037165
+	// These tests added mainly for manual verification that fix
+	// for the above defect causes no regressions. Requires debugger.
+	AddTestStepL(CTestStepRecorderSimultaneousPlay2::NewL());
+	AddTestStepL(CTestStepRecorderSimultaneousPlay3::NewL());
+
+	// DEF038640
+	// Interrupt a low priority recorder with a higher priority recorder
+	// playing the same file
+	AddTestStepL(CTestStepRecorderSimultaneousPlay4::NewL());
+
+	// DEF038653
+	// Open a low priority recorder and a higher priority recorder
+	// with the same file & get the duration in each case
+	AddTestStepL(CTestStepRecorderSimultaneousPlay5::NewL());
+
+	// DEF037064
+	AddTestStepL(CTestStepRecorderPlayTwice::NewL());
+	
+	// DEF037433 Player Utility is in stopped state inbetween repeat plays (SetRepeats()) 
+	AddTestStepL(CTestStepPlayerRepeatsState::NewL());
+	
+	// DEF038345 - MMF Audio - fast forward and rewind buttons not working correctly 
+	AddTestStepL(CTestStepRecorderPlayFF::NewL(_L("MM-MMF-ACLNT-U-0822-HP")));
+	
+
+	// DEF039325 - open an MP3 file with using the test MP3 format plugin
+	AddTestStepL(CTestStepRecorderOpenMp3File::NewL());
+
+	// INC038974 - SetPlayWindow,play,pause,ClearPlayWindow,pause,stop,play
+	// make sure second play starts from start of file
+	AddTestStepL(CTestStepPlayerPlayAndClearWindow::NewL());
+	
+	// DEF040281 - Audio input streaming crashes on completion on hardware device
+	AddTestStepL(CTestStepAudInStreamMemLeak::NewL());
+
+	// INC042196 - SetPosition() on WAV files takes a long time to change position of the file (2 s 
+	AddTestStepL(CTestStepRecorderSetPosition::NewL());
+	
+	// DEF042395 Audio recording tck failure
+	AddTestStepL(CTestStepRecorderRecordStop::NewL());	
+	// INC042545 - Phone freezes when playing *.wav audio with FF and Stop.
+	AddTestStepL(CTestStepRecorderPlayEOF::NewL(_L("MM-MMF-ACLNT-U-0827-HP")));
+
+	// Tests for INC044215 investigation
+	AddTestStepL(CTestStepConvertOpenLocFormat4::NewL());
+	
+	// DEF044042 - Test playing zero length tone on CMdaAudioToneUtility 
+	AddTestStepL(CTestStepTonePlayZeroLength::NewL());
+	
+	// PREQ 715 - Request the bit rate of the file being played.
+	AddTestStepL(CTestStepPlayerBitRateWav::NewL());
+	AddTestStepL(CTestStepPlayerBitRateAU::NewL());
+	AddTestStepL(CTestStepRecorderBitRateWav::NewL());
+	AddTestStepL(CTestStepRecorderBitRateAu::NewL());
+
+	// INC045926- NTT-Charlie Launch-Charlie doesn't play WAV,IMAADPCM file formats.
+	AddTestStepL(CTestStepPlayerPlayWav::NewL());
+	
+	// DEF044042 - Test playing zero length tone on CMdaAudioToneUtility 
+	AddTestStepL(CTestStepTonePlayZeroLength::NewL());
+	
+	// PREQ 715 - Request the bit rate of the file being played.
+	AddTestStepL(CTestStepPlayerBitRateWav::NewL());
+	AddTestStepL(CTestStepPlayerBitRateAU::NewL());
+	AddTestStepL(CTestStepRecorderBitRateWav::NewL());
+	AddTestStepL(CTestStepRecorderBitRateAu::NewL());
+
+	// INC045926- NTT-Charlie Launch-Charlie doesn't play WAV,IMAADPCM file formats.
+	AddTestStepL(CTestStepPlayerPlayWav::NewL());
+	// INC047838 Voice Recorder: sound is played on the newly recorded clip while mute was
+	AddTestStepL(CTestStepRecorderPlayAfterRecording::NewL());
+	
+	AddTestStepL(CTestStepPlayerAllocFailOpenFile::NewL(ETrue));
+	AddTestStepL(CTestStepRecorderAllocFailOpenFile::NewL(ETrue));
+	
+	//INC048184 Time bar in gallery music player does not start from zero,for the following sequence
+	//SetPlayWindow,Play,Stop,fast farward,close,play and check if the position is setback to playstart
+ 	AddTestStepL(CTestStepPlayerPlayStopFFPlayNext::NewL());
+	
+	//INC048184 Time bar in gallery music player does not start from zero,for the following sequence
+	//SetPlayWindow,Play,Stop,SetPosition,Stop and check if the position is setback to playstart
+ 	AddTestStepL(CTestStepRecorderPlayStopPosStop::NewL());
+ 	
+ 	// Test bit rate for dev CR
+ 	AddTestStepL(new (ELeave) RTestStepAudInStreamBitRate);
+ 	AddTestStepL(RTestStepAudInStreamBitRateOOM::NewL());
+ 	
+ 	// Test the actual bitrate interface itself
+	AddTestStepL(CTestStepAudInStreamTestBitrate::NewL());
+	
+	// Test Stop procedures of InputStream
+	// DEF095804 CMdaAudioInputStream loses not complete buffers from DevSound
+	AddTestStepL(CTestStepAudInStreamTestReqStop::NewL(this));
+	AddTestStepL(CTestStepAudInStreamTestReqStopThenStop::NewL(this));
+	//PDEF121312:CMMFMdaAudioInputStream::BufferToBeEmptied() might delete an invalid pointer 
+	AddTestStepL(CTestStepAudInStreamTestStopFromBufferCopied::NewL(this));
+
+	// Add CustomInterface() tests
+	CTestSuite::AddTestStepL(RTestStepAudInStreamCustIntf::NewL());
+	CTestSuite::AddTestStepL(RTestStepAudOutStreamCustIntf::NewL());
+	CTestSuite::AddTestStepL(RTestStepTonePlayCustIntf::NewL());
+
+    // GT 0222 MS3.6, PREQ777 DRM Support
+    // CMdaAudioPlayerUtility
+    AddTestStepL(CTestMmfDRMAudioPlayFileSource::NewL());           //MM-MMF-ACLNT-U-0901-HP
+    AddTestStepL(CTestMmfDRMAudioPlayFileHandleSource::NewL());     //MM-MMF-ACLNT-U-0902-HP
+    AddTestStepL(CTestMmfDRMAudioPPCSFileSource::NewL());           //MM-MMF-ACLNT-U-0903-HP
+    AddTestStepL(CTestMmfDRMAudioPlayAllocFileSource::NewL());      //MM-MMF-ACLNT-U-0904-HP
+    AddTestStepL(CTestMmfDRMAudioPlayUniqueIdFileSource::NewL());   //MM-MMF-ACLNT-U-0905-HP
+    AddTestStepL(CTestMmfDRMAudioPlayAllocFileHandleSource::NewL());//MM-MMF-ACLNT-U-0906-HP
+    AddTestStepL(CTestMmfDRMAudioOpenUnknownFileSource::NewL());    //MM-MMF-ACLNT-U-0921-HP
+    AddTestStepL(CTestMmfDRMAudioPlayNoRightsFileSource::NewL());   //MM-MMF-ACLNT-U-0922-HP
+    AddTestStepL(CTestMmfDRMAudioPlayRightsCountFileSource::NewL());//MM-MMF-ACLNT-U-0923-HP
+    AddTestStepL(CTestMmfDRMAudioPlayInvalidIdFileSource::NewL());  //MM-MMF-ACLNT-U-0924-HP
+    AddTestStepL(CTestMmfDRMAudioPlayAndStopFileSource::NewL());  //MM-MMF-ACLNT-U-0907-HP
+    AddTestStepL(CTestMmfDRMAudioPPCFFileSource::NewL());           //MM-MMF-ACLNT-U-0909-HP
+
+    // CMdaAudioRecorderUtility
+    AddTestStepL(CTestMmfDRMAudioRecPlayFileSource::NewL());           //MM-MMF-ACLNT-U-0911-HP
+    AddTestStepL(CTestMmfDRMAudioRecPlayFileHandleSource::NewL());     //MM-MMF-ACLNT-U-0912-HP
+    AddTestStepL(CTestMmfDRMAudioRecPlayStopFileSource::NewL());         //MM-MMF-ACLNT-U-0913-HP
+    AddTestStepL(CTestMmfDRMAudioRecPlayAllocFileSource::NewL());      //MM-MMF-ACLNT-U-0914-HP
+    AddTestStepL(CTestMmfDRMAudioRecPlayUniqueIdFileSource::NewL());   //MM-MMF-ACLNT-U-0915-HP
+    AddTestStepL(CTestMmfDRMAudioRecPlayAllocFileHandleSource::NewL());//MM-MMF-ACLNT-U-0916-HP
+    AddTestStepL(CTestMmfDRMAudioRecOpenUnknownFileSource::NewL());    //MM-MMF-ACLNT-U-0931-HP
+    AddTestStepL(CTestMmfDRMAudioRecPlayNoRightsFileSource::NewL());   //MM-MMF-ACLNT-U-0932-HP
+    AddTestStepL(CTestMmfDRMAudioRecPlayInvalidIdFileSource::NewL());  //MM-MMF-ACLNT-U-0933-HP
+	// INC060658  CMdaAudioRecorderUtility::OpenDesL fails with KErrNotFound
+	AddTestStepL(CTestStepRecUtilOpenDesByUid::NewL());
+	// DEF061942  KERN-EXEC:15 in the AudioPolicy server
+	AddTestStepL(CTestStepRecorderNotifyCheck::NewL());
+	// DEF061821  - CMdaAudioRecorderUtility::PlayL() fail case when registered for notification
+	AddTestStepL(CTestStepNotifyRegister::NewL());
+	// DEF061822  aNotificationData in the MarncResourceAvailable() callback contains wrong data 
+	AddTestStepL(CTestStepResNotificationData::NewL());		//MM-MMF-ACLNT-U-0953-HP
+	// DEF068366  Using record utility, callback of PlaybackBalance APIs fail.
+	AddTestStepL(CTestStepRecorderSetBalRecordGetBal::NewL());
+	
+	AddTestStepL(CTestStepPlaybackDurationInformation::NewL()); // MM-MMF-ACLNT-U-0960-HP
+	AddTestStepL(CTestStepRecorderDurationInformation::NewL()); // MM-MMF-ACLNT-U-0961-HP
+	
+	AddTestStepL(CTestStepPlayerSharedHeapMultiFilePlayer::NewL( _L("MM-MMF-ACLNT-U-2000-HP"), EFalse ));
+	AddTestStepL(CTestStepPlayerSharedHeapMultiFilePlayer::NewL( _L("MM-MMF-ACLNT-U-2001-HP"), ETrue ));
+
+	AddTestStepL(CTestStepPlayerSharedHeapRepeatMultiFilePlayer::NewL( _L("MM-MMF-ACLNT-U-2002-HP"), EFalse ));
+	AddTestStepL(CTestStepPlayerSharedHeapRepeatMultiFilePlayer::NewL( _L("MM-MMF-ACLNT-U-2003-HP"), ETrue ));
+	
+	AddTestStepL(CTestStepRecorderSharedHeapMultiFilePlayer::NewL( _L("MM-MMF-ACLNT-U-2006-HP"), EFalse ));
+	AddTestStepL(CTestStepConverterSharedHeapMultiFile::NewL( _L("MM-MMF-ACLNT-U-2007-HP"), EFalse ));
+
+	AddTestStepL(CTestStepRecorderOpenviaUriTag::NewL());
+	AddTestStepL(CTestStepRecorderOpenTryNextCtrl::NewL());
+	AddTestStepL(CTestStepPlayerOpenviaUriTag::NewL());
+	AddTestStepL(CTestStepPlayerOpenTryNextCtrl::NewL());
+	AddTestStepL(CTestStepRecorderLowMaxVol::NewL());      // MM-MMF-ACLNT-U-0965-HP
+	AddTestStepL(CTestStepPlayerLowMaxVol::NewL());      // MM-MMF-ACLNT-U-0967-HP
+	AddTestStepL(CTestStepPlayerRepeatsPause::NewL());      // MM-MMF-ACLNT-U-0968-HP
+	AddTestStepL(CTestMmfAclntRecFileInvDesForm::NewL()); // MM-MMF-ACLNT-U-0969-HP
+	AddTestStepL(RAudioPlayCompleteTest::NewL(_L("MM-MMF-ACLNT-U-0065-HP"), _L("c:\\mm\\mmf\\testfiles\\aclnt\\cdec_ff_wav_fr.wav")));
+	AddTestStepL(CTestStepRecorderVolError::NewL());
+	
+	/*
+	// Excluding these tests until _DEBUG panic in RMMFControllerProxy::Close() has been
+	// removed or modified.
+	// Otherwise these test steps fail when they shouldn't
+	AddTestStepL(CTestStepPlayerSharedHeapPanicMultiFilePlayer::NewL( _L("MM-MMF-ACLNT-U-2004-HP"), EFalse ));
+	AddTestStepL(CTestStepPlayerSharedHeapPanicMultiFilePlayer::NewL( _L("MM-MMF-ACLNT-U-2005-HP"), ETrue ));
+	*/
+	AddTestStepL(RTestStepConvertAudio::NewL(_L("MM-MMF-ACLNT-U-0574-HP"),
+											 _L("c:\\mm\\mmf\\testfiles\\aclnt\\IMAADPCM4Bit8KhzMono512Block.wav"),
+											 _L("c:\\mm\\mmf\\testfiles\\aclnt\\PCM16FromImaadpcmwith512block.wav"),
+											 _L("c:\\mm\\mmf\\testfiles\\aclnt\\Refimaadpcmwith512block2pcm16.wav")));
+	
+	// INC107513 Startup tone is played before tone initialization is completed.
+	AddTestStepL(RTestStepTonePlayBeforeInitialized::NewL());
+	AddTestStepL(CTsuClientUtilityControllerLoading::NewL(_L("MM-MMF-ACLNT-U-0066-HP"),
+				_L("c:\\mm\\testformat.tsa")));
+	AddTestStepL(CAsyncTestStepCtrlSetRepeatsCustomCommands::NewL(_L("MM-MMF-ACLNT-U-0068-HP"),_L("SectionOne"), _L("AudioPlayFName2")));
+	AddTestStepL(CTestStepAudOutStreamConcurrentOpen::NewL());
+	
+	//DEF121928 - Concurrently calling RecordL by audiorecorder in 3 threads make server  panics 
+	AddTestStepL(RAudioConcurrentRecTest::NewL(_L("MM-MMF-ACLNT-U-0972-CP"), EMdaPriorityMin, EMdaPriorityNormal, EMdaPriorityMax));
+	AddTestStepL(RAudioConcurrentRecTest::NewL(_L("MM-MMF-ACLNT-U-0973-CP"), EMdaPriorityMax, EMdaPriorityNormal, EMdaPriorityMin));
+	AddTestStepL(RAudioConcurrentRecTest::NewL(_L("MM-MMF-ACLNT-U-0974-CP"), EMdaPriorityNormal, EMdaPriorityMax, EMdaPriorityMin));
+	
+	AddTestStepL(RTestStepTonePlayWhenBusy::NewL());
+	
+	//DEF120897:CMdaAudioOutputStream depending on devsound underflow events, against new behav 
+	//KeepOpenAtEnd Mode and Auto RequestStop
+	AddTestStepL(RAudioOPStreamRequestStop::NewL(_L("MM-MMF-ACLNT-U-0975-CP"), ETrue, ETrue, EFalse));
+	//KeepOpenAtEnd Mode and Explicit RequestStop after sometime
+	AddTestStepL(RAudioOPStreamRequestStop::NewL(_L("MM-MMF-ACLNT-U-0976-CP"), ETrue, EFalse, EFalse));
+	//KeepOpenAtEnd Mode Negative test: Try calling WriteL after calling RequestStop
+	AddTestStepL(RAudioOPStreamRequestStop::NewL(_L("MM-MMF-ACLNT-U-0977-CP"), ETrue, ETrue, ETrue));
+	//Non KeepOpenAtEnd Mode
+	AddTestStepL(RAudioOPStreamRequestStop::NewL(_L("MM-MMF-ACLNT-U-0978-CP"), EFalse, EFalse, EFalse));
+	//Restart the play in KeepOpenAtEnd mode
+	AddTestStepL(RAudioOPStreamRequestStop::NewL(_L("MM-MMF-ACLNT-U-0979-CP"), ETrue, ETrue, EFalse, ETrue));
+	//Restart the play in Non KeepOpenAtEnd mode
+	AddTestStepL(RAudioOPStreamRequestStop::NewL(_L("MM-MMF-ACLNT-U-0980-CP"), EFalse, EFalse, EFalse, ETrue));
+	
+	//DEF125377 - Test negative frequency and duration values passed to CMdaAudioToneUtility
+	AddTestStepL(CTestStepTonePlayDualToneInvalidFreq::NewL(_L("MM-MMF-ACLNT-U-0981-CP")));
+	AddTestStepL(CTestStepTonePlayDualToneInvalidFreq::NewL(_L("MM-MMF-ACLNT-U-0982-CP")));
+	AddTestStepL(CTestStepTonePlayDualToneInvalidFreq::NewL(_L("MM-MMF-ACLNT-U-0983-CP")));
+
+	// PDEF131534 SPPR_PERF: Music player crashes when opening corrupted wav file
+	AddTestStepL(RAudioOpenCorrupt::NewL(_L("MM-MMF-ACLNT-U-0984-HP"), _L("c:\\mm\\mmf\\testfiles\\aclnt\\CorruptSampleRate.wav")));
+	AddTestStepL(CTestStepAudInStreamDestroy::NewL(this));
+	
+	//DEF127630:Fix for INC108007 appears to close
+	AddTestStepL(RAudioPlayPanicTest::NewL(_L("MM-MMF-ACLNT-U-0986-CP"), _L("c:\\mm\\mmf\\testfiles\\aclnt\\playtest.pnc")));
+	AddTestStepL(RAudioRecPanicTest::NewL(_L("MM-MMF-ACLNT-U-0987-CP"), _L("c:\\mm\\mmf\\testfiles\\aclnt\\rectest.pnc")));
+	AddTestStepL(RTestStepConvertPanic::NewL(_L("MM-MMF-ACLNT-U-0988-CP"), _L("c:\\mm\\mmf\\testfiles\\aclnt\\playtest.pnc"),
+											 _L("c:\\mm\\mmf\\testfiles\\aclnt\\convert.pnc"), _L("")));
+	}
+
+/**
+*
+* InitSystemPath
+* This sets up the default path
+* 
+*/
+void CTestSuiteUnitMMFAudClient::InitSystemPath()
+	{
+	_LIT(KAudioStremOutSourcePathOnC,"c:\\mm\\mmf\\testfiles\\aclnt\\");
+
+	RFs fs;
+	TUint att;
+	TInt ret = fs.Connect();
+	__ASSERT_ALWAYS(ret == KErrNone,User::Panic(_L("Sys path not setup"),ret));
+
+	if (fs.Att(KAudioStremOutSourcePathOnC,att) == KErrNone)
+		iDefaultPath = KAudioStremOutSourcePathOnC;
+	else
+		User::Panic(_L("Test files not found"),KErrNotFound);
+
+	fs.Close();
+	}
+
+
+/**
+*
+* get default path
+* 
+* @xxx
+*
+*/
+const TDesC& CTestSuiteUnitMMFAudClient::DefaultPath() const
+	{
+	return iDefaultPath;
+	}
+
+// -------------------------