devsound/a3fcharacterisationtest/scripts/mm_a3f_devsound_play_tone.script
author hgs
Mon, 18 Oct 2010 12:47:26 +0100
changeset 4 9d4397b300d1
parent 0 b8ed18f6c07b
permissions -rw-r--r--
2010wk44_01

// Copyright (c) 2008-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:
// MM_A3F_DEVSOUND_CHRTZ_TONE.script
// Syntax:
// RUN_TEST_STEP <timeout>, <test suite>,  <test step>, <configuration file.ini>
//

LOAD_SUITE char_a3f_devsound.dll
delay 10

//!@SYMTestCaseID: MM-A3F-DEVSOUND-CHRTZ-TONE-0001
//!@SYMREQ: 7951
//!@SYMPREQ: 1540
//!@SYMTestCaseDec: Play tone configuration - Call SetConfigL(..) method to set sampling rate and channel
//!@SYMTestPriority: Normal
//!@SYMTestType: Normal Usecase
//!@SYMTestActions: 
//1. Create and Initialize DevSound instance to play tones.
//2. Call SetConfigL(..) method to set Sampling Rate and iChannel to valid values.
//3. Call Config() to verify applied settings.
//!@SYMTestExpectedResults: 
//SetConfigL(..) method shall be executed without error message.
PRINT Play tone configuration - Call SetConfigL(..) method to set sampling rate and channel
RUN_TEST_STEP 15000, char_a3f_devsound, MM-A3F-DEVSOUND-CHRTZ-TONE-0001, c:\mm_a3f_devsound_play_tone.ini
TEST_COMPLETE

//!@SYMTestCaseID: MM-A3F-DEVSOUND-CHRTZ-TONE-0002
//!@SYMREQ: 7951
//!@SYMPREQ: 1540
//!@SYMTestCaseDec: Play tone configuration - Call SetPrioritySettings(..) method to set priority
//!@SYMTestPriority: Normal
//!@SYMTestType: Normal Usecase
//!@SYMTestActions: 
//1. Create and Initialize DevSound instance to play tones.
//1.1 Wait for InitializeComplete(KErrNone) callback response.
//2. Call SetPrioritySettings(..) method to set iPriority to a valid value.
//!@SYMTestExpectedResults: 
//SetPrioritySettings(..) method shall be executed without error message.
PRINT Play tone configuration - Call SetPrioritySettings(..) method to set priority
RUN_TEST_STEP 15000, char_a3f_devsound, MM-A3F-DEVSOUND-CHRTZ-TONE-0002, c:\mm_a3f_devsound_play_tone.ini
TEST_COMPLETE

//!@SYMTestCaseID: MM-A3F-DEVSOUND-CHRTZ-TONE-0003
//!@SYMREQ: 7951
//!@SYMPREQ: 1540
//!@SYMTestCaseDec: Play tone configuration - SetVolume(..) method to set volume
//!@SYMTestPriority: Normal
//!@SYMTestType: Normal Usecase
//!@SYMTestActions: 
//1. Create and initialise a DevSound instance to play tones.
//1.1 Wait for InitializeComplete(KErrNone) callback response.
//2. Call SetVolume(..) method.
//3. Call Volume() method to verify applied settings.
//!@SYMTestExpectedResults: 
//SetVolume(..) method shall be executed without error message.
//Value returned by Volume() method shall be equal to the value set by SetVolume(..).
PRINT Play tone configuration - SetVolume(..) method to set volume
RUN_TEST_STEP 15000, char_a3f_devsound, MM-A3F-DEVSOUND-CHRTZ-TONE-0003, c:\mm_a3f_devsound_play_tone.ini
TEST_COMPLETE

//!@SYMTestCaseID: MM-A3F-DEVSOUND-CHRTZ-TONE-0004
//!@SYMREQ: 7951
//!@SYMPREQ: 1540
//!@SYMTestCaseDec: Play tone configuration - Call SetVolumeRamp(..)  method to set volume ramp
//!@SYMTestPriority: Normal
//!@SYMTestType: Normal Usecase
//!@SYMTestActions: 
//1. Create a Devsound instance.
//2. Initialise a DevSound instance to play tones.
//2.1 Wait for InitializeComplete(KErrNone) callback response.
//3. Call PlayToneL().
//4. Call SetVolumeRamp(..) method to set volume ramp to valid value.
//!@SYMTestExpectedResults: 
//SetVolumeRamp(..) method shall be executed without error message and the its settings shall be reflected the next time PlayToneL() is called.
PRINT Play tone configuration - Call SetVolumeRamp(..)  method to set volume ramp
RUN_TEST_STEP 15000, char_a3f_devsound, MM-A3F-DEVSOUND-CHRTZ-TONE-0004, c:\mm_a3f_devsound_play_tone.ini
TEST_COMPLETE

//!@SYMTestCaseID: MM-A3F-DEVSOUND-CHRTZ-TONE-0005
//!@SYMREQ: 7951
//!@SYMPREQ: 1540
//!@SYMTestCaseDec: Play tone configuration - Call SetToneRepeats() to set tone repetitions and silence between them
//!@SYMTestPriority: Normal
//!@SYMTestType: Normal Usecase
//!@SYMTestActions: 
//1. Create and initialise a DevSound instance to play tones.
//1.1 Wait for InitializeComplete(KErrNone) callback response.
//2. Call SetToneRepeats(..) method to set repetition and silece values between them.
//!@SYMTestExpectedResults: 
//SetToneRepeats(..) method shall be executed without error message.
PRINT Play tone configuration - Call SetToneRepeats() to set tone repetitions and silence between them
RUN_TEST_STEP 15000, char_a3f_devsound, MM-A3F-DEVSOUND-CHRTZ-TONE-0005, c:\mm_a3f_devsound_play_tone.ini
TEST_COMPLETE

//!@SYMTestCaseID: MM-A3F-DEVSOUND-CHRTZ-TONE-0006
//!@SYMREQ: 7951
//!@SYMPREQ: 1540
//!@SYMTestCaseDec: Play tone configuration - Call SetDTMFLengths(..) to set DTMF tone on, tone off and tone pause.
//!@SYMTestPriority: Normal
//!@SYMTestType: Normal Usecase
//!@SYMTestActions: 
//1. Create and Initialize DevSound instance to play tones.
//1.1 Wait for InitializeComplete(KErrNone) callback response.
//2. Call SetDTMFLengths(..) method to set length (tone on, tone off, and pause) values.
//!@SYMTestExpectedResults: 
//SetDTMFLengths(..) method shall be executed without error message.
PRINT Play tone configuration - Call SetDTMFLengths(..) to set DTMF tone on, tone off and tone pause.
RUN_TEST_STEP 15000, char_a3f_devsound, MM-A3F-DEVSOUND-CHRTZ-TONE-0006, c:\mm_a3f_devsound_play_tone.ini
TEST_COMPLETE

//!@SYMTestCaseID: MM-A3F-DEVSOUND-CHRTZ-TONE-0007
//!@SYMREQ: 7951
//!@SYMPREQ: 1540
//!@SYMTestCaseDec: Play tone configuration - SetVolume(..) while tone play is in progress
//!@SYMTestPriority: Normal
//!@SYMTestType: Alternative Usecase
//!@SYMTestActions: 
//1. Create a Devsound instance.
//2. Create a CPeriodic instance.
//3. Initialise a DevSound instance to play tones.
//3.1 Wait for InitializeComplete(KErrNone) callback response.
//4. Play a tone by calling PlayToneL(). (For testing purposes, the tone should last more than the first timer event)
//5. Start CPeriodic to trigger timed events with a period of 2 seconds.
//6. On timer event call SetVolume(..) method to set volume to a valid value.
//7. Call Volume() method to verify applied settings.
//!@SYMTestExpectedResults: 
//SetVolume(..) is immediately applied.
PRINT Play tone configuration - SetVolume(..) while tone play is in progress
RUN_TEST_STEP 15000, char_a3f_devsound, MM-A3F-DEVSOUND-CHRTZ-TONE-0007 , c:\mm_a3f_devsound_play_tone.ini
TEST_COMPLETE

//!@SYMTestCaseID: MM-A3F-DEVSOUND-CHRTZ-TONE-0008
//!@SYMREQ: 7951
//!@SYMPREQ: 1540
//!@SYMTestCaseDec: Play tone configuration - SetPlayBalance() while tone play is in progress
//!@SYMTestPriority: Normal
//!@SYMTestType: Alternative Usecase
//!@SYMTestActions: 
//1. Create a Devsound instance.
//2. Create a CPeriodic instance .
//3. Initialise a DevSound instance to play tones.
//3.1 Wait for InitializeComplete(KErrNone) callback response.
//4. Play a tone by calling PlayToneL(). (For testing purposes, the tone should last more than the first timer event)
//5. Start CPeriodic to trigger timed events with a period of 2 seconds.
//6. On timer event call SetPlayBalance(..) method to set the speaker balance to valid values.
//7. Call GetPlayBalanceL() method to verify applied settings.
//!@SYMTestExpectedResults: 
//SetPlayBalance(..) method while playing shall be executed without error message and its paremeters are immediately applied.
//Data retrieved by GetPlayBalance(..)  method shall be equal to the value set by SetPlayBalance(..).
PRINT Play tone configuration - SetPlayBalance() while tone play is in progress
RUN_TEST_STEP 15000, char_a3f_devsound, MM-A3F-DEVSOUND-CHRTZ-TONE-0008, c:\mm_a3f_devsound_play_tone.ini
TEST_COMPLETE

//!@SYMTestCaseID: MM-A3F-DEVSOUND-CHRTZ-TONE-0010
//!@SYMREQ: 7951
//!@SYMPREQ: 1540
//!@SYMTestCaseDec: Play tone configuration - Call SetVolume(..) method to set volume and reinitialise for playing audio.
//!@SYMTestPriority: Normal
//!@SYMTestType: Alternative Usecase
//!@SYMTestActions: 
//1. Create a Devsound instance.
//2. Initialise a DevSound instance to play tones.
//2.1 Wait for InitializeComplete(KErrNone) callback response.
//4. Call SetVolume(..)
//5. Re-initialise a DevSound instance to play audio.
//6. Call Volume() method to verify whether the volume was remembered or not.
//!@SYMTestExpectedResults: 
//SetVolume(..) method shall be executed without error message.
//After reinitialisation of Devsound client, the calling of Volume() method shall return the value which was set by using SetVolume() method.
//(Volume settings shall not be modified despite DevSound client reinitialisation).
PRINT Play tone configuration - Call SetVolume(..) method to set volume and reinitialise for playing audio.
RUN_TEST_STEP 15000, char_a3f_devsound, MM-A3F-DEVSOUND-CHRTZ-TONE-0010, c:\mm_a3f_devsound_play_tone.ini
TEST_COMPLETE

//!@SYMTestCaseID: MM-A3F-DEVSOUND-CHRTZ-TONE-0011
//!@SYMREQ: 7951
//!@SYMPREQ: 1540
//!@SYMTestCaseDec: Play tone configuration - Call SetVolumeRamp(..)  method to set volume ramp
//!@SYMTestPriority: Normal
//!@SYMTestType: Alternative Usecase
//!@SYMTestActions: 
//1. Create a Devsound instance.
//2. Create a CPeriodic instance.
//3. Initialise a DevSound instance to play tones.
//3.1 Wait for InitializeComplete(KErrNone) callback response.
//4. Call PlayToneL(..).
//5. Start CPeriodic to trigger timed events with a period of 2 seconds.
//6. On timer event call SetVolumeRamp(..) method to set volume ramp to valid value
//7. Let ToneFinished() occur and play again a tone.
//!@SYMTestExpectedResults: 
//SetVolumeRamp(..) method shall be executed without error message and the its settings shall be reflected the next time PlayToneL() is called.
PRINT Play tone configuration - Call SetVolumeRamp(..)  method to set volume ramp
RUN_TEST_STEP 15000, char_a3f_devsound, MM-A3F-DEVSOUND-CHRTZ-TONE-0011, c:\mm_a3f_devsound_play_tone.ini
TEST_COMPLETE


//!@SYMTestCaseID: MM-A3F-DEVSOUND-CHRTZ-TONE-0012
//!@SYMREQ: 7951
//!@SYMPREQ: 1540
//!@SYMTestCaseDec: Play tone configuration - Call SetToneRepeats() to set tone repetitions while playing
//!@SYMTestPriority: Normal
//!@SYMTestType: Alternative Usecase
//!@SYMTestActions: 
//1. Create a Devsound instance.
//2. Create a CPeriodic instance.
//3. Initialise a DevSound instance to play tones.
//3.1 Wait for InitializeComplete(KErrNone) callback response.
//4. Call PlayToneL().
//5. Start CPeriodic to trigger timed events with a period of 2 seconds.
//6. On timer event call SetToneRepeats(..) method using positive values and call Cancel().
//7. Let ToneFinished() callback occur, then re - invoke PlayToneL().
//8. When ToneFinished callback is reached, confirm elapsed time since first tone reproduction.
//!@SYMTestExpectedResults: 
//SetToneRepeats(..) method shall be executed without error message. Setting audio properties using this method do not cancel 
//or change current tone play. The new settings are applied until next tone play and total reproduction time since firts tone
//reproduction has to be confirmed.
PRINT Play tone configuration - Call SetToneRepeats() to set tone repetitions while playing
RUN_TEST_STEP 15000, char_a3f_devsound, MM-A3F-DEVSOUND-CHRTZ-TONE-0012, c:\mm_a3f_devsound_play_tone.ini
TEST_COMPLETE

//!@SYMTestCaseID: MM-A3F-DEVSOUND-CHRTZ-TONE-0013
//!@SYMREQ: 7951
//!@SYMPREQ: 1540
//!@SYMTestCaseDec: Play tone configuration - Call SetDTMFLengths() to set tone repetitions while playing
//!@SYMTestPriority: Normal
//!@SYMTestType: Alternative Usecase
//!@SYMTestActions: 
//1. Create a Devsound instance.
//2. Create a CPeriodic instance.
//3. Initialise a DevSound instance to play tones(DTMF).
//3.1 Wait for InitializeComplete(KErrNone) callback response.
//4. Play a tone  by calling PlayDTMFStringL().
//5. On timer event call SetDTMFLengths(..) method using positive values and call Cancel() on the timer.
//6. Let ToneFinished() callback occur, then re - invoke PlayDTMFStringL().
//7. Start CPeriodic to trigger timed events with a period of 2 seconds.
//8. When ToneFinished callback is reached, confirm elapsed time since first tone(DTMF) reproduction.
//!@SYMTestExpectedResults: 
//SetDTMFLengths(..) method shall be executed without error message. Setting audio properties using this method do not cancel or
//change current tone play. The new settings are applied until next tone play and total reproduction time since firts tone reproduction
//has to be confirmed.
PRINT Play tone configuration - Call SetDTMFLengths() to set tone repetitions while playing
RUN_TEST_STEP 40000, char_a3f_devsound, MM-A3F-DEVSOUND-CHRTZ-TONE-0013, c:\mm_a3f_devsound_play_tone.ini
TEST_COMPLETE

//!@SYMTestCaseID: MM-A3F-DEVSOUND-CHRTZ-TONE-0014
//!@SYMREQ: 7951
//!@SYMPREQ: 1540
//!@SYMTestCaseDec: Play tone configuration - Call SetToneRepeats() to set tone repetitions in any other state but tone
//!@SYMTestPriority: Normal
//!@SYMTestType: Alternative Usecase
//!@SYMTestActions: 
//1. Create a Devsound instance.
//2. Initialise a DevSound instance to other available states but tone.
//2.1 Wait for InitializeComplete(KErrNone) callback response.
//3. Call SetToneRepeats(..) method using positive values.
//4. Initialise a DevSound instance to other available states but tone.
//4.1 Wait for InitializeComplete(KErrNone) callback response.
//5. Play a tone  by calling PlayToneL().
//6. When ToneFinished callback is reached, confirm elapsed time since tone reproduction.
//!@SYMTestExpectedResults: 
//SetToneRepeats(..) method shall be executed without error message.The configuration values are remembered and may be used following a subsequent InitializeL() for tone play. They are not reset by that InitializeL() call. 
PRINT Play tone configuration - Call SetToneRepeats() to set tone repetitions in any other state but tone
RUN_TEST_STEP 15000, char_a3f_devsound, MM-A3F-DEVSOUND-CHRTZ-TONE-0014, c:\mm_a3f_devsound_play_tone.ini
TEST_COMPLETE

//!@SYMTestCaseID: MM-A3F-DEVSOUND-CHRTZ-TONE-0015
//!@SYMREQ: 7951
//!@SYMPREQ: 1540
//!@SYMTestCaseDec: Play tone configuration - Call SetDTMFLengths() to set tone repetitions in any other state but tone
//!@SYMTestPriority: Normal
//!@SYMTestType: Alternative Usecase
//!@SYMTestActions: 
//1. Create a Devsound instance.
//2. Initialise a DevSound instance to other available states but tone.
//2.1 Wait for InitializeComplete(KErrNone) callback response.
//3. Call SetDTMFLengths(..) method using positive values.
//4. Initialise a DevSound instance to other available states but tone.
//4.1 Wait for InitializeComplete(KErrNone) callback response.
//5. Play a tone  by calling PlayToneL().
//6. When ToneFinished callback is reached, confirm elapsed time since tone reproduction.
//!@SYMTestExpectedResults: 
//SetDTMFLengths(..) method shall be executed without error message.The configuration values are remembered and may be used following a subsequent InitializeL() for tone play. They are not reset by that InitializeL() call. 
PRINT Play tone configuration - Call SetDTMFLengths() to set tone repetitions in any other state but tone
RUN_TEST_STEP 15000, char_a3f_devsound, MM-A3F-DEVSOUND-CHRTZ-TONE-0015, c:\mm_a3f_devsound_play_tone.ini
TEST_COMPLETE

//!@SYMTestCaseID: MM-A3F-DEVSOUND-CHRTZ-TONE-0016
//!@SYMREQ: 7951
//!@SYMPREQ: 1540
//!@SYMTestCaseDec: Play tone configuration - Call SetConfigL() while tone play is in progress
//!@SYMTestPriority: Normal
//!@SYMTestType: Exception Usecase
//!@SYMTestActions: 
//1. Create a Devsound instance.
//2. Create a CPeriodic instance.
//3. Initialise a DevSound instance to play tones.
//3.1 Wait for InitializeComplete(KErrNone) callback response.
//4. Play a tone by calling PlayToneL(). (For testing purposes, the tone should last more than the first timer event)
//5. Start CPeriodic to trigger timed events with a period of 2 seconds.
//6. On timer event call SetConfigL(..) method to set Sampling Rate to valid value.
//!@SYMTestExpectedResults: 
//SetConfigL(..) method shall leave with KErrNotReady.
PRINT Play tone configuration - Call SetConfigL() while tone play is in progress
RUN_TEST_STEP 15000, char_a3f_devsound, MM-A3F-DEVSOUND-CHRTZ-TONE-0016, c:\mm_a3f_devsound_play_tone.ini
TEST_COMPLETE

//!@SYMTestCaseID: MM-A3F-DEVSOUND-CHRTZ-TONE-0017
//!@SYMREQ: 7951
//!@SYMPREQ: 1540
//!@SYMTestCaseDec: Play tone configuration - Call SetPrioritySettings(..) method to set priority while tone play is in progress
//!@SYMTestPriority: Normal
//!@SYMTestType: Exception Usecase
//!@SYMTestActions: 
//1. Create a DevSound instance.
//2. Open the file to be played by the second DevSound instance.
//3. Create a CPeriodic instance.
//4. Create a second DevSound instance.
//5. Initialise the first DevSound instance to play tones.
//5.1 Wait for InitializeComplete(KErrNone) callback response.
//6. Call PlayToneL() to start playing tones and call SetPrioritySettings() to set the first devsound´s priority to the highest value.
//7. Start CPeriodic to trigger timed events with a period of 2 seconds.(Timer events must laste less than tone duration.)
//8. On timer event, initialise the second devsound instance, set its priority to the highest value, and play an audio file. 
//!@SYMTestExpectedResults: 
//SetPrioritySettings(..) method shall be executed without error message. The first DevSound instance(Tones) must be pre-empted because setting the priority while playing is ignored
PRINT Play tone configuration - Call SetPrioritySettings(..) method to set priority while tone play is in progress
RUN_TEST_STEP 15000, char_a3f_devsound, MM-A3F-DEVSOUND-CHRTZ-TONE-0017, c:\mm_a3f_devsound_play_tone.ini
TEST_COMPLETE

//!@SYMTestCaseID: MM-A3F-DEVSOUND-CHRTZ-TONE-0018
//!@SYMREQ: 7951
//!@SYMPREQ: 1540
//!@SYMTestCaseDec: Play tone configuration - Call SetConfigL(..) method to set a sample rate with sequence data properties not supported by the tone generator 
//!@SYMTestPriority: Normal
//!@SYMTestType: Exception Usecase
//!@SYMTestActions: 
//1. Create and Initialize DevSound instance to play tones.
//1.1 Wait for InitializeComplete(KErrNone) callback response.
//2. Call SetConfigL(..) method to set Sampling Rate to invalid values.
//!@SYMTestExpectedResults: 
//It leaves with KErrArgument or KErrNotSupported.
PRINT Play tone configuration - Call SetConfigL(..) method to set a sample rate with sequence data properties not supported by the tone generator 
RUN_TEST_STEP 15000, char_a3f_devsound, MM-A3F-DEVSOUND-CHRTZ-TONE-0018, c:\mm_a3f_devsound_play_tone.ini
TEST_COMPLETE

//!@SYMTestCaseID: MM-A3F-DEVSOUND-CHRTZ-TONE-0019
//!@SYMREQ: 7951
//!@SYMPREQ: 1540
//!@SYMTestCaseDec: Play tone configuration - Call SetConfigL(..) method to set a channel encoding to unsupported value
//!@SYMTestPriority: Normal
//!@SYMTestType: Exception Usecase
//!@SYMTestActions: 
//1. Create and Initialize DevSound instance to play tones.
//1.1 Wait for InitializeComplete(KErrNone) callback response.
//2. Call SetConfigL(..) method to set iChannel to invalid values.
//!@SYMTestExpectedResults: 
//It leaves with KErrArgument or KErrNotSupported.
PRINT Play tone configuration - Call SetConfigL(..) method to set a channel encoding to unsupported value
RUN_TEST_STEP 15000, char_a3f_devsound, MM-A3F-DEVSOUND-CHRTZ-TONE-0019, c:\mm_a3f_devsound_play_tone.ini
TEST_COMPLETE

//!@SYMTestCaseID: MM-A3F-DEVSOUND-CHRTZ-TONE-0020
//!@SYMREQ: 7951
//!@SYMPREQ: 1540
//!@SYMTestCaseDec: Play tone configuration - Call SetDTMFLengths(..) to using negative values
//!@SYMTestPriority: Normal
//!@SYMTestType: Exception Usecase
//!@SYMTestActions: 
//1. Create and Initialize DevSound instance to record audio.
//1.1 Wait for InitializeComplete(KErrNone) callback response.
//2. Call SetDTMFLengths(..) to set lengths to negative values (aToneOnLength must be diferent to -1.)
//3. Play a DTMF tone.
//4. When ToneFinished() callback is reached, confirm elapsed time since first tone reproduction.
//!@SYMTestExpectedResults: 
//After setting the DTMF lengths by calling SetDTMFLengths(..), the reproduction time shall be confirmed to tend to 0
PRINT Play tone configuration - Call SetDTMFLengths(..) to using negative values
RUN_TEST_STEP 15000, char_a3f_devsound, MM-A3F-DEVSOUND-CHRTZ-TONE-0020, c:\mm_a3f_devsound_play_tone.ini
TEST_COMPLETE

//!@SYMTestCaseID: MM-A3F-DEVSOUND-CHRTZ-TONE-0021
//!@SYMREQ: 7951
//!@SYMPREQ: 1540
//!@SYMTestCaseDec: Play tone configuration - Call SetDTMFLengths(..) to using negative values
//!@SYMTestPriority: Normal
//!@SYMTestType: Exception Usecase
//!@SYMTestActions: 
//1. Create a Devsound instance.
//2. Create a CPeriodic instance.
//3. Initialise a DevSound instance to play tones.
//3.1 Wait for InitializeComplete(KErrNone) callback response.
//4. Call SetDTMFLengths(..) to set lengths to positive except ToneOnLenght(aToneOnLength must be equal to -1.)
//5. Call PlayDTMFStringL().
//!@SYMTestExpectedResults: 
//After setting the DTMF lengths by calling SetDTMFLengths(..), the tone on reproduction time is preserved. If tone finished is reached before timer event, then the test should fail.
PRINT Play tone configuration - Call SetDTMFLengths(..) to using negative values
RUN_TEST_STEP 15000, char_a3f_devsound, MM-A3F-DEVSOUND-CHRTZ-TONE-0021, c:\mm_a3f_devsound_play_tone.ini
TEST_COMPLETE

//!@SYMTestCaseID: MM-A3F-DEVSOUND-CHRTZ-TONE-0022
//!@SYMREQ: 7951
//!@SYMPREQ: 1540
//!@SYMTestCaseDec: Play tone configuration - Call SetToneRepeats() using a negative RepeatCount
//!@SYMTestPriority: Normal
//!@SYMTestType: Normal Usecase
//!@SYMTestActions: 
//1. Create and Initialize DevSound instance to record audio.
//1.1 Wait for InitializeComplete(KErrNone) callback response.
//2. Call SetToneRepeats(..) to set lengths to negative values (aRepeatCount  must be diferent to KMdaRepeatForever.)
//3. Play a tone by calling PlayToneL(..).
//4. When ToneFinished() callback is reached, confirm elapsed time since first tone reproduction.
//!@SYMTestExpectedResults: 
//SetToneRepeats(..) method shall be executed without error message. After calling SetToneRepeats(..), the total reproduction time should tend to 0.
PRINT Play tone configuration - Call SetToneRepeats() using negative argumets
RUN_TEST_STEP 15000, char_a3f_devsound, MM-A3F-DEVSOUND-CHRTZ-TONE-0022, c:\mm_a3f_devsound_play_tone.ini
TEST_COMPLETE

//!@SYMTestCaseID: MM-A3F-DEVSOUND-CHRTZ-TONE-0023
//!@SYMREQ: 7951
//!@SYMPREQ: 1540
//!@SYMTestCaseDec: Play tone configuration - Call SetToneRepeats() using negative RepeatCount
//!@SYMTestPriority: Normal
//!@SYMTestType: Normal Usecase
//!@SYMTestActions: 
//1. Create a Devsound instance.
//2. Create a CPeriodic instance.
//3. Initialise a DevSound instance to play tones.
//3.1 Wait for InitializeComplete(KErrNone) callback response.
//4. Call SetToneRepeats(..) to set RepeatCount to negative (KMdaRepeatForever).
//5. Play a tone by calling PlayToneL(..).
//6. Start CPeriodic to trigger timed events with a period of 10 seconds.
//!@SYMTestExpectedResults: 
//SetToneRepeats(..) method shall be executed without error message. If ToneFinished() is reached before timer event, then the test should fail.
PRINT Play tone configuration - Call SetToneRepeats() using negative RepeatCount
RUN_TEST_STEP 15000, char_a3f_devsound, MM-A3F-DEVSOUND-CHRTZ-TONE-0023, c:\mm_a3f_devsound_play_tone.ini
TEST_COMPLETE

//!@SYMTestCaseID: MM-A3F-DEVSOUND-CHRTZ-TONE-0024
//!@SYMREQ: 7951
//!@SYMPREQ: 1540
//!@SYMTestCaseDec: Play tone query - Call Capabilities() to retrieve all the supported capabilities
//!@SYMTestPriority: Normal
//!@SYMTestType: Normal Usecase
//!@SYMTestActions: 
//1. Create and Initialize DevSound instance to play tones.
//1.1 Wait for InitializeComplete(KErrNone) callback response.
//2. Call Capabilities() method to get all supported sample rates and channel encodings.
//!@SYMTestExpectedResults: 
//Capabilities() method shall retrieve a set of supported capabilities.
PRINT Play tone query - Call Capabilities() to retrieve all the supported capabilities
RUN_TEST_STEP 15000, char_a3f_devsound, MM-A3F-DEVSOUND-CHRTZ-TONE-0024, c:\mm_a3f_devsound_play_tone.ini
TEST_COMPLETE

//!@SYMTestCaseID: MM-A3F-DEVSOUND-CHRTZ-TONE-0025
//!@SYMREQ: 7951
//!@SYMPREQ: 1540
//!@SYMTestCaseDec: Play tone query - Call Config() to retrieve the default capabilities, sampling rate and channel encoding used
//!@SYMTestPriority: Normal
//!@SYMTestType: Normal Usecase
//!@SYMTestActions: 
//1.Create and Initialize DevSound instance to play tones.
//1.1 Wait for InitializeComplete(KErrNone) callback response.
//2.Call Config() method to get Sampling Rate and iChannel encoding.
//!@SYMTestExpectedResults: 
//Config() method shall retrieve current default sample rate and channel encoding.
PRINT Play tone query - Call Config() to retrieve the default capabilities, sampling rate and channel encoding used
RUN_TEST_STEP 15000, char_a3f_devsound, MM-A3F-DEVSOUND-CHRTZ-TONE-0025, c:\mm_a3f_devsound_play_tone.ini
TEST_COMPLETE

//!@SYMTestCaseID: MM-A3F-DEVSOUND-CHRTZ-TONE-0026
//!@SYMREQ: 7951
//!@SYMPREQ: 1540
//!@SYMTestCaseDec: Play tone query - Call MaxVolume() to retrieve the max volume suported by the device
//!@SYMTestPriority: Normal
//!@SYMTestType: Normal Usecase
//!@SYMTestActions: 
//1. Create and Initialize DevSound instance to play tones.
//1.1 Wait for InitializeComplete(KErrNone) callback response.
//2. Call MaxVolume() method to get maximum volume for current device.
//!@SYMTestExpectedResults: 
//MaxVolume() method shall retrieve the max device´s volume.
PRINT Play tone query - Call MaxVolume() to retrieve the max volume suported by the device
RUN_TEST_STEP 15000, char_a3f_devsound, MM-A3F-DEVSOUND-CHRTZ-TONE-0026, c:\mm_a3f_devsound_play_tone.ini
TEST_COMPLETE

//!@SYMTestCaseID: MM-A3F-DEVSOUND-CHRTZ-TONE-0027
//!@SYMREQ: 7951
//!@SYMPREQ: 1540
//!@SYMTestCaseDec: Play tone query - Call Volume() to retrieve default device volume
//!@SYMTestPriority: Normal
//!@SYMTestType: Normal Usecase
//!@SYMTestActions: 
//1. Create and Initialize DevSound instance to play tones.
//1.1 Wait for InitializeComplete(KErrNone) callback response.
//2. Call Volume(..) method to get current volume value.
//!@SYMTestExpectedResults: 
//Volume() shall retrieve the current device volume.
PRINT Play tone query - Call Volume() to retrieve default device volume
RUN_TEST_STEP 15000, char_a3f_devsound, MM-A3F-DEVSOUND-CHRTZ-TONE-0027, c:\mm_a3f_devsound_play_tone.ini
TEST_COMPLETE

//!@SYMTestCaseID: MM-A3F-DEVSOUND-CHRTZ-TONE-0028
//!@SYMREQ: 7951
//!@SYMPREQ: 1540
//!@SYMTestCaseDec: Play tone query - Call Capabilities() to retrieve all the supported capabilities while playing
//!@SYMTestPriority: Normal
//!@SYMTestType: Alternative Usecase
//!@SYMTestActions: 
//1. Create a Devsound instance.
//2. Create a CPeriodic instance.
//3. Initialise a DevSound instance to play tones.
//3.1 Wait for InitializeComplete(KErrNone) callback response.
//4. Call PlayToneL(). (For testing purposes, the tone should last more than the first timer event)
//5. Start CPeriodic to trigger timed events with a period of 2 seconds.
//6. On timer event call Capabilities() method to get all supported sample rates and channel encodings while tone play is in progress.
//!@SYMTestExpectedResults: 
//Capabilities() method shall retrieve a set of supported capabilities.
PRINT Play tone query - Call Capabilities() to retrieve all the supported capabilities while playing
RUN_TEST_STEP 15000, char_a3f_devsound, MM-A3F-DEVSOUND-CHRTZ-TONE-0028, c:\mm_a3f_devsound_play_tone.ini
TEST_COMPLETE

//!@SYMTestCaseID: MM-A3F-DEVSOUND-CHRTZ-TONE-0029
//!@SYMREQ: 7951
//!@SYMPREQ: 1540
//!@SYMTestCaseDec: Play tone query - Call Config() to retrieve the current capabilities, sampling rate and channel encoding used while playing
//!@SYMTestPriority: Normal
//!@SYMTestType: Alternative Usecase
//!@SYMTestActions: 
//1. Create a Devsound instance.
//2. Create a CPeriodic instance.
//3. Initialise a DevSound instance to play tones.
//3.1 Wait for InitializeComplete(KErrNone) callback response.
//4. Call PlayToneL(). (For testing purposes, the tone should last more than the first timer event)
//5. Start CPeriodic to trigger timed events with a period of 2 seconds.
//6. On timer event call Config() method to get Sampling Rate and iChannel encoding while tone play is in progress.
//!@SYMTestExpectedResults: 
//Config() method shall retrieve current sample rate and channel encoding.
PRINT Play tone query - Call Config() to retrieve the current capabilities, sampling rate and channel encoding used while playing
RUN_TEST_STEP 15000, char_a3f_devsound, MM-A3F-DEVSOUND-CHRTZ-TONE-0029, c:\mm_a3f_devsound_play_tone.ini
TEST_COMPLETE

//!@SYMTestCaseID: MM-A3F-DEVSOUND-CHRTZ-TONE-0030
//!@SYMREQ: 7951
//!@SYMPREQ: 1540
//!@SYMTestCaseDec: Play tone query - Call MaxVolume() to retrieve the max volume suported by the device while playing
//!@SYMTestPriority: Normal
//!@SYMTestType: Alternative Usecase
//!@SYMTestActions: 
//1. Create a Devsound instance.
//2. Create a CPeriodic instance.
//3. Initialise a DevSound instance to play tones.
//3.1 Wait for InitializeComplete(KErrNone) callback response.
//4. Call PlayToneL(). (For testing purposes, the tone should last more than the first timer event)
//5. Start CPeriodic to trigger timed events with a period of 2 seconds.
//6. On timer event call MaxVolume() method to get maximum volume for current device while tone play is in progress.
//!@SYMTestExpectedResults: 
//MaxVolume() method shall retrieve the max device´s volume.
PRINT Play tone query - Call MaxVolume() to retrieve the max volume suported by the device while playing
RUN_TEST_STEP 15000, char_a3f_devsound, MM-A3F-DEVSOUND-CHRTZ-TONE-0030, c:\mm_a3f_devsound_play_tone.ini
TEST_COMPLETE

//!@SYMTestCaseID: MM-A3F-DEVSOUND-CHRTZ-TONE-0031
//!@SYMREQ: 7951
//!@SYMPREQ: 1540
//!@SYMTestCaseDec: Play tone query - Call Volume() to retrieve the default device volume while playing
//!@SYMTestPriority: Normal
//!@SYMTestType: Alternative Usecase
//!@SYMTestActions: 
//1. Create a Devsound instance.
//2. Create a CPeriodic instance.
//3. Initialise a DevSound instance to play tones.
//3.1 Wait for InitializeComplete(KErrNone) callback response.
//4. Call PlayToneL(). (For testing purposes, the tone should last more than the first timer event)
//5. Start CPeriodic to trigger timed events with a period of 2 seconds.
//6. On timer event call Volume(..) method to get current volume value while tone play is in progress.
//!@SYMTestExpectedResults: 
//Volume() shall retrieve the current device volume.
PRINT Play tone query - Call Volume() to retrieve the default device volume while playing
RUN_TEST_STEP 15000, char_a3f_devsound, MM-A3F-DEVSOUND-CHRTZ-TONE-0031, c:\mm_a3f_devsound_play_tone.ini
TEST_COMPLETE

//!@SYMTestCaseID: MM-A3F-DEVSOUND-CHRTZ-TONE-0036
//!@SYMREQ: 7951
//!@SYMPREQ: 1540
//!@SYMTestCaseDec: Play tone - Call PlayToneL()  to play a tone
//!@SYMTestPriority: Normal
//!@SYMTestType: Normal Usecase
//!@SYMTestActions: 
//1. Create and Initialize DevSound instance to play tones.
//1.1 Wait for InitializeComplete(KErrNone) callback response.
//2. Call PlayToneL() method.
//2.1 Wait for ToneFinished() callback.
//!@SYMTestExpectedResults: 
//Tone once shall be played.
//ToneFinished(KErrUnderFlow) callback shall be received.
PRINT Play tone - Call PlayToneL()  to play a tone
RUN_TEST_STEP 15000, char_a3f_devsound, MM-A3F-DEVSOUND-CHRTZ-TONE-0036, c:\mm_a3f_devsound_play_tone.ini
TEST_COMPLETE

//!@SYMTestCaseID: MM-A3F-DEVSOUND-CHRTZ-TONE-0037
//!@SYMREQ: 7951
//!@SYMPREQ: 1540
//!@SYMTestCaseDec: Play tone - Call PlayDualToneL() to play a dual tone
//!@SYMTestPriority: Normal
//!@SYMTestType: Normal Usecase
//!@SYMTestActions: 
//1. Create and Initialize DevSound instance to play tones.
//1.1 Wait for InitializeComplete(KErrNone) callback response.
//2. Call PlayDualToneL() method.
//2.1 Wait for ToneFinished() callback.
//!@SYMTestExpectedResults: 
//Dual tone shall be played.
//ToneFinished(KErrUnderFlow) callback shall be received
PRINT Play tone - Call PlayDualToneL() to play a dual tone
RUN_TEST_STEP 15000, char_a3f_devsound, MM-A3F-DEVSOUND-CHRTZ-TONE-0037, c:\mm_a3f_devsound_play_tone.ini
TEST_COMPLETE

//!@SYMTestCaseID: MM-A3F-DEVSOUND-CHRTZ-TONE-0038
//!@SYMREQ: 7951
//!@SYMPREQ: 1540
//!@SYMTestCaseDec: Play tone - Call PlayDTMFStringL() to play a dual tone multi frequency string
//!@SYMTestPriority: Normal
//!@SYMTestType: Normal Usecase
//!@SYMTestActions: 
//1. Create and Initialize DevSound instance.
//1.1 Wait for InitializeComplete(KErrNone) callback response.
//2. Call PlayDTMFStringL() method with DTMFString = 01234, 56789, ABCDEF#*
//2.1 Wait for ToneFinished() callback.
//!@SYMTestExpectedResults: 
//DTMF string shall be played.
//ToneFinished(KErrUnderFlow) callback shall be received
PRINT Play tone - Call PlayDTMFStringL() to play a dual tone multi frequency string
RUN_TEST_STEP 15000, char_a3f_devsound, MM-A3F-DEVSOUND-CHRTZ-TONE-0038, c:\mm_a3f_devsound_play_tone.ini
TEST_COMPLETE

//!@SYMTestCaseID: MM-A3F-DEVSOUND-CHRTZ-TONE-0039
//!@SYMREQ: 7951
//!@SYMPREQ: 1540
//!@SYMTestCaseDec: Play tone - Call PlayToneSequenceL() to play a tone sequence.
//!@SYMTestPriority: Normal
//!@SYMTestType: Normal Usecase
//!@SYMTestActions: 
//1. Create and Initialize DevSound instance to play tones.
//1.1 Wait for InitializeComplete(KErrNone) callback response.
//2. Call PlayToneSequenceL() method
//2.1 Wait for ToneFinished() callback.
//!@SYMTestExpectedResults: 
//Tone sequence shall be played.
//ToneFinished(KErrUnderFlow) callback shall be received.
PRINT Play tone - Call PlayToneSequenceL() to play a tone sequence.
RUN_TEST_STEP 15000, char_a3f_devsound, MM-A3F-DEVSOUND-CHRTZ-TONE-0039, c:\mm_a3f_devsound_play_tone.ini
TEST_COMPLETE

//!@SYMTestCaseID: MM-A3F-DEVSOUND-CHRTZ-TONE-0040
//!@SYMREQ: 7951
//!@SYMPREQ: 1540
//!@SYMTestCaseDec: Play tone - Once - New tone request. The client wants to play new tone while there is one already playing.  
//!@SYMTestPriority: Normal
//!@SYMTestType: Alternative Usecase
//!@SYMTestActions: 
//1. Create a Devsound instance.
//2. Create a CPeriodic instance.
//3. Initialise a DevSound instance to play tones.
//3.1 Wait for InitializeComplete(KErrNone) callback response.
//4. Start the CPeriodic object.
//5. Call PlayToneL().
//6. After a 2 second periodic timer event, play another tone using the same DevSound instance.
//7. Wait for the ToneFinished() callback.
//!@SYMTestExpectedResults: 
//First tone request shall be played. DevSound silently ignores the second tone play request. 
//New tone play request do not cancels the current tone play.
PRINT Play tone - Once - New tone request. The client wants to play new tone while there is one already playing.  
RUN_TEST_STEP 15000, char_a3f_devsound, MM-A3F-DEVSOUND-CHRTZ-TONE-0040, c:\mm_a3f_devsound_play_tone.ini
TEST_COMPLETE

//!@SYMTestCaseID: MM-A3F-DEVSOUND-CHRTZ-TONE-0043
//!@SYMREQ: 7951
//!@SYMPREQ: 1540
//!@SYMTestCaseDec: Play tone - Once - Stop. The client wants to play a tone for a while and stop it. DevSound is initialized
//to tone play after Stop.
//!@SYMTestPriority: Normal
//!@SYMTestType: Alternative Usecase
//!@SYMTestActions: 
//1. Create and Initialize DevSound instance to play tones.
//1.1 Wait for InitializeComplete(KErrNone) callback response.
//2. Create and start a CPeriodic object.
//3. Play a tone using PlayToneL().(For testing purposes, the tone should last more than the timer event)
//4. On the timer event, after one second, call Stop() to stop the ongoing play tone operation.
//5. Again play a tone using PlayToneL().
//!@SYMTestExpectedResults: 
//Tone play is stopped and DevSound goes to “Initialized to Play Tone” state, second tone request is accepted. 
//Stop() is synchronous and it should not invoke callbacks through MDevSoundObserver.
PRINT Play tone - Once - Stop. The client wants to play a tone for a while and stop it. DevSound is initialized to tone play after Stop.
RUN_TEST_STEP 15000, char_a3f_devsound, MM-A3F-DEVSOUND-CHRTZ-TONE-0043, c:\mm_a3f_devsound_play_tone.ini
TEST_COMPLETE

//!@SYMTestCaseID: MM-A3F-DEVSOUND-CHRTZ-TONE-0044
//!@SYMREQ: 7951
//!@SYMPREQ: 1540
//!@SYMTestCaseDec: Play tone - Dual tone - Stop. The client wants to play a dual tone for a while and stop it. 
//DevSound is initialized to tone play after Stop.
//!@SYMTestPriority: Normal
//!@SYMTestType: Alternative Usecase
//!@SYMTestActions: 
//1. Create and Initialize DevSound instance to play tones.
//1.1 Wait for InitializeComplete(KErrNone) callback response.
//2. Create and start a CPeriodic object.
//3. Call PlayDualToneL(). (For testing purposes, the tone should last more than the timer event)
//4. On the timer event, after one second, call Stop() to stop the ongoing operation.
//5. Again play a tone using PlayDualToneL().
//!@SYMTestExpectedResults: 
//Tone play is stopped and DevSound goes to “Initialized to Play Tone” state, second tone request is accepted.
//Stop() is synchronous and it should not invoke callbacks through MDevSoundObserver.
PRINT Play tone - Dual tone - Stop. The client wants to play a dual tone for a while and stop it. 
//DevSound is initialized to tone play after Stop.
RUN_TEST_STEP 15000, char_a3f_devsound, MM-A3F-DEVSOUND-CHRTZ-TONE-0044, c:\mm_a3f_devsound_play_tone.ini
TEST_COMPLETE

//!@SYMTestCaseID: MM-A3F-DEVSOUND-CHRTZ-TONE-0045
//!@SYMREQ: 7951
//!@SYMPREQ: 1540
//!@SYMTestCaseDec: Play tone - DTMF - Stop. The client wants to play a DTMF tone for a while a stop it. DevSound is initialized to tone play after Stop.
//!@SYMTestPriority: Normal
//!@SYMTestType: Alternative Usecase
//!@SYMTestActions: 
//1. Create and Initialize DevSound instance to play tones.
//1.1 Wait for InitializeComplete(KErrNone) callback response.
//2. Create and start a CPeriodic object.
//3. Call PlayDTMFStringL() method with DTMFString = 01234, 56789, ABCDEF#*.
//4. On the timer event, after one second, call Stop() to stop the ongoing operation.
//5. Again play a tone using PlayDTMFStringL().
//!@SYMTestExpectedResults: 
//Tone play is stopped and DevSound goes to “Initialized to Play Tone” state, second tone request is accepted. Stop() is synchronous and it should not invoke callbacks through MDevSoundObserver.
PRINT Play tone - DTMF - Stop. The client wants to play a DTMF tone for a while a stop it. DevSound is initialized to tone play after Stop.
RUN_TEST_STEP 15000, char_a3f_devsound, MM-A3F-DEVSOUND-CHRTZ-TONE-0045, c:\mm_a3f_devsound_play_tone.ini
TEST_COMPLETE

//!@SYMTestCaseID: MM-A3F-DEVSOUND-CHRTZ-TONE-0046
//!@SYMREQ: 7951
//!@SYMPREQ: 1540
//!@SYMTestCaseDec: Play tone - Tone sequence - Stop. The client wants to play a tone sequence for a while and stop it. DevSound is initialized to tone play after Stop.
//!@SYMTestPriority: Normal
//!@SYMTestType: Alternative Usecase
//!@SYMTestActions: 
//1. Create and Initialize DevSound instance to play tones.
//1.1 Wait for InitializeComplete(KErrNone) callback response.
//2. Create and start a CPeriodic object.
//3. Call PlayToneSequenceL() method. (For testing purposes, the tone should last more than the timer event)
//4. On the timer event, after one second, call Stop() to stop the ongoing operation.
//5. Again play a tone using PlayToneSequenceL().
//!@SYMTestExpectedResults: 
//Tone play is stopped and DevSound goes to “Initialized to Play Tone” state, second tone request is accepted. Stop() is synchronous and it should not invoke callbacks through MDevSoundObserver.
PRINT Play tone - Tone sequence - Stop. The client wants to play a tone sequence for a while and stop it. DevSound is initialized to tone play after Stop.
RUN_TEST_STEP 15000, char_a3f_devsound, MM-A3F-DEVSOUND-CHRTZ-TONE-0046, c:\mm_a3f_devsound_play_tone.ini
TEST_COMPLETE

//!@SYMTestCaseID: MM-A3F-DEVSOUND-CHRTZ-TONE-0051
//!@SYMREQ: 7951
//!@SYMPREQ: 1540
//!@SYMTestCaseDec: Play tone - Once- Call InitializeL() using EMMFStatePlaying
//!@SYMTestPriority: Normal
//!@SYMTestType: Exception Usecase
//!@SYMTestActions: 
//1. Create and Initialize DevSound instance for playing audio.
//1.1 Wait for InitializeComplete(KErrNone) callback response.
//2. PlayToneL() is called when InitializeL() was called using EMMFStatePlaying value.
//!@SYMTestExpectedResults: 
//It leaves with KErrNotSupported.
PRINT Play tone - Once- Call InitializeL() using EMMFStatePlaying
RUN_TEST_STEP 15000, char_a3f_devsound, MM-A3F-DEVSOUND-CHRTZ-TONE-0051, c:\mm_a3f_devsound_play_tone.ini
TEST_COMPLETE

//!@SYMTestCaseID: MM-A3F-DEVSOUND-CHRTZ-TONE-0052
//!@SYMREQ: 7951
//!@SYMPREQ: 1540
//!@SYMTestCaseDec: Play tone - Dual tone - Call InitializeL() using EMMFStatePlaying
//!@SYMTestPriority: Normal
//!@SYMTestType: Exception Usecase
//!@SYMTestActions: 
//1. Create and Initialize DevSound instance for playing audio.
//1.1 Wait for InitializeComplete(KErrNone) callback response.
//2. PlayDualToneL() called when InitializeL() was called using EMMFStatePlaying value.
//!@SYMTestExpectedResults: 
//It leaves with KErrNotSupported.
PRINT Play tone - Dual tone - Call InitializeL() using EMMFStatePlaying
RUN_TEST_STEP 15000, char_a3f_devsound, MM-A3F-DEVSOUND-CHRTZ-TONE-0052, c:\mm_a3f_devsound_play_tone.ini
TEST_COMPLETE

//!@SYMTestCaseID: MM-A3F-DEVSOUND-CHRTZ-TONE-0053
//!@SYMREQ: 7951
//!@SYMPREQ: 1540
//!@SYMTestCaseDec: Play tone - DTMF - Call InitializeL() using EMMFStatePlaying
//!@SYMTestPriority: Normal
//!@SYMTestType: Exception Usecase
//!@SYMTestActions: 
//1. Create and Initialize DevSound instance for playing audio.
//1.1 Wait for InitializeComplete(KErrNone) callback response.
//2. PlayDTMFStringL() called when InitializeL() was called using EMMFStatePlaying value.
//!@SYMTestExpectedResults: 
//It leaves with KErrNotSupported.
PRINT Play tone - DTMF - Call InitializeL() using EMMFStatePlaying
RUN_TEST_STEP 15000, char_a3f_devsound, MM-A3F-DEVSOUND-CHRTZ-TONE-0053, c:\mm_a3f_devsound_play_tone.ini
TEST_COMPLETE

//!@SYMTestCaseID: MM-A3F-DEVSOUND-CHRTZ-TONE-0054
//!@SYMREQ: 7951
//!@SYMPREQ: 1540
//!@SYMTestCaseDec: Play tone - Tone sequence - Call InitializeL() using EMMFStatePlaying
//!@SYMTestPriority: Normal
//!@SYMTestType: Exception Usecase
//!@SYMTestActions: 
//1. Create and Initialize DevSound instance for playing audio.
//1.1 Wait for InitializeComplete(KErrNone) callback response.
//2. PlayToneSequenceL() is called when InitializeL() was called using EMMFStatePlaying value.
//!@SYMTestExpectedResults: 
//It leaves with KErrNotSupported.
PRINT Play tone - Tone sequence - Call InitializeL() using EMMFStatePlaying
RUN_TEST_STEP 15000, char_a3f_devsound, MM-A3F-DEVSOUND-CHRTZ-TONE-0054, c:\mm_a3f_devsound_play_tone.ini
TEST_COMPLETE

//!@SYMTestCaseID: MM-A3F-DEVSOUND-CHRTZ-TONE-0055
//!@SYMREQ: 7951
//!@SYMPREQ: 1540
//!@SYMTestCaseDec: Play tone - Once - Call InitializeL() using EMMFStateRecording
//!@SYMTestPriority: Normal
//!@SYMTestType: Exception Usecase
//!@SYMTestActions: 
//1. Create and Initialize DevSound instance for recording audio.
//1.1 Wait for InitializeComplete(KErrNone) callback response.
//2. PlayToneL() is called when InitializeL() was called using EMMFStateRecording value.
//!@SYMTestExpectedResults: 
//It leaves with KErrNotSupported.
PRINT Play tone - Once - Call InitializeL() using EMMFStateRecording
RUN_TEST_STEP 15000, char_a3f_devsound, MM-A3F-DEVSOUND-CHRTZ-TONE-0055, c:\mm_a3f_devsound_play_tone.ini
TEST_COMPLETE

//!@SYMTestCaseID: MM-A3F-DEVSOUND-CHRTZ-TONE-0056
//!@SYMREQ: 7951
//!@SYMPREQ: 1540
//!@SYMTestCaseDec: Play tone - Dual tone - Call InitializeL() using EMMFStateRecording
//!@SYMTestPriority: Normal
//!@SYMTestType: Exception Usecase
//!@SYMTestActions: 
//1. Create and Initialize DevSound instance for recording audio.
//1.1 Wait for InitializeComplete(KErrNone) callback response.
//2. PlayDualToneL() called when InitializeL() was called using EMMFStateRecording value.
//!@SYMTestExpectedResults: 
//It leaves with KErrNotSupported.
PRINT Play tone - Dual tone - Call InitializeL() using EMMFStateRecording
RUN_TEST_STEP 15000, char_a3f_devsound, MM-A3F-DEVSOUND-CHRTZ-TONE-0056, c:\mm_a3f_devsound_play_tone.ini
TEST_COMPLETE

//!@SYMTestCaseID: MM-A3F-DEVSOUND-CHRTZ-TONE-0057
//!@SYMREQ: 7951
//!@SYMPREQ: 1540
//!@SYMTestCaseDec: Play tone - DTMF - Call InitializeL() using EMMFStateRecording
//!@SYMTestPriority: Normal
//!@SYMTestType: Exception Usecase
//!@SYMTestActions: 
//1. Create and Initialize DevSound instance for recording audio.
//1.1 Wait for InitializeComplete(KErrNone) callback response.
//2. PlayDTMFStringL() called when InitializeL() was called using EMMFStateRecording value.
//!@SYMTestExpectedResults: 
//It leaves with KErrNotSupported.
PRINT Play tone - DTMF - Call InitializeL() using EMMFStateRecording
RUN_TEST_STEP 15000, char_a3f_devsound, MM-A3F-DEVSOUND-CHRTZ-TONE-0057, c:\mm_a3f_devsound_play_tone.ini
TEST_COMPLETE

//!@SYMTestCaseID: MM-A3F-DEVSOUND-CHRTZ-TONE-0058
//!@SYMREQ: 7951
//!@SYMPREQ: 1540
//!@SYMTestCaseDec: Play tone - Tone sequence - Call InitializeL() using EMMFStateRecording
//!@SYMTestPriority: Normal
//!@SYMTestType: Exception Usecase
//!@SYMTestActions: 
//1. Create and Initialize DevSound instance for recording audio.
//1.1 Wait for InitializeComplete(KErrNone) callback response.
//2. PlayToneSequenceL() is called when InitializeL() was called using EMMFStateRecording value.
//!@SYMTestExpectedResults: 
//It leaves with KErrNotSupported.
PRINT Play tone - Tone sequence - Call InitializeL() using EMMFStateRecording
RUN_TEST_STEP 15000, char_a3f_devsound, MM-A3F-DEVSOUND-CHRTZ-TONE-0058, c:\mm_a3f_devsound_play_tone.ini
TEST_COMPLETE

//!@SYMTestCaseID: MM-A3F-DEVSOUND-CHRTZ-TONE-0059
//!@SYMREQ: 7951
//!@SYMPREQ: 1540
//!@SYMTestCaseDec: Play tone - Once - Call PlayToneL() without calling initialize
//!@SYMTestPriority: Normal
//!@SYMTestType: Exception Usecase
//!@SYMTestActions: 
//1. Create a Devsound instance, but do not Initialize it.
//2. Call PlayToneL(). 
//!@SYMTestExpectedResults: 
//It leaves with KErrNotReady.
PRINT Play tone - Once - Call PlayToneL() without calling initialize
RUN_TEST_STEP 15000, char_a3f_devsound, MM-A3F-DEVSOUND-CHRTZ-TONE-0059, c:\mm_a3f_devsound_play_tone.ini
TEST_COMPLETE

//!@SYMTestCaseID: MM-A3F-DEVSOUND-CHRTZ-TONE-0060
//!@SYMREQ: 7951
//!@SYMPREQ: 1540
//!@SYMTestCaseDec: Play tone - Dual tone - Call PlayDualToneL() without calling initialize
//!@SYMTestPriority: Normal
//!@SYMTestType: Exception Usecase
//!@SYMTestActions: 
//1. Create a Devsound instance, but do not Initialize it.
//2. Call PlayDualToneL(). 
//!@SYMTestExpectedResults: 
//It leaves with KErrNotReady.
PRINT Play tone - Dual tone - Call PlayDualToneL() without calling initialize
RUN_TEST_STEP 15000, char_a3f_devsound, MM-A3F-DEVSOUND-CHRTZ-TONE-0060, c:\mm_a3f_devsound_play_tone.ini
TEST_COMPLETE

//!@SYMTestCaseID: MM-A3F-DEVSOUND-CHRTZ-TONE-0061
//!@SYMREQ: 7951
//!@SYMPREQ: 1540
//!@SYMTestCaseDec: Play tone - DTMF - Call PlayDTMFStringL()without calling initialize
//!@SYMTestPriority: Normal
//!@SYMTestType: Exception Usecase
//!@SYMTestActions: 
//1. Create a Devsound instance, but do not Initialize it.
//2. Call PlayDTMFStringL().
//!@SYMTestExpectedResults: 
//It leaves with KErrNotReady.
PRINT Play tone - DTMF - Call PlayDTMFStringL()without calling initialize
RUN_TEST_STEP 15000, char_a3f_devsound, MM-A3F-DEVSOUND-CHRTZ-TONE-0061, c:\mm_a3f_devsound_play_tone.ini
TEST_COMPLETE

//!@SYMTestCaseID: MM-A3F-DEVSOUND-CHRTZ-TONE-0062
//!@SYMREQ: 7951
//!@SYMPREQ: 1540
//!@SYMTestCaseDec: Play tone - Tone sequence - Call PlayToneSequenceL() without calling initialize
//!@SYMTestPriority: Normal
//!@SYMTestType: Exception Usecase
//!@SYMTestActions: 
//1. Create a Devsound instance, but do not Initialize it.
//2. Call PlayToneSequenceL().
//!@SYMTestExpectedResults: 
//It leaves with KErrNotReady.
PRINT Play tone - Tone sequence - Call PlayToneSequenceL() without calling initialize
RUN_TEST_STEP 15000, char_a3f_devsound, MM-A3F-DEVSOUND-CHRTZ-TONE-0062, c:\mm_a3f_devsound_play_tone.ini
TEST_COMPLETE

//!@SYMTestCaseID: MM-A3F-DEVSOUND-CHRTZ-TONE-0063
//!@SYMREQ: 7951
//!@SYMPREQ: 1540
//!@SYMTestCaseDec: Play tone - Tone sequence - Call PlayToneSequenceL() using an invalid tone sequence descriptor
//!@SYMTestPriority: Normal
//!@SYMTestType: Exception Usecase
//!@SYMTestActions: 
//1. Create and Initialize DevSound instance for playing tones.
//1.1 Wait for InitializeComplete(KErrNone) callback response.
//2. Call PlayToneSequenceL() method  using an invalid tone sequence descriptor.
//!@SYMTestExpectedResults: 
//A ToneFinished(KErrCorrupt) callback is received.
PRINT Play tone - Tone sequence - Call PlayToneSequenceL() using an invalid tone sequence descriptor
RUN_TEST_STEP 15000, char_a3f_devsound, MM-A3F-DEVSOUND-CHRTZ-TONE-0063, c:\mm_a3f_devsound_play_tone.ini
TEST_COMPLETE

//!@SYMTestCaseID: MM-A3F-DEVSOUND-CHRTZ-TONE-0009
//!@SYMREQ: 7951
//!@SYMPREQ: 1540
//!@SYMTestCaseDec: Play tone configuration - Call SetVolume(..) method during paused playing tone
//!@SYMTestPriority: Normal
//!@SYMTestType: Alternative Usecase
//!@SYMTestActions: 
//1. Create a Devsound instance.
//2. Create a CPeriodic instance.
//3. Initialise a DevSound instance to play tones.
//3.1 Wait for InitializeComplete(KErrNone) callback response.
//4. Play a tone.(For testing purposes, the tone should last more than the first timer event)
//5. Start CPeriodic to trigger timed events every 2 seconds.
//6. On timer event pause DevSound client, then call SetVolume(..).
//7. Call Volume() method to verify current device volume value during the playback.
//!@SYMTestExpectedResults: 
//SetVolume(..) method shall be executed without error message.
//Value returned from Volume() method shall be equal to the value set by SetVolume(..).
PRINT Play tone configuration - Call SetVolume(..) method during paused playing tone
RUN_TEST_STEP 15000, char_a3f_devsound, MM-A3F-DEVSOUND-CHRTZ-TONE-0009, c:\mm_a3f_devsound_play_tone.ini
TEST_COMPLETE

//!@SYMTestCaseID: MM-A3F-DEVSOUND-CHRTZ-TONE-0032
//!@SYMREQ: 7951
//!@SYMPREQ: 1540
//!@SYMTestCaseDec: Play tone query - Call Capabilities() to retrieve all the supported capabilities when paused
//!@SYMTestPriority: Normal
//!@SYMTestType: Alternative Usecase
//!@SYMTestActions: 
//1. Create a Devsound instance.
//2. Create a CPeriodic instance.
//3. Initialise a DevSound instance to play tones.
//3.1 Wait for InitializeComplete(KErrNone) callback response.
//4. Call PlayToneL(). (For testing purposes, the tone should last more than the first timer event)
//5. Start CPeriodic to trigger timed events with a period of 2 seconds.
//6. On timer event, after calling Pause(), invoke Capabilities() method to get all supported sample rates and channel encodings.
//!@SYMTestExpectedResults: 
//Capabilities() method shall retrieve a set of supported capabilities.
PRINT Play tone query - Call Capabilities() to retrieve all the supported capabilities when paused
RUN_TEST_STEP 15000, char_a3f_devsound, MM-A3F-DEVSOUND-CHRTZ-TONE-0032, c:\mm_a3f_devsound_play_tone.ini
TEST_COMPLETE

//!@SYMTestCaseID: MM-A3F-DEVSOUND-CHRTZ-TONE-0033
//!@SYMREQ: 7951
//!@SYMPREQ: 1540
//!@SYMTestCaseDec: Play tone query - Call Config() to retrieve the current capabilities, sampling rate and channel encoding when paused
//!@SYMTestPriority: Normal
//!@SYMTestType: Alternative Usecase
//!@SYMTestActions: 
//1. Create a Devsound instance.
//2. Create a CPeriodic instance.
//3. Initialise a DevSound instance to play tones.
//3.1 Wait for InitializeComplete(KErrNone) callback response.
//4. Call PlayToneL(). (For testing purposes, the tone should last more than the first timer event)
//5. Start CPeriodic to trigger timed events with a period of 2 seconds.
//6. On timer event, after calling Pause(), invoke Config() method to get Sampling Rate and iChannel encoding.
//!@SYMTestExpectedResults: 
//Config() method shall retrieve current sample rate and channel encoding.
PRINT Play tone query - Call Config() to retrieve the current capabilities, sampling rate and channel encoding when paused
RUN_TEST_STEP 15000, char_a3f_devsound, MM-A3F-DEVSOUND-CHRTZ-TONE-0033, c:\mm_a3f_devsound_play_tone.ini
TEST_COMPLETE

//!@SYMTestCaseID: MM-A3F-DEVSOUND-CHRTZ-TONE-0034
//!@SYMREQ: 7951
//!@SYMPREQ: 1540
//!@SYMTestCaseDec: Play tone query - Call MaxVolume() to retrieve the max volume suported by the device when paused
//!@SYMTestPriority: Normal
//!@SYMTestType: Alternative Usecase
//!@SYMTestActions: 
//1. Create a Devsound instance.
//2. Create a CPeriodic instance.
//3. Initialise a DevSound instance to play tones.
//3.1 Wait for InitializeComplete(KErrNone) callback response.
//4. Call PlayToneL(). (For testing purposes, the tone should last more than the first timer event)
//5. Start CPeriodic to trigger timed events with a period of 2 seconds.
//6. On timer event, after calling Pause(), invoke MaxVolume() method to get the maximum volume for current device.
//!@SYMTestExpectedResults: 
//MaxVolume() method shall retrieve the max device´s volume.
PRINT Play tone query - Call MaxVolume() to retrieve the max volume suported by the device when paused
RUN_TEST_STEP 15000, char_a3f_devsound, MM-A3F-DEVSOUND-CHRTZ-TONE-0034, c:\mm_a3f_devsound_play_tone.ini
TEST_COMPLETE

//!@SYMTestCaseID: MM-A3F-DEVSOUND-CHRTZ-TONE-0035
//!@SYMREQ: 7951
//!@SYMPREQ: 1540
//!@SYMTestCaseDec: Play tone query - Call Volume() to retrieve the default device volume when paused
//!@SYMTestPriority: Normal
//!@SYMTestType: Alternative Usecase
//!@SYMTestActions: 
//1. Create a Devsound instance.
//2. Create a CPeriodic instance.
//3. Initialise a DevSound instance to play tones.
//3.1 Wait for InitializeComplete(KErrNone) callback response.
//4. Call PlayToneL(). (For testing purposes, the tone should last more than the first timer event)
//5. Start CPeriodic to trigger timed events with a period of 2 seconds.
//6. On timer event, after calling Pause(), invoke  Volume(..) method to get current volume value while tone play is in progress.
//!@SYMTestExpectedResults: 
//Volume() shall retrieve the current device volume.
PRINT Play tone query - Call Volume() to retrieve the default device volume when paused
RUN_TEST_STEP 15000, char_a3f_devsound, MM-A3F-DEVSOUND-CHRTZ-TONE-0035, c:\mm_a3f_devsound_play_tone.ini
TEST_COMPLETE

//!@SYMTestCaseID: MM-A3F-DEVSOUND-CHRTZ-TONE-0047
//!@SYMREQ: 7951
//!@SYMPREQ: 1540
//!@SYMTestCaseDec: Play tone - Once - Pause. The client wants to play a tone for a while and pause it.
//!@SYMTestPriority: Normal
//!@SYMTestType: Alternative Usecase
//!@SYMTestActions: 
//1. Create and Initialize DevSound instance to play tones.
//1.1 Wait for InitializeComplete(KErrNone) callback response.
//2. Create and start a CPeriodic object.
//3. Call PlayToneL() method. (For testing purposes, the tone should last more than the timer event)
//4. On the timer event, after two second, call Pause() to pause the ongoing operation.
//!@SYMTestExpectedResults: 
//Tone play is paused at current playing tone position. DevSound goes to “Pause Playing Tone” state.
PRINT Play tone - Once - Pause. The client wants to play a tone for a while and pause it.
RUN_TEST_STEP 15000, char_a3f_devsound, MM-A3F-DEVSOUND-CHRTZ-TONE-0047, c:\mm_a3f_devsound_play_tone.ini
TEST_COMPLETE

//!@SYMTestCaseID: MM-A3F-DEVSOUND-CHRTZ-TONE-0048
//!@SYMREQ: 7951
//!@SYMPREQ: 1540
//!@SYMTestCaseDec: Play tone - Dual tone - Pause. The client wants to play a dual tone for a while and pause it.
//!@SYMTestPriority: Normal
//!@SYMTestType: Alternative Usecase
//!@SYMTestActions: 
//1. Create and Initialize DevSound instance to play tones.
//1.1 Wait for InitializeComplete(KErrNone) callback response.
//2. Create and start a CPeriodic object.
//3. Call PlayDualToneL() method. (For testing purposes, the tone should last more than the timer event)
//4. On the timer event, after 2 seconds, call Pause() to pause the ongoing operation.
//!@SYMTestExpectedResults: 
//Tone play is paused at current playing tone position. DevSound goes to “Pause Playing Tone” state.
PRINT Play tone - Dual tone - Pause. The client wants to play a dual tone for a while and pause it.
RUN_TEST_STEP 15000, char_a3f_devsound, MM-A3F-DEVSOUND-CHRTZ-TONE-0048, c:\mm_a3f_devsound_play_tone.ini
TEST_COMPLETE

//!@SYMTestCaseID: MM-A3F-DEVSOUND-CHRTZ-TONE-0049
//!@SYMREQ: 7951
//!@SYMPREQ: 1540
//!@SYMTestCaseDec: Play tone - DTMF - Pause. The client wants to play a DTMF string for a while and pause it.
//!@SYMTestPriority: Normal
//!@SYMTestType: Alternative Usecase
//!@SYMTestActions: 
//1. Create and Initialize DevSound instance to play tones.
//1.1 Wait for InitializeComplete(KErrNone) callback response.
//2. Create and start a CPeriodic object.
//3. Call PlayDTMFStringL() method with DTMFString = 01234, 56789, ABCDEF#*.
//4. On the timer event, after two second, call Pause() to pause the ongoing operation.
//!@SYMTestExpectedResults: 
//Tone play is paused at current playing tone position. DevSound goes to “Pause Playing Tone” state.
PRINT Play tone - DTMF - Pause. The client wants to play a DTMF string for a while and pause it.
RUN_TEST_STEP 15000, char_a3f_devsound, MM-A3F-DEVSOUND-CHRTZ-TONE-0049, c:\mm_a3f_devsound_play_tone.ini
TEST_COMPLETE

//!@SYMTestCaseID: MM-A3F-DEVSOUND-CHRTZ-TONE-0050
//!@SYMREQ: 7951
//!@SYMPREQ: 1540
//!@SYMTestCaseDec: Play tone - Tone sequence - Pause. The client wants to play a tone sequence and pause it.
//!@SYMTestPriority: Normal
//!@SYMTestType: Alternative Usecase
//!@SYMTestActions: 
//1. Create and Initialize DevSound instance to play tones.
//1.1 Wait for InitializeComplete(KErrNone) callback response.
//2. Create and start a CPeriodic object.
//3. Call PlayToneSequenceL() method. (For testing purposes, the tone should last more than the timer event)
//4. On the timer event, after two second, call Pause() to pause the ongoing operation.
//!@SYMTestExpectedResults: 
//Tone play is paused at current playing tone position. DevSound goes to “Pause Playing Tone” state.
PRINT Play tone - Tone sequence - Pause. The client wants to play a tone sequence and pause it.
RUN_TEST_STEP 15000, char_a3f_devsound, MM-A3F-DEVSOUND-CHRTZ-TONE-0050, c:\mm_a3f_devsound_play_tone.ini
TEST_COMPLETE

//!@SYMTestCaseID: MM-A3F-DEVSOUND-CHRTZ-TONE-0064
//!@SYMREQ: 
//!@SYMPREQ: 
//!@SYMTestCaseDec: Play tone - Tone sequence - Pause. The client wants to play a tone sequence and pause it.
//!@SYMTestPriority: Normal
//!@SYMTestType: Alternative Usecase
//!@SYMTestActions: 
//1. Create and Initialize DevSound instance to play tones.
//1.1 Wait for InitializeComplete(KErrNone) callback response.
//2. Call CMMFDevSound->FixedSequenceCount() this should return 0
//3. Call CMMFDevSound->FixedSequenceName() this should return KNullDesC
//4. Call CMMFDevSound->PlayFixedSequenceL this should leave with KErrNotSupported
//!@SYMTestExpectedResults: 
//Calls to depricated api should return correct values
PRINT Tone - Call deprocated API's
RUN_TEST_STEP 15000, char_a3f_devsound, MM-A3F-DEVSOUND-CHRTZ-TONE-0064, c:\mm_a3f_devsound_play_tone.ini
TEST_COMPLETE