camerasrv_plat/camera_application_engine_api/tsrc/src/CaeTestRelease.cpp
changeset 0 9b3e960ffc8a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/camerasrv_plat/camera_application_engine_api/tsrc/src/CaeTestRelease.cpp	Thu Dec 17 08:51:24 2009 +0200
@@ -0,0 +1,6459 @@
+/*
+* Copyright (c) 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: CaeTestRelease.cpp
+*
+*/
+
+#include "CaeTestRelease.h"
+#include <f32file.h>
+#include <e32base.h>
+#include <e32svr.h>
+
+
+const TReal32 KViewFinderFrameFrequencyMinimum = 15.0;
+
+
+
+CCaeTestRelease::CCaeTestRelease ()
+    {
+    }
+
+
+
+CCaeTestRelease::~CCaeTestRelease ()
+    {
+    }
+
+
+void CCaeTestRelease::setUpL ()
+    {
+    iStatesClient = CCaeTestStatesClient::NewL( );
+
+    iStatesClient->SetFileNameBase( KFileNameBase );
+
+    iSettingsClient = CCaeTestSettingsClient::NewL();
+
+    iSettingsClient->SetFileNameBase( KFileNameBase );
+    }
+
+
+void CCaeTestRelease::tearDown ()
+    {
+    // pointers in other test e.g. still states tests etc. are not cleared
+    delete iStatesClient; 
+    iStatesClient = NULL;
+    delete iSettingsClient;   
+    iSettingsClient = NULL;
+//    User::After(30000000);
+    }
+
+
+//
+// Own test functions.
+//
+// The framework will do for a test function:
+//
+// setUpL();
+// TRAPD(leaveCode, 'myTestFunction()');
+// "Report leave error or assertion failure for 'myTestFunction()'".
+// tearDown();
+//
+
+
+/********************************************************/
+/*                   GENERAL TESTS                      */
+/********************************************************/
+
+void CCaeTestRelease::TestInitL()
+    {
+    // ID: CAE.GEN.INITL.001
+	//
+    // General
+    // 
+    // Action : Test call InitL() when instatiation is done.
+	//      
+	// Output : OK.   
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::EInit );// here we have to put the correct action
+    assertL( iStatesClient->CountInitComplete() == 1 );
+    }
+
+void CCaeTestRelease::TestInitVideoRecorderL()
+    {
+    // ID: CAE.GEN.INITVIDEORECORDERL.001
+	//
+    // General
+    // 
+    // Action : Test Call InitVideoRecorderL() when initialization is done.
+	//      
+	// Output : OK.   
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::EInitVideoRecorder );// here we have to put the correct action
+    assertL( iStatesClient->CountInitComplete() == 1 );
+    }
+
+void CCaeTestRelease::TestPowerOffAndOnL()
+    {
+    // ID: CAE.GEN.POWEROFFANDON.001
+	//
+    // General
+    // 
+    // Action : Test to turn camera power off and on when initialization is done.
+	//      
+	// Output : OK.   
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::ESwitchPowerOffAndOn );
+    assertL( iStatesClient->CountInitComplete() == 2 );
+    }
+
+void CCaeTestRelease::TestReleaseAndReserveL()
+    {
+    // ID: CAE.GEN.RELESEANDRESERVE.001
+	//
+    // General
+    // 
+    // Action : Release vapauttaa kameran muiden sovellusten käyttöön.
+    //          Reserve varaa kameran (uudestaan) ja palauttaa entiset asetukset (kontrasti,....) voimaan. 
+	//      
+	// Output : OK.   
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::EReleaseReserve );
+    assertL( iStatesClient->CountInitComplete() == 2 );
+    }
+
+void CCaeTestRelease::TestCCameraHandleL()
+    {
+    // ID: CAE.GEN.CCAMERAHANDLE.001
+	//
+    // General
+    // 
+    // Action : Test call CCameraHandle when instatiation is done.
+	//      
+	// Output : OK.   
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::ECCameraHandle );
+    assertL( iStatesClient->CountInitComplete() == 1 );
+    }
+
+/********************************************************/
+/*            STILL CAPTURE GENERAL TESTS               */
+/********************************************************/
+
+void CCaeTestRelease::TestPowerOnWhenInitializedL()
+    {
+    // ID: CAE.GEN-SC.POWERON.001
+	//
+    // General
+    // 
+    // Action : Test to turn camera power on when initialization is done.
+	//      
+	// Output : OK.   
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::ESwitchPowerOnWhenInitialized );// here we have to put the correct action
+    assertL( iStatesClient->CountInitComplete() == 1 );
+    }
+
+void CCaeTestRelease::TestPowerOnWhenStillCapturePreparedL()
+    {
+    // ID: CAE.GEN-SC.POWERON.002
+	//
+    // General
+    // 
+    // Action : Test to turn camera power on when still capture prepared.
+	//      
+	// Output : OK.   
+
+    iStatesClient->SetStillQualityLevelIndex( 0 );
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::ESwitchPowerOnWhenStillPrepared );// here we have to put the correct action
+    assertL( iStatesClient->CountInitComplete() == 1 );
+    }
+
+void CCaeTestRelease::TestPowerOffWhenStillCapturePreparedL()
+    {
+    // ID: CAE.GEN-SC.POWEROFF.001
+	//
+    // General
+    // 
+    // Action : Test to turn camera power off when still capture prepared.
+	//      
+	// Output : OK.   
+
+    iStatesClient->SetStillQualityLevelIndex( 0 );
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::ESwitchPowerOffWhenStillPrepared );// here we have to put the correct action
+    
+    assertL( iStatesClient->CountInitComplete() == 1 );
+    }
+
+void CCaeTestRelease::TestPowerOffWhenViewfinderRunningL()
+    {
+    // ID: CAE.GEN-SC.POWEROFF.002
+	//
+    // General
+    // 
+    // Action : Test to turn camera power off when viewfinder running.
+	//      
+	// Output : OK.   
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::ESwitchPowerOffWhenVfRunning );// here we have to put the correct action
+    
+    assertL( iStatesClient->CountInitComplete() == 1 );
+    }
+
+
+/********************************************************/
+/*           VIDEO RECORDING GENERAL TESTS              */
+/********************************************************/
+
+void CCaeTestRelease::TestPowerOnWhenVideoRecordingPreparedL()
+    {
+    // ID: CAE.GEN-VR.POWERON.003
+	//
+    // General
+    // 
+    // Action : Test to turn camera power on when video recording prepared.
+	//      
+	// Output : OK.   
+
+    iStatesClient->SetStillQualityLevelIndex( 0 );
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::ESwitchPowerOnWhenVideoPrepared );// here we have to put the correct action
+    assertL( iStatesClient->CountInitComplete() == 1 );
+    }
+
+void CCaeTestRelease::TestPowerOnWhenRecordingL()
+    {
+    // ID: CAE.GEN.VR.POWERON.004
+	//
+    // General
+    // 
+    // Action : Test to turn camera power on when recording.
+	//      
+	// Output : OK.   
+
+    iStatesClient->SetTimeout( 1000000 );
+
+    iStatesClient->SetVideoQualityLevelIndex( 0 );
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::ESwitchPowerOnWhenRecordingVideo );// here we have to put the correct action
+    assertL( iStatesClient->CountInitComplete() == 1 );
+    }
+
+void CCaeTestRelease::TestPowerOffWhenVideoRecordingPreparedL()
+    {
+    // ID: CAE.GEN-VR.POWEROFF.003
+	//
+    // General
+    // 
+    // Action : Test to turn camera power off video recording prepared.
+	//      
+	// Output : OK.   
+
+    iStatesClient->SetVideoQualityLevelIndex( 0 );
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::ESwitchPowerOffWhenVideoPrepared );// here we have to put the correct action
+    }
+
+void CCaeTestRelease::TestPowerOffWhenRecordingL()
+    {
+    // ID: CAE.GEN-VR.POWEROFF.004
+	//
+    // General
+    // 
+    // Action : Test to turn camera power off when recording.
+	//      
+	// Output : OK.   
+
+    iStatesClient->SetTimeout( 1000000 );
+
+    iStatesClient->SetStillQualityLevelIndex( 0 );
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::ESwitchPowerOffWhenRecordingVideo );// here we have to put the correct action
+    }
+
+/********************************************************/
+/*                    VIEW FINDER                       */
+/********************************************************/
+
+void CCaeTestRelease::TestViewFinderStartAndStopQqvgaL()
+    {
+	// CAE.VF.STARTSTOPVIEWFINDER.QQVGA.001
+    //
+    // View Finder
+    // 
+    // Action : Test to start and stop QQVGA view finder when initialization is done.
+	//      
+	// Output : OK.   
+
+    TSize sizeQqvga( KImgWidthQQVGA, KImgHeightQQVGA );
+
+    iStatesClient->SetViewFinderSize( sizeQqvga );
+    iStatesClient->SetTimeout( 10000000 );
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::EStartAndStopVf );
+
+    TReal32 viewFinderFrameFrequency = iStatesClient->ViewFinderFrameFrequency();
+
+    assertL( viewFinderFrameFrequency >= KViewFinderFrameFrequencyMinimum );
+    }
+
+void CCaeTestRelease::TestViewFinderStartAndStopSubqcifL()
+    {
+	// CAE.VF.STARTSTOPVIEWFINDER.SUBQCIF.002
+    //
+    // View Finder
+    // 
+    // Action : Test to start and stop SUBQCIF view finder when initialization is done.
+	//      
+	// Output : OK.   
+
+    TSize sizeSubqcif( KImgWidthSubQCIF, KImgHeightSubQCIF );
+
+    iStatesClient->SetViewFinderSize( sizeSubqcif );
+    iStatesClient->SetTimeout( 10000000 );
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::EStartAndStopVf );
+
+    TReal32 viewFinderFrameFrequency = iStatesClient->ViewFinderFrameFrequency();
+
+    assertL( viewFinderFrameFrequency >= KViewFinderFrameFrequencyMinimum );
+    }
+
+void CCaeTestRelease::TestCroppedViewFinderStartAndStopL()
+    {
+	// CAE.VF.STARTSTOPVIEWFINDER.CROPPED.003
+    //
+    // View Finder
+    // 
+    // Action : Test to start and stop cropped view finder when initialization is done.
+	//      
+	// Output : OK.   
+
+    TSize sizeQqvga( KImgWidthQQVGA, KImgHeightQQVGA );
+
+    iStatesClient->SetViewFinderSize( sizeQqvga );
+    iStatesClient->SetTimeout( 100000 );
+
+    TRAPD( error, iStatesClient->RunTestActionL( CCaeTestStatesClient::EStartAndStopCroppedVf ) );
+    if( error == KErrNoMemory )
+        {
+        User::Leave( error ); // For memory test
+        }
+    assertL( error == KErrNotSupported );
+
+    TReal32 viewFinderFrameFrequency = iStatesClient->ViewFinderFrameFrequency();
+
+    assertL( viewFinderFrameFrequency >= KViewFinderFrameFrequencyMinimum );
+    }
+
+void CCaeTestRelease::TestViewFinderDirectStartAndStopL()
+    {
+	// CAE.VF.STARTSTOPVIEWFINDERDIRECT.001
+    //
+    // View Finder
+    // 
+    // Action : Test to start and stop view finder direct when initialization is done.
+	//      
+	// Output : Leave.  
+    
+    TRAPD( error, iStatesClient->RunTestActionL( CCaeTestStatesClient::EStartAndStopDirectVf ) );
+    if( error == KErrNoMemory )
+        {
+        User::Leave( error ); // For memory test
+        }
+#if (HW_DEVLON)
+    assertL( error != KErrNotSupported );  // Returns error because illegal parameters (NULL)
+#else
+    assertL( error == KErrNotSupported );
+#endif
+    }
+
+void CCaeTestRelease::TestCroppedViewFinderDirectStartAndStopL()
+    {
+	// CAE.VF.STARTSTOPVIEWFINDERDIRECT.002
+    //
+    // View Finder
+    // 
+    // Action : Test to start and stop cropped view finder direct when initialization is done.
+	//      
+	// Output : Leave.  
+    
+    TRAPD( error, iStatesClient->RunTestActionL( CCaeTestStatesClient::EStartAndStopCroppedDirectVf ) );
+    if( error == KErrNoMemory )
+        {
+        User::Leave( error ); // For memory test
+        }
+#if (HW_DEVLON)
+    assertL( error == KErrNotSupported );  // Not supported
+#else
+    assertL( error == KErrNotSupported );
+#endif
+    }
+
+/********************************************************/
+/*              STILL CAPTURE QUALITY LEVEL             */
+/********************************************************/
+
+void CCaeTestRelease::TestCaptureQualityLevel0L()
+    {
+	// ID: CAE.SC.CAPTURESTILL.JPEGVGA90.008
+    //
+    // Group:   Capture
+    // 
+    // Action : Test to prepare still capturing and capture quality level 0 
+    //          image when initialization is done and viewfinder is running.
+	//      
+	// Output : OK.   
+
+    iStatesClient->SetStillQualityLevelIndex( 0 );
+
+    iStatesClient->SetSnapFileName( _L("cae_snap_vga16M.mbm") );
+
+    iStatesClient->SetStillFileName( _L("cae_ql_0_vga90.jpg") );
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::EStartVfPrepareCaptureStillStartAndStopVf );
+    
+    assertL( iStatesClient->CountInitComplete() == 1 );
+    assertL( iStatesClient->CountStillPrepareComplete() == 1 );
+    assertL( iStatesClient->CountSnapImageReady() == 1 );
+    assertL( iStatesClient->CountStillImageReady() == 1 );
+    }
+
+
+void CCaeTestRelease::TestCaptureQualityLevel1L()
+    {
+	// ID: CAE.SC.CAPTURESTILL.JPEGVGA50.009
+
+    // Group:   Capture
+    // 
+    // Action : Test to prepare still capturing and capture quality level 1 
+    //          image when initialization is done and viewfinder is running.
+	//      
+	// Output : OK.   
+
+    iStatesClient->SetStillQualityLevelIndex( 1 );
+    
+    iStatesClient->SetStillFileName( _L("cae_ql_1_vga50.jpg") );
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::EStartVfPrepareCaptureStillStartAndStopVf );
+    }
+
+
+void CCaeTestRelease::TestCaptureQualityLevel2L()
+    {
+	// ID: CAE.SC.CAPTURESTILL.JPEGQQVGA90.010
+
+    // Group:   Capture
+    // 
+    // Action : Test to prepare still capturing and capture quality level 2 
+    //          image when initialization is done and viewfinder is running.
+	//      
+	// Output : OK.   
+
+    iStatesClient->SetStillQualityLevelIndex( 2 );
+    
+    iStatesClient->SetStillFileName( _L("cae_ql_2_qqvga90.jpg") );
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::EStartVfPrepareCaptureStillStartAndStopVf );
+    }
+
+
+/********************************************************/
+/*                    STILL CAPTURE                     */
+/********************************************************/
+
+void CCaeTestRelease::TestCaptureVga16ML()
+    {
+	// ID: CAE.SC.CAPTURESTILL.VGA16M.002
+    //
+    // Group:   Capture
+    // 
+    // Action : Test to setup still capturing and capture VGA 16M  
+    //          image when initialization is done.
+	//      
+	// Output : OK.   
+
+    iStatesClient->SetStillFormat( CCamera::EFormatFbsBitmapColor16M );
+
+    TSize sizeVga( KImgWidthVGA, KImgHeightVGA );
+
+    iStatesClient->SetStillFrameSize( sizeVga );
+
+    iStatesClient->SetStillFileName( _L("cae_vga16M.mbm") );
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::ESpecifiedPrepareAndCaptureStill );
+
+    assertL( iStatesClient->CountInitComplete() == 1 );
+    assertL( iStatesClient->CountStillPrepareComplete() == 1 );
+    assertL( iStatesClient->CountSnapImageReady() == 1 );
+    assertL( iStatesClient->CountStillImageReady() == 1 );
+    }
+
+
+void CCaeTestRelease::TestCaptureVga64KL()
+    {
+	// ID: CAE.SC.CAPTURESTILL.VGA64K.003
+    //
+    // Group:   Capture
+    // 
+    // Action : Test to setup still capturing and capture VGA 64K  
+    //          image when initialization is done.
+	//      
+	// Output : OK.   
+
+    RDebug::Print(_L("XYZ:TestCaptureVga64KL start"));
+
+    iStatesClient->SetStillFormat( CCamera::EFormatFbsBitmapColor64K );
+
+    TSize sizeVga( KImgWidthVGA, KImgHeightVGA );
+
+    iStatesClient->SetStillFrameSize( sizeVga );
+
+    iStatesClient->SetStillFileName( _L("cae_vga64K.mbm") );
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::ESpecifiedPrepareAndCaptureStill );
+
+    assertL( iStatesClient->CountInitComplete() == 1 );
+    assertL( iStatesClient->CountStillPrepareComplete() == 1 );
+    assertL( iStatesClient->CountSnapImageReady() == 1 );
+    assertL( iStatesClient->CountStillImageReady() == 1 );
+    
+    RDebug::Print(_L("XYZ:TestCaptureVga64KL ending"));
+    }
+
+
+void CCaeTestRelease::TestCaptureVga4KL()
+    {
+	// ID: CAE.SC.CAPTURESTILL.VGA4K.004
+    //
+    // Group:   Capture
+    // 
+    // Action : Test to setup still capturing and capture VGA 4K 
+    //          image when initialization is done.
+	//      
+	// Output : OK.   
+
+    iStatesClient->SetStillFormat( CCamera::EFormatFbsBitmapColor4K );
+
+    TSize sizeVga( KImgWidthVGA, KImgHeightVGA );
+
+    iStatesClient->SetStillFrameSize( sizeVga );
+
+    iStatesClient->SetStillFileName( _L("cae_vga4K.mbm") );
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::ESpecifiedPrepareAndCaptureStill );
+
+    assertL( iStatesClient->CountInitComplete() == 1 );
+    assertL( iStatesClient->CountStillPrepareComplete() == 1 );
+    assertL( iStatesClient->CountSnapImageReady() == 1 );
+    assertL( iStatesClient->CountStillImageReady() == 1 );
+    }
+
+void CCaeTestRelease::TestCaptureQqvga16ML()
+    {
+	// ID: CAE.SC.CAPTURESTILL.QQVGA16M.005
+    //
+    // Group:   Capture
+    // 
+    // Action : Test to setup still capturing and capture QQVGA 16M  
+    //          image when initialization is done.
+	//      
+	// Output : OK.   
+
+    iStatesClient->SetStillFormat( CCamera::EFormatFbsBitmapColor16M );
+
+    TSize sizeQqvga( KImgWidthQQVGA, KImgHeightQQVGA );
+
+    iStatesClient->SetStillFrameSize( sizeQqvga );
+
+    iStatesClient->SetSnapFileName( _L("cae_snap_qqvga16M.mbm") );
+
+    iStatesClient->SetStillFileName( _L("cae_qqvga16M.mbm") );
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::ESpecifiedPrepareAndCaptureStill );
+    }
+
+
+void CCaeTestRelease::TestCaptureQqvga64KL()
+    {
+	// ID: CAE.SC.CAPTURESTILL.QQVGA64K.006
+    //
+    // Group:   Capture
+    // 
+    // Action : Test to setup still capturing and capture QQVGA 64K  
+    //          image when initialization is done.
+	//      
+	// Output : OK.   
+
+    iStatesClient->SetStillFormat( CCamera::EFormatFbsBitmapColor64K );
+
+    TSize sizeQqvga( KImgWidthQQVGA, KImgHeightQQVGA );
+
+    iStatesClient->SetStillFrameSize( sizeQqvga );
+
+    iStatesClient->SetStillFileName( _L("cae_qqvga64K.mbm") );
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::ESpecifiedPrepareAndCaptureStill );
+    }
+
+
+void CCaeTestRelease::TestCaptureQqvga4KL()
+    {
+	// ID: CAE.SC.CAPTURESTILL.QQVGA4K.007
+    //
+    // Group:   Capture
+    // 
+    // Action : Test to setup still capturing and capture QQVGA 4K 
+    //          image when initialization is done.
+	//      
+	// Output : OK.   
+
+    iStatesClient->SetStillFormat( CCamera::EFormatFbsBitmapColor4K );
+
+    TSize sizeQqvga( KImgWidthQQVGA, KImgHeightQQVGA );
+
+    iStatesClient->SetStillFrameSize( sizeQqvga );
+
+    iStatesClient->SetStillFileName( _L("cae_qqvga4K.mbm") );
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::ESpecifiedPrepareAndCaptureStill );
+    }
+
+
+void CCaeTestRelease::TestCaptureMp1_16ML()
+    {
+	// ID: CAE.SC.CAPTURESTILL.MP1.16M.011
+    //
+    // Group:   Capture
+    // 
+    // Action : Test to setup still capturing and capture 1MegaPixel 16M  
+    //          image when initialization is done.
+	//      
+    //       ** For Mirage X PROD1**
+    //
+	// Output : OK.   
+
+    iStatesClient->SetStillFormat( CCamera::EFormatFbsBitmapColor16M );
+
+    TSize sizeMp1( KImgWidthMP1, KImgHeightMP1 );
+
+    iStatesClient->SetStillFrameSize( sizeMp1 );
+
+    iStatesClient->SetStillFileName( _L("cae_mp1_16M.mbm") );
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::ESpecifiedPrepareAndCaptureStill );
+
+    assertL( iStatesClient->CountInitComplete() == 1 );
+    assertL( iStatesClient->CountStillPrepareComplete() == 1 );
+    assertL( iStatesClient->CountSnapImageReady() == 1 );
+    assertL( iStatesClient->CountStillImageReady() == 1 );
+    }
+
+
+void CCaeTestRelease::TestCaptureMp1_64KL()
+    {
+	// ID: CAE.SC.CAPTURESTILL.MP1.64K.012
+    //
+    // Group:   Capture
+    // 
+    // Action : Test to setup still capturing and capture 1MegaPixel 64K  
+    //          image when initialization is done.
+	//      
+    //       ** For Mirage X PROD1**
+    //
+	// Output : OK.   
+
+    RDebug::Print(_L("XYZ:TestCaptureMp1_64KL start"));
+
+    iStatesClient->SetStillFormat( CCamera::EFormatFbsBitmapColor64K );
+
+    TSize sizeMp1( KImgWidthMP1, KImgHeightMP1 );
+
+    iStatesClient->SetStillFrameSize( sizeMp1 );
+
+    iStatesClient->SetStillFileName( _L("cae_mp1_64K.mbm") );
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::ESpecifiedPrepareAndCaptureStill );
+
+    assertL( iStatesClient->CountInitComplete() == 1 );
+    assertL( iStatesClient->CountStillPrepareComplete() == 1 );
+    assertL( iStatesClient->CountSnapImageReady() == 1 );
+    assertL( iStatesClient->CountStillImageReady() == 1 );
+    
+    RDebug::Print(_L("XYZ:TestCaptureMp1_64KL ending"));
+    }
+
+
+void CCaeTestRelease::TestCaptureMp1_4KL()
+    {
+	// ID: CAE.SC.CAPTURESTILL.MP1.4K.013
+    //
+    // Group:   Capture
+    // 
+    // Action : Test to setup still capturing and capture 1Mega Pixel 4K 
+    //          image when initialization is done.
+	//      
+    //       ** For Mirage X PROD1**
+    //
+	// Output : OK.   
+
+    iStatesClient->SetStillFormat( CCamera::EFormatFbsBitmapColor4K );
+
+    TSize sizeMp1( KImgWidthMP1, KImgHeightMP1 );
+
+    iStatesClient->SetStillFrameSize( sizeMp1 );
+
+    iStatesClient->SetStillFileName( _L("cae_mp1_4K.mbm") );
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::ESpecifiedPrepareAndCaptureStill );
+
+    assertL( iStatesClient->CountInitComplete() == 1 );
+    assertL( iStatesClient->CountStillPrepareComplete() == 1 );
+    assertL( iStatesClient->CountSnapImageReady() == 1 );
+    assertL( iStatesClient->CountStillImageReady() == 1 );
+    }
+
+void CCaeTestRelease::TestCaptureJpegMp1L()
+    {
+	// ID: CAE.SC.CAPTURESTILL.JPEGMP1.014
+    //
+    // Group:   Capture
+    // 
+    // Action : Test to setup still capturing and capture 1MegaPixel Jpeg 
+    //          image when initialization is done.
+	//      
+    //       ** For Mirage X PROD1**
+    //
+	// Output : OK.   
+
+    iStatesClient->SetStillFormat( CCamera::EFormatJpeg );
+
+    iStatesClient->SetStillCompressionQuality( 50 );
+
+    TSize sizeMp1( KImgWidthMP1, KImgHeightMP1 );
+
+    iStatesClient->SetStillFrameSize( sizeMp1 );
+
+    iStatesClient->SetStillFileName( _L("cae_jpegmp1_50.jpg") );
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::ESpecifiedPrepareAndCaptureStill );
+
+    assertL( iStatesClient->CountInitComplete() == 1 );
+    assertL( iStatesClient->CountStillPrepareComplete() == 1 );
+    assertL( iStatesClient->CountSnapImageReady() == 1 );
+    assertL( iStatesClient->CountStillImageReady() == 1 );
+    }
+
+
+void CCaeTestRelease::TestCaptureMp1M3_16ML()
+    {
+	// ID: CAE.SC.CAPTURESTILL.MP1M3.16M.018
+    //
+    // Group:   Capture
+    // 
+    // Action : Test to setup still capturing and capture 1,3MegaPixel 16M  
+    //          image when initialization is done.
+	//      
+    //       ** For Mirage X PROD2**
+    //
+    // Output : OK.   
+
+    iStatesClient->SetStillFormat( CCamera::EFormatFbsBitmapColor16M );
+
+    TSize sizeMp1M3( KImgWidthMP1M3, KImgHeightMP1M3 );
+
+    iStatesClient->SetStillFrameSize( sizeMp1M3 );
+
+    iStatesClient->SetStillFileName( _L("cae_mp1m3_16M.mbm") );
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::ESpecifiedPrepareAndCaptureStill );
+
+    assertL( iStatesClient->CountInitComplete() == 1 );
+    assertL( iStatesClient->CountStillPrepareComplete() == 1 );
+    assertL( iStatesClient->CountSnapImageReady() == 1 );
+    assertL( iStatesClient->CountStillImageReady() == 1 );
+    }
+
+
+void CCaeTestRelease::TestCaptureMp1M3_64KL()
+    {
+	// ID: CAE.SC.CAPTURESTILL.MP1M3.64K.019
+    //
+    // Group:   Capture
+    // 
+    // Action : Test to setup still capturing and capture 1,3MegaPixel 64K  
+    //          image when initialization is done.
+	//      
+    //       ** For Mirage X PROD2**
+    //
+	// Output : OK.   
+
+    RDebug::Print(_L("XYZ:TestCaptureMp1_64KL start"));
+
+    iStatesClient->SetStillFormat( CCamera::EFormatFbsBitmapColor64K );
+
+    TSize sizeMp1M3( KImgWidthMP1M3, KImgHeightMP1M3 );
+
+    iStatesClient->SetStillFrameSize( sizeMp1M3 );
+
+    iStatesClient->SetStillFileName( _L("cae_mp1m3_64K.mbm") );
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::ESpecifiedPrepareAndCaptureStill );
+
+    assertL( iStatesClient->CountInitComplete() == 1 );
+    assertL( iStatesClient->CountStillPrepareComplete() == 1 );
+    assertL( iStatesClient->CountSnapImageReady() == 1 );
+    assertL( iStatesClient->CountStillImageReady() == 1 );
+    
+    RDebug::Print(_L("XYZ:TestCaptureMp1_64KL ending"));
+    }
+
+
+void CCaeTestRelease::TestCaptureMp1M3_4KL()
+    {
+	// ID: CAE.SC.CAPTURESTILL.MP1M3.4K.020
+    //
+    // Group:   Capture
+    // 
+    // Action : Test to setup still capturing and capture 1,3Mega Pixel 4K 
+    //          image when initialization is done.
+	//      
+    //       ** For Mirage X PROD2**
+    //
+	// Output : OK.   
+
+    iStatesClient->SetStillFormat( CCamera::EFormatFbsBitmapColor4K );
+
+    TSize sizeMp1M3( KImgWidthMP1M3, KImgHeightMP1M3 );
+
+    iStatesClient->SetStillFrameSize( sizeMp1M3 );
+
+    iStatesClient->SetStillFileName( _L("cae_mp1m3_4K.mbm") );
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::ESpecifiedPrepareAndCaptureStill );
+
+    assertL( iStatesClient->CountInitComplete() == 1 );
+    assertL( iStatesClient->CountStillPrepareComplete() == 1 );
+    assertL( iStatesClient->CountSnapImageReady() == 1 );
+    assertL( iStatesClient->CountStillImageReady() == 1 );
+    }
+
+void CCaeTestRelease::TestCaptureJpegMp1M3L()
+    {
+	// ID: CAE.SC.CAPTURESTILL.JPEGMP1M3.021
+    //
+    // Group:   Capture
+    // 
+    // Action : Test to setup still capturing and capture 1,3MegaPixel Jpeg 
+    //          image when initialization is done.
+	//      
+    //       ** For Mirage X PROD2**
+    //
+	// Output : OK.   
+
+    iStatesClient->SetStillFormat( CCamera::EFormatJpeg );
+
+    iStatesClient->SetStillCompressionQuality( 50 );
+
+    TSize sizeMp1M3( KImgWidthMP1M3, KImgHeightMP1M3 );
+
+    iStatesClient->SetStillFrameSize( sizeMp1M3 );
+
+    iStatesClient->SetStillFileName( _L("cae_jpegmp1m3_50.jpg") );
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::ESpecifiedPrepareAndCaptureStill );
+
+    assertL( iStatesClient->CountInitComplete() == 1 );
+    assertL( iStatesClient->CountStillPrepareComplete() == 1 );
+    assertL( iStatesClient->CountSnapImageReady() == 1 );
+    assertL( iStatesClient->CountStillImageReady() == 1 );
+    }
+
+
+void CCaeTestRelease::TestCaptureMp2_16ML()
+    {
+	// ID: CAE.SC.CAPTURESTILL.MP2.16M.025
+    //
+    // Group:   Capture
+    // 
+    // Action : Test to setup still capturing and capture 2 MegaPixel 16M  
+    //          image when initialization is done.
+	//      
+    //       ** For UNAGI 2M PROD7 **
+    //
+    // Output : OK.   
+
+    iStatesClient->SetStillFormat( CCamera::EFormatFbsBitmapColor16M );
+
+    TSize sizeMp2( KImgWidthMP2, KImgHeightMP2 );
+
+    iStatesClient->SetStillFrameSize( sizeMp2 );
+
+    iStatesClient->SetStillFileName( _L("cae_mp2_16M.mbm") );
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::ESpecifiedPrepareAndCaptureStill );
+
+    assertL( iStatesClient->CountInitComplete() == 1 );
+    assertL( iStatesClient->CountStillPrepareComplete() == 1 );
+    assertL( iStatesClient->CountSnapImageReady() == 1 );
+    assertL( iStatesClient->CountStillImageReady() == 1 );
+    }
+
+
+void CCaeTestRelease::TestCaptureMp2_64KL()
+    {
+	// ID: CAE.SC.CAPTURESTILL.MP2.64K.026
+    //
+    // Group:   Capture
+    // 
+    // Action : Test to setup still capturing and capture 2 MegaPixel 64K  
+    //          image when initialization is done.
+	//      
+    //       ** For UNAGI 2M PROD7 **
+    //
+	// Output : OK.   
+
+    RDebug::Print(_L("XYZ:TestCaptureMp2_64KL start"));
+
+    iStatesClient->SetStillFormat( CCamera::EFormatFbsBitmapColor64K );
+
+    TSize sizeMp2( KImgWidthMP2, KImgHeightMP2 );
+
+    iStatesClient->SetStillFrameSize( sizeMp2 );
+
+    iStatesClient->SetStillFileName( _L("cae_mp2_64K.mbm") );
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::ESpecifiedPrepareAndCaptureStill );
+
+    assertL( iStatesClient->CountInitComplete() == 1 );
+    assertL( iStatesClient->CountStillPrepareComplete() == 1 );
+    assertL( iStatesClient->CountSnapImageReady() == 1 );
+    assertL( iStatesClient->CountStillImageReady() == 1 );
+    
+    RDebug::Print(_L("XYZ:TestCaptureMp2_64KL ending"));
+    }
+
+
+void CCaeTestRelease::TestCaptureMp2_4KL()
+    {
+	// ID: CAE.SC.CAPTURESTILL.MP2.4K.027
+    //
+    // Group:   Capture
+    // 
+    // Action : Test to setup still capturing and capture 2 Mega Pixel 4K 
+    //          image when initialization is done.
+	//      
+    //       ** For UNAGI 2M PROD7 **
+    //
+	// Output : OK.   
+
+    iStatesClient->SetStillFormat( CCamera::EFormatFbsBitmapColor4K );
+
+    TSize sizeMp2( KImgWidthMP2, KImgHeightMP2 );
+
+    iStatesClient->SetStillFrameSize( sizeMp2 );
+
+    iStatesClient->SetStillFileName( _L("cae_mp2_4K.mbm") );
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::ESpecifiedPrepareAndCaptureStill );
+
+    assertL( iStatesClient->CountInitComplete() == 1 );
+    assertL( iStatesClient->CountStillPrepareComplete() == 1 );
+    assertL( iStatesClient->CountSnapImageReady() == 1 );
+    assertL( iStatesClient->CountStillImageReady() == 1 );
+    }
+
+void CCaeTestRelease::TestCaptureJpegMp2L()
+    {
+	// ID: CAE.SC.CAPTURESTILL.JPEG.MP2.028
+    //
+    // Group:   Capture
+    // 
+    // Action : Test to setup still capturing and capture 2 MegaPixel Jpeg 
+    //          image when initialization is done.
+	//      
+    //       ** For UNAGI 2M PROD7 **
+    //
+	// Output : OK.   
+
+    iStatesClient->SetStillFormat( CCamera::EFormatJpeg );
+
+    iStatesClient->SetStillCompressionQuality( 50 );
+
+    TSize sizeMp2( KImgWidthMP2, KImgHeightMP2 );
+
+    iStatesClient->SetStillFrameSize( sizeMp2 );
+
+    iStatesClient->SetStillFileName( _L("cae_jpegmp2_50.jpg") );
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::ESpecifiedPrepareAndCaptureStill );
+
+    assertL( iStatesClient->CountInitComplete() == 1 );
+    assertL( iStatesClient->CountStillPrepareComplete() == 1 );
+    assertL( iStatesClient->CountSnapImageReady() == 1 );
+    assertL( iStatesClient->CountStillImageReady() == 1 );
+    }
+
+void CCaeTestRelease::TestCaptureExifMp2L()
+    {
+	// ID: CAE.SC.CAPTURESTILL.EXIF.MP2.029
+    //
+    // Group:   Capture
+    // 
+    // Action : Test to setup still capturing and capture 2 MegaPixel Exif 
+    //          image when initialization is done.
+	//      
+    //       ** For UNAGI 2M PROD7 **
+    //
+	// Output : OK.   
+
+    iStatesClient->SetStillFormat( CCamera::EFormatExif );
+
+    iStatesClient->SetStillCompressionQuality( 95 );
+
+    TSize sizeMp2( KImgWidthMP2, KImgHeightMP2 );
+
+    iStatesClient->SetStillFrameSize( sizeMp2 );
+
+    iStatesClient->SetStillFileName( _L("cae_exifmp2_95.jpg") );
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::ESpecifiedPrepareAndCaptureStill );
+
+    assertL( iStatesClient->CountInitComplete() == 1 );
+    assertL( iStatesClient->CountStillPrepareComplete() == 1 );
+    assertL( iStatesClient->CountSnapImageReady() == 1 );
+    assertL( iStatesClient->CountStillImageReady() == 1 );
+    }
+
+void CCaeTestRelease::TestCaptureExifSVGAL()
+    {
+	// ID: CAE.SC.CAPTURESTILL.EXIF.SVGA.030
+    //
+    // Group:   Capture
+    // 
+    // Action : Test to setup still capturing and capture SVGA (800x600) Exif 
+    //          image when initialization is done.
+	//      
+    //       ** For UNAGI 2M PROD7 **
+    //
+	// Output : OK.   
+
+    iStatesClient->SetStillFormat( CCamera::EFormatExif );
+
+    iStatesClient->SetStillCompressionQuality( 30 );
+
+    TSize sizeSVGA( KImgWidthSVGA, KImgHeightSVGA );
+
+    iStatesClient->SetStillFrameSize( sizeSVGA );
+
+    iStatesClient->SetStillFileName( _L("cae_exif_svga_30.jpg") );
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::ESpecifiedPrepareAndCaptureStill );
+
+    assertL( iStatesClient->CountInitComplete() == 1 );
+    assertL( iStatesClient->CountStillPrepareComplete() == 1 );
+    assertL( iStatesClient->CountSnapImageReady() == 1 );
+    assertL( iStatesClient->CountStillImageReady() == 1 );
+    }
+
+void CCaeTestRelease::TestCaptureCodecL()
+    {
+	// ID: CAE.SC.CAPTURESTILL.CODEC.031
+    //
+    // Group:   Capture
+    // 
+    // Action : Test to setup still capturing and capture an image 
+    //          when codec has been set to default.
+	//      
+    //
+	// Output : OK.   
+
+    iSettingsClient->SetStillFormat( CCamera::EFormatExif );
+
+    iSettingsClient->SetStillFileName( _L("cae_exif_codec.jpg") );
+   
+    iSettingsClient->SetImageCodecs( KNullUid, KNullUid );
+
+    iSettingsClient->RunTestActionL( CCaeTestSettingsClient::ESetJpegCodecWhenStillPrepared );
+
+    assertL( iSettingsClient->CountInitComplete() == 1 );
+    assertL( iSettingsClient->CountStillPrepareComplete() == 1 );
+    assertL( iSettingsClient->CountSnapImageReady() == 1 );
+    assertL( iSettingsClient->CountStillImageReady() == 1 );
+    }
+
+
+void CCaeTestRelease::TestCaptureCodec2L()
+    {
+	// ID: CAE.SC.CAPTURESTILL.CODEC.032
+    //
+    // Group:   Capture
+    // 
+    // Action : Test to setup still capturing and capture an image 
+    //          when codec has been set to specific uid.
+	//      
+    //
+	// Output : OK.   
+
+    iSettingsClient->SetStillFormat( CCamera::EFormatExif );
+
+    iSettingsClient->SetStillFileName( _L("cae_exif_codec.jpg") );
+    
+    #if ( SYMBIAN_CODECS )
+    iSettingsClient->SetImageCodecs( TUid::Uid( KSymbianJpegDecoderValue ), TUid::Uid( KSymbianJpegEncoderValue ) );
+    #else
+    iSettingsClient->SetImageCodecs( TUid::Uid( KOptimizedJpegDecoderValue ), TUid::Uid( KOptimizedJpegEncoderValue ) );
+    #endif
+    
+    iSettingsClient->RunTestActionL( CCaeTestSettingsClient::ESetJpegCodecWhenStillPrepared );
+
+    assertL( iSettingsClient->CountInitComplete() == 1 );
+    assertL( iSettingsClient->CountStillPrepareComplete() == 1 );
+    assertL( iSettingsClient->CountSnapImageReady() == 1 );
+    assertL( iSettingsClient->CountStillImageReady() == 1 );
+    }
+
+
+void CCaeTestRelease::TestCaptureCaptureL()
+    {
+	// ID:      CAE.SC.CAPTURECAPTURE.001
+    //
+    // Group:   Capture
+    // 
+    // Action : Capture photo two times successively
+	//      
+	// Output : No leave.   
+
+    iStatesClient->SetStillQualityLevelIndex( 0 );
+
+    iStatesClient->SetStillFileName( _L("cae_capturecapture_ql0.jpg") );
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::ECaptureCapture );
+
+    assertL( iStatesClient->CountInitComplete() == 1 );
+    assertL( iStatesClient->CountStillPrepareComplete() == 1 );
+    assertL( iStatesClient->CountSnapImageReady() == 2 );
+    assertL( iStatesClient->CountStillImageReady() == 2 );
+    }
+
+
+void CCaeTestRelease::TestCaptureCaptureSpecPrepL()
+    {
+	// ID:      CAE.SC.CAPTURECAPTURE.002
+    //
+    // Group:   Capture
+    // 
+    // Action : Capture photo two times successively
+	//      
+	// Output : No leave.   
+
+    iStatesClient->SetStillFormat( CCamera::EFormatFbsBitmapColor16M );
+
+    TSize sizeQqvga( KImgWidthVGA, KImgHeightVGA );
+
+    iStatesClient->SetStillFrameSize( sizeQqvga );
+
+    iStatesClient->SetStillFileName( _L("cae_capturecapture_vga16M.mbm") );
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::ESpecPrepCaptureCapture );
+
+    assertL( iStatesClient->CountInitComplete() == 1 );
+    assertL( iStatesClient->CountStillPrepareComplete() == 1 );
+    assertL( iStatesClient->CountSnapImageReady() == 2 );
+    assertL( iStatesClient->CountStillImageReady() == 2 );
+    }
+
+void CCaeTestRelease::TestCaptureAfterPowerOffL()
+    {
+	// ID: CAE.SC.CAPTURESTILL.POWEROFF.001
+    //
+    // Group:   Capture
+    // 
+    // Action : Test to prepare still capturing and capture Vga Exif image 
+    //          image after poweroff.
+	//      
+	// Output : No leave
+
+    TSize sizeVga( KImgWidthVGA, KImgHeightVGA );
+
+    iStatesClient->SetStillFrameSize( sizeVga );
+    
+    iStatesClient->SetStillFormat( CCamera::EFormatExif );
+
+    //iStatesClient->SetSnapFileName( _L("cae_snap_1_8_vga_poweroff.mbm") );
+
+    iStatesClient->SetSnapImageSize( TSize( 44, 52 ) );
+
+    iStatesClient->SetStillFileName( _L("cae_snap_1_8_vga_poweroff.jpg") );
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::ECaptureStillAfterPowerOff );
+
+    assertL( iStatesClient->CountInitComplete() == 1 );
+    assertL( iStatesClient->CountStillPrepareComplete() == 1 );
+    assertL( iStatesClient->CountSnapImageReady() == 0 );
+    assertL( iStatesClient->CountStillImageReady() == 0 );
+    }
+
+
+/********************************************************/
+/*              PREPARE STILL CAPTURE                   */
+/********************************************************/
+
+void CCaeTestRelease::TestPrepareStillCapture0L()
+    {
+	// ID: CAE.SC.PREPARESTILLCAPTUREL.001
+    //
+    // Group:   Capture
+    // 
+    // Action : Prepare the engine for still image capture on specified quality level. 
+    //          Initialization is done.
+	//      
+	// Output : OK.   
+
+    iStatesClient->SetStillQualityLevelIndex( 0 );
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::EPrepareStillCapturing );
+    }
+
+void CCaeTestRelease::TestPrepareStillCapture1L()
+    {
+	// ID: CAE.SC.PREPARESTILLCAPTUREL.002
+    //
+    // Group:   Capture
+    // 
+    // Action : Prepare the engine for still image capture on specified quality level. 
+    //          Initialization is done.
+	//      
+	// Output : OK.   
+
+    iStatesClient->SetStillQualityLevelIndex( 1 );
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::EPrepareStillCapturing );
+    }
+
+void CCaeTestRelease::TestPrepareStillCapture2L()
+    {
+	// ID: CAE.SC.PREPARESTILLCAPTUREL.003
+    //
+    // Group:   Capture
+    // 
+    // Action : Prepare the engine for still image capture on specified quality level. 
+    //          Initialization is done.
+	//      
+	// Output : OK.   
+
+    iStatesClient->SetStillQualityLevelIndex( 0 );
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::EPrepareStillCapturing );
+    }
+
+void CCaeTestRelease::TestPrepareStillCapture0WhenPreparedL()
+    {
+	// ID: CAE.SC.PREPARESTILLCAPTUREL.004
+    //
+    // Group:   Capture
+    // 
+    // Action : Prepare the engine for still image capture on specified quality 
+    //          level when already prepared.
+	//      
+	// Output : OK.   
+
+    iStatesClient->SetStillQualityLevelIndex( 0 );
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::EPrepareStillCapturingWhenPrepared );//we have to put correct action
+    }
+
+void CCaeTestRelease::TestSpecPrepareSCSupportedFormatWhenInitializedL()
+    {
+	// ID: CAE.SC.PREPARESTILLCAPTUREL.007
+    //
+    // Group:   Capture
+    // 
+    // Action : Set still image capturing format to a format supported by Camera API implementation. 
+	//          Initialization is done.
+    //
+	// Output : OK.   
+
+    iStatesClient->SetStillFormat( CCamera::EFormatFbsBitmapColor16M );
+
+    TSize sizeVga( KImgWidthVGA, KImgHeightVGA );
+
+    iStatesClient->SetStillFrameSize( sizeVga );
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::ESpecifiedPrepareStill );//verified if is correct action
+    }
+
+/********************************************************/
+/*           STILL CAPTURE ENGINE INITIALIZED           */
+/********************************************************/
+
+void CCaeTestRelease::TestCaptureStillWhenEngineInitializedL()
+    {
+	// ID: CAE.SC.CAPTURESTILL.001
+    //
+    // Group:   Capture
+    // 
+    // Action : Capture still image. Engine initialization is done.
+	//      
+	// Output : Leave.   
+
+    TRAPD( error, iStatesClient->RunTestActionL( CCaeTestStatesClient::ECaptureStillWhenEngineInitialized ) );// verified if is correct action
+    if( error == KErrNoMemory )
+        {
+        User::Leave( error ); // For memory test
+        }
+    assertL( error != KErrNone );
+    }
+
+
+/********************************************************/
+/*                    STILL BURST CAPTURE               */
+/********************************************************/
+
+void CCaeTestRelease::TestCaptureStillBurst3L()
+    {
+	// ID: CAE.SC.CAPTURESTILLBURST.3.001
+    //
+    // Group:   Capture
+    // 
+    // Action : Test to prepare still capturing burst mode and capture three  
+    //          images in a burst when initialization is done.
+	//      
+	// Output : OK.   
+
+    const TInt KStillBurstLength = 3;
+
+    iStatesClient->SetStillQualityLevelIndex( 0 );
+
+    iStatesClient->SetSnapFileName( _L("cae_snap_vga16M_burst3.mbm") );
+
+    iStatesClient->SetStillFileName( _L("cae_vga16M_burst3.jpg") );
+
+    iStatesClient->SetStillBurstLength( KStillBurstLength );
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::EPrepareAndCaptureStillBurst );
+
+    assertL( iStatesClient->CountInitComplete() == 1 );
+    assertL( iStatesClient->CountStillPrepareComplete() == 1 );
+    assertL( iStatesClient->CountStillBurstCaptureMoment() == KStillBurstLength );
+    assertL( iStatesClient->CountSnapImageReady() == KStillBurstLength );
+    assertL( iStatesClient->CountStillImageReady() == KStillBurstLength );
+    assertL( iStatesClient->CountStillBurstComplete() == 1 );
+    }
+
+void CCaeTestRelease::TestCaptureStillBurst0L()
+    {
+	// ID: CAE.SC.CAPTURESTILLBURST.0.002
+    //
+    // Group:   Capture
+    // 
+    // Action : Test to prepare still capturing burst mode and capture  
+    //          images in a burst when BurstLength has to small value, 
+    //          when initialization is done.
+	//      
+	// Output : OK.   
+
+    const TInt KStillBurstLength = 0;
+
+    iStatesClient->SetStillQualityLevelIndex( 0 );
+
+    iStatesClient->SetStillBurstLength( KStillBurstLength );
+
+    TRAPD( error, iStatesClient->RunTestActionL( CCaeTestStatesClient::EPrepareAndCaptureStillBurst ) );
+    if( error == KErrNoMemory )
+        {
+        User::Leave( error ); // For memory test
+        }
+    assertL( error == KErrArgument );
+
+    assertL( iStatesClient->CountInitComplete() == 1 );
+    assertL( iStatesClient->CountStillPrepareComplete() == 1 );
+    assertL( iStatesClient->CountStillBurstCaptureMoment() == KStillBurstLength );    
+    assertL( iStatesClient->CountSnapImageReady() == KStillBurstLength );
+    assertL( iStatesClient->CountStillImageReady() == KStillBurstLength );
+    assertL( iStatesClient->CountStillBurstComplete() == 0 );
+    }
+
+void CCaeTestRelease::TestCaptureStillBurst100L()
+    {
+	// ID: CAE.SC.CAPTURESTILLBURST.100.003
+    //
+    // Group:   Capture
+    // 
+    // Action : Test to prepare still capturing burst mode and capture  
+    //          images in a burst when BurstLength has to big value, 
+    //          when initialization is done.
+	//      
+	// Output : Leave.   
+
+    const TInt KStillBurstLength = 100;
+
+    iStatesClient->SetStillQualityLevelIndex( 0 );
+
+    iStatesClient->SetStillBurstLength( KStillBurstLength );
+
+	TInt error = KErrNone;
+	TRAP( error, iStatesClient->RunTestActionL( CCaeTestStatesClient::EPrepareAndCaptureStillBurst ) );
+    assertL( error == KErrNoMemory );
+
+    assertL( iStatesClient->CountInitComplete() == 1 );
+    assertL( iStatesClient->CountStillPrepareComplete() == 1 );
+
+    // assertL( iStatesClient->CountStillBurstComplete() == 1 );
+    }
+
+void CCaeTestRelease::TestCancelCaptureStillBurst3L()
+    {
+	// ID: CAE.SC.CAPTURESTILLBURST.CANCEL.004
+    //
+    // Group:   Capture
+    // 
+    // Action : Test to prepare still capturing burst mode and capture three  
+    //          images in a burst and cancel still burst, initialization is done.
+	//      
+	// Output : OK.   
+
+    const TInt KStillBurstLength = 3;
+
+    iStatesClient->SetStillQualityLevelIndex( 0 );
+
+    iStatesClient->SetSnapFileName( _L("cae_snap_vga16M_burst_cancel.mbm") );
+
+    iStatesClient->SetStillFileName( _L("cae_vga16M_burst_cancel.jpg") );
+
+    iStatesClient->SetStillBurstLength( KStillBurstLength );
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::EPrepareAndCaptureAndCancelStillBurst );
+
+    assertL( iStatesClient->CountInitComplete() == 1 );
+    assertL( iStatesClient->CountStillPrepareComplete() == 1 );
+    assertL( iStatesClient->CountStillBurstCaptureMoment() == 1 ); // 3.1 and later
+    //assertL( iStatesClient->CountStillBurstCaptureMoment() == 0 ); // 3.0 and earlier 
+    assertL( iStatesClient->CountSnapImageReady() == 0 );
+    assertL( iStatesClient->CountStillImageReady() == 0 );
+    assertL( iStatesClient->CountStillBurstComplete() == 0 );
+    }
+
+void CCaeTestRelease::TestStopCaptureStillBurstAfter2L()
+    {
+	// ID: CAE.SC.CAPTURESTILLBURST.STOP2.005
+    //
+    // Group:   Capture
+    // 
+    // Action : Test to prepare still capturing burst mode and capture three  
+    //          images in a burst and stop still burst, when initialization is done.
+	//      
+	// Output : OK.   
+
+    const TInt KStillBurstLength = 5;
+    const TInt KStillBurstStoppedLength = 2;
+
+    iStatesClient->SetStillQualityLevelIndex( 0 );
+
+    iStatesClient->SetSnapFileName( _L("cae_snap_vga16M_burst_stop.mbm") );
+
+    iStatesClient->SetStillFileName( _L("cae_vga16M_burst_stop.jpg") );
+
+    iStatesClient->SetStillBurstLength( KStillBurstLength );
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::EPrepareAndCaptureAndStopStillBurst );
+
+    assertL( iStatesClient->CountInitComplete() == 1 );
+    assertL( iStatesClient->CountStillPrepareComplete() == 1 );
+    assertL( iStatesClient->CountStillBurstCaptureMoment() == KStillBurstStoppedLength + 1 );
+    assertL( iStatesClient->CountSnapImageReady() == KStillBurstStoppedLength );
+    assertL( iStatesClient->CountStillImageReady() == KStillBurstStoppedLength );
+    assertL( iStatesClient->CountStillBurstComplete() == 1 );
+    }
+
+void CCaeTestRelease::TestSpecPrepCaptureStillBurst3L()
+    {
+	// ID: CAE.SC.CAPTURESTILLBURST.3.006
+    //
+    // Group:   Capture
+    // 
+    // Action : Test to prepare still capturing burst mode and capture three  
+    //          images in a burst when initialization is done.
+    //          Preparation is done using explicitly specified image format parameters.
+	//      
+	// Output : OK.   
+
+    const TInt KStillBurstLength = 3;
+
+    iStatesClient->SetStillFormat( CCamera::EFormatFbsBitmapColor16M );
+
+    TSize sizevga( KImgWidthVGA, KImgHeightVGA );
+
+    iStatesClient->SetStillFrameSize( sizevga );
+
+    iStatesClient->SetSnapFileName( _L("cae_snap_vga16M_spburst3.mbm") );
+
+    iStatesClient->SetStillFileName( _L("cae_vga16M_spburst3.mbm") );
+
+    iStatesClient->SetStillBurstLength( KStillBurstLength );
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::ESpecPrepAndCaptureStillBurst );
+
+    assertL( iStatesClient->CountInitComplete() == 1 );
+    assertL( iStatesClient->CountStillPrepareComplete() == 1 );
+    assertL( iStatesClient->CountStillBurstCaptureMoment() == KStillBurstLength );
+    assertL( iStatesClient->CountSnapImageReady() == KStillBurstLength );
+    assertL( iStatesClient->CountStillImageReady() == KStillBurstLength );
+    assertL( iStatesClient->CountStillBurstComplete() == 1 );
+    }
+
+void CCaeTestRelease::TestCaptureStillBurstInterval0L()
+    {
+	// ID: CAE.SC.CAPTURESTILLBURSTINTERVAL.0.001
+    //
+    // Group:   Capture
+    // 
+    // Action : Test to prepare still capturing burst mode, 
+    //          SetStillBurstCaptureIntervalL, StillBurstCaptureInterval 
+    //          and capture three images in a burst when initialization is done.
+	//      
+	// Output : Leave.   
+
+    const TInt KStillBurstLength = 3;
+
+    iSettingsClient->SetStillQualityLevelIndex( 0 );
+
+    iSettingsClient->SetSnapFileName( _L("cae_snap_vga16M_burst_intvl_0.mbm") );
+
+    iSettingsClient->SetStillFileName( _L("cae_vga16M_burst_intvl_0.jpg") );
+
+    iSettingsClient->SetStillBurstLength( KStillBurstLength );
+    
+    TTimeIntervalMicroSeconds burstInterval( 0 );
+    
+    iSettingsClient->SetStillBurstCaptureInterval( burstInterval );
+
+    iSettingsClient->RunTestActionL( CCaeTestStatesClient::EPrepareAndSetStillBurstCaptureInterval );
+
+    assertL( iSettingsClient->CountInitComplete() == 1 );
+    assertL( iSettingsClient->CountStillPrepareComplete() == 1 );
+    assertL( iSettingsClient->CountStillBurstCaptureMoment() == KStillBurstLength );
+    assertL( iSettingsClient->CountSnapImageReady() == KStillBurstLength );
+    assertL( iSettingsClient->CountStillImageReady() == KStillBurstLength );
+    assertL( iSettingsClient->CountStillBurstComplete() == 1 );
+    }
+
+void CCaeTestRelease::TestCaptureStillBurstInterval1000000L()
+    {
+	// ID: CAE.SC.CAPTURESTILLBURSTINTERVAL.1000000.002
+    //
+    // Group:   Capture
+    // 
+    // Action : Test to prepare still capturing burst mode,
+    //          SetStillBurstCaptureIntervalL, StillBurstCaptureInterval  
+    //          and capture three images in a burst, when initialization is done.
+	//      
+	// Output : OK.   
+
+    const TInt KStillBurstLength = 3;
+
+    iSettingsClient->SetStillQualityLevelIndex( 0 );
+
+    iSettingsClient->SetSnapFileName( _L("cae_snap_vga16M_burst_intvl_1000000.mbm") );
+
+    iSettingsClient->SetStillFileName( _L("cae_vga16M_burst_intvl_1000000.jpg") );
+
+    iSettingsClient->SetStillBurstLength( KStillBurstLength );
+   
+    TTimeIntervalMicroSeconds burstInterval( 1000000 );
+    
+    iSettingsClient->SetStillBurstCaptureInterval( burstInterval );
+
+    iSettingsClient->RunTestActionL( CCaeTestStatesClient::EPrepareAndSetStillBurstCaptureInterval );
+
+    assertL( iSettingsClient->CountInitComplete() == 1 );
+    assertL( iSettingsClient->CountStillPrepareComplete() == 1 );
+    assertL( iSettingsClient->CountStillBurstCaptureMoment() == KStillBurstLength );
+    assertL( iSettingsClient->CountSnapImageReady() == KStillBurstLength );
+    assertL( iSettingsClient->CountStillImageReady() == KStillBurstLength );
+    assertL( iSettingsClient->CountStillBurstComplete() == 1 );
+    }
+
+void CCaeTestRelease::TestCaptureStillBurstIntervalM1L()
+    {
+	// ID: CAE.SC.CAPTURESTILLBURSTINTERVAL.M1.003
+    //
+    // Group:   Capture
+    // 
+    // Action : Test to prepare still capturing burst mode,
+    //          SetStillBurstCaptureIntervalL, StillBurstCaptureInterval  
+    //          and capture three images in a burst, when initialization is done.
+	//      
+	// Output : Leave.   
+
+    const TInt KStillBurstLength = 3;
+
+    iSettingsClient->SetStillQualityLevelIndex( 0 );
+
+    iSettingsClient->SetStillBurstLength( KStillBurstLength );
+   
+    TTimeIntervalMicroSeconds burstInterval( -1 );
+    
+    iSettingsClient->SetStillBurstCaptureInterval( burstInterval );
+
+    TRAPD( error, iSettingsClient->RunTestActionL( CCaeTestStatesClient::EPrepareAndSetStillBurstCaptureInterval ) );
+    if( error == KErrNoMemory )
+        {
+        User::Leave( error ); // For memory test
+        }
+    assertL( error == KErrArgument );
+
+    assertL( iSettingsClient->CountInitComplete() == 1 );
+    assertL( iSettingsClient->CountStillPrepareComplete() == 1 );
+    assertL( iSettingsClient->CountStillBurstCaptureMoment() == 0 );
+    assertL( iSettingsClient->CountSnapImageReady() == 0 );
+    assertL( iSettingsClient->CountStillImageReady() == 0 );
+    assertL( iSettingsClient->CountStillBurstComplete() == 0 );
+    }
+
+void CCaeTestRelease::TestCaptureStillBurstExif3L()
+    {
+	// ID: CAE.SC.CAPTURESTILLBURSTEXIF.3.001
+    //
+    // Group:   Capture
+    // 
+    // Action : Test to prepare still capturing burst mode and capture three  
+    //          VGA Exif images in a burst when initialization is done.
+	//      
+	// Output : OK.   
+
+    const TInt KStillBurstLength = 3;
+
+     TSize sizeVga( KImgWidthVGA, KImgHeightVGA );
+
+    iStatesClient->SetStillFrameSize( sizeVga );
+    
+    iStatesClient->SetStillFormat( CCamera::EFormatExif );
+
+    iStatesClient->SetSnapFileName( _L("cae_snap_burst3_exif.mbm") );
+
+    iStatesClient->SetStillFileName( _L("cae_burst3_exif.jpg") );
+
+    iStatesClient->SetStillBurstLength( KStillBurstLength );
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::EPrepareAndCaptureStillBurstExif );
+
+    assertL( iStatesClient->CountInitComplete() == 1 );
+    assertL( iStatesClient->CountStillPrepareComplete() == 1 );
+    assertL( iStatesClient->CountSnapImageReady() == KStillBurstLength );
+    assertL( iStatesClient->CountStillImageReady() == KStillBurstLength );
+
+    assertL( iStatesClient->CountStillBurstCaptureMoment() == KStillBurstLength );
+    assertL( iStatesClient->CountStillBurstComplete() == 1 );
+    }
+
+
+void CCaeTestRelease::TestCaptureStillBurstExif6L()
+    {
+	// ID: CAE.SC.CAPTURESTILLBURSTEXIF.6.002
+    //
+    // Group:   Capture
+    // 
+    // Action : Test to prepare still capturing burst mode and capture six  
+    //          Exif images in a burst when initialization is done. Uses default
+    //          image resolution.
+	//      
+	// Output : OK.   
+
+    const TInt KStillBurstLength = 6;
+
+    iStatesClient->SetStillFormat( CCamera::EFormatExif );
+
+    iStatesClient->SetSnapFileName( _L("cae_snap_burst6_exif.mbm") );
+
+    iStatesClient->SetStillFileName( _L("cae_burst6_exif.jpg") );
+
+    iStatesClient->SetStillBurstLength( KStillBurstLength );
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::EPrepareAndCaptureStillBurstExif );
+
+    assertL( iStatesClient->CountInitComplete() == 1 );
+    assertL( iStatesClient->CountStillPrepareComplete() == 1 );
+    assertL( iStatesClient->CountSnapImageReady() == KStillBurstLength );
+    assertL( iStatesClient->CountStillImageReady() == KStillBurstLength );
+    assertL( iStatesClient->CountViewFinderFrameReady() == 0 );
+
+    assertL( iStatesClient->CountStillBurstCaptureMoment() == KStillBurstLength );
+    assertL( iStatesClient->CountStillBurstComplete() == 1 );
+    }
+
+void CCaeTestRelease::TestCaptureStillBurstExif6NSL()
+    {
+	// ID: CAE.SC.CAPTURESTILLBURSTEXIF.6.006
+    //
+    // Group:   Capture
+    // 
+    // Action : Test to prepare still capturing burst mode and capture six  
+    //          Exif images in a burst when initialization is done. Uses default
+    //          image resolution. Test will not stop on errors in call-backs
+    //          and this will test the completeStillBurst() call if run out of memory.
+	//          in cppUnit memory tests.
+	//      
+	// Output : OK.   
+
+    const TInt KStillBurstLength = 6;
+
+    iStatesClient->SetStillFormat( CCamera::EFormatExif );
+
+    iStatesClient->SetSnapFileName( _L("cae_snap_burst6_exif.mbm") );
+
+    iStatesClient->SetStillFileName( _L("cae_burst6_exif.jpg") );
+
+    iStatesClient->SetStillBurstLength( KStillBurstLength );
+
+    iStatesClient->SetStopOnErrorInMcaeoSnapImageReady( EFalse );
+
+	iStatesClient->SetStopOnErrorInMcaeoStillImageReady( EFalse );
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::EPrepareAndCaptureStillBurstExif );
+
+    assertL( iStatesClient->CountInitComplete() == 1 );
+    assertL( iStatesClient->CountStillPrepareComplete() == 1 );
+    assertL( iStatesClient->CountSnapImageReady() == KStillBurstLength );
+    assertL( iStatesClient->CountStillImageReady() == KStillBurstLength );
+    assertL( iStatesClient->CountViewFinderFrameReady() == 0 );
+
+    assertL( iStatesClient->CountStillBurstCaptureMoment() == KStillBurstLength );
+    assertL( iStatesClient->CountStillBurstComplete() == 1 );
+    }
+
+
+void CCaeTestRelease::TestCaptureStillBurstExif6_ThumbnailL()
+    {
+	// ID: CAE.SC.CAPTURESTILLBURSTEXIF.6.007
+    //
+    // Group:   Capture
+    // 
+    // Action : Test to prepare still capturing burst mode and capture six  
+    //          Exif images in a burst when initialization is done. Uses default
+    //          image resolution. Exif image thumbnails are decoded to snap images.
+	//      
+	// Output : OK.   
+
+    const TInt KStillBurstLength = 6;
+
+    iStatesClient->SetStillFormat( CCamera::EFormatExif );
+
+    iStatesClient->SetSnapFileName( _L("cae_snap_burst6_7_exif.mbm") );
+
+    iStatesClient->SetStillFileName( _L("cae_burst6_7_exif.jpg") );
+
+    iStatesClient->SetStillBurstLength( KStillBurstLength );
+
+    iStatesClient->SetSnapImageSource( CCaeEngine::ESnapImageSourceThumbnail );
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::EPrepareAndCaptureStillBurstExif );
+
+    assertL( iStatesClient->CountInitComplete() == 1 );
+    assertL( iStatesClient->CountStillPrepareComplete() == 1 );
+    assertL( iStatesClient->CountSnapImageReady() == KStillBurstLength );
+    assertL( iStatesClient->CountStillImageReady() == KStillBurstLength );
+    assertL( iStatesClient->CountViewFinderFrameReady() == 0 );
+
+    assertL( iStatesClient->CountStillBurstCaptureMoment() == KStillBurstLength );
+    assertL( iStatesClient->CountStillBurstComplete() == 1 );
+    }
+
+
+void CCaeTestRelease::TestCaptureStillBurstExif100L()
+    {
+	// ID: CAE.SC.CAPTURESTILLBURSTEXIF.100.003
+    //
+    // Group:   Capture
+    // 
+    // Action : Test to prepare still capturing burst mode and capture  
+    //          exif images in a burst when BurstLength has to big value, 
+    //          when initialization is done.
+	//      
+	// Output : Leave.   
+
+    const TInt KStillBurstLength = 100;
+
+    iStatesClient->SetStillFormat( CCamera::EFormatExif );
+
+    iStatesClient->SetStillBurstLength( KStillBurstLength );
+
+	TInt error = KErrNone;
+	TRAP( error, iStatesClient->RunTestActionL( CCaeTestStatesClient::EPrepareAndCaptureStillBurstExif ) );
+    assertL( error == KErrNoMemory );
+
+    assertL( iStatesClient->CountInitComplete() == 1 );
+    assertL( iStatesClient->CountStillPrepareComplete() == 1 );
+
+    assertL( iStatesClient->CountStillBurstComplete() == 0 );
+    }
+
+
+void CCaeTestRelease::TestCaptureStillBurstExif6VfL()
+    {
+	// ID: CAE.SC.CAPTURESTILLBURSTEXIF.6.VF.004
+    //
+    // Group:   Capture
+    // 
+    // Action : Test to prepare still capturing burst mode and capture six  
+    //          Exif images in a burst when initialization is done. Uses default
+    //          image resolution. The view finder is running during the burst.
+	//      
+	// Output : OK.   
+
+    const TInt KStillBurstLength = 6;
+
+    iStatesClient->SetStillFormat( CCamera::EFormatExif );
+
+    iStatesClient->SetSnapFileName( _L("cae_snap_burst6_exif.mbm") );
+
+    iStatesClient->SetStillFileName( _L("cae_burst6_exif.jpg") );
+
+    iStatesClient->SetStillBurstLength( KStillBurstLength );
+
+	iStatesClient->SetRunningWithViewFinder( ETrue );
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::EPrepareAndCaptureStillBurstExif );
+
+    assertL( iStatesClient->CountInitComplete() == 1 );
+    assertL( iStatesClient->CountStillPrepareComplete() == 1 );
+    assertL( iStatesClient->CountSnapImageReady() == KStillBurstLength );
+    assertL( iStatesClient->CountStillImageReady() == KStillBurstLength );
+
+    assertL( iStatesClient->CountStillBurstCaptureMoment() == KStillBurstLength );
+    assertL( iStatesClient->CountStillBurstComplete() == 1 );
+    }
+
+
+void CCaeTestRelease::TestCaptureStillBurstExif6VfCancelL()
+    {
+	// ID: CAE.SC.CAPTURESTILLBURSTEXIF.6.VF.CANCEL.005
+    //
+    // Group:   Capture
+    // 
+    // Action : Test to prepare still capturing burst mode and cancel the burst after   
+    //          the first capture. Intention is to test the situation when the burst is pending
+	//			the view finder to occur before it continues and cancel the burst at that 
+	//			point. Uses default image resolution. The view finder is running 
+	//          during the burst.
+	//      
+	// Output : OK.   
+
+    const TInt KStillBurstLength = 6;
+
+    iStatesClient->SetStillFormat( CCamera::EFormatExif );
+
+    iStatesClient->SetSnapFileName( _L("cae_snap_burst6_exif.mbm") );
+
+    iStatesClient->SetStillFileName( _L("cae_burst6_exif.jpg") );
+
+    iStatesClient->SetStillBurstLength( KStillBurstLength );
+
+	iStatesClient->SetRunningWithViewFinder( ETrue );
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::EPrepareAndCaptureAndCancelStillBurstExif );
+
+    assertL( iStatesClient->CountInitComplete() == 1 );
+    assertL( iStatesClient->CountStillPrepareComplete() == 1 );
+    assertL( iStatesClient->CountSnapImageReady() == 0 );
+    assertL( iStatesClient->CountStillImageReady() == 0 );
+
+    assertL( iStatesClient->CountStillBurstCaptureMoment() == 2 );
+    assertL( iStatesClient->CountStillBurstComplete() == 0 );
+    }
+
+
+/********************************************************/
+/*              STILL CAPTURE EXIF                      */
+/********************************************************/
+
+void CCaeTestRelease::TestCaptureVgaExifL()
+    {
+	// ID: CAE.SC.CAPTURESTILL.VGA.EXIF.001
+    //
+    // Group:   Capture
+    // 
+    // Action : Test to prepare still capturing and capture Vga Exif 
+    //          image when initialization is done and viewfinder is running.
+	//      
+	// Output : OK.   
+
+    TSize sizeVga( KImgWidthVGA, KImgHeightVGA );
+
+    iStatesClient->SetStillFrameSize( sizeVga );
+    
+    iStatesClient->SetStillFormat( CCamera::EFormatExif );
+
+    iStatesClient->SetSnapFileName( _L("cae_snap_vga_exif.mbm") );
+
+    iStatesClient->SetStillFileName( _L("cae_vga_exif.jpg") );
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::EStartVfPrepareCaptureStillStartAndStopVfExif );
+    
+    assertL( iStatesClient->CountInitComplete() == 1 );
+    assertL( iStatesClient->CountStillPrepareComplete() == 1 );
+    assertL( iStatesClient->CountSnapImageReady() == 1 );
+    assertL( iStatesClient->CountStillImageReady() == 1 );
+    }
+
+
+void CCaeTestRelease::TestCaptureQqvgaExifL()
+    {
+	// ID: CAE.SC.CAPTURESTILL.QQVGA.EXIF.002
+
+    // Group:   Capture
+    // 
+    // Action : Test to prepare still capturing and capture Qqvga Exif 
+    //          image when initialization is done and viewfinder is running.
+	//      
+	// Output : OK.   
+
+    TSize sizeQqvga( KImgWidthQQVGA, KImgHeightQQVGA );
+
+    iStatesClient->SetStillFrameSize( sizeQqvga );
+
+    iStatesClient->SetStillFormat( CCamera::EFormatExif );
+
+    iStatesClient->SetSnapFileName( _L("cae_qqvga_exif.mbm") );
+
+    iStatesClient->SetStillFileName( _L("cae_qqvga_exif.jpg") );
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::EStartVfPrepareCaptureStillStartAndStopVfExif );
+    }
+
+
+void CCaeTestRelease::TestCaptureVgaSnapOneHalfExifL()
+    {
+	// ID: CAE.SC.CAPTURESTILL.VGA.EXIF.003
+    //
+    // Group:   Capture
+    // 
+    // Action : Test to prepare still capturing and capture Vga Exif image 
+    //          image when initialization is done and viewfinder is running.
+	//			The snap image is downscaled to 1/2 on Exif decoding.
+	//      
+	// Output : OK.   
+
+    TSize sizeVga( KImgWidthVGA, KImgHeightVGA );
+
+    iStatesClient->SetStillFrameSize( sizeVga );
+    
+    iStatesClient->SetStillFormat( CCamera::EFormatExif );
+
+    iStatesClient->SetSnapFileName( _L("cae_snap_1_2_vga_exif.mbm") );
+
+    iStatesClient->SetSnapImageSize( TSize( 176, 208 ) );
+
+    iStatesClient->SetStillFileName( _L("cae_snap_1_2_vga_exif.jpg") );
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::EStartVfPrepareCaptureStillStartAndStopVfSnapExif );
+    
+    assertL( iStatesClient->CountInitComplete() == 1 );
+    assertL( iStatesClient->CountStillPrepareComplete() == 1 );
+    assertL( iStatesClient->CountSnapImageReady() == 1 );
+    assertL( iStatesClient->CountStillImageReady() == 1 );
+    }
+
+
+void CCaeTestRelease::TestCaptureVgaSnapOneFourthExifL()
+    {
+	// ID: CAE.SC.CAPTURESTILL.VGA.EXIF.004
+    //
+    // Group:   Capture
+    // 
+    // Action : Test to prepare still capturing and capture Vga Exif image 
+    //          image when initialization is done and viewfinder is running.
+	//			The snap image is downscaled 1/4 on Exif decoding.
+	//      
+	// Output : OK.   
+
+    TSize sizeVga( KImgWidthVGA, KImgHeightVGA );
+
+    iStatesClient->SetStillFrameSize( sizeVga );
+    
+    iStatesClient->SetStillFormat( CCamera::EFormatExif );
+
+    iStatesClient->SetSnapFileName( _L("cae_snap_1_4_vga_exif.mbm") );
+
+    iStatesClient->SetSnapImageSize( TSize( 88, 104 ) );
+
+    iStatesClient->SetStillFileName( _L("cae_snap_1_4_vga_exif.jpg") );
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::EStartVfPrepareCaptureStillStartAndStopVfSnapExif );
+    }
+
+
+void CCaeTestRelease::TestCaptureVgaSnapOneEighthExifL()
+    {
+	// ID: CAE.SC.CAPTURESTILL.VGA.EXIF.005
+    //
+    // Group:   Capture
+    // 
+    // Action : Test to prepare still capturing and capture Vga Exif image 
+    //          image when initialization is done and viewfinder is running.
+	//			The snap image is downscaled 1/8 on Exif decoding.
+	//      
+	// Output : OK.   
+
+    TSize sizeVga( KImgWidthVGA, KImgHeightVGA );
+
+    iStatesClient->SetStillFrameSize( sizeVga );
+    
+    iStatesClient->SetStillFormat( CCamera::EFormatExif );
+
+    iStatesClient->SetSnapFileName( _L("cae_snap_1_8_vga_exif.mbm") );
+
+    iStatesClient->SetSnapImageSize( TSize( 44, 52 ) );
+
+    iStatesClient->SetStillFileName( _L("cae_snap_1_8_vga_exif.jpg") );
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::EStartVfPrepareCaptureStillStartAndStopVfSnapExif );
+    }
+
+
+void CCaeTestRelease::TestCaptureVgaSnapExifL()
+    {
+	// ID: CAE.SC.CAPTURESTILL.VGA.EXIF.006
+    //
+    // Group:   Capture
+    // 
+    // Action : Test to prepare still capturing and capture Vga Exif image 
+    //          image when initialization is done and viewfinder is running.
+	//			The snap image is given but not downscaled on Exif decoding.
+	//      
+	// Output : OK.   
+
+    TSize sizeVga( KImgWidthVGA, KImgHeightVGA );
+
+    iStatesClient->SetStillFrameSize( sizeVga );
+    
+    iStatesClient->SetStillFormat( CCamera::EFormatExif );
+
+    iStatesClient->SetSnapFileName( _L("cae_snap_vga_exif.mbm") );
+
+    iStatesClient->SetSnapImageSize( TSize( 176, 250 ) );
+
+    iStatesClient->SetStillFileName( _L("cae_snap_vga_exif.jpg") );
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::EStartVfPrepareCaptureStillStartAndStopVfSnapExif );
+    }
+
+
+void CCaeTestRelease::TestCaptureVgaSnapOneEighthJpegL()
+    {
+	// ID: CAE.SC.CAPTURESTILL.VGA.JPEG.007
+    //
+    // Group:   Capture
+    // 
+    // Action : Test to prepare still capturing and capture Vga Jpeg 
+    //          image when initialization is done and viewfinder is running.
+	//			The snap image is downscaled 1/8 on Jpeg decoding.
+    //          This is same as CAE.SC.CAPTURESTILL.VGA.EXIF.005 but format is Jpeg.
+	//      
+	// Output : OK.   
+
+    TSize sizeVga( KImgWidthVGA, KImgHeightVGA );
+
+    iStatesClient->SetStillFrameSize( sizeVga );
+    
+    iStatesClient->SetStillFormat( CCamera::EFormatJpeg ); // test Jpeg format too
+
+    iStatesClient->SetSnapFileName( _L("cae_snap_1_8_vga_jpeg.mbm") );
+
+    iStatesClient->SetSnapImageSize( TSize( 44, 52 ) );
+
+    iStatesClient->SetStillFileName( _L("cae_snap_1_8_vga_jpeg.jpg") );
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::EStartVfPrepareCaptureStillStartAndStopVfSnapExif );
+    }
+
+void CCaeTestRelease::TestCaptureVgaSnapOneEighthExif2L()
+    {
+	// ID: CAE.SC.CAPTURESTILL.VGA.EXIF.008
+    //
+    // Group:   Capture
+    // 
+    // Action : Test to prepare still capturing and capture Vga Exif image 
+    //          image when initialization is done and viewfinder is running.
+	//			The snap image is downscaled 1/8 on Exif decoding. The snap 
+	//			image size is set only after prepare.
+	//      
+	// Output : OK. Visual check of snap file size.
+
+    TSize sizeVga( KImgWidthVGA, KImgHeightVGA );
+
+    iStatesClient->SetStillFrameSize( sizeVga );
+    
+    iStatesClient->SetStillFormat( CCamera::EFormatExif );
+
+    iStatesClient->SetSnapFileName( _L("cae_snap_1_8_vga_exif2.mbm") );
+
+    iStatesClient->SetSnapImageSize( TSize( 44, 52 ) );
+
+    iStatesClient->SetStillFileName( _L("cae_snap_1_8_vga_exif2.jpg") );
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::ECaptureStillSetSnapSizeExif );
+    }
+
+
+void CCaeTestRelease::TestCaptureVgaSnapColor16MExifL()
+    {
+	// ID: CAE.SC.CAPTURESTILL.VGA.EXIF.009
+    //
+    // Group:   Capture
+    // 
+    // Action : Test to prepare still capturing and capture Vga Exif image 
+    //          when initialization is done and viewfinder is running.
+	//			The snap image color mode is set to EColor16M.
+	//      
+	// Output : OK. Visual check of snap file color mode.
+
+    TSize sizeVga( KImgWidthVGA, KImgHeightVGA );
+
+    iStatesClient->SetStillFrameSize( sizeVga );
+    
+    iStatesClient->SetStillFormat( CCamera::EFormatExif );
+
+    iStatesClient->SetSnapFileName( _L("cae_snap_color_mode_vga_exif.mbm") );
+
+    iStatesClient->SetSnapImageColorMode( EColor16M );
+
+    iStatesClient->SetStillFileName( _L("cae_snap_color_mode_vga_exif.jpg") );
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::ECaptureStillSetSnapColorModeExif );
+    }
+
+
+/********************************************************/
+/*              PREPARE VIDEO RECORDING                 */
+/********************************************************/
+
+void CCaeTestRelease::TestPrepareVideoRecording0L()
+    {
+	// ID: CAE.VR.PREPAREVIDEORECORDINGL.001
+    //
+    // Group:   Record
+    // 
+    // Action : Prepare the engine for video recording on specified quality level. 
+    //          Initialization is done.
+	//      
+	// Output : OK.   
+
+    iStatesClient->SetVideoQualityLevelIndex( 0 );
+
+#if (MIRAGE_X_PROD3)
+    iStatesClient->SetVideoCodecSet( 2 ); // 2: AAC audio, MPEG-4 video
+#else
+    iStatesClient->SetVideoCodecSet( 0 ); // 0: AMR audio, H.263 video
+#endif
+
+    iStatesClient->SetVideoFileName( _L("cae_prepare_vr_0.3gp") );
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::EPrepareVideoRecording );
+        
+    assertL( iStatesClient->CountInitComplete() == 1 );
+    assertL( iStatesClient->CountVideoPrepareComplete() == 1 );
+    }
+
+void CCaeTestRelease::TestPrepareVideoRecording1L()
+    {
+	// ID: CAE.VR.PREPAREVIDEORECORDINGL.002
+    //
+    // Group:   Record
+    // 
+    // Action : Prepare the engine for video recording on specified quality level. 
+    //          Initialization is done.
+	//      
+	// Output : OK.   
+
+    iStatesClient->SetVideoQualityLevelIndex( 1 );
+
+#if (MIRAGE_X_PROD3)
+    iStatesClient->SetVideoCodecSet( 2 ); // 2: AAC audio, MPEG-4 video
+#else
+    iStatesClient->SetVideoCodecSet( 0 ); // 0: AMR audio, H.263 video
+#endif
+
+    iStatesClient->SetVideoFileName( _L("cae_prepare_vr_1.3gp") );
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::EPrepareVideoRecording );
+
+    assertL( iStatesClient->CountInitComplete() == 1 );
+    assertL( iStatesClient->CountVideoPrepareComplete() == 1 );
+    }
+
+void CCaeTestRelease::TestPrepareVideoRecording2L()
+    {
+	// ID: CAE.VR.PREPAREVIDEORECORDINGL.003
+    //
+    // Group:   Record
+    // 
+    // Action : Prepare the engine for video recording on specified quality level. 
+    //          Initialization is done.
+	//      
+	// Output : OK.   
+
+    iStatesClient->SetVideoQualityLevelIndex( 2 );
+
+#if (MIRAGE_X_PROD3)
+    iStatesClient->SetVideoCodecSet( 2 ); // 2: AAC audio, MPEG-4 video
+#else
+    iStatesClient->SetVideoCodecSet( 0 ); // 0: AMR audio, H.263 video
+#endif
+
+    iStatesClient->SetVideoFileName( _L("cae_prepare_vr_2.3gp") );
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::EPrepareVideoRecording );
+
+    assertL( iStatesClient->CountInitComplete() == 1 );
+    assertL( iStatesClient->CountVideoPrepareComplete() == 1 );
+    }
+
+void CCaeTestRelease::TestPrepareVideoRecording0WhenPreparedL()
+    {
+	// ID: CAE.VR.PREPAREVIDEORECORDINGL.004
+    //
+    // Group:   Record
+    // 
+    // Action : Prepare the engine for video recording on specified quality 
+    //          level when already prepared.
+	//      
+	// Output : OK.   
+
+    iStatesClient->SetVideoQualityLevelIndex( 0 );
+
+#if (MIRAGE_X_PROD3)
+    iStatesClient->SetVideoCodecSet( 2 ); // 2: AAC audio, MPEG-4 video
+#else
+    iStatesClient->SetVideoCodecSet( 0 ); // 0: AMR audio, H.263 video
+#endif
+
+    iStatesClient->SetVideoFileName( _L("cae_prepared_vr_0.3gp") );
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::EPrepareVideoRecordingWhenPrepared );//we have to put correct action
+
+    assertL( iStatesClient->CountInitComplete() == 1 );
+    assertL( iStatesClient->CountVideoPrepareComplete() == 2 );
+    }
+
+void CCaeTestRelease::TestSpecPrepareVRSupportedFormatWhenVRInitializedL()
+{
+    // ID: CAE.VR.PREPAREVIDEORECORDINGL.007
+    //
+    // Group:   Record.
+    // 
+    // Action : Set video recording format to a format supported by MMF Camcorder plug-in 
+    //          and Camera API implementation. 
+    //          Video recorder initialization is done.
+	//      
+	// Output : OK.    
+
+    iStatesClient->SetTimeout( 1000000 );
+
+    TSize sizeQcif( KImgWidthQCIF, KImgHeightQCIF );
+    iStatesClient->SetVideoFrameSize( sizeQcif );
+    iStatesClient->SetVideoFrameRate( 10.0 );
+    iStatesClient->SetVideoBitRate( 50000 );
+    iStatesClient->SetVideoAudio( ETrue );
+
+#if (MIRAGE_X_PROD3)
+    iStatesClient->SetVideoCodecSet( 2 ); // 2: AAC audio, MPEG-4 video
+#else
+    iStatesClient->SetVideoCodecSet( 0 ); // 0: AMR audio, H.263 video
+#endif
+
+    //iStatesClient->SetVideoFileName( _L("cae_video_format_initialized.3gp") );
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::ESpecifiedPrepareVideo );//verified if is correct action
+
+    assertL( iStatesClient->CountInitComplete() == 1 );
+    assertL( iStatesClient->CountVideoPrepareComplete() == 1 );
+    }
+
+/********************************************************/
+/*             VIDEO RECORDING QUALITY LEVEL            */
+/********************************************************/
+
+void CCaeTestRelease::TestRecordQualityLevel0L()
+    {
+	// ID:      CAE.VR.VIDEORECORDING.QCIF64000FR15.001
+    //
+    // Group:   Record.
+    // 
+    // Action : Test to prepare video recording and record quality level 0 
+    //          video clip when initialization is done and viewfinder is running.
+	//      
+	// Output : No leave. File cae_ql_0.3gp.   
+
+    iStatesClient->SetVideoQualityLevelIndex( 0 );
+
+    TSize sizeSubQcif( KImgWidthSubQCIF, KImgHeightSubQCIF );
+
+    iStatesClient->SetViewFinderSize( sizeSubQcif );
+    
+    iStatesClient->SetVfFileName( _L("cae_video_ql_0_vfimg.mbm") ); 
+
+    // iStatesClient->SetVfFileCountToSave( 150 );
+        
+    iStatesClient->SetTimeout( 30000000 );
+
+#if (MIRAGE_X_PROD3)
+    iStatesClient->SetVideoCodecSet( 2 ); // 2: AAC audio, MPEG-4 video
+#else
+    iStatesClient->SetVideoCodecSet( 0 ); // 0: AMR audio, H.263 video
+#endif
+
+    iStatesClient->SetVideoFileName( _L("cae_ql_0.3gp") );
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::EStartVfPrepareRecordVideoStartAndStopVf );
+
+    assertL( iStatesClient->CountInitComplete() == 1 );
+    assertL( iStatesClient->CountVideoPrepareComplete() == 1 );
+    assertL( iStatesClient->CountVideoRecordingOn() == 1 );
+    assertL( iStatesClient->CountVideoRecordingComplete() == 1 );
+    }
+
+
+void CCaeTestRelease::TestRecordQualityLevel1L()
+    {
+	// ID:      CAE.VR.VIDEORECORDING.SUBQCIF60000FR15.002
+    //
+    // Group:   Record.
+    // 
+    // Action : Test to prepare video recording and record quality level 1 
+    //          video clip when initialization is done and viewfinder is running.
+	//      
+	// Output : No leave. File cae_ql_1.3gp.   
+
+    iStatesClient->SetVideoQualityLevelIndex( 1 );
+
+    TSize sizeSubQcif( KImgWidthSubQCIF, KImgHeightSubQCIF );
+
+    iStatesClient->SetViewFinderSize( sizeSubQcif );
+    
+    iStatesClient->SetTimeout( 20000000 );
+
+#if (MIRAGE_X_PROD3)
+    iStatesClient->SetVideoCodecSet( 2 ); // 2: AAC audio, MPEG-4 video
+#else
+    iStatesClient->SetVideoCodecSet( 0 ); // 0: AMR audio, H.263 video
+#endif
+
+    iStatesClient->SetVideoFileName( _L("cae_ql_1.3gp") );
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::EStartVfPrepareRecordVideoStartAndStopVf );
+
+    assertL( iStatesClient->CountInitComplete() == 1 );
+    assertL( iStatesClient->CountVideoPrepareComplete() == 1 );
+    assertL( iStatesClient->CountVideoRecordingOn() == 1 );
+    assertL( iStatesClient->CountVideoRecordingComplete() == 1 );
+    }
+
+
+void CCaeTestRelease::TestPrepareAudioBitRateVR128L()
+    {
+	// ID:      CAE.VR.PREPAREAUDIOBITRATEANDRECORDVIDEO.002
+    //
+    // Group:   Record.
+    // 
+    // Action : To ensure that the implementation is compatible with camcorder plug-in. 
+    //          Use high video bitrate. This is for PROD7.
+	//      
+	// Output : No leave. File cae_subqcif_VideoBitRate_128000.3gp.   
+
+    TSize sizeSubQcif( 176, 144 );
+
+    iStatesClient->SetViewFinderSize( sizeSubQcif );
+    iStatesClient->SetVideoFrameSize( sizeSubQcif );
+    iStatesClient->SetVideoFrameRate( TReal32( 15.0 ) );
+
+    iStatesClient->SetVideoBitRate( TInt( 128000 ) );
+    iStatesClient->SetAudioBitRate( TInt( 12200 ) );
+    
+    iStatesClient->SetTimeout( 20000000 );
+
+    // 3: AMR audio, H.263 video, video type video/H263-2000; profile=0; level=45
+    // 0: AMR audio, H.263 video, video type video/H263-2000
+    iStatesClient->SetVideoCodecSet( 3 ); 
+
+    iStatesClient->SetVideoFileName( _L("cae_subqcif_VideoBitRate_128000.3gp") );
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::ESpecifiedPrepareAudioBrAndRecordVideo );
+
+    assertL( iStatesClient->CountInitComplete() == 1 );
+    assertL( iStatesClient->CountVideoPrepareComplete() == 1 );
+    assertL( iStatesClient->CountVideoRecordingOn() == 1 );
+    assertL( iStatesClient->CountVideoRecordingComplete() == 1 );
+    }
+
+void CCaeTestRelease::TestPrepareAudioBitRateVR128InvVtypeL()
+    {
+	// ID:      CAE.VR.PREPAREAUDIOBITRATEANDRECORDVIDEO.003
+    //
+    // Group:   Record.
+    // 
+    // Action : To ensure that the implementation is compatible with camcorder plug-in. 
+    //          Use high video bitrate and invalid videotype.
+	//      
+	// Output : Leave   
+
+    TSize sizeSubQcif( 176, 144 );
+
+    iStatesClient->SetViewFinderSize( sizeSubQcif );
+    iStatesClient->SetVideoFrameSize( sizeSubQcif );
+    iStatesClient->SetVideoFrameRate( TReal32( 15.0 ) );
+
+    iStatesClient->SetVideoBitRate( TInt( 128000 ) );
+    iStatesClient->SetAudioBitRate( TInt( 12200 ) );
+    
+    iStatesClient->SetTimeout( 20000000 );
+
+    // 3: AMR audio, H.263 video, video type video/H263-2000; profile=0; level=45
+    // 0: AMR audio, H.263 video, video type video/H263-2000
+    iStatesClient->SetVideoCodecSet( 0 ); 
+
+    iStatesClient->SetVideoFileName( _L("cae_subqcif_VideoBitRate_128000inv.3gp") );
+
+    TRAPD( err, iStatesClient->RunTestActionL( CCaeTestStatesClient::ESpecifiedPrepareAudioBrAndRecordVideo ) );
+    if( err == KErrNoMemory )
+        {
+        User::Leave( err ); // For memory test
+        }
+    assertL( err != KErrNone );
+
+    assertL( iStatesClient->CountInitComplete() == 1 );
+    assertL( iStatesClient->CountVideoPrepareComplete() == 1 );
+    assertL( iStatesClient->CountVideoRecordingOn() == 0 );
+    assertL( iStatesClient->CountVideoRecordingComplete() == 0 );
+    }
+
+
+void CCaeTestRelease::TestRecordQualityLevel2L()
+    {
+	// ID:      CAE.VR.VIDEORECORDING.SUBQCIF40000FR5.003
+    //
+    // Group:   Record.
+    // 
+    // Action : Test to prepare video recording and record quality level 2 
+    //          video clip when initialization is done and viewfinder is running.
+	//      
+	// Output : No leave. File cae_q2_0.3gp.   
+
+    iStatesClient->SetVideoQualityLevelIndex( 2 );
+
+    TSize sizeSubQcif( KImgWidthSubQCIF, KImgHeightSubQCIF );
+
+    iStatesClient->SetViewFinderSize( sizeSubQcif );
+    
+    iStatesClient->SetTimeout( 20000000 );
+
+#if (MIRAGE_X_PROD3)
+    iStatesClient->SetVideoCodecSet( 2 ); // 2: AAC audio, MPEG-4 video
+#else
+    iStatesClient->SetVideoCodecSet( 0 ); // 0: AMR audio, H.263 video
+#endif
+
+    iStatesClient->SetVideoFileName( _L("cae_ql_2.3gp") );
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::EStartVfPrepareRecordVideoStartAndStopVf );
+
+    assertL( iStatesClient->CountInitComplete() == 1 );
+    assertL( iStatesClient->CountVideoPrepareComplete() == 1 );
+    assertL( iStatesClient->CountVideoRecordingOn() == 1 );
+    assertL( iStatesClient->CountVideoRecordingComplete() == 1 );
+    }
+
+/********************************************************/
+/*            START AND STOP VIDEO RECORDING            */
+/********************************************************/
+
+void CCaeTestRelease::TestStartAndStopVideoRecordingSubQcifL()
+    {
+	// ID: CAE.VR.STARTSTOPVIDEORECORDING.SUBQCIF.001
+    //
+    // Group:   Record
+    // 
+    // Action : To ensure that the implementation is compatible with camcorder plug-in. 
+    //          To ensure that starting and stopping video recording works. 
+    //          To ensure that recording subQCIF sized video works. 
+    //          Video recording prepared for subQCIF format.
+	//      
+	// Output : OK.   
+
+    iStatesClient->SetTimeout( 4000000 );
+
+    TSize sizeSubQcif( KImgWidthSubQCIF, KImgHeightSubQCIF );
+
+    iStatesClient->SetVideoFrameSize( sizeSubQcif );
+    iStatesClient->SetVideoFrameRate( TReal32( 10.0 ) );
+    iStatesClient->SetVideoBitRate( TInt( 25000 ) );
+
+#if (MIRAGE_X_PROD3)
+    iStatesClient->SetVideoCodecSet( 2 ); // 2: AAC audio, MPEG-4 video
+#else
+    iStatesClient->SetVideoCodecSet( 0 ); // 0: AMR audio, H.263 video
+#endif
+
+    iStatesClient->SetVideoFileName( _L("cae_subqcif.3gp") );
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::ESpecifiedPrepareAndRecordVideo );
+
+    assertL( iStatesClient->CountInitComplete() == 1 );
+    assertL( iStatesClient->CountVideoPrepareComplete() == 1 );
+    assertL( iStatesClient->CountVideoRecordingOn() == 1 );
+    assertL( iStatesClient->CountVideoRecordingComplete() == 1 );
+    }
+
+void CCaeTestRelease::TestStartAndStopVideoRecordingQcifL()
+    {
+	// ID: CAE.VR.STARTSTOPVIDEORECORDING.QCIF.002
+    //
+    // Group:   Record
+    // 
+    // Action : To ensure that the implementation is compatible with camcorder plug-in. 
+    //          To ensure that starting and stopping video recording works. 
+    //          To ensure that recording QCIF sized video works. 
+    //          Video recording prepared for QCIF format.
+	//      
+	// Output : OK.   
+
+    iStatesClient->SetTimeout( 4000000 );
+    
+    TSize sizeQcif( KImgWidthQCIF, KImgHeightQCIF );
+
+    iStatesClient->SetVideoFrameSize( sizeQcif );
+    iStatesClient->SetVideoFrameRate( TReal32( 10.0 ) );
+    iStatesClient->SetVideoBitRate( TInt( 50000 ) );
+
+#if (MIRAGE_X_PROD3)
+    iStatesClient->SetVideoCodecSet( 2 ); // 2: AAC audio, MPEG-4 video
+#else
+    iStatesClient->SetVideoCodecSet( 0 ); // 0: AMR audio, H.263 video
+#endif
+
+    iStatesClient->SetVideoFileName( _L("cae_qcif.3gp") );
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::ESpecifiedPrepareAndRecordVideo );
+
+    assertL( iStatesClient->CountInitComplete() == 1 );
+    assertL( iStatesClient->CountVideoPrepareComplete() == 1 );
+    assertL( iStatesClient->CountVideoRecordingOn() == 1 );
+    assertL( iStatesClient->CountVideoRecordingComplete() == 1 );
+    }
+
+/********************************************************/
+/*             STILL CAPTURE DIGITAL ZOOM VALUE         */
+/********************************************************/
+
+void CCaeTestRelease::TestSCDigiZoomVal0L()
+{
+	// Group:   Settings
+    //
+    // ID:      CAE.SET-SC.SETZOOMVALUEL.001
+    // 
+    // Action : Test digital zoom.
+	//      
+	// Output : OK.  
+ 
+    RDebug::Print(_L("XYZ:TestSCDigiZoomVal0L start"));
+
+    iSettingsClient->SetStillQualityLevelIndex( 0 );
+
+    iSettingsClient->SetDigiZoomValue( 0 );
+
+    iSettingsClient->SetSnapFileName( _L("cae_digizoom_val_0_vga.mbm") );
+
+    iSettingsClient->SetStillFileName( _L("cae_digizoom_val_0_vga.jpg") );
+
+    iSettingsClient->RunTestActionL( CCaeTestSettingsClient::ESetDigiZoomWhenStillPrepared );
+ 
+    RDebug::Print(_L("XYZ:TestSCDigiZoomVal0L ending"));
+}
+
+void CCaeTestRelease::TestSCDigiZoomVal1VgaL()
+{
+	// Group:   Settings
+    //
+    // ID:      CAE.SET-SC.SETZOOMVALUEL.002_vga
+    // 
+    // Action : Test digital zoom.
+	//      
+	// Output : OK.   
+
+    iSettingsClient->SetStillQualityLevelIndex( 0 );
+
+	TCamAppEngineInfo info;
+	iSettingsClient->GetInfo(info);
+    iSettingsClient->SetDigiZoomValue( info.iMaxDigitalZoom );
+
+    iSettingsClient->SetSnapFileName( _L("cae_digizoom_val_1_vga.mbm") );
+
+    iSettingsClient->SetStillFileName( _L("cae_digizoom_val_1_vga.jpg") );
+
+    iSettingsClient->RunTestActionL( CCaeTestSettingsClient::ESetDigiZoomWhenStillPrepared );
+}
+
+void CCaeTestRelease::TestSCDigiZoomVal1QqvgaL()
+{
+	// Group:   Settings
+    //
+    // ID:      CAE.SET-SC.SETZOOMVALUEL.002_qqvga
+    // 
+    // Action : Test digital zoom.
+	//      
+	// Output : OK.   
+
+    iSettingsClient->SetStillQualityLevelIndex( 2 );
+
+	TCamAppEngineInfo info;
+	iSettingsClient->GetInfo(info);
+    iSettingsClient->SetDigiZoomValue( info.iMaxDigitalZoom );
+
+    iSettingsClient->SetSnapFileName( _L("cae_digizoom_val_1_qqvga.mbm") );
+    
+    iSettingsClient->SetStillFileName( _L("cae_digizoom_val_1_qqvga.jpg") );
+
+    iSettingsClient->RunTestActionL( CCaeTestSettingsClient::ESetDigiZoomWhenStillPrepared );
+}
+
+void CCaeTestRelease::TestSCDigiZoomInitializedVal0L()
+{
+	// Group:   Settings
+    // 
+    // ID:      CAE.SET-SC.SETZOOMVALUEL.005
+    //
+    // Action : Test digital zoom.
+	//      
+	// Output : OK.   
+
+    iSettingsClient->SetStillQualityLevelIndex( 0 );
+
+    iSettingsClient->SetDigiZoomValue( 0 );
+
+    iSettingsClient->SetSnapFileName( _L("cae_digizoom_initialized_val_0_vga.mbm") );
+
+    iSettingsClient->SetStillFileName( _L("cae_digizoom_initialized_val_0_vga.jpg") );
+
+    iSettingsClient->RunTestActionL( CCaeTestSettingsClient::ESetDigiZoomWhenInitialized );
+}
+
+void CCaeTestRelease::TestSCDigiZoomInitializedVal1VgaL()
+{
+	// Group:   Settings
+    // 
+    // ID:      CAE.SET-SC.SETZOOMVALUEL.012_vga
+    //
+    // Action : Test digital zoom.
+	//      
+	// Output : OK.   
+
+    iSettingsClient->SetStillQualityLevelIndex( 0 );
+
+	TCamAppEngineInfo info;
+	iSettingsClient->GetInfo(info);
+    iSettingsClient->SetDigiZoomValue( info.iMaxDigitalZoom );
+
+    iSettingsClient->SetSnapFileName( _L("cae_digizoom_initialized_val_1_vga.mbm") );
+
+    iSettingsClient->SetStillFileName( _L("cae_digizoom_initialized_val_1_vga.jpg") );
+
+    iSettingsClient->RunTestActionL( CCaeTestSettingsClient::ESetDigiZoomWhenInitialized );
+}
+
+void CCaeTestRelease::TestSCDigiZoomInitializedVal1QqvgaL()
+{
+	// Group:   Settings
+    // 
+    // ID:      CAE.SET-SC.SETZOOMVALUEL.012_qqvga
+    //
+    // Action : Test digital zoom.
+	//      
+	// Output : OK.   
+
+    iSettingsClient->SetStillQualityLevelIndex( 2 );
+
+	TCamAppEngineInfo info;
+	iSettingsClient->GetInfo(info);
+    iSettingsClient->SetDigiZoomValue( info.iMaxDigitalZoom );
+
+    iSettingsClient->SetSnapFileName( _L("cae_digizoom_initialized_val_1_qqvga.mbm") );
+
+    iSettingsClient->SetStillFileName( _L("cae_digizoom_initialized_val_1_qqvga.jpg") );
+
+    iSettingsClient->RunTestActionL( CCaeTestSettingsClient::ESetDigiZoomWhenInitialized );
+}
+
+/********************************************************/
+/*             VIDEO RECORDING DIGITAL ZOOM VALUE       */
+/********************************************************/
+
+void CCaeTestRelease::TestVRDigiZoomVal0L()
+{
+	// Group:   Settings
+    // 
+    // ID:      CAE.SET-VR.SETZOOMVALUEL.006
+    //
+    // Action : Test digital zoom.
+	//      
+	// Output : OK.
+
+    iSettingsClient->SetTimeout( 4000000 );
+    
+    iSettingsClient->SetOpMode( CCaeTestSettingsClient::EClientOpModeVideo );   
+
+    iSettingsClient->SetVideoQualityLevelIndex( 0 );
+
+    iSettingsClient->SetDigiZoomValue( 0 );
+
+#if (MIRAGE_X_PROD3)
+    iStatesClient->SetVideoCodecSet( 2 ); // 2: AAC audio, MPEG-4 video
+#else
+    iStatesClient->SetVideoCodecSet( 0 ); // 0: AMR audio, H.263 video
+#endif
+
+    iSettingsClient->SetVideoFileName( _L("cae_digizoom_val_0.3gp") );
+
+    iSettingsClient->RunTestActionL( CCaeTestSettingsClient::ESetDigiZoomWhenVideoPrepared );
+}
+
+void CCaeTestRelease::TestVRDigiZoomVal1L()
+{
+	// Group:   Settings
+    // 
+    // ID:      CAE.SET-VR.SETZOOMVALUEL.007
+    //
+    // Action : Test digital zoom.
+	//      
+	// Output : OK.   
+
+    iSettingsClient->SetTimeout( 4000000 );
+    
+    iSettingsClient->SetOpMode( CCaeTestSettingsClient::EClientOpModeVideo );   
+
+    iSettingsClient->SetVideoQualityLevelIndex( 0 );
+
+	TCamAppEngineInfo info;
+	iSettingsClient->GetInfo(info);
+    iSettingsClient->SetDigiZoomValue( info.iMaxDigitalZoom );
+
+#if (MIRAGE_X_PROD3)
+    iStatesClient->SetVideoCodecSet( 2 ); // 2: AAC audio, MPEG-4 video
+#else
+    iStatesClient->SetVideoCodecSet( 0 ); // 0: AMR audio, H.263 video
+#endif
+
+    iSettingsClient->SetVideoFileName( _L("cae_digizoom_val_1.3gp") );
+
+    iSettingsClient->RunTestActionL( CCaeTestSettingsClient::ESetDigiZoomWhenVideoPrepared );
+}
+
+void CCaeTestRelease::TestVRDigiZoomRecordingVal0L()
+{
+	// Group:   Settings
+    // 
+    // ID:      CAE.SET-VR.SETZOOMVALUEL.010
+    //
+    // Action : Test digital zoom.
+	//      
+	// Output : OK.   
+
+    iSettingsClient->SetTimeout( 4000000 );
+    
+    iSettingsClient->SetOpMode( CCaeTestSettingsClient::EClientOpModeVideo );   
+
+    iSettingsClient->SetVideoQualityLevelIndex( 0 );
+
+    iSettingsClient->SetDigiZoomValue( 0 );
+
+#if (MIRAGE_X_PROD3)
+    iStatesClient->SetVideoCodecSet( 2 ); // 2: AAC audio, MPEG-4 video
+#else
+    iStatesClient->SetVideoCodecSet( 0 ); // 0: AMR audio, H.263 video
+#endif
+
+    iSettingsClient->SetVideoFileName( _L("cae_digizoom_recording_val_0.3gp") );
+
+    iSettingsClient->RunTestActionL( CCaeTestSettingsClient::ESetDigiZoomWhenVideoRecording );
+}
+
+void CCaeTestRelease::TestVRDigiZoomRecordingVal1L()
+{
+	// Group:   Settings
+    // 
+    // ID:      CAE.SET-VR.SETZOOMVALUEL.011
+    //
+    // Action : Test digital zoom.
+	//      
+	// Output : OK.   
+
+    iSettingsClient->SetTimeout( 4000000 );
+    
+    iSettingsClient->SetOpMode( CCaeTestSettingsClient::EClientOpModeVideo );   
+
+    iSettingsClient->SetVideoQualityLevelIndex( 0 );
+
+	TCamAppEngineInfo info;
+	iSettingsClient->GetInfo( info );
+    iSettingsClient->SetDigiZoomValue( info.iMaxDigitalZoom );
+
+#if (MIRAGE_X_PROD3)
+    iStatesClient->SetVideoCodecSet( 2 ); // 2: AAC audio, MPEG-4 video
+#else
+    iStatesClient->SetVideoCodecSet( 0 ); // 0: AMR audio, H.263 video
+#endif
+
+    iSettingsClient->SetVideoFileName( _L("cae_digizoom_recording_val_1.3gp") );
+
+    iSettingsClient->RunTestActionL( CCaeTestSettingsClient::ESetDigiZoomWhenVideoRecording );
+}
+
+/********************************************************/
+/*        START AND STOP VIDEO RECORDING DISK FULL      */
+/********************************************************/
+
+void CCaeTestRelease::TestStartAndStopVRWhenTooBigSizeSubQcifL()
+    {
+	// ID: CAE.VR.STARTSTOPVRTOOBIGSIZE.SUBQCIF.001
+    //
+    // Group:   Record
+    // 
+    // Action : 
+	//      
+	// Output : Leave.   
+
+    iStatesClient->SetTimeout( 100000000 );
+
+    TSize sizeSubQcif( KImgWidthSubQCIF, KImgHeightSubQCIF );
+
+    iStatesClient->SetVideoFrameSize( sizeSubQcif );
+    iStatesClient->SetVideoFrameRate( TReal32( 10.0 ) );
+    iStatesClient->SetVideoBitRate( TInt( 25000 ) );
+
+#if (MIRAGE_X_PROD3)
+    iStatesClient->SetVideoCodecSet( 2 ); // 2: AAC audio, MPEG-4 video
+#else
+    iStatesClient->SetVideoCodecSet( 0 ); // 0: AMR audio, H.263 video
+#endif
+
+    //iStatesClient->SetVideoFileName( _L("cae_too_big_subqcif.3gp") );
+
+    TRAPD( error, iStatesClient->RunTestActionL( CCaeTestStatesClient::ESpecifiedPrepareAndRecordVideo ) );//we have to put correct action
+    if( error == KErrNoMemory )
+        {
+        User::Leave( error ); // For memory test
+        }
+    assertL( error == KErrDiskFull );
+
+    assertL( iStatesClient->CountInitComplete() == 1 );
+    assertL( iStatesClient->CountVideoPrepareComplete() == 1 );
+    assertL( iStatesClient->CountVideoRecordingOn() == 1 );
+    assertL( iStatesClient->CountVideoRecordingComplete() == 1 );
+    }
+
+/********************************************************/
+/*                     GET INFO                         */
+/********************************************************/
+
+void CCaeTestRelease::TestGetInfoL()
+    {
+    // Group:   Settings
+    //
+    // ID:      CAE.GEN.GETINFO.001
+    // 
+    // Action : Call GetInfo. Engine initialized
+    //      
+    // Output : OK.   
+    
+    iSettingsClient->RunTestActionL( CCaeTestSettingsClient::EGetInfo );
+    
+    // Get Camera Application Engine info object.
+    TCamAppEngineInfo info;
+    iSettingsClient->GetInfo( info );
+    
+    // Do comparisons.
+
+    /*
+    TVersion hardwareVersion = TVersion(0,0,0);
+    assertL( ( info.iHardwareVersion.iMajor == hardwareVersion.iMajor ) &&
+             ( info.iHardwareVersion.iMinor == hardwareVersion.iMinor ) &&
+             ( info.iHardwareVersion.iBuild == hardwareVersion.iBuild ) );
+
+    TVersion softwareVersion = TVersion(0,0,0);
+    assertL( ( info.iSoftwareVersion.iMajor == softwareVersion.iMajor ) &&
+             ( info.iSoftwareVersion.iMinor == softwareVersion.iMinor ) &&
+             ( info.iSoftwareVersion.iBuild == softwareVersion.iBuild ) );
+    */
+
+    TCameraInfo::TCameraOrientation orientation = TCameraInfo::EOrientationOutwards;
+    assertL( info.iOrientation == orientation );
+
+    TUint32 optionsSupported = TCameraInfo::EViewFinderBitmapsSupported |
+                               TCameraInfo::EImageCaptureSupported |
+                               TCameraInfo::EVideoCaptureSupported |
+                               TCameraInfo::EContrastSupported |
+                               TCameraInfo::EBrightnessSupported;
+    assertL( info.iOptionsSupported == optionsSupported );
+    
+    TUint32 flashModesSupported = CCamera::EFlashNone;
+    assertL( info.iFlashModesSupported == flashModesSupported );
+
+    TUint32 exposureModesSupported = CCamera::EExposureAuto | 
+                                     CCamera::EExposureNight;
+    assertL( info.iExposureModesSupported == exposureModesSupported );
+    
+    TUint32 whiteBalanceModesSupported = CCamera::EWBAuto;
+    assertL( info.iWhiteBalanceModesSupported == whiteBalanceModesSupported );
+
+    TInt minzoom = 0;
+    assertL( info.iMinZoom == minzoom );
+
+    TInt maxZoom = 0;
+    assertL( info.iMaxZoom == maxZoom );
+
+    TInt maxDigitalZoom = 1;
+    assertL( info.iMaxDigitalZoom == maxDigitalZoom );
+    
+    TReal32 minZoomFactor = 0.0;
+    assertL( info.iMinZoomFactor == minZoomFactor );
+
+    TReal32 maxZoomFactor = 0.0;
+    assertL( info.iMaxZoomFactor == maxZoomFactor );
+
+    TReal32 maxDigitalZoomFactor = 2.0;
+    assertL( info.iMaxDigitalZoomFactor == maxDigitalZoomFactor );
+
+    TInt numImageSizesSupported = 2;
+    assertL( info.iNumImageSizesSupported == numImageSizesSupported );
+
+    TUint32 imageFormatsSupported = CCamera::EFormatFbsBitmapColor4K |
+                                    CCamera::EFormatFbsBitmapColor64K |
+                                    CCamera::EFormatFbsBitmapColor16M;
+    assertL( info.iImageFormatsSupported == imageFormatsSupported );
+
+    TInt numStillQualityLevelsSupported = 3;
+    assertL( info.iNumStillQualityLevelsSupported == numStillQualityLevelsSupported );
+
+    TInt numVideoQualityLevelsSupported = 3;
+    assertL( info.iNumVideoQualityLevelsSupported == numVideoQualityLevelsSupported );
+
+    }
+
+void CCaeTestRelease::TestGetInfoPROD1MirageXL()
+    {
+    // Group:   Settings
+    //
+    // ID:      CAE.GEN.GETINFO.002
+    // 
+    // Action : Call GetInfo. Engine initialized
+    //          ** For PROD1 Mirage X**
+    //      
+    // Output : OK.   
+    
+    iSettingsClient->RunTestActionL( CCaeTestSettingsClient::EGetInfo );
+    
+    // Get Camera Application Engine info object.
+    TCamAppEngineInfo info;
+    iSettingsClient->GetInfo( info );
+    
+    // Do comparisons.
+
+    /*
+    TVersion hardwareVersion = TVersion(0,0,0);
+    assertL( ( info.iHardwareVersion.iMajor == hardwareVersion.iMajor ) &&
+             ( info.iHardwareVersion.iMinor == hardwareVersion.iMinor ) &&
+             ( info.iHardwareVersion.iBuild == hardwareVersion.iBuild ) );
+
+    TVersion softwareVersion = TVersion(0,0,0);
+    assertL( ( info.iSoftwareVersion.iMajor == softwareVersion.iMajor ) &&
+             ( info.iSoftwareVersion.iMinor == softwareVersion.iMinor ) &&
+             ( info.iSoftwareVersion.iBuild == softwareVersion.iBuild ) );
+    */
+
+    TCameraInfo::TCameraOrientation orientation = TCameraInfo::EOrientationOutwards;
+    assertL( info.iOrientation == orientation );
+
+    TUint32 optionsSupported = TCameraInfo::EViewFinderBitmapsSupported |
+                               TCameraInfo::EImageCaptureSupported |
+                               TCameraInfo::EVideoCaptureSupported |
+                               TCameraInfo::EContrastSupported |
+                               TCameraInfo::EBrightnessSupported;
+    assertL( info.iOptionsSupported == optionsSupported );
+    
+    TUint32 flashModesSupported = CCamera::EFlashNone;
+    assertL( info.iFlashModesSupported == flashModesSupported );
+
+    TUint32 exposureModesSupported = CCamera::EExposureAuto | 
+                                     CCamera::EExposureNight;
+    assertL( info.iExposureModesSupported == exposureModesSupported );
+    
+    TUint32 whiteBalanceModesSupported = CCamera::EWBAuto;
+    assertL( info.iWhiteBalanceModesSupported == whiteBalanceModesSupported );
+
+    TInt minzoom = 0;
+    assertL( info.iMinZoom == minzoom );
+
+    TInt maxZoom = 0;
+    assertL( info.iMaxZoom == maxZoom );
+
+    TInt maxDigitalZoom = 3;
+    assertL( info.iMaxDigitalZoom == maxDigitalZoom );
+    
+    TReal32 minZoomFactor = 0.0;
+    assertL( info.iMinZoomFactor == minZoomFactor );
+
+    TReal32 maxZoomFactor = 0.0;
+    assertL( info.iMaxZoomFactor == maxZoomFactor );
+
+    TReal32 maxDigitalZoomFactor = 4.0;
+    assertL( info.iMaxDigitalZoomFactor == maxDigitalZoomFactor );
+
+    TInt numImageSizesSupported = 4;
+    assertL( info.iNumImageSizesSupported == numImageSizesSupported );
+
+    TUint32 imageFormatsSupported = CCamera::EFormatFbsBitmapColor4K |
+                                    CCamera::EFormatFbsBitmapColor64K |
+                                    CCamera::EFormatFbsBitmapColor16M;
+    assertL( info.iImageFormatsSupported == imageFormatsSupported );
+
+    TInt numStillQualityLevelsSupported = 3;
+    assertL( info.iNumStillQualityLevelsSupported == numStillQualityLevelsSupported );
+
+    TInt numVideoQualityLevelsSupported = 3;
+    assertL( info.iNumVideoQualityLevelsSupported == numVideoQualityLevelsSupported );
+
+    }
+
+
+void CCaeTestRelease::TestGetInfoPROD2MirageXL()
+    {
+    // Group:   Settings
+    //
+    // ID:      CAE.GEN.GETINFO.003
+    // 
+    // Action : Call GetInfo. Engine initialized
+    //          ** For PROD2 Mirage X**
+    //      
+    // Output : OK.   
+    
+    iSettingsClient->RunTestActionL( CCaeTestSettingsClient::EGetInfo );
+    
+    // Get Camera Application Engine info object.
+    TCamAppEngineInfo info;
+    iSettingsClient->GetInfo( info );
+    
+    // Do comparisons.
+
+    /*
+    TVersion hardwareVersion = TVersion(0,0,0);
+    assertL( ( info.iHardwareVersion.iMajor == hardwareVersion.iMajor ) &&
+             ( info.iHardwareVersion.iMinor == hardwareVersion.iMinor ) &&
+             ( info.iHardwareVersion.iBuild == hardwareVersion.iBuild ) );
+
+    TVersion softwareVersion = TVersion(0,0,0);
+    assertL( ( info.iSoftwareVersion.iMajor == softwareVersion.iMajor ) &&
+             ( info.iSoftwareVersion.iMinor == softwareVersion.iMinor ) &&
+             ( info.iSoftwareVersion.iBuild == softwareVersion.iBuild ) );
+    */
+
+    TCameraInfo::TCameraOrientation orientation = TCameraInfo::EOrientationOutwards;
+    assertL( info.iOrientation == orientation );
+
+    TUint32 optionsSupported = TCameraInfo::EViewFinderBitmapsSupported |
+                               TCameraInfo::EImageCaptureSupported |
+                               TCameraInfo::EVideoCaptureSupported |
+                               TCameraInfo::EContrastSupported |
+                               TCameraInfo::EBrightnessSupported;
+    assertL( info.iOptionsSupported == optionsSupported );
+    
+    TUint32 flashModesSupported = CCamera::EFlashNone;
+    assertL( info.iFlashModesSupported == flashModesSupported );
+
+    TUint32 exposureModesSupported = CCamera::EExposureAuto | 
+                                     CCamera::EExposureNight |
+                                     CCamera::EExposureCenter |
+                                     CCamera::EExposureBacklight;
+    assertL( info.iExposureModesSupported == exposureModesSupported );
+    
+    TUint32 whiteBalanceModesSupported = CCamera::EWBAuto;
+    assertL( info.iWhiteBalanceModesSupported == whiteBalanceModesSupported );
+
+    TInt minzoom = 0;
+    assertL( info.iMinZoom == minzoom );
+
+    TInt maxZoom = 0;
+    assertL( info.iMaxZoom == maxZoom );
+
+    TInt maxDigitalZoom = 52;
+    assertL( info.iMaxDigitalZoom == maxDigitalZoom );
+    
+    TReal32 minZoomFactor = 0.0;
+    assertL( info.iMinZoomFactor == minZoomFactor );
+
+    TReal32 maxZoomFactor = 0.0;
+    assertL( info.iMaxZoomFactor == maxZoomFactor );
+
+    TReal32 maxDigitalZoomFactor = 6.0;
+    assertL( info.iMaxDigitalZoomFactor == maxDigitalZoomFactor );
+
+    TInt numImageSizesSupported = 3;
+    assertL( info.iNumImageSizesSupported == numImageSizesSupported );
+
+    TUint32 imageFormatsSupported = CCamera::EFormatFbsBitmapColor4K |
+                                    CCamera::EFormatFbsBitmapColor64K |
+                                    CCamera::EFormatFbsBitmapColor16M |
+                                    CCamera::EFormatExif;
+    assertL( info.iImageFormatsSupported == imageFormatsSupported );
+
+    TInt numStillQualityLevelsSupported = 3;
+    assertL( info.iNumStillQualityLevelsSupported == numStillQualityLevelsSupported );
+
+    TInt numVideoQualityLevelsSupported = 3;
+    assertL( info.iNumVideoQualityLevelsSupported == numVideoQualityLevelsSupported );
+
+    }
+
+
+void CCaeTestRelease::TestGetInfoPROD3MirageXPL()
+    {
+    // Group:   Settings
+    //
+    // ID:      CAE.GEN.GETINFO.004
+    // 
+    // Action : Call GetInfo. Engine initialized
+    //          ** For PROD3 Mirage XP**
+    //      
+    // Output : OK.   
+    
+    iSettingsClient->RunTestActionL( CCaeTestSettingsClient::EGetInfo );
+    
+    // Get Camera Application Engine info object.
+    TCamAppEngineInfo info;
+    iSettingsClient->GetInfo( info );
+    
+    // Do comparisons.
+
+    /*
+    TVersion hardwareVersion = TVersion(0,0,0);
+    assertL( ( info.iHardwareVersion.iMajor == hardwareVersion.iMajor ) &&
+             ( info.iHardwareVersion.iMinor == hardwareVersion.iMinor ) &&
+             ( info.iHardwareVersion.iBuild == hardwareVersion.iBuild ) );
+
+    TVersion softwareVersion = TVersion(0,0,0);
+    assertL( ( info.iSoftwareVersion.iMajor == softwareVersion.iMajor ) &&
+             ( info.iSoftwareVersion.iMinor == softwareVersion.iMinor ) &&
+             ( info.iSoftwareVersion.iBuild == softwareVersion.iBuild ) );
+    */
+
+    TCameraInfo::TCameraOrientation orientation = TCameraInfo::EOrientationOutwards;
+    assertL( info.iOrientation == orientation );
+
+    TUint32 optionsSupported = TCameraInfo::EViewFinderBitmapsSupported |
+                               TCameraInfo::EImageCaptureSupported |
+                               TCameraInfo::EVideoCaptureSupported |
+                               TCameraInfo::EContrastSupported |
+                               TCameraInfo::EBrightnessSupported;
+    assertL( info.iOptionsSupported == optionsSupported );
+    
+    TUint32 flashModesSupported = CCamera::EFlashNone |
+                                  CCamera::EFlashAuto | 
+                                  CCamera::EFlashForced;
+    assertL( info.iFlashModesSupported == flashModesSupported );
+
+    TUint32 exposureModesSupported = CCamera::EExposureAuto | 
+                                     CCamera::EExposureNight;
+    assertL( info.iExposureModesSupported == exposureModesSupported );
+    
+    TUint32 whiteBalanceModesSupported = CCamera::EWBAuto |
+                                         CCamera::EWBDaylight |
+                                         CCamera::EWBCloudy | 
+                                         CCamera::EWBTungsten |
+                                         CCamera::EWBFluorescent;
+    assertL( info.iWhiteBalanceModesSupported == whiteBalanceModesSupported );
+
+    TInt minzoom = 0;
+    assertL( info.iMinZoom == minzoom );
+
+    TInt maxZoom = 0;
+    assertL( info.iMaxZoom == maxZoom );
+
+    TInt maxDigitalZoom = 3;
+    assertL( info.iMaxDigitalZoom == maxDigitalZoom );
+    
+    TReal32 minZoomFactor = 0.0;
+    assertL( info.iMinZoomFactor == minZoomFactor );
+
+    TReal32 maxZoomFactor = 0.0;
+    assertL( info.iMaxZoomFactor == maxZoomFactor );
+
+    TReal32 maxDigitalZoomFactor = 4.0;
+    assertL( info.iMaxDigitalZoomFactor == maxDigitalZoomFactor );
+
+    TInt numImageSizesSupported = 3; // 4 with HW version of Camera API !
+    assertL( info.iNumImageSizesSupported == numImageSizesSupported );
+
+    TUint32 imageFormatsSupported = CCamera::EFormatFbsBitmapColor4K |
+                                    CCamera::EFormatFbsBitmapColor64K |
+                                    CCamera::EFormatFbsBitmapColor16M |
+                                    CCamera::EFormatExif;
+    assertL( info.iImageFormatsSupported == imageFormatsSupported );
+
+    TInt numStillQualityLevelsSupported = 3;
+    assertL( info.iNumStillQualityLevelsSupported == numStillQualityLevelsSupported );
+
+    TInt numVideoQualityLevelsSupported = 3;
+    assertL( info.iNumVideoQualityLevelsSupported == numVideoQualityLevelsSupported );
+
+    }
+
+void CCaeTestRelease::TestGetInfoPROD4MirageXL()
+    {
+    // Group:   Settings
+    //
+    // ID:      CAE.GEN.GETINFO.005
+    // 
+    // Action : Call GetInfo. Engine initialized
+    //          ** For PROD4 Mirage X**
+    //      
+    // Output : OK.   
+    
+    iSettingsClient->RunTestActionL( CCaeTestSettingsClient::EGetInfo );
+    
+    // Get Camera Application Engine info object.
+    TCamAppEngineInfo info;
+    iSettingsClient->GetInfo( info );
+    
+    // Do comparisons.
+
+    /*
+    TVersion hardwareVersion = TVersion(0,0,0);
+    assertL( ( info.iHardwareVersion.iMajor == hardwareVersion.iMajor ) &&
+             ( info.iHardwareVersion.iMinor == hardwareVersion.iMinor ) &&
+             ( info.iHardwareVersion.iBuild == hardwareVersion.iBuild ) );
+
+    TVersion softwareVersion = TVersion(0,0,0);
+    assertL( ( info.iSoftwareVersion.iMajor == softwareVersion.iMajor ) &&
+             ( info.iSoftwareVersion.iMinor == softwareVersion.iMinor ) &&
+             ( info.iSoftwareVersion.iBuild == softwareVersion.iBuild ) );
+    */
+
+    TCameraInfo::TCameraOrientation orientation = TCameraInfo::EOrientationOutwards;
+    assertL( info.iOrientation == orientation );
+
+    TUint32 optionsSupported = TCameraInfo::EViewFinderBitmapsSupported |
+                               TCameraInfo::EImageCaptureSupported |
+                               TCameraInfo::EVideoCaptureSupported |
+                               TCameraInfo::EContrastSupported |
+                               TCameraInfo::EBrightnessSupported;
+    assertL( info.iOptionsSupported == optionsSupported );
+    
+    TUint32 flashModesSupported = CCamera::EFlashNone | 
+                                           CCamera::EFlashAuto |
+                                           CCamera::EFlashForced;
+    assertL( info.iFlashModesSupported == flashModesSupported );
+
+    TUint32 exposureModesSupported = CCamera::EExposureAuto | 
+                                     CCamera::EExposureNight |
+                                     CCamera::EExposureCenter |
+                                     CCamera::EExposureBacklight;
+    assertL( info.iExposureModesSupported == exposureModesSupported );
+    
+    TUint32 whiteBalanceModesSupported = CCamera::EWBAuto;
+    assertL( info.iWhiteBalanceModesSupported == whiteBalanceModesSupported );
+
+    TInt minzoom = 0;
+    assertL( info.iMinZoom == minzoom );
+
+    TInt maxZoom = 0;
+    assertL( info.iMaxZoom == maxZoom );
+
+    TInt maxDigitalZoom = 52;
+    assertL( info.iMaxDigitalZoom == maxDigitalZoom );
+    
+    TReal32 minZoomFactor = 0.0;
+    assertL( info.iMinZoomFactor == minZoomFactor );
+
+    TReal32 maxZoomFactor = 0.0;
+    assertL( info.iMaxZoomFactor == maxZoomFactor );
+
+    TReal32 maxDigitalZoomFactor = 6.0;
+    assertL( info.iMaxDigitalZoomFactor == maxDigitalZoomFactor );
+
+    TInt numImageSizesSupported = 3;
+    assertL( info.iNumImageSizesSupported == numImageSizesSupported );
+
+    TUint32 imageFormatsSupported = CCamera::EFormatFbsBitmapColor4K |
+                                    CCamera::EFormatFbsBitmapColor64K |
+                                    CCamera::EFormatFbsBitmapColor16M |
+                                    CCamera::EFormatExif;
+    assertL( info.iImageFormatsSupported == imageFormatsSupported );
+
+    TInt numStillQualityLevelsSupported = 3;
+    assertL( info.iNumStillQualityLevelsSupported == numStillQualityLevelsSupported );
+
+    TInt numVideoQualityLevelsSupported = 3;
+    assertL( info.iNumVideoQualityLevelsSupported == numVideoQualityLevelsSupported );
+
+    }
+
+void CCaeTestRelease::TestGetInfoPROD6MirageXL()
+    {
+    // Group:   Settings
+    //
+    // ID:      CAE.GEN.GETINFO.006
+    // 
+    // Action : Call GetInfo. Engine initialized
+    //          ** For PROD6 Mirage X**
+    //      
+    // Output : OK.   
+    
+    iSettingsClient->RunTestActionL( CCaeTestSettingsClient::EGetInfo );
+    
+    // Get Camera Application Engine info object.
+    TCamAppEngineInfo info;
+    iSettingsClient->GetInfo( info );
+    
+    // Do comparisons.
+
+    /*
+    TVersion hardwareVersion = TVersion(0,0,0);
+    assertL( ( info.iHardwareVersion.iMajor == hardwareVersion.iMajor ) &&
+             ( info.iHardwareVersion.iMinor == hardwareVersion.iMinor ) &&
+             ( info.iHardwareVersion.iBuild == hardwareVersion.iBuild ) );
+
+    TVersion softwareVersion = TVersion(0,0,0);
+    assertL( ( info.iSoftwareVersion.iMajor == softwareVersion.iMajor ) &&
+             ( info.iSoftwareVersion.iMinor == softwareVersion.iMinor ) &&
+             ( info.iSoftwareVersion.iBuild == softwareVersion.iBuild ) );
+    */
+
+    TCameraInfo::TCameraOrientation orientation = TCameraInfo::EOrientationOutwards;
+    assertL( info.iOrientation == orientation );
+
+    TUint32 optionsSupported = TCameraInfo::EViewFinderBitmapsSupported |
+                               TCameraInfo::EImageCaptureSupported |
+                               TCameraInfo::EVideoCaptureSupported |
+                               TCameraInfo::EViewFinderMirrorSupported;
+
+    assertL( info.iOptionsSupported == optionsSupported );
+    
+    TUint32 flashModesSupported = CCamera::EFlashNone;
+    assertL( info.iFlashModesSupported == flashModesSupported );
+
+    TUint32 exposureModesSupported = CCamera::EExposureAuto |
+    								 CCamera::EExposureNight; 
+    assertL( info.iExposureModesSupported == exposureModesSupported );
+    
+    TUint32 whiteBalanceModesSupported = CCamera::EWBAuto;
+    assertL( info.iWhiteBalanceModesSupported == whiteBalanceModesSupported );
+
+    TInt minzoom = 0;
+    assertL( info.iMinZoom == minzoom );
+
+    TInt maxZoom = 0;
+    assertL( info.iMaxZoom == maxZoom );
+
+    TInt maxDigitalZoom = 52;
+    assertL( info.iMaxDigitalZoom == maxDigitalZoom );
+    
+    TReal32 minZoomFactor = 0.0;
+    assertL( info.iMinZoomFactor == minZoomFactor );
+
+    TReal32 maxZoomFactor = 0.0;
+    assertL( info.iMaxZoomFactor == maxZoomFactor );
+
+    TReal32 maxDigitalZoomFactor = 6.0;
+    assertL( info.iMaxDigitalZoomFactor == maxDigitalZoomFactor );
+
+    TInt numImageSizesSupported = 3;
+    assertL( info.iNumImageSizesSupported == numImageSizesSupported );
+
+    TUint32 imageFormatsSupported = CCamera::EFormatFbsBitmapColor4K |
+                                    CCamera::EFormatFbsBitmapColor64K |
+                                    CCamera::EFormatFbsBitmapColor16M |
+                                    CCamera::EFormatExif;
+    assertL( info.iImageFormatsSupported == imageFormatsSupported );
+
+    TInt numStillQualityLevelsSupported = 3;
+    assertL( info.iNumStillQualityLevelsSupported == numStillQualityLevelsSupported );
+
+    TInt numVideoQualityLevelsSupported = 3;
+    assertL( info.iNumVideoQualityLevelsSupported == numVideoQualityLevelsSupported );
+
+    }
+
+
+void CCaeTestRelease::TestGetInfoPROD7Unagi2ML()
+    {
+    // Group:   Settings
+    //
+    // ID:      CAE.GEN.GETINFO.007
+    // 
+    // Action : Call GetInfo. Engine initialized
+    //          ** For PROD7 Unagi 2M **
+    //      
+    // Output : OK.   
+    
+    iSettingsClient->RunTestActionL( CCaeTestSettingsClient::EGetInfo );
+    
+    // Get Camera Application Engine info object.
+    TCamAppEngineInfo info;
+    iSettingsClient->GetInfo( info );
+    
+    // Do comparisons.
+
+    /*
+    TVersion hardwareVersion = TVersion(0,0,0);
+    assertL( ( info.iHardwareVersion.iMajor == hardwareVersion.iMajor ) &&
+             ( info.iHardwareVersion.iMinor == hardwareVersion.iMinor ) &&
+             ( info.iHardwareVersion.iBuild == hardwareVersion.iBuild ) );
+
+    TVersion softwareVersion = TVersion(0,0,0);
+    assertL( ( info.iSoftwareVersion.iMajor == softwareVersion.iMajor ) &&
+             ( info.iSoftwareVersion.iMinor == softwareVersion.iMinor ) &&
+             ( info.iSoftwareVersion.iBuild == softwareVersion.iBuild ) );
+    */
+
+    TCameraInfo::TCameraOrientation orientation = TCameraInfo::EOrientationOutwards;
+    assertL( info.iOrientation == orientation );
+
+    TUint32 optionsSupported = TCameraInfo::EViewFinderBitmapsSupported |
+                               TCameraInfo::EImageCaptureSupported |
+                               TCameraInfo::EVideoCaptureSupported |
+                               TCameraInfo::EViewFinderMirrorSupported;
+                               //TCameraInfo::EContrastSupported |
+                               //TCameraInfo::EBrightnessSupported;
+    assertL( info.iOptionsSupported == optionsSupported );
+    
+    TUint32 flashModesSupported = CCamera::EFlashNone | 
+                                  CCamera::EFlashAuto |
+                                  CCamera::EFlashForced |
+                                  CCamera::EFlashRedEyeReduce;
+    assertL( info.iFlashModesSupported == flashModesSupported );
+
+    TUint32 exposureModesSupported = CCamera::EExposureAuto | 
+                                     CCamera::EExposureNight |
+                                     CCamera::EExposureCenter |
+                                     CCamera::EExposureBacklight |
+                                     CCamera::EExposureSport;
+    assertL( info.iExposureModesSupported == exposureModesSupported );
+    
+    TUint32 whiteBalanceModesSupported = CCamera::EWBAuto |
+                                         CCamera::EWBDaylight |
+                                         CCamera::EWBCloudy |
+                                         CCamera::EWBTungsten |
+                                         CCamera::EWBFluorescent;
+    assertL( info.iWhiteBalanceModesSupported == whiteBalanceModesSupported );
+
+    TInt minzoom = 0;
+    assertL( info.iMinZoom == minzoom );
+
+    TInt maxZoom = 0;
+    assertL( info.iMaxZoom == maxZoom );
+
+    TInt maxDigitalZoom = 71;
+    assertL( info.iMaxDigitalZoom == maxDigitalZoom );
+    
+    TReal32 minZoomFactor = 0.0;
+    assertL( info.iMinZoomFactor == minZoomFactor );
+
+    TReal32 maxZoomFactor = 0.0;
+    assertL( info.iMaxZoomFactor == maxZoomFactor );
+
+    TReal32 maxDigitalZoomFactor = 20.0;
+    assertL( info.iMaxDigitalZoomFactor == maxDigitalZoomFactor );
+
+    TInt numImageSizesSupported = 4;
+    assertL( info.iNumImageSizesSupported == numImageSizesSupported );
+
+    TUint32 imageFormatsSupported = CCamera::EFormatFbsBitmapColor4K |
+                                    CCamera::EFormatFbsBitmapColor64K |
+                                    CCamera::EFormatFbsBitmapColor16M |
+                                    CCamera::EFormatExif;
+    assertL( info.iImageFormatsSupported == imageFormatsSupported );
+
+    TInt numStillQualityLevelsSupported = 3;
+    assertL( info.iNumStillQualityLevelsSupported == numStillQualityLevelsSupported );
+
+    TInt numVideoQualityLevelsSupported = 3;
+    assertL( info.iNumVideoQualityLevelsSupported == numVideoQualityLevelsSupported );
+
+    }
+
+
+
+void CCaeTestRelease::TestGetInfoPROD8MirageXL()
+
+    {
+
+    // Group:   Settings
+    //
+    // ID:      CAE.GEN.GETINFO.008
+    // 
+    // Action : Call GetInfo. Engine initialized
+    //          ** For PROD8 Mirage X**
+    //      
+    // Output : OK.   
+    
+    iSettingsClient->RunTestActionL( CCaeTestSettingsClient::EGetInfo );   
+
+    // Get Camera Application Engine info object.
+    TCamAppEngineInfo info;
+    iSettingsClient->GetInfo( info );  
+
+    // Do comparisons.
+
+    /*
+    TVersion hardwareVersion = TVersion(0,0,0);
+    assertL( ( info.iHardwareVersion.iMajor == hardwareVersion.iMajor ) &&
+             ( info.iHardwareVersion.iMinor == hardwareVersion.iMinor ) &&
+             ( info.iHardwareVersion.iBuild == hardwareVersion.iBuild ) );
+
+    TVersion softwareVersion = TVersion(0,0,0);
+    assertL( ( info.iSoftwareVersion.iMajor == softwareVersion.iMajor ) &&
+             ( info.iSoftwareVersion.iMinor == softwareVersion.iMinor ) &&
+             ( info.iSoftwareVersion.iBuild == softwareVersion.iBuild ) );
+    */
+
+    TCameraInfo::TCameraOrientation orientation = TCameraInfo::EOrientationOutwards;
+    assertL( info.iOrientation == orientation );
+
+    TUint32 optionsSupported = TCameraInfo::EViewFinderBitmapsSupported |
+                               TCameraInfo::EImageCaptureSupported |
+                               TCameraInfo::EVideoCaptureSupported;                               
+    assertL( info.iOptionsSupported == optionsSupported );
+  
+    TUint32 flashModesSupported = CCamera::EFlashNone;
+    assertL( info.iFlashModesSupported == flashModesSupported );
+
+    TUint32 exposureModesSupported = CCamera::EExposureAuto |
+    								 CCamera::EExposureNight |
+    								 CCamera::EExposureSport |
+                                     CCamera::EExposureCenter;
+                                     
+    assertL( info.iExposureModesSupported == exposureModesSupported );
+
+    TUint32 whiteBalanceModesSupported = CCamera::EWBAuto |
+                                         CCamera::EWBDaylight |
+                                         CCamera::EWBCloudy |
+                                         CCamera::EWBTungsten |
+                                         CCamera::EWBFluorescent;
+
+    assertL( info.iWhiteBalanceModesSupported == whiteBalanceModesSupported );
+
+    TInt minzoom = 0;
+    assertL( info.iMinZoom == minzoom );
+
+    TInt maxZoom = 0;
+    assertL( info.iMaxZoom == maxZoom );
+
+    TInt maxDigitalZoom = 71;
+    assertL( info.iMaxDigitalZoom == maxDigitalZoom );
+
+    TReal32 minZoomFactor = 0.0;
+    assertL( info.iMinZoomFactor == minZoomFactor );
+
+    TReal32 maxZoomFactor = 0.0;
+    assertL( info.iMaxZoomFactor == maxZoomFactor );
+
+    TReal32 maxDigitalZoomFactor = 20.0;
+    assertL( info.iMaxDigitalZoomFactor == maxDigitalZoomFactor );
+
+    TInt numImageSizesSupported = 5;
+    assertL( info.iNumImageSizesSupported == numImageSizesSupported );
+
+    TUint32 imageFormatsSupported = CCamera::EFormatFbsBitmapColor4K |
+                                    CCamera::EFormatFbsBitmapColor64K |
+                                    CCamera::EFormatFbsBitmapColor16M |
+                                    CCamera::EFormatExif;
+
+    assertL( info.iImageFormatsSupported == imageFormatsSupported );
+
+    TInt numStillQualityLevelsSupported = 3;
+    assertL( info.iNumStillQualityLevelsSupported == numStillQualityLevelsSupported );
+
+    TInt numVideoQualityLevelsSupported = 3;
+    assertL( info.iNumVideoQualityLevelsSupported == numVideoQualityLevelsSupported );
+
+    }
+    
+
+void CCaeTestRelease::TestGetInfoPROD9HWL()
+
+    {
+
+    // Group:   Settings
+    //
+    // ID:      CAE.GEN.GETINFO.009
+    // 
+    // Action : Call GetInfo. Engine initialized
+    //          ** For PROD9 HW **
+    //      
+    // Output : OK.   
+    
+    iSettingsClient->RunTestActionL( CCaeTestSettingsClient::EGetInfo );   
+
+    // Get Camera Application Engine info object.
+    TCamAppEngineInfo info;
+    iSettingsClient->GetInfo( info );  
+
+    // Do comparisons.
+
+    /*
+    TVersion hardwareVersion = TVersion(0,0,0);
+    assertL( ( info.iHardwareVersion.iMajor == hardwareVersion.iMajor ) &&
+             ( info.iHardwareVersion.iMinor == hardwareVersion.iMinor ) &&
+             ( info.iHardwareVersion.iBuild == hardwareVersion.iBuild ) );
+
+    TVersion softwareVersion = TVersion(0,0,0);
+    assertL( ( info.iSoftwareVersion.iMajor == softwareVersion.iMajor ) &&
+             ( info.iSoftwareVersion.iMinor == softwareVersion.iMinor ) &&
+             ( info.iSoftwareVersion.iBuild == softwareVersion.iBuild ) );
+    */
+
+    TCameraInfo::TCameraOrientation orientation = TCameraInfo::EOrientationOutwards;
+    assertL( info.iOrientation == orientation );
+
+    TUint32 optionsSupported = TCameraInfo::EViewFinderBitmapsSupported |
+                               TCameraInfo::EImageCaptureSupported |
+                               TCameraInfo::EVideoCaptureSupported;                               
+    assertL( info.iOptionsSupported == optionsSupported );
+  
+    TUint32 flashModesSupported =           CCamera::EFlashAuto     |
+                                            CCamera::EFlashForced   |
+                                            CCamera::EFlashRedEyeReduce;
+    assertL( info.iFlashModesSupported == flashModesSupported );
+
+    TUint32 exposureModesSupported = CCamera::EExposureAuto |
+    								 CCamera::EExposureNight |
+    								 CCamera::EExposureBacklight |
+                                     CCamera::EExposureCenter |
+                                     CCamera::EExposureSuperNight;
+                                     
+    RDebug::Print(_L("info.iExposureModesSupported = 0x%x / 0x%x"), info.iExposureModesSupported, exposureModesSupported);
+    assertL( info.iExposureModesSupported == exposureModesSupported );
+
+    TUint32 whiteBalanceModesSupported = CCamera::EWBAuto |
+                                         CCamera::EWBDaylight |
+                                         CCamera::EWBTungsten |
+                                         CCamera::EWBFluorescent;
+
+    assertL( info.iWhiteBalanceModesSupported == whiteBalanceModesSupported );
+
+    TInt minzoom = 0;
+    assertL( info.iMinZoom == minzoom );
+
+    TInt maxZoom = 0;
+    assertL( info.iMaxZoom == maxZoom );
+
+    TInt maxDigitalZoom = 40;
+    assertL( info.iMaxDigitalZoom == maxDigitalZoom );
+
+    TReal32 minZoomFactor = 0.0;
+    assertL( info.iMinZoomFactor == minZoomFactor );
+
+    TReal32 maxZoomFactor = 0.0;
+    assertL( info.iMaxZoomFactor == maxZoomFactor );
+
+    TReal32 maxDigitalZoomFactor = 4.0;
+    assertL( info.iMaxDigitalZoomFactor == maxDigitalZoomFactor );
+
+#if ( defined (__WINS__) || defined (__WINSCW) ) // this different on hw
+    TInt numImageSizesSupported = 3;
+#else
+    TInt numImageSizesSupported = 4;
+#endif
+    RDebug::Print(_L("info.iNumImageSizesSupported = %d"), info.iNumImageSizesSupported);
+
+    assertL( info.iNumImageSizesSupported == numImageSizesSupported );
+
+    TUint32 imageFormatsSupported = CCamera::EFormatFbsBitmapColor4K |
+                                    CCamera::EFormatFbsBitmapColor64K |
+                                    CCamera::EFormatFbsBitmapColor16M |
+                                    CCamera::EFormatExif;
+
+    assertL( info.iImageFormatsSupported == imageFormatsSupported );
+
+    TInt numStillQualityLevelsSupported = 3;
+    assertL( info.iNumStillQualityLevelsSupported == numStillQualityLevelsSupported );
+
+    TInt numVideoQualityLevelsSupported = 3;
+    assertL( info.iNumVideoQualityLevelsSupported == numVideoQualityLevelsSupported );
+
+    }
+    
+
+void CCaeTestRelease::TestGetInfoDevlonHWL()
+    {
+
+    // Group:   Settings
+    //
+    // ID:      CAE.GEN.GETINFO.010
+    // 
+    // Action : Call GetInfo. Engine initialized
+    //          ** For Devlon HW **
+    //      
+    // Output : OK. Note only interfaces are tested, not the content itself anymore
+    
+    iSettingsClient->RunTestActionL( CCaeTestSettingsClient::EGetInfo );   
+
+    // Get Camera Application Engine info object.
+    TCamAppEngineInfo info;
+    iSettingsClient->GetInfo( info );  
+
+//    TCameraInfo::TCameraOrientation orientation = TCameraInfo::EOrientationOutwards;
+//    assertL( info.iOrientation == orientation );
+    RDebug::Print(_L("info.iOrientation = 0x%x"), info.iOrientation);
+
+//    TUint32 optionsSupported = TCameraInfo::EViewFinderBitmapsSupported |
+//                               TCameraInfo::EImageCaptureSupported |
+//                               TCameraInfo::EVideoCaptureSupported;                               
+//    assertL( info.iOptionsSupported == optionsSupported );
+    RDebug::Print(_L("info.iOptionsSupported = 0x%x"), info.iOptionsSupported);
+  
+//    TUint32 flashModesSupported =           CCamera::EFlashAuto     |
+//                                            CCamera::EFlashForced   |
+//                                            CCamera::EFlashRedEyeReduce;
+//    assertL( info.iFlashModesSupported == flashModesSupported );
+    RDebug::Print(_L("info.iFlashModesSupported = 0x%x"), info.iFlashModesSupported);
+
+//    TUint32 exposureModesSupported = CCamera::EExposureAuto |
+//    								 CCamera::EExposureNight |
+//    								 CCamera::EExposureBacklight |
+//                                     CCamera::EExposureCenter;
+                                     
+//    assertL( info.iExposureModesSupported == exposureModesSupported );
+    RDebug::Print(_L("info.iExposureModesSupported = 0x%x"), info.iExposureModesSupported);
+
+//    TUint32 whiteBalanceModesSupported = CCamera::EWBAuto |
+//                                         CCamera::EWBDaylight |
+//                                         CCamera::EWBTungsten |
+//                                         CCamera::EWBFluorescent;
+
+//    assertL( info.iWhiteBalanceModesSupported == whiteBalanceModesSupported );
+    RDebug::Print(_L("info.iWhiteBalanceModesSupported = 0x%x"), info.iWhiteBalanceModesSupported);
+
+//    TInt minzoom = 0;
+//    assertL( info.iMinZoom == minzoom );
+    RDebug::Print(_L("info.iMinZoom = 0x%x"), info.iMinZoom);
+
+//    TInt maxZoom = 0;
+//    assertL( info.iMaxZoom == maxZoom );
+    RDebug::Print(_L("info.iMaxZoom = 0x%x"), info.iMaxZoom);
+
+//    TInt maxDigitalZoom = 40;
+//    assertL( info.iMaxDigitalZoom == maxDigitalZoom );
+    RDebug::Print(_L("info.iMaxDigitalZoom = 0x%x"), info.iMaxDigitalZoom);
+
+//    TReal32 minZoomFactor = 0.0;
+//    assertL( info.iMinZoomFactor == minZoomFactor );
+    RDebug::Print(_L("info.minZoomFactor = 0x%x"), info.iMinZoomFactor);
+
+//    TReal32 maxZoomFactor = 0.0;
+//    assertL( info.iMaxZoomFactor == maxZoomFactor );
+    RDebug::Print(_L("info.iMaxZoomFactor = 0x%x"), info.iMaxZoomFactor);
+
+//    TReal32 maxDigitalZoomFactor = 4.0;
+//    assertL( info.iMaxDigitalZoomFactor == maxDigitalZoomFactor );
+    RDebug::Print(_L("info.iMaxDigitalZoomFactor = 0x%x"), info.iMaxDigitalZoomFactor);
+
+//#if ( defined (__WINS__) || defined (__WINSCW) ) // this different on hw
+//    TInt numImageSizesSupported = 3;
+//#else
+//    TInt numImageSizesSupported = 4;
+//#endif
+//    RDebug::Print(_L("info.iNumImageSizesSupported = %d"), info.iNumImageSizesSupported);
+
+//    assertL( info.iNumImageSizesSupported == numImageSizesSupported );
+    RDebug::Print(_L("info.iNumImageSizesSupported = 0x%x"), info.iNumImageSizesSupported);
+
+//    TUint32 imageFormatsSupported = CCamera::EFormatFbsBitmapColor4K |
+//                                    CCamera::EFormatFbsBitmapColor64K |
+//                                    CCamera::EFormatFbsBitmapColor16M |
+//                                    CCamera::EFormatExif;
+
+//    assertL( info.iImageFormatsSupported == imageFormatsSupported );
+    RDebug::Print(_L("info.iImageFormatsSupported = 0x%x"), info.iImageFormatsSupported);
+
+//    TInt numStillQualityLevelsSupported = 3;
+//    assertL( info.iNumStillQualityLevelsSupported == numStillQualityLevelsSupported );
+    RDebug::Print(_L("info.iNumStillQualityLevelsSupported = 0x%x"), info.iNumStillQualityLevelsSupported);
+
+//    TInt numVideoQualityLevelsSupported = 3;
+//    assertL( info.iNumVideoQualityLevelsSupported == numVideoQualityLevelsSupported );
+    RDebug::Print(_L("info.iNumVideoQualityLevelsSupported = 0x%x"), info.iNumVideoQualityLevelsSupported);
+
+    }
+    
+
+/********************************************************/
+/*               RESUME VIDEO RECORDING                 */
+/********************************************************/
+
+void CCaeTestRelease::TestRecordPauseResumeStopL()
+    {
+	// ID:      CAE.VR.RESUMEVIDEORECORDING.001
+    //
+    // Group:   Record.
+    // 
+    // Action : Resume video clip recording after pause. 
+    //          Video recording.
+	//      
+	// Output : No leave. File KVideoFileName, "videoclip.3gp".   
+
+    iStatesClient->SetTimeout( 4000000 );
+
+    iStatesClient->SetVideoQualityLevelIndex( 0 );
+
+#if (MIRAGE_X_PROD3)
+    iStatesClient->SetVideoCodecSet( 2 ); // 2: AAC audio, MPEG-4 video
+#else
+    iStatesClient->SetVideoCodecSet( 0 ); // 0: AMR audio, H.263 video
+#endif
+
+    iStatesClient->SetVideoFileName( _L("cae_pause_resume.3gp") );
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::EPrepareRecordPauseResumeStopVideo );
+
+    assertL( iStatesClient->CountInitComplete() == 1 );
+    assertL( iStatesClient->CountVideoPrepareComplete() == 1 );
+    assertL( iStatesClient->CountVideoRecordingPaused() == 1 );
+    assertL( iStatesClient->CountVideoRecordingOn() == 2 );
+    assertL( iStatesClient->CountVideoRecordingComplete() == 1 );
+    }
+
+/********************************************************/
+/*             STILL CAPTURE EXPOSURE MODE              */
+/********************************************************/
+
+void CCaeTestRelease::TestSCExposureMode0L()
+{
+	// Group:   Settings.
+    // 
+    // ID:      CAE.SET-SC.SETEXPOSUREMODEL.001
+    //
+    // Action : Test auto exposure mode setting with still image capture and viewfinding.
+	//      
+	// Output : No leave.   
+
+    iSettingsClient->SetStillQualityLevelIndex( 0 );
+
+    iSettingsClient->SetExposureMode( 0 ); // auto mode should be supported
+
+    iSettingsClient->SetStillFileName( _L("cae_exposure_mode_0.jpg") );
+
+    iSettingsClient->RunTestActionL( CCaeTestSettingsClient::ESetExposureModeWhenStillPrepared );
+}
+
+void CCaeTestRelease::TestSCExposureMode1L()
+{
+	// Group:   Settings.
+    // 
+    // ID:      CAE.SET-SC.SETEXPOSUREMODEL.002
+    //
+    // Action : Test night exposure mode setting with still image capture and viewfinding.
+	//      
+	// Output : No leave.   
+
+    iSettingsClient->SetStillQualityLevelIndex( 0 );
+
+    iSettingsClient->SetExposureMode( 1 ); // night mode should be supported
+
+    iSettingsClient->SetStillFileName( _L("cae_exposure_mode_1.jpg") );
+
+    iSettingsClient->RunTestActionL( CCaeTestSettingsClient::ESetExposureModeWhenStillPrepared );
+}
+
+void CCaeTestRelease::TestSCExposureModeInitialized0L()
+{
+	// Group:   Settings.
+    // 
+    // ID:      CAE.SET-SC.SETEXPOSUREMODEL.015
+    //
+    // Action : Test auto exposure mode setting with still image capture and viewfinding.
+	//      
+	// Output : No leave.   
+
+    iSettingsClient->SetStillQualityLevelIndex( 0 );
+
+    iSettingsClient->SetExposureMode( 0 ); // auto mode should be supported
+
+    iSettingsClient->SetStillFileName( _L("cae_exposure_mode_initialized_0.jpg") );
+
+    iSettingsClient->RunTestActionL( CCaeTestSettingsClient::ESetExposureModeWhenInitialized );
+}
+
+void CCaeTestRelease::TestSCExposureModeInitialized1L()
+{
+	// Group:   Settings.
+    // 
+    // ID:      CAE.SET-SC.SETEXPOSUREMODEL.016
+    //
+    // Action : Test night exposure mode setting with still image capture and viewfinding.
+	//      
+	// Output : No leave.   
+
+    iSettingsClient->SetStillQualityLevelIndex( 0 );
+
+    iSettingsClient->SetExposureMode( 1 ); // night mode should be supported
+
+    iSettingsClient->SetStillFileName( _L("cae_exposure_mode_initialized_1.jpg") );
+
+    iSettingsClient->RunTestActionL( CCaeTestSettingsClient::ESetExposureModeWhenInitialized );
+}
+
+/********************************************************/
+/*             VIDEO RECORDING EXPOSURE MODE            */
+/********************************************************/
+
+void CCaeTestRelease::TestVRExposureMode0L()
+{
+	// Group:   Settings.
+    // 
+    // ID:      CAE.SET-VR.SETEXPOSUREMODEL.008
+    //
+    // Action : Test auto exposure mode setting with video recording and viewfinding.
+	//      
+	// Output : No leave.   
+
+    iSettingsClient->SetOpMode( CCaeTestSettingsClient::EClientOpModeVideo );   
+
+    iSettingsClient->SetVideoQualityLevelIndex( 0 );
+
+    iSettingsClient->SetTimeout( 4000000 );
+
+    iSettingsClient->SetExposureMode( 0 ); // auto mode should be supported
+
+#if (MIRAGE_X_PROD3)
+    iStatesClient->SetVideoCodecSet( 2 ); // 2: AAC audio, MPEG-4 video
+#else
+    iStatesClient->SetVideoCodecSet( 0 ); // 0: AMR audio, H.263 video
+#endif
+
+    iSettingsClient->SetVideoFileName( _L("cae_exposure_mode_0.3gp") );
+
+    iSettingsClient->RunTestActionL( CCaeTestSettingsClient::ESetExposureModeWhenVideoPrepared );
+}
+
+void CCaeTestRelease::TestVRExposureMode1L()
+{
+	// Group:   Settings.
+    // 
+    // ID:      CAE.SET-VR.SETEXPOSUREMODEL.009
+    //
+    // Action : Test night exposure mode setting with video recording and viewfinding.
+	//      
+	// Output : No leave.   
+
+    iSettingsClient->SetOpMode( CCaeTestSettingsClient::EClientOpModeVideo );   
+
+    iSettingsClient->SetVideoQualityLevelIndex( 0 );
+
+    iSettingsClient->SetTimeout( 4000000 );
+
+    iSettingsClient->SetExposureMode( 1 ); // night mode should be supported
+
+#if (MIRAGE_X_PROD3)
+    iStatesClient->SetVideoCodecSet( 2 ); // 2: AAC audio, MPEG-4 video
+#else
+    iStatesClient->SetVideoCodecSet( 0 ); // 0: AMR audio, H.263 video
+#endif
+
+    iSettingsClient->SetVideoFileName( _L("cae_exposure_mode_1.3gp") );
+
+    iSettingsClient->RunTestActionL( CCaeTestSettingsClient::ESetExposureModeWhenVideoPrepared );
+}
+
+void CCaeTestRelease::TestVRExposureModeRecording0L()
+{
+	// Group:   Settings.
+    // 
+    // ID:      CAE.SET-VR.SETEXPOSUREMODEL.017
+    //
+    // Action : Test auto exposure mode setting with Video image capture and viewfinding.
+	//      
+	// Output : No leave.   
+
+    iSettingsClient->SetOpMode( CCaeTestSettingsClient::EClientOpModeVideo );   
+
+    iSettingsClient->SetVideoQualityLevelIndex( 0 );
+
+    iSettingsClient->SetTimeout( 4000000 );
+
+    iSettingsClient->SetExposureMode( 0 ); // auto mode should be supported
+
+#if (MIRAGE_X_PROD3)
+    iStatesClient->SetVideoCodecSet( 2 ); // 2: AAC audio, MPEG-4 video
+#else
+    iStatesClient->SetVideoCodecSet( 0 ); // 0: AMR audio, H.263 video
+#endif
+
+    iSettingsClient->SetVideoFileName( _L("cae_exposure_mode_recording_0.3gp") );
+
+    iSettingsClient->RunTestActionL( CCaeTestSettingsClient::ESetExposureModeWhenVideoRecording );
+}
+
+void CCaeTestRelease::TestVRExposureModeRecording1L()
+{
+	// Group:   Settings.
+    // 
+    // ID:      CAE.SET-VR.SETEXPOSUREMODEL.018
+    //
+    // Action : Test night exposure mode setting with Video image capture and viewfinding.
+	//      
+	// Output : No leave.   
+
+    iSettingsClient->SetOpMode( CCaeTestSettingsClient::EClientOpModeVideo );   
+
+    iSettingsClient->SetVideoQualityLevelIndex( 0 );
+
+    iSettingsClient->SetTimeout( 4000000 );
+
+    iSettingsClient->SetExposureMode( 1 ); // night mode should be supported
+
+#if (MIRAGE_X_PROD3)
+    iStatesClient->SetVideoCodecSet( 2 ); // 2: AAC audio, MPEG-4 video
+#else
+    iStatesClient->SetVideoCodecSet( 0 ); // 0: AMR audio, H.263 video
+#endif
+
+    iSettingsClient->SetVideoFileName( _L("cae_exposure_mode_recording_1.3gp") );
+
+    iSettingsClient->RunTestActionL( CCaeTestSettingsClient::ESetExposureModeWhenVideoRecording );
+}
+
+/********************************************************/
+/*             STILL CAPTURE EV COMPENSATION            */
+/********************************************************/
+
+void CCaeTestRelease::TestSCEvCompensation0L()
+{
+	// Group:   Settings
+    //
+    // ID:      CAE.SET-SC.SETEVCOMP.001
+    // 
+    // Action : Test Ev compensation with still image capture and viewfinding.
+	//      
+	// Output : KErrNotSupported.  
+ 
+    iSettingsClient->SetEvCompensation( 0 );
+
+    iSettingsClient->SetSnapFileName( _L("cae_evcomp_0.mbm") );
+
+    iSettingsClient->SetStillFileName( _L("cae_evcomp_0.jpg") );
+
+    TRAPD( err, iSettingsClient->RunTestActionL( CCaeTestSettingsClient::ESetEvCompensationWhenStillPrepared ) );
+    if( err == KErrNoMemory )
+        {
+        User::Leave( err ); // For memory test
+        }
+
+	assertL(err == KErrNotSupported);
+}
+
+void CCaeTestRelease::TestSCEvCompensationMaxL()
+{
+	// Group:   Settings
+    //
+    // ID:      CAE.SET-SC.SETEVCOMP.002
+    // 
+    // Action : Test Ev compensation with still image capture and viewfinding.
+	//      
+	// Output : KErrNotSupported.   
+
+	TCamAppEngineInfo info;
+	iSettingsClient->GetInfo(info);
+    iSettingsClient->SetEvCompensation( info.iMaxEvCompensation );
+
+    iSettingsClient->SetSnapFileName( _L("cae_evcomp_max.mbm") );
+
+    iSettingsClient->SetStillFileName( _L("cae_evcomp_max.jpg") );
+
+    TRAPD( err, iSettingsClient->RunTestActionL( CCaeTestSettingsClient::ESetEvCompensationWhenStillPrepared ) );
+    if( err == KErrNoMemory )
+        {
+        User::Leave( err ); // For memory test
+        }
+
+	assertL(err == KErrNotSupported);
+}
+
+void CCaeTestRelease::TestSCEvCompensationMinL()
+{
+	// Group:   Settings
+    //
+    // ID:      CAE.SET-SC.SETEVCOMP.003
+    // 
+    // Action : Test Ev compensation with still image capture and viewfinding.
+	//      
+	// Output : KErrNotSupported.   
+
+ 	TCamAppEngineInfo info;
+	iSettingsClient->GetInfo(info);
+    iSettingsClient->SetEvCompensation( info.iMinEvCompensation );
+
+    iSettingsClient->SetSnapFileName( _L("cae_evcomp_min.mbm") );
+
+    iSettingsClient->SetStillFileName( _L("cae_evcomp_min.jpg") );
+
+    TRAPD( err, iSettingsClient->RunTestActionL( CCaeTestSettingsClient::ESetEvCompensationWhenStillPrepared ) );
+    if( err == KErrNoMemory )
+        {
+        User::Leave( err ); // For memory test
+        }
+
+	assertL(err == KErrNotSupported);
+}
+
+
+void CCaeTestRelease::TestSCEvCompensationInitialized0L()
+{
+	// Group:   Settings
+    // 
+    // ID:      CAE.SET-SC.SETEVCOMP.004
+    //
+    // Action : Test Ev compensation with still image capture and viewfinding.
+	//      
+	// Output : KErrNotSupported.   
+
+    iSettingsClient->SetEvCompensation( 0 );
+
+    iSettingsClient->SetSnapFileName( _L("cae_evcomp_initialized_0.mbm") );
+
+    iSettingsClient->SetStillFileName( _L("cae_evcomp_initialized_0.jpg") );
+
+    TRAPD( err, iSettingsClient->RunTestActionL( CCaeTestSettingsClient::ESetEvCompensationWhenInitialized ) );
+    if( err == KErrNoMemory )
+        {
+        User::Leave( err ); // For memory test
+        }
+
+	assertL(err == KErrNotSupported);
+}
+
+void CCaeTestRelease::TestSCEvCompensationInitializedMaxL()
+{
+	// Group:   Settings
+    // 
+    // ID:      CAE.SET-SC.SETEVCOMP.005
+    //
+    // Action : Test Ev compensation with still image capture and viewfinding.
+	//      
+	// Output : KErrNotSupported.   
+
+	TCamAppEngineInfo info;
+	iSettingsClient->GetInfo(info);
+    iSettingsClient->SetEvCompensation( info.iMaxEvCompensation );
+
+    iSettingsClient->SetSnapFileName( _L("cae_evcomp_initilized_max.mbm") );
+
+    iSettingsClient->SetStillFileName( _L("cae_evcomp_initilized_max.jpg") );
+
+    TRAPD( err, iSettingsClient->RunTestActionL( CCaeTestSettingsClient::ESetEvCompensationWhenInitialized ) );
+    if( err == KErrNoMemory )
+        {
+        User::Leave( err ); // For memory test
+        }
+
+	assertL(err == KErrNotSupported);
+}
+
+void CCaeTestRelease::TestSCEvCompensationInitializedMinL()
+{
+	// Group:   Settings
+    // 
+    // ID:      CAE.SET-SC.SETEVCOMP.006
+    //
+    // Action : Test Ev compensation with still image capture and viewfinding.
+	//      
+	// Output : KErrNotSupported.   
+
+ 	TCamAppEngineInfo info;
+	iSettingsClient->GetInfo(info);
+    iSettingsClient->SetEvCompensation( info.iMinEvCompensation );
+
+    iSettingsClient->SetSnapFileName( _L("cae_evcomp_initialized_min.mbm") );
+
+    iSettingsClient->SetStillFileName( _L("cae_evcomp_initialized_min.jpg") );
+
+    TRAPD( err, iSettingsClient->RunTestActionL( CCaeTestSettingsClient::ESetEvCompensationWhenInitialized ) );
+    if( err == KErrNoMemory )
+        {
+        User::Leave( err ); // For memory test
+        }
+
+	assertL(err == KErrNotSupported);
+}
+
+void CCaeTestRelease::TestSCEvCompensationInitializedInvalidL()
+{
+	// Group:   Settings
+    // 
+    // ID:      CAE.SET-SC.SETEVCOMP.007
+    //
+    // Action : Test Ev compensation with still image capture and viewfinding.
+	//      
+	// Output : KErrNotSupported.   
+
+ 	TCamAppEngineInfo info;
+	iSettingsClient->GetInfo(info);
+    iSettingsClient->SetEvCompensation( info.iMaxEvCompensation + 1 );
+
+    TRAPD( error, iSettingsClient->RunTestActionL( CCaeTestSettingsClient::ESetEvCompensationWhenInitialized ) );
+    if( error == KErrNoMemory )
+        {
+        User::Leave( error ); // For memory test
+        }
+	assertL(error == KErrNotSupported);
+}
+
+
+
+/********************************************************/
+/*             VIDEO RECORDING EV COMPENSATION          */
+/********************************************************/
+
+void CCaeTestRelease::TestVREvCompensationMinL()
+{
+	// Group:   Settings
+    // 
+    // ID:      CAE.SET-VR.SETEVCOMP.001
+    //
+    // Action : Test Ev compensation with Video image capture and viewfinding.
+	//      
+	// Output : KErrNotSupported.   
+
+    iSettingsClient->SetTimeout( 4000000 );
+    
+    iSettingsClient->SetOpMode( CCaeTestSettingsClient::EClientOpModeVideo );   
+
+    iSettingsClient->SetVideoQualityLevelIndex( 0 );
+
+ 	TCamAppEngineInfo info;
+	iSettingsClient->GetInfo(info);
+    iSettingsClient->SetEvCompensation( info.iMinEvCompensation );
+
+#if (MIRAGE_X_PROD3)
+    iStatesClient->SetVideoCodecSet( 2 ); // 2: AAC audio, MPEG-4 video
+#else
+    iStatesClient->SetVideoCodecSet( 0 ); // 0: AMR audio, H.263 video
+#endif
+
+    iSettingsClient->SetVideoFileName( _L("cae_evcomp_min.3gp") );
+
+    TRAPD( err, iSettingsClient->RunTestActionL( CCaeTestSettingsClient::ESetEvCompensationWhenVideoPrepared ) );
+    if( err == KErrNoMemory )
+        {
+        User::Leave( err ); // For memory test
+        }
+
+	assertL(err == KErrNotSupported);
+}
+
+void CCaeTestRelease::TestVREvCompensationRecordingMaxL()
+{
+	// Group:   Settings
+    // 
+    // ID:      CAE.SET-VR.SETEVCOMP.002
+    //
+    // Action : Test Ev compensation with Video image capture and viewfinding.
+	//      
+	// Output : KErrNotSupported.   
+
+    iSettingsClient->SetTimeout( 4000000 );
+    
+    iSettingsClient->SetOpMode( CCaeTestSettingsClient::EClientOpModeVideo );   
+
+    iSettingsClient->SetVideoQualityLevelIndex( 0 );
+
+ 	TCamAppEngineInfo info;
+	iSettingsClient->GetInfo(info);
+    iSettingsClient->SetEvCompensation( info.iMaxEvCompensation );
+
+#if (MIRAGE_X_PROD3)
+    iStatesClient->SetVideoCodecSet( 2 ); // 2: AAC audio, MPEG-4 video
+#else
+    iStatesClient->SetVideoCodecSet( 0 ); // 0: AMR audio, H.263 video
+#endif
+
+    iSettingsClient->SetVideoFileName( _L("cae_evcomp_recording_max.3gp") );
+
+    TRAPD( err, iSettingsClient->RunTestActionL( CCaeTestSettingsClient::ESetEvCompensationWhenVideoRecording ) );
+    if( err == KErrNoMemory )
+        {
+        User::Leave( err ); // For memory test
+        }
+
+	assertL(err == KErrNotSupported);
+}
+
+
+/* UNUSED
+
+void CCaeTestRelease::TestVREvCompensation0L()
+{
+	// Group:   Settings
+    // 
+    // ID:      CAE.SET-VR.SETEVCOMP.001
+    //
+    // Action : Test Ev compensation with Video image capture and viewfinding.
+	//      
+	// Output : OK.
+
+    iSettingsClient->SetTimeout( 4000000 );
+    
+    iSettingsClient->SetOpMode( CCaeTestSettingsClient::EClientOpModeVideo );   
+
+    iSettingsClient->SetVideoQualityLevelIndex( 0 );
+
+    iSettingsClient->SetEvCompensation( 0 );
+
+#if (MIRAGE_X_PROD3)
+    iStatesClient->SetVideoCodecSet( 2 ); // 2: AAC audio, MPEG-4 video
+#else
+    iStatesClient->SetVideoCodecSet( 0 ); // 0: AMR audio, H.263 video
+#endif
+
+    iSettingsClient->SetVideoFileName( _L("cae_evcomp_0.3gp") );
+
+    iSettingsClient->RunTestActionL( CCaeTestSettingsClient::ESetEvCompensationWhenVideoPrepared );
+}
+
+void CCaeTestRelease::TestVREvCompensationMaxL()
+{
+	// Group:   Settings
+    // 
+    // ID:      CAE.SET-VR.SETEVCOMP.002
+    //
+    // Action : Test Ev compensation with Video image capture and viewfinding.
+	//      
+	// Output : OK.   
+
+    iSettingsClient->SetTimeout( 4000000 );
+    
+    iSettingsClient->SetOpMode( CCaeTestSettingsClient::EClientOpModeVideo );   
+
+    iSettingsClient->SetVideoQualityLevelIndex( 0 );
+
+ 	TCamAppEngineInfo info;
+	iSettingsClient->GetInfo(info);
+    iSettingsClient->SetEvCompensation( info.iMaxEvCompensation );
+
+#if (MIRAGE_X_PROD3)
+    iStatesClient->SetVideoCodecSet( 2 ); // 2: AAC audio, MPEG-4 video
+#else
+    iStatesClient->SetVideoCodecSet( 0 ); // 0: AMR audio, H.263 video
+#endif
+
+    iSettingsClient->SetVideoFileName( _L("cae_evcomp_max.3gp") );
+
+    iSettingsClient->RunTestActionL( CCaeTestSettingsClient::ESetEvCompensationWhenVideoPrepared );
+}
+
+void CCaeTestRelease::TestVREvCompensationRecording0L()
+{
+	// Group:   Settings
+    // 
+    // ID:      CAE.SET-VR.SETEVCOMP.004
+    //
+    // Action : Test Ev compensation with Video image capture and viewfinding.
+	//      
+	// Output : OK.   
+
+    iSettingsClient->SetTimeout( 4000000 );
+    
+    iSettingsClient->SetOpMode( CCaeTestSettingsClient::EClientOpModeVideo );   
+
+    iSettingsClient->SetVideoQualityLevelIndex( 0 );
+
+    iSettingsClient->SetEvCompensation( 0 );
+
+#if (MIRAGE_X_PROD3)
+    iStatesClient->SetVideoCodecSet( 2 ); // 2: AAC audio, MPEG-4 video
+#else
+    iStatesClient->SetVideoCodecSet( 0 ); // 0: AMR audio, H.263 video
+#endif
+
+    iSettingsClient->SetVideoFileName( _L("cae_evcomp_recording_0.3gp") );
+
+    iSettingsClient->RunTestActionL( CCaeTestSettingsClient::ESetEvCompensationWhenVideoRecording );
+}
+
+void CCaeTestRelease::TestVREvCompensationRecordingMinL()
+{
+	// Group:   Settings
+    // 
+    // ID:      CAE.SET-VR.SETEVCOMP.006
+    //
+    // Action : Test Ev compensation with Video image capture and viewfinding.
+	//      
+	// Output : OK.   
+
+    iSettingsClient->SetTimeout( 4000000 );
+    
+    iSettingsClient->SetOpMode( CCaeTestSettingsClient::EClientOpModeVideo );   
+
+    iSettingsClient->SetVideoQualityLevelIndex( 0 );
+
+ 	TCamAppEngineInfo info;
+	iSettingsClient->GetInfo(info);
+    iSettingsClient->SetEvCompensation( info.iMinEvCompensation );
+
+#if (MIRAGE_X_PROD3)
+    iStatesClient->SetVideoCodecSet( 2 ); // 2: AAC audio, MPEG-4 video
+#else
+    iStatesClient->SetVideoCodecSet( 0 ); // 0: AMR audio, H.263 video
+#endif
+
+    iSettingsClient->SetVideoFileName( _L("cae_evcomp_recording_min.3gp") );
+
+    iSettingsClient->RunTestActionL( CCaeTestSettingsClient::ESetEvCompensationWhenVideoRecording );
+}
+
+void CCaeTestRelease::TestVREvCompensationRecordingInvalidL()
+{
+	// Group:   Settings
+    // 
+    // ID:      CAE.SET-VR.SETEVCOMP.007
+    //
+    // Action : Test Ev compensation with Video image capture and viewfinding.
+	//      
+	// Output : OK.   
+
+    iSettingsClient->SetTimeout( 4000000 );
+    
+    iSettingsClient->SetOpMode( CCaeTestSettingsClient::EClientOpModeVideo );   
+
+    iSettingsClient->SetVideoQualityLevelIndex( 0 );
+
+ 	TCamAppEngineInfo info;
+	iSettingsClient->GetInfo(info);
+    iSettingsClient->SetEvCompensation( info.iMinEvCompensation - 1 );
+
+#if (MIRAGE_X_PROD3)
+    iStatesClient->SetVideoCodecSet( 2 ); // 2: AAC audio, MPEG-4 video
+#else
+    iStatesClient->SetVideoCodecSet( 0 ); // 0: AMR audio, H.263 video
+#endif
+
+    iSettingsClient->SetVideoFileName( _L("cae_evcomp_recording_invalid.3gp") );
+    
+    TRAPD( error, iSettingsClient->RunTestActionL( CCaeTestSettingsClient::ESetEvCompensationWhenVideoRecording ) );
+	assertL(error == KErrNotSupported);
+}
+
+*/
+
+/********************************************************/
+/*           STILL CAPTURE WHITE BALANCE MODE           */
+/********************************************************/
+
+void CCaeTestRelease::TestSCWhiteBalanceMode0L()
+{
+	// Group:   Settings.
+    // 
+    // ID:      CAE.SET-SC.SETWHITEBALANCEMODEL.001
+    //
+    // Action : Test white balance setting with still image capture and viewfinding.
+	//      
+	// Output : No leave.   
+
+    iSettingsClient->SetStillQualityLevelIndex( 0 );
+
+    iSettingsClient->SetWhiteBalanceMode( 0 ); // auto mode should always be supported
+
+    iSettingsClient->SetStillFileName( _L("cae_white_balance_mode_0.jpg") );
+
+    iSettingsClient->RunTestActionL( CCaeTestSettingsClient::ESetWhiteBalanceModeWhenStillPrepared );
+}
+
+void CCaeTestRelease::TestSCWhiteBalanceModeInitialized0L()
+{
+	// Group:   Settings.
+    // 
+    // ID:      CAE.SET-SC.SETWHITEBALANCEMODEL.019
+    //
+    // Action : Test white balance setting with still image capture and viewfinding.
+	//      
+	// Output : No leave.   
+
+    iSettingsClient->SetStillQualityLevelIndex( 0 );
+
+    iSettingsClient->SetWhiteBalanceMode( 0 ); // auto mode should always be supported
+
+    iSettingsClient->SetStillFileName( _L("cae_white_balance_mode_initialized_0.jpg") );
+
+    iSettingsClient->RunTestActionL( CCaeTestSettingsClient::ESetWhiteBalanceModeWhenInitialized );
+}
+
+/********************************************************/
+/*           VIDEO RECORDING WHITE BALANCE MODE         */
+/********************************************************/
+
+void CCaeTestRelease::TestVRWhiteBalanceMode0L()
+{
+	// Group:   Settings.
+    // 
+    // ID:      CAE.SET-VR.SETWHITEBALANCEMODEL.010
+    //
+    // Action : Test white balance setting with video recording and viewfinding.
+	//      
+	// Output : No leave.   
+
+    iSettingsClient->SetOpMode( CCaeTestSettingsClient::EClientOpModeVideo );   
+
+    iSettingsClient->SetVideoQualityLevelIndex( 0 );
+
+    iSettingsClient->SetTimeout( 4000000 );
+
+    iSettingsClient->SetWhiteBalanceMode( 0 ); // auto mode should always be supported
+
+#if (MIRAGE_X_PROD3)
+    iStatesClient->SetVideoCodecSet( 2 ); // 2: AAC audio, MPEG-4 video
+#else
+    iStatesClient->SetVideoCodecSet( 0 ); // 0: AMR audio, H.263 video
+#endif
+
+    iSettingsClient->SetVideoFileName( _L("cae_white_balance_mode_0.3gp") );
+
+    iSettingsClient->RunTestActionL( CCaeTestSettingsClient::ESetWhiteBalanceModeWhenVideoPrepared );
+}
+
+void CCaeTestRelease::TestVRWhiteBalanceModeRecording0L()
+{
+	// Group:   Settings.
+    // 
+    // ID:      CAE.SET-VR.SETWHITEBALANCEMODEL.020
+    //
+    // Action : Test white balance setting with Video image capture and viewfinding.
+	//      
+	// Output : No leave.   
+
+    iSettingsClient->SetOpMode( CCaeTestSettingsClient::EClientOpModeVideo );   
+
+    iSettingsClient->SetVideoQualityLevelIndex( 0 );
+
+    iSettingsClient->SetTimeout( 4000000 );
+
+    iSettingsClient->SetWhiteBalanceMode( 0 ); // auto mode should always be supported
+
+#if (MIRAGE_X_PROD3)
+    iStatesClient->SetVideoCodecSet( 2 ); // 2: AAC audio, MPEG-4 video
+#else
+    iStatesClient->SetVideoCodecSet( 0 ); // 0: AMR audio, H.263 video
+#endif
+
+    iSettingsClient->SetVideoFileName( _L("cae_white_balance_mode_recording_0.3gp") );
+
+    iSettingsClient->RunTestActionL( CCaeTestSettingsClient::ESetWhiteBalanceModeWhenVideoRecording );
+}
+
+/********************************************************/
+/*             STILL CAPTURE CONTRAST                   */
+/********************************************************/
+
+void CCaeTestRelease::TestSCContrast50L()
+{
+	// Group:   Settings.
+    // 
+    // ID:      CAE.SET-SC.SETCONTRASTL.001
+    //
+    // Action : Test contrast setting with still image capture and viewfinding.
+	//      
+	// Output : No leave.   
+
+ 	TCamAppEngineInfo info;
+	iSettingsClient->GetInfo(info);
+
+    iSettingsClient->SetStillQualityLevelIndex( 0 );
+
+    iSettingsClient->SetContrast( 50 );
+
+    iSettingsClient->SetStillFileName( _L("cae_contrast_50.jpg") );
+
+    TRAPD( err, iSettingsClient->RunTestActionL( CCaeTestSettingsClient::ESetContrastWhenStillPrepared ) );
+    if( err == KErrNoMemory )
+        {
+        User::Leave( err ); // For memory test
+        }
+    if ( TCameraInfo::EContrastSupported & info.iOptionsSupported )
+		{
+		assertL( err == KErrNone );
+		}
+	else
+		{
+		assertL( err == KErrNotSupported );
+		}
+}
+
+void CCaeTestRelease::TestSCContrastInitialized50L()
+{
+	// Group:   Settings.
+    // 
+    // ID:      CAE.SET-SC.SETCONTRASTL.007
+    //
+    // Action : Test contrast setting with still image capture and viewfinding.
+	//      
+	// Output : No leave.   
+
+ 	TCamAppEngineInfo info;
+	iSettingsClient->GetInfo(info);
+
+    iSettingsClient->SetStillQualityLevelIndex( 0 );
+
+    iSettingsClient->SetContrast( 50 );
+
+    iSettingsClient->SetStillFileName( _L("cae_contrast_initialized_50.jpg") );
+
+    TRAPD( err, iSettingsClient->RunTestActionL( CCaeTestSettingsClient::ESetContrastWhenInitialized ) );
+    if( err == KErrNoMemory )
+        {
+        User::Leave( err ); // For memory test
+        }
+    if ( TCameraInfo::EContrastSupported & info.iOptionsSupported )
+		{
+		assertL( err == KErrNone );
+		}
+	else
+		{
+		assertL( err == KErrNotSupported );
+		}
+}
+
+/********************************************************/
+/*             STILL CAPTURE BRIGHTNESS                 */
+/********************************************************/
+
+void CCaeTestRelease::TestSCBrightness50L()
+{
+	// Group:   Settings.
+    // 
+    // ID:      CAE.SET-SC.SETBRIGHTNESSL.001
+    //
+    // Action : Test brightness setting with still image capture and viewfinding.
+	//      
+	// Output : No leave.   
+
+ 	TCamAppEngineInfo info;
+	iSettingsClient->GetInfo(info);
+
+    iSettingsClient->SetStillQualityLevelIndex( 0 );
+
+    iSettingsClient->SetBrightness( 50 );
+
+    iSettingsClient->SetStillFileName( _L("cae_brightness_50.jpg") );
+
+    TRAPD( err, iSettingsClient->RunTestActionL( CCaeTestSettingsClient::ESetBrightnessWhenStillPrepared ) );
+    if( err == KErrNoMemory )
+        {
+        User::Leave( err ); // For memory test
+        }
+    if ( TCameraInfo::EBrightnessSupported & info.iOptionsSupported )
+		{
+		assertL( err == KErrNone );
+		}
+	else
+		{
+		assertL( err == KErrNotSupported );
+		}
+}
+
+void CCaeTestRelease::TestSCBrightnessInitialized50L()
+{
+	// Group:   Settings.
+    // 
+    // ID:      CAE.SET-SC.SETBRIGHTNESSL.007
+    //
+    // Action : Test brightness setting with still image capture and viewfinding.
+	//      
+	// Output : No leave.   
+
+ 	TCamAppEngineInfo info;
+	iSettingsClient->GetInfo(info);
+
+    iSettingsClient->SetStillQualityLevelIndex( 0 );
+
+    iSettingsClient->SetBrightness( 50 );
+
+    iSettingsClient->SetStillFileName( _L("cae_brightness_initialized_50.jpg") );
+
+    TRAPD( err, iSettingsClient->RunTestActionL( CCaeTestSettingsClient::ESetBrightnessWhenInitialized ) );
+    if( err == KErrNoMemory )
+        {
+        User::Leave( err ); // For memory test
+        }
+    if ( TCameraInfo::EBrightnessSupported & info.iOptionsSupported )
+		{
+		assertL( err == KErrNone );
+		}
+	else
+		{
+		assertL( err == KErrNotSupported );
+		}
+}
+
+/********************************************************/
+/*             VIDEO RECORDING CONTRAST                 */
+/********************************************************/
+
+void CCaeTestRelease::TestVRContrast50L()
+{
+	// Group:   Settings.
+    // 
+    // ID:      CAE.SET-VR.SETCONTRASTL.008
+    //
+    // Action : Test contrast setting with video recording and viewfinding.
+	//      
+	// Output : No leave.   
+
+ 	TCamAppEngineInfo info;
+	iSettingsClient->GetInfo(info);
+
+    iSettingsClient->SetOpMode( CCaeTestSettingsClient::EClientOpModeVideo );   
+
+    iSettingsClient->SetVideoQualityLevelIndex( 0 );
+
+    iSettingsClient->SetTimeout( 4000000 );
+
+    iSettingsClient->SetContrast( 50 );
+
+#if (MIRAGE_X_PROD3)
+    iStatesClient->SetVideoCodecSet( 2 ); // 2: AAC audio, MPEG-4 video
+#else
+    iStatesClient->SetVideoCodecSet( 0 ); // 0: AMR audio, H.263 video
+#endif
+
+    iSettingsClient->SetVideoFileName( _L("cae_contrast_50.3gp") );
+
+    TRAPD( err, iSettingsClient->RunTestActionL( CCaeTestSettingsClient::ESetContrastWhenVideoPrepared ) );
+    if( err == KErrNoMemory )
+        {
+        User::Leave( err ); // For memory test
+        }
+    if ( TCameraInfo::EContrastSupported & info.iOptionsSupported )
+		{
+		assertL( err == KErrNone );
+		}
+	else
+		{
+		assertL( err == KErrNotSupported );
+		}
+}
+
+void CCaeTestRelease::TestVRContrastRecording50L()
+{
+	// Group:   Settings.
+    // 
+    // ID:      CAE.SET-VR.SETCONTRASTL.014
+    //
+    // Action : Test contrast setting with Video image capture and viewfinding.
+	//      
+	// Output : No leave.   
+
+ 	TCamAppEngineInfo info;
+	iSettingsClient->GetInfo(info);
+
+    iSettingsClient->SetOpMode( CCaeTestSettingsClient::EClientOpModeVideo );   
+
+    iSettingsClient->SetVideoQualityLevelIndex( 0 );
+
+    iSettingsClient->SetTimeout( 4000000 );
+
+    iSettingsClient->SetContrast( 50 );
+
+#if (MIRAGE_X_PROD3)
+    iStatesClient->SetVideoCodecSet( 2 ); // 2: AAC audio, MPEG-4 video
+#else
+    iStatesClient->SetVideoCodecSet( 0 ); // 0: AMR audio, H.263 video
+#endif
+
+    iSettingsClient->SetVideoFileName( _L("cae_contrast_recording_50.3gp") );
+
+    TRAPD( err, iSettingsClient->RunTestActionL( CCaeTestSettingsClient::ESetContrastWhenVideoRecording ) );
+    if( err == KErrNoMemory )
+        {
+        User::Leave( err ); // For memory test
+        }
+    if ( TCameraInfo::EContrastSupported & info.iOptionsSupported )
+		{
+		assertL( err == KErrNone );
+		}
+	else
+		{
+		assertL( err == KErrNotSupported );
+		}
+}
+
+/********************************************************/
+/*             VIDEO RECORDING BRIGHTNESS               */
+/********************************************************/
+
+void CCaeTestRelease::TestVRBrightness50L()
+{
+	// Group:   Settings.
+    // 
+    // ID:      CAE.SET-VR.SETBRIGHTNESSL.008
+    //
+    // Action : Test brightness setting with video recording and viewfinding.
+	//      
+	// Output : No leave.   
+
+ 	TCamAppEngineInfo info;
+	iSettingsClient->GetInfo(info);
+
+    iSettingsClient->SetOpMode( CCaeTestSettingsClient::EClientOpModeVideo );   
+
+    iSettingsClient->SetVideoQualityLevelIndex( 0 );
+
+    iSettingsClient->SetTimeout( 4000000 );
+
+    iSettingsClient->SetBrightness( 50 );
+
+#if (MIRAGE_X_PROD3)
+    iStatesClient->SetVideoCodecSet( 2 ); // 2: AAC audio, MPEG-4 video
+#else
+    iStatesClient->SetVideoCodecSet( 0 ); // 0: AMR audio, H.263 video
+#endif
+
+    iSettingsClient->SetVideoFileName( _L("cae_brightness_50.3gp") );
+
+    TRAPD( err, iSettingsClient->RunTestActionL( CCaeTestSettingsClient::ESetBrightnessWhenVideoPrepared ) );
+    if( err == KErrNoMemory )
+        {
+        User::Leave( err ); // For memory test
+        }
+    if ( TCameraInfo::EBrightnessSupported & info.iOptionsSupported )
+		{
+		assertL( err == KErrNone );
+		}
+	else
+		{
+		assertL( err == KErrNotSupported );
+		}
+}
+
+void CCaeTestRelease::TestVRBrightnessRecording50L()
+{
+	// Group:   Settings.
+    // 
+    // ID:      CAE.SET-VR.SETBRIGHTNESSL.014
+    //
+    // Action : Test brightness setting with Video image capture and viewfinding.
+	//      
+	// Output : No leave.   
+
+ 	TCamAppEngineInfo info;
+	iSettingsClient->GetInfo(info);
+
+    iSettingsClient->SetOpMode( CCaeTestSettingsClient::EClientOpModeVideo );   
+
+    iSettingsClient->SetVideoQualityLevelIndex( 0 );
+
+    iSettingsClient->SetTimeout( 4000000 );
+
+    iSettingsClient->SetBrightness( 50 );
+
+#if (MIRAGE_X_PROD3)
+    iStatesClient->SetVideoCodecSet( 2 ); // 2: AAC audio, MPEG-4 video
+#else
+    iStatesClient->SetVideoCodecSet( 0 ); // 0: AMR audio, H.263 video
+#endif
+
+    iSettingsClient->SetVideoFileName( _L("cae_brightness_recording_50.3gp") );
+
+    TRAPD( err, iSettingsClient->RunTestActionL( CCaeTestSettingsClient::ESetBrightnessWhenVideoRecording ) );
+    if( err == KErrNoMemory )
+        {
+        User::Leave( err ); // For memory test
+        }
+    if ( TCameraInfo::EBrightnessSupported & info.iOptionsSupported )
+		{
+		assertL( err == KErrNone );
+		}
+	else
+		{
+		assertL( err == KErrNotSupported );
+		}
+}
+
+/********************************************************/
+/*             VIDEO RECORDING CLIP MAX SIZE            */
+/********************************************************/
+
+void CCaeTestRelease::TestVideoClipMaxSize10000L()
+    {
+	// Group:   Settings.
+    // 
+    //ID:       CAE.SET-VR.SETVIDEOCLIPMAXSIZEL.002
+    //
+    // Action : Test video clip max size setting with recording.
+	//      
+	// Output : Leave.   
+
+    iSettingsClient->SetOpMode( CCaeTestSettingsClient::EClientOpModeVideo );   
+
+    iSettingsClient->SetTimeout( 20000000 );
+
+    iSettingsClient->SetVideoQualityLevelIndex( 0 );
+
+    iSettingsClient->SetVideoClipMaxSize( 10000 );
+
+#if (MIRAGE_X_PROD3)
+    iStatesClient->SetVideoCodecSet( 2 ); // 2: AAC audio, MPEG-4 video
+#else
+    iStatesClient->SetVideoCodecSet( 0 ); // 0: AMR audio, H.263 video
+#endif
+
+    iSettingsClient->SetVideoFileName( _L("cae_clip_max_size_10000.3gp") );
+
+    TRAPD( err, iSettingsClient->RunTestActionL( CCaeTestSettingsClient::ESetClipMaxSizeWhenVideoPrepared ) );
+    if( err == KErrNoMemory )
+        {
+        User::Leave( err ); // For memory test
+        }
+    assertL( err == KErrCompletion );
+    }
+
+/********************************************************/
+/*               CANCEL CAPTURE STILL                   */
+/********************************************************/
+
+void CCaeTestRelease::TestCancelCaptureStillL()
+    {
+	// ID: CAE.SC.CANCELCAPTURESTILL.001
+    //
+    // Group:   Capture
+    // 
+    // Action : Cancel on-going still image capture request, 
+    //          when already prepared.
+	//      
+	// Output : OK.   
+
+    iStatesClient->SetStillQualityLevelIndex( 0 );
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::EPrepareAndCaptureAndCancelStill );
+
+    assertL( iStatesClient->CountInitComplete() == 1 );
+    assertL( iStatesClient->CountStillPrepareComplete() == 1 );
+    assertL( iStatesClient->CountSnapImageReady() == 0 );
+    assertL( iStatesClient->CountStillImageReady() == 0 );
+    }
+
+/********************************************************/
+/*               GET QUALITY INDEX                      */
+/********************************************************/
+
+void CCaeTestRelease::TestGetStillQualityIndexWhenEngineInitializedL()
+    {
+	// ID: CAE.SC.GETSTILLQUALITYINDEX.001
+    //
+    // Group:   Capture
+    // 
+    // Action : Get still quality index, when engine is initialized.
+	//      
+	// Output : OK.   
+
+    iStatesClient->SetStillQualityLevelIndex( 1 );
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::EGetStillQualityIndexWhenEngineInitialized );
+    }
+
+void CCaeTestRelease::TestGetStillQualityIndexWhenPreparedL()
+    {
+	// ID: CAE.SC.GETSTILLQUALITYINDEX.002
+    //
+    // Group:   Capture
+    // 
+    // Action : Get still quality index, when still image capture is prepared.
+	//      
+	// Output : OK.   
+
+    iStatesClient->SetStillQualityLevelIndex( 1 );
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::EGetStillQualityIndexWhenPrepared );
+    }
+
+void CCaeTestRelease::TestGetVideoQualityIndexWhenEngineInitializedL()
+{
+	// Group:   Video.
+    // 
+    // ID:      CAE.VR.GETVIDEOQUALITYINDEX.001
+    //
+    // Action : Get video quality index, when engine is initialized.
+	//      
+	// Output : No leave.   
+
+    iStatesClient->SetTimeout( 1000000 );
+
+    iStatesClient->SetVideoQualityLevelIndex( 1 );
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::EGetVideoQualityIndexWhenEngineInitialized );
+}
+
+void CCaeTestRelease::TestGetVideoQualityIndexWhenPreparedL()
+{
+	// Group:   Video.
+    // 
+    // ID:      CAE.VR.GETVIDEOQUALITYINDEX.002
+    //
+    // Action : Get video quality index, when video recording is prepared.
+	//      
+	// Output : No leave.   
+
+    iStatesClient->SetTimeout( 1000000 );
+
+    iStatesClient->SetVideoQualityLevelIndex( 0 );
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::EGetVideoQualityIndexWhenPrepared );
+}
+
+/********************************************************/
+/*            REMAINING VIDEO RECORDING TIME            */
+/********************************************************/
+
+void CCaeTestRelease::TestRemainingTimeWhenVideoPreparedL()
+{
+	// Group:   Video.
+    // 
+    // ID:      CAE.VR.REMAININGVIDEORECORDINGTIME.001
+    //
+    // Action : Get RemainingVideoRecordingTime, when video recording is prepared.
+	//      
+	// Output : No leave.   
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::ERemainingTimeWhenVideoPrepared );
+}
+
+/********************************************************/
+/*      PREPARE AUDIO BIT RATE AND RECORD VIDEO         */
+/********************************************************/
+
+void CCaeTestRelease::TestPrepareAudioBitRateVR5000L()
+    {
+	// ID: CAE.VR.PREPAREAUDIOBITRATEANDRECORDVIDEO.001
+    //
+    // Group:   Record
+    // 
+    // Action : To ensure that the implementation is compatible with camcorder plug-in. 
+	//      
+	// Output : OK.   
+
+    iStatesClient->SetTimeout( 4000000 );
+
+    TSize sizeQcif( KImgWidthQCIF, KImgHeightQCIF );
+
+    iStatesClient->SetVideoFrameSize( sizeQcif );
+    iStatesClient->SetVideoFrameRate( TReal32( 10.0 ) );
+    iStatesClient->SetVideoBitRate( TInt( 25000 ) );
+    iStatesClient->SetAudioBitRate( TInt( 5000 ) );
+
+#if (MIRAGE_X_PROD3)
+    iStatesClient->SetVideoCodecSet( 2 ); // 2: AAC audio, MPEG-4 video
+#else
+    iStatesClient->SetVideoCodecSet( 0 ); // 0: AMR audio, H.263 video
+#endif
+
+    iStatesClient->SetVideoFileName( _L("cae_subqcif_AudioBitRate_5000.3gp") );
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::ESpecifiedPrepareAudioBrAndRecordVideo );
+
+    assertL( iStatesClient->CountInitComplete() == 1 );
+    assertL( iStatesClient->CountVideoPrepareComplete() == 1 );
+    assertL( iStatesClient->CountVideoRecordingOn() == 1 );
+    assertL( iStatesClient->CountVideoRecordingComplete() == 1 );
+    }
+
+
+/************************************************************************/
+/*   STILL AND STILL BURST CAPTURE - snap-image creation switched off   */
+/************************************************************************/
+
+void CCaeTestRelease::TestCaptureVga16M_NoSnapL()
+    {
+	// ID: CAE.SC.CAPTURESTILL.VGA16M.015
+    //
+    // Group:   Capture
+    // 
+    // Action : Test to setup still capturing and capture VGA 16M  
+    //          image when initialization is done. 
+    //          Snap image creation switched off.
+	//      
+	// Output : OK.   
+
+    iStatesClient->SetSnapImageCreation( EFalse );
+
+    iStatesClient->SetStillFormat( CCamera::EFormatFbsBitmapColor16M );
+
+    TSize sizeVga( KImgWidthVGA, KImgHeightVGA );
+
+    iStatesClient->SetStillFrameSize( sizeVga );
+
+    // iStatesClient->SetStillFileName( _L("cae_vga16M_NoSnap.mbm") );
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::ESpecifiedPrepareAndCaptureStill );
+
+    assertL( iStatesClient->CountInitComplete() == 1 );
+    assertL( iStatesClient->CountStillPrepareComplete() == 1 );
+    assertL( iStatesClient->CountSnapImageReady() == 0 );
+    assertL( iStatesClient->CountStillImageReady() == 1 );
+    }
+
+
+void CCaeTestRelease::TestCaptureQualityLevel0_NoSnapL()
+    {
+	// ID: CAE.SC.CAPTURESTILL.JPEGVGA90.016
+    //
+    // Group:   Capture
+    // 
+    // Action : Test to prepare still capturing and capture quality level 0 
+    //          image when initialization is done and viewfinder is running.
+    //          Snap image creation switched off.
+	//      
+	// Output : OK.   
+
+    iStatesClient->SetSnapImageCreation( EFalse );
+
+    iStatesClient->SetStillQualityLevelIndex( 0 );
+
+    // iStatesClient->SetStillFileName( _L("cae_ql_0_vga90_NoSnap.jpg") );
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::EStartVfPrepareCaptureStillStartAndStopVf );
+
+    assertL( iStatesClient->CountInitComplete() == 1 );
+    assertL( iStatesClient->CountStillPrepareComplete() == 1 );
+    assertL( iStatesClient->CountSnapImageReady() == 0 );
+    assertL( iStatesClient->CountStillImageReady() == 1 );
+    }
+
+
+void CCaeTestRelease::TestCaptureVgaExif_NoSnapL()
+    {
+	// ID: CAE.SC.CAPTURESTILL.VGA.EXIF.017
+    //
+    // Group:   Capture
+    // 
+    // Action : Test to prepare still capturing and capture Vga Exif 
+    //          image when initialization is done and viewfinder is running.
+    //          Snap image creation switched off.
+	//      
+	// Output : OK.   
+
+    iStatesClient->SetSnapImageCreation( EFalse );
+
+    TSize sizeVga( KImgWidthVGA, KImgHeightVGA );
+
+    iStatesClient->SetStillFrameSize( sizeVga );
+    
+    iStatesClient->SetStillFormat( CCamera::EFormatExif );
+
+    // iStatesClient->SetStillFileName( _L("cae_vga_exif_NoSnap.jpg") );
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::EStartVfPrepareCaptureStillStartAndStopVfExif );
+
+    assertL( iStatesClient->CountInitComplete() == 1 );
+    assertL( iStatesClient->CountStillPrepareComplete() == 1 );
+    assertL( iStatesClient->CountSnapImageReady() == 0 );
+    assertL( iStatesClient->CountStillImageReady() == 1 );
+    }
+
+
+void CCaeTestRelease::TestCaptureStillBurst3_NoSnapL()
+    {
+	// ID: CAE.SC.CAPTURESTILLBURST.3.007
+    //
+    // Group:   Capture
+    // 
+    // Action : Test to prepare still capturing burst mode and capture three  
+    //          images in a burst when initialization is done.
+    //          Snap image creation switched off.
+	//      
+	// Output : OK.   
+
+    const TInt KStillBurstLength = 3;
+
+    iStatesClient->SetSnapImageCreation( EFalse );
+
+    iStatesClient->SetStillQualityLevelIndex( 0 );
+
+    // iStatesClient->SetStillFileName( _L("cae_vga16M_burst3_NoSnap.jpg") );
+
+    iStatesClient->SetStillBurstLength( KStillBurstLength );
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::EPrepareAndCaptureStillBurst );
+
+    assertL( iStatesClient->CountInitComplete() == 1 );
+    assertL( iStatesClient->CountStillPrepareComplete() == 1 );
+    assertL( iStatesClient->CountStillBurstCaptureMoment() == KStillBurstLength );
+    assertL( iStatesClient->CountSnapImageReady() == 0 );
+    assertL( iStatesClient->CountStillImageReady() == KStillBurstLength );
+    assertL( iStatesClient->CountStillBurstComplete() == 1 );
+    }
+
+
+void CCaeTestRelease::TestSpecPrepCaptureStillBurst3_NoSnapL()
+    {
+	// ID: CAE.SC.CAPTURESTILLBURST.3.008
+    //
+    // Group:   Capture
+    // 
+    // Action : Test to prepare still capturing burst mode and capture three  
+    //          images in a burst when initialization is done.
+    //          Preparation is done using explicitly specified image format parameters.
+    //          Snap image creation switched off.
+	//      
+	// Output : OK.   
+
+    const TInt KStillBurstLength = 3;
+
+    iStatesClient->SetSnapImageCreation( EFalse );
+
+    iStatesClient->SetStillFormat( CCamera::EFormatFbsBitmapColor16M );
+
+    TSize sizevga( KImgWidthVGA, KImgHeightVGA );
+
+    iStatesClient->SetStillFrameSize( sizevga );
+
+    // iStatesClient->SetStillFileName( _L("cae_qqvga16M_spburst3_NoSnap.mbm") );
+
+    iStatesClient->SetStillBurstLength( KStillBurstLength );
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::ESpecPrepAndCaptureStillBurst );
+
+    assertL( iStatesClient->CountInitComplete() == 1 );
+    assertL( iStatesClient->CountStillPrepareComplete() == 1 );
+    assertL( iStatesClient->CountStillBurstCaptureMoment() == KStillBurstLength );
+    assertL( iStatesClient->CountSnapImageReady() == 0 );
+    assertL( iStatesClient->CountStillImageReady() == KStillBurstLength );
+    assertL( iStatesClient->CountStillBurstComplete() == 1 );
+    }
+
+
+void CCaeTestRelease::TestCaptureStillBurstExif3_NoSnapL()
+    {
+	// ID: CAE.SC.CAPTURESTILLBURSTEXIF.3.004
+    //
+    // Group:   Capture
+    // 
+    // Action : Test to prepare still capturing burst mode and capture three  
+    //          VGA Exif images in a burst when initialization is done.
+    //          Snap image creation switched off.
+	//      
+	// Output : OK.   
+
+    const TInt KStillBurstLength = 3;
+
+    iStatesClient->SetSnapImageCreation( EFalse );
+
+    TSize sizeVga( KImgWidthVGA, KImgHeightVGA );
+
+    iStatesClient->SetStillFrameSize( sizeVga );
+    
+    iStatesClient->SetStillFormat( CCamera::EFormatExif );
+
+    // iStatesClient->SetStillFileName( _L("cae_burst3_exif_NoSnap.jpg") );
+
+    iStatesClient->SetStillBurstLength( KStillBurstLength );
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::EPrepareAndCaptureStillBurstExif );
+
+    assertL( iStatesClient->CountInitComplete() == 1 );
+    assertL( iStatesClient->CountStillPrepareComplete() == 1 );
+    assertL( iStatesClient->CountSnapImageReady() == 0 );
+    assertL( iStatesClient->CountStillImageReady() == KStillBurstLength );
+
+    assertL( iStatesClient->CountStillBurstCaptureMoment() == KStillBurstLength );
+    assertL( iStatesClient->CountStillBurstComplete() == 1 );
+    }
+
+
+void CCaeTestRelease::TestEnumerateCaptureSizesL()
+    {
+	// ID: CAE.GEN.ENUMERATE.001
+    //
+    // Group:   General
+    // 
+    // Action : Test to enumerate still capture sizes. Tests the largest image size only.
+	//      
+	// Output : OK.   
+
+    iStatesClient->SetStillFormat( CCamera::EFormatFbsBitmapColor16M );
+
+#if (MIRAGE_X_PROD1)
+    TSize sizeMp1( KImgWidthMP1, KImgHeightMP1 );
+    iStatesClient->SetStillFrameSize( sizeMp1 );
+#elif (MIRAGE_X_PROD2) || (MIRAGE_X_PROD4) || (MIRAGE_X_PROD3)
+    TSize sizeMp1M3( KImgWidthMP1M3, KImgHeightMP1M3 );
+    iStatesClient->SetStillFrameSize( sizeMp1M3 );
+#elif (MIRAGE_X_PROD7)
+    TSize sizeMp2( KImgWidthMP2, KImgHeightMP2 );
+    iStatesClient->SetStillFrameSize( sizeMp2 );
+#elif (MIRAGE_X_PROD6) || (MIRAGE_X_PROD8) || (MIRAGE_X_PROD9)
+    TSize sizeMp2( KImgWidthMP2, KImgHeightMP2 );
+    iStatesClient->SetStillFrameSize( sizeMp2 );
+#elif (HW_DEVLON)
+    iStatesClient->SetStillFormat( CCamera::EFormatExif );
+    TSize sizeMp3( KImgWidthMP3, KImgHeightMP3 );
+    iStatesClient->SetStillFrameSize( sizeMp3 );
+#else
+    TSize sizeVga( KImgWidthVGA, KImgHeightVGA );
+    iStatesClient->SetStillFrameSize( sizeVga ); 
+#endif
+
+		// ignore errors if correct resolution was not found
+    TRAPD( err, iStatesClient->RunTestActionL( CCaeTestStatesClient::EEnumerateCaptureSizes ) );
+
+		if ( err )
+        {
+        RDebug::Print(_L("CCaeTestRelease::TestEnumerateCaptureSizesL() failed = %d, ignored"), err);
+        }
+    assertL( iStatesClient->CountInitComplete() == 1 );
+    assertL( iStatesClient->CountStillPrepareComplete() == 0 );
+    assertL( iStatesClient->CountSnapImageReady() == 0 );
+    assertL( iStatesClient->CountStillImageReady() == 0 );
+    }
+
+
+void CCaeTestRelease::TestSetJpegQuality50L()
+    {
+	// ID: CAE.SET-SC.SETJPEGQUALITY.001
+    //
+    // Group:   Capture
+    // 
+    // Action : Test to prepare still capturing and capture quality level 0 
+    //          image when initialization is done and viewfinder is running.
+	//      
+	// Output : OK.   
+
+    iSettingsClient->SetStillFormat( CCamera::EFormatJpeg );
+
+    iSettingsClient->SetStillCompressionQuality( 50 );
+
+    TSize sizeVga( KImgWidthVGA, KImgHeightVGA );
+
+    iSettingsClient->SetStillFrameSize( sizeVga );
+
+    // iSettingsClient->SetStillFileName( _L("cae_jpeg_quality_setting_50.jpg") );
+
+    iSettingsClient->RunTestActionL( CCaeTestStatesClient::ESetJpegQualityWhenStillPrepared );
+    
+    assertL( iSettingsClient->CountInitComplete() == 1 );
+    assertL( iSettingsClient->CountStillPrepareComplete() == 1 );
+    assertL( iSettingsClient->CountSnapImageReady() == 1 );
+    assertL( iSettingsClient->CountStillImageReady() == 1 );
+    }
+
+void CCaeTestRelease::TestSCCustomInterfaceL()
+    {
+	// ID: CAE.GEN.CUSTOMINTERFACE.001
+    //
+    // Group:   General
+    // 
+    // Action : Test custom interface with illegal UID values -1, 0 and 1.
+	//      
+	// Output : Returns 0 with illegal UID values.   
+
+    TUid interfaceUid;
+
+    interfaceUid.iUid = -1;
+    iStatesClient->SetCustomInterfaceUid( interfaceUid );
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::EGetCustomInterface );
+    assertL( iStatesClient->CustomInterfacePointer() == 0 );
+
+    interfaceUid.iUid = 0;
+    iStatesClient->SetCustomInterfaceUid( interfaceUid );
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::EGetCustomInterface );
+    assertL( iStatesClient->CustomInterfacePointer() == 0 );
+
+    interfaceUid.iUid = 1;
+    iStatesClient->SetCustomInterfaceUid( interfaceUid );
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::EGetCustomInterface );
+    assertL( iStatesClient->CustomInterfacePointer() == 0 );
+    }
+
+/******************************/
+/*        FLASH MODE          */
+/******************************/
+
+void CCaeTestRelease::TestFlashMode0L()
+{
+	// Group:   Settings.
+    // 
+    // ID:      CAE.SET-SC.SETFLASHMODEL.001
+    //
+    // Action : Test flash mode setting with still image capture and viewfinding.
+	//      
+	// Output : No leave.   
+
+	const TInt KSetVal = 0;
+
+    iSettingsClient->SetStillQualityLevelIndex( 0 );
+
+    iSettingsClient->SetFlashMode( KSetVal );
+
+    iSettingsClient->SetStillFileName( _L("cae_flash_mode_0.jpg") );
+
+    iSettingsClient->RunTestActionL( CCaeTestSettingsClient::ESetFlashModeWhenStillPrepared );
+}
+
+void CCaeTestRelease::TestFlashMode1L()
+{
+	// Group:   Settings.
+    // 
+    // ID:      CAE.SET-SC.SETFLASHMODEL.002
+    //
+    // Action : Test flash mode setting with still image capture and viewfinding.
+	//      
+	// Output : Leave.   
+
+	const TInt KSetVal = 1;
+
+	TCamAppEngineInfo info;
+	iSettingsClient->GetInfo( info );
+
+    iSettingsClient->SetStillQualityLevelIndex( 0 );
+
+    iSettingsClient->SetFlashMode( KSetVal );
+
+    iSettingsClient->SetStillFileName( _L("cae_flash_mode_1.jpg") );
+
+    TRAPD( err, iSettingsClient->RunTestActionL( CCaeTestSettingsClient::ESetFlashModeWhenStillPrepared ) );
+    if( err == KErrNoMemory )
+        {
+        User::Leave( err ); // For memory test
+        }
+	if ( KSetVal & info.iFlashModesSupported )
+		{
+		assertL( err == KErrNone );
+		}
+	else
+		{
+		assertL( err == KErrNotSupported );
+		}
+}
+
+void CCaeTestRelease::TestFlashMode2L()
+{
+	// Group:   Settings.
+    // 
+    // ID:      CAE.SET-SC.SETFLASHMODEL.003
+    //
+    // Action : Test flash mode setting with still image capture and viewfinding.
+	//      
+	// Output : Leave.   
+
+	const TInt KSetVal = 2;
+
+	TCamAppEngineInfo info;
+	iSettingsClient->GetInfo( info );
+
+    iSettingsClient->SetStillQualityLevelIndex( 0 );
+
+    iSettingsClient->SetFlashMode( KSetVal );
+
+    iSettingsClient->SetStillFileName( _L("cae_flash_mode_2.jpg") );
+
+    TRAPD( err, iSettingsClient->RunTestActionL( CCaeTestSettingsClient::ESetFlashModeWhenStillPrepared ) );
+    if( err == KErrNoMemory )
+        {
+        User::Leave( err ); // For memory test
+        }
+	if ( KSetVal & info.iFlashModesSupported )
+		{
+		assertL( err == KErrNone );
+		}
+	else
+		{
+		assertL( err == KErrNotSupported );
+		}
+}
+
+void CCaeTestRelease::TestSCColorToneNormalL()
+    {
+	// ID: CAE.SET-SC.COLORTONE.001
+    //
+    // Group:   General
+    // 
+    // Action : Test Color Tone interface with ENormal parameter.
+	//      
+	// Output : OK.   
+
+    iStatesClient->SetColorToneValue( MCameraColorToneSettings::ENormal );
+    iStatesClient->SetCustomInterfaceUid( KCameraColorToneSettingsUid );
+    iStatesClient->SetSnapFileName( _L("cae_snap_colortone_normal1.mbm") );
+    iStatesClient->SetStillFileName( _L("cae_colortone_normal.jpg") );
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::ESetColorTone );
+    assertL( iStatesClient->CustomInterfacePointer() != 0 );
+    assertL( iStatesClient->CountInitComplete() == 1 );
+    assertL( iStatesClient->CountStillPrepareComplete() == 1 );
+    assertL( iStatesClient->CountSnapImageReady() == 1 );
+    assertL( iStatesClient->CountStillImageReady() == 1 );
+    }
+
+void CCaeTestRelease::TestSCColorToneSepiaL()
+    {
+	// ID: CAE.SET-SC.COLORTONE.002
+    //
+    // Group:   General
+    // 
+    // Action : Test Color Tone interface with ESepia parameter.
+	//      
+	// Output : OK.   
+
+    iStatesClient->SetColorToneValue( MCameraColorToneSettings::ESepia );
+    iStatesClient->SetCustomInterfaceUid( KCameraColorToneSettingsUid );
+    iStatesClient->SetSnapFileName( _L("cae_snap_colortone_sepia.mbm") );
+    iStatesClient->SetStillFileName( _L("cae_colortone_sepia.jpg") );
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::ESetColorTone );
+    assertL( iStatesClient->CustomInterfacePointer() != 0 );
+    assertL( iStatesClient->CountInitComplete() == 1 );
+    assertL( iStatesClient->CountStillPrepareComplete() == 1 );
+    assertL( iStatesClient->CountSnapImageReady() == 1 );
+    assertL( iStatesClient->CountStillImageReady() == 1 );
+    }
+
+void CCaeTestRelease::TestSCColorToneGrayscaleL()
+    {
+	// ID: CAE.SET-SC.COLORTONE.003
+    //
+    // Group:   General
+    // 
+    // Action : Test Color Tone interface with EGrayscale parameter.
+	//      
+	// Output : OK.   
+
+    iStatesClient->SetColorToneValue( MCameraColorToneSettings::EGrayscale );
+    iStatesClient->SetCustomInterfaceUid( KCameraColorToneSettingsUid );
+    iStatesClient->SetSnapFileName( _L("cae_snap_colortone_grayscale.mbm") );
+    iStatesClient->SetStillFileName( _L("cae_colortone_grayscale.jpg") );
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::ESetColorTone );
+    assertL( iStatesClient->CustomInterfacePointer() != 0 );
+    assertL( iStatesClient->CountInitComplete() == 1 );
+    assertL( iStatesClient->CountStillPrepareComplete() == 1 );
+    assertL( iStatesClient->CountSnapImageReady() == 1 );
+    assertL( iStatesClient->CountStillImageReady() == 1 );
+    }
+
+void CCaeTestRelease::TestSCColorToneNegativeL()
+    {
+	// ID: CAE.SET-SC.COLORTONE.004
+    //
+    // Group:   General
+    // 
+    // Action : Test Color Tone interface with ENegative parameter.
+	//      
+	// Output : OK.   
+
+    iStatesClient->SetColorToneValue( MCameraColorToneSettings::ENegative );
+    iStatesClient->SetCustomInterfaceUid( KCameraColorToneSettingsUid );
+    iStatesClient->SetSnapFileName( _L("cae_snap_colortone_negative.mbm") );
+    iStatesClient->SetStillFileName( _L("cae_colortone_negative.jpg") );
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::ESetColorTone );
+    assertL( iStatesClient->CustomInterfacePointer() != 0 );
+    assertL( iStatesClient->CountInitComplete() == 1 );
+    assertL( iStatesClient->CountStillPrepareComplete() == 1 );
+    assertL( iStatesClient->CountSnapImageReady() == 1 );
+    assertL( iStatesClient->CountStillImageReady() == 1 );
+    }
+
+void CCaeTestRelease::TestVRColorToneL()
+    {
+	// ID: CAE.SET-VR.COLORTONE.005
+    //
+    // Group:   General
+    // 
+    // Action : Test Color Tone interface with video recording. Test case will start video recording
+    //          and then sets every supported color tone with 5 second interval. Total execution time is 
+    //          then with 4 color tones 20 seconds. Test case will report interface failures. Color tone 
+    //          fuctionality must be checked manually from .3gp file.
+	//      
+	// Output : OK.   
+
+    iStatesClient->SetVideoQualityLevelIndex( 0 );
+
+#if (MIRAGE_X_PROD3)
+    iStatesClient->SetVideoCodecSet( 2 ); // 2: AAC audio, MPEG-4 video
+#else
+    iStatesClient->SetVideoCodecSet( 0 ); // 0: AMR audio, H.263 video
+#endif
+
+    iStatesClient->SetVideoFileName( _L("cae_colortone.3gp") );
+    iStatesClient->SetTimeout( 5000000 ); // time for one color, then change
+    
+    // this walue is set before exiting
+    iStatesClient->SetColorToneValue( MCameraColorToneSettings::ENormal );
+    iStatesClient->SetCustomInterfaceUid( KCameraColorToneSettingsUid );
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::ESetColorToneVideoRecording );
+
+    assertL( iStatesClient->CustomInterfacePointer() != 0 );
+    assertL( iStatesClient->CountInitComplete() == 1 );
+    assertL( iStatesClient->CountVideoPrepareComplete() == 1 );
+    assertL( iStatesClient->CountVideoRecordingOn() == 1 );
+    assertL( iStatesClient->CountVideoRecordingComplete() == 1 );
+    }
+
+void CCaeTestRelease::TestSCColorToneWrongParams1L()
+    {
+	// ID: CAE.SET-SC.COLORTONE.006
+    //
+    // Group:   General
+    // 
+    // Action : Test Color Tone interface with illegal Color Tone parameter 2^31.
+    //          Should leave with code KErrNotSupported.
+	//      
+	// Output : OK.   
+
+    iStatesClient->SetColorToneValue( (MCameraColorToneSettings::TColorTone) 0x80000000 );
+    iStatesClient->SetCustomInterfaceUid( KCameraColorToneSettingsUid );
+    iStatesClient->SetSnapFileName( _L("cae_snap_colortone_wrong_params.mbm") );
+    iStatesClient->SetStillFileName( _L("cae_colortone_wrong_params.jpg") );
+    TRAPD( error, iStatesClient->RunTestActionL( CCaeTestStatesClient::ESetColorToneWrongParams ) );
+    if( error == KErrNoMemory )
+        {
+        User::Leave( error ); // For memory test
+        }
+    assertL( error == KErrNotSupported );
+    }
+
+void CCaeTestRelease::TestSCColorToneWrongParams2L()
+    {
+	// ID: CAE.SET-SC.COLORTONE.007
+    //
+    // Group:   General
+    // 
+    // Action : Test Color Tone interface with illegal Color Tone parameter 0x07.
+    //          Should leave with code KErrArgument.
+	//      
+	// Output : OK.   
+
+    iStatesClient->SetColorToneValue( (MCameraColorToneSettings::TColorTone) 0x07 );
+    iStatesClient->SetCustomInterfaceUid( KCameraColorToneSettingsUid );
+    iStatesClient->SetSnapFileName( _L("cae_snap_colortone_wrong_params.mbm") );
+    iStatesClient->SetStillFileName( _L("cae_colortone_wrong_params.jpg") );
+    TRAPD( error, iStatesClient->RunTestActionL( CCaeTestStatesClient::ESetColorToneWrongParams ) );
+    if( error == KErrNoMemory )
+        {
+        User::Leave( error ); // For memory test
+        }
+    assertL( error == KErrArgument );
+    }
+
+void CCaeTestRelease::TestSCColorToneReleaseL()
+    {
+	// ID: CAE.SET-SC.COLORTONE.008
+    //
+    // Group:   General
+    // 
+    // Action : Test Color Tone interface with ENegative parameter when
+    //          Release() and Reserve() has been used. After Reserve() the default 
+    //          values should be set (ENormal) by CameraAPI
+	//      
+	// Output : OK.   
+
+    iStatesClient->SetColorToneValue( MCameraColorToneSettings::ENegative );
+    iStatesClient->SetCustomInterfaceUid( KCameraColorToneSettingsUid );
+    iStatesClient->SetSnapFileName( _L("cae_snap_colortone_release.mbm") );
+    iStatesClient->SetStillFileName( _L("cae_colortone_release.jpg") );
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::ESetColorToneRelease );
+    assertL( iStatesClient->CustomInterfacePointer() != 0 );
+    assertL( iStatesClient->CountInitComplete() == 2 ); // reserve() calls once McaeoInitComplete
+    assertL( iStatesClient->CountStillPrepareComplete() == 1 );
+    assertL( iStatesClient->CountSnapImageReady() == 1 );
+    assertL( iStatesClient->CountStillImageReady() == 1 );
+    }
+
+/********************************************************/
+/*           DISPLAY INDEX                              */
+/********************************************************/
+
+void CCaeTestRelease::TestSetDisplayIndexL()
+    {
+	// ID: CAE.SC.SETDISPLAYINDEX.001
+    //
+    // Group:   Capture
+    // 
+    // Action : Set display index to 1 and capture a still image.
+	//      
+	// Output : No errors. Snap image should be enhanced.  
+
+    iStatesClient->SetDisplayIndex( 1 );
+    iStatesClient->SetSnapFileName( _L("cae_snap_disp_index_1.mbm") );
+    //iStatesClient->RunTestActionL( CCaeTestStatesClient::ESpecifiedPrepareAndCaptureStill );
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::ESetDisplayIndex );
+    }
+
+/********************************************************/
+/*             VIDEO RECORDING ENUMERATE FRAME SIZES    */
+/********************************************************/
+
+void CCaeTestRelease::TestEnumerateVideoFrameSize001L()
+{
+	// Group:   Settings.
+    // 
+    // ID:      CAE.SET-VR.ENUMERATEVIDEOFRAMESIZE.001
+    //
+    // Action : Test that enumerate can be called with correct and incorrect frame sizes
+	//      
+	// Output : No leave.   
+
+    iSettingsClient->RunTestActionL( CCaeTestSettingsClient::EEnumerateVideoFrameSize );
+}
+
+
+/********************************************************/
+/*             Extension mode test cases                */
+/********************************************************/
+
+void CCaeTestRelease::TestProcessExtViewFinderFrameReadyL()
+{
+	// Group:   still capture/extension mode.
+    // 
+    // ID:      CAE.SC.ProcessExtViewFinderFrameReadyL.001
+    //
+    // Action : Test extension mode ProcessExtViewFinderFrameReadyL normal operation
+	//      
+	// Output : No leave.   
+
+    TSize sizeQqvga( KImgWidthQQVGA, KImgHeightQQVGA );
+    iSettingsClient->SetViewFinderSize( sizeQqvga );
+	iSettingsClient->SetRunningWithViewFinder( ETrue );
+
+    iSettingsClient->RunTestActionL( CCaeTestSettingsClient::EProcessExtViewFinderFrameReady );
+}
+
+void CCaeTestRelease::TestProcessExtSnapImageL()
+{
+	// Group:   still capture/extension mode.
+    // 
+    // ID:      CAE.SC.ProcessExtSnapImageL.001
+    //
+    // Action : Test extension mode ProcessExtSnapImageL normal operation
+	//      
+	// Output : No leave.   
+
+    iSettingsClient->RunTestActionL( CCaeTestSettingsClient::EProcessExtSnapImage );
+}
+
+void CCaeTestRelease::TestProcessExtCapturedImageL()
+{
+	// Group:   still capture/extension mode.
+    // 
+    // ID:      CAE.SC.ProcessExtCapturedImageL.001
+    //
+    // Action : Test extension mode ProcessExtCapturedImageL normal operation with HBufC8 param 
+	//      
+	// Output : No leave.   
+
+    iSettingsClient->RunTestActionL( CCaeTestSettingsClient::EProcessExtCapturedImage );
+}
+
+
+void CCaeTestRelease::TestProcessExtCapturedImage2L()
+{
+	// Group:   still capture/extension mode.
+    // 
+    // ID:      CAE.SC.ProcessExtCapturedImageL.002
+    //
+    // Action : Test extension mode ProcessExtCapturedImageL normal operation with TDesC8 param
+    //          Test that Relese() can be called
+	//      
+	// Output : No leave.   
+
+    iSettingsClient->RunTestActionL( CCaeTestSettingsClient::EProcessExtCapturedImageTDesC8 );
+}
+
+void CCaeTestRelease::TestProcessExtCapturedImage3L()
+{
+	// Group:   still capture/extension mode.
+    // 
+    // ID:      CAE.SC.ProcessExtCapturedImageL.003
+    //
+    // Action : Test extension mode ProcessExtCapturedImageL normal operation with CFbsBitmap param
+	//      
+	// Output : No leave.   
+
+    iSettingsClient->RunTestActionL( CCaeTestSettingsClient::EProcessExtCapturedImageCFbsBitmap );
+}
+
+void CCaeTestRelease::TestProcessExtCapturedImage4L()
+{
+	// Group:   still capture/extension mode.
+    // 
+    // ID:      CAE.SC.ProcessExtCapturedImageL.004
+    //
+    // Action : Test extension mode ProcessExtCapturedImageL normal operation with HBufC8 param 
+	//      
+	// Output : No leave.   
+
+    iSettingsClient->RunTestActionL( CCaeTestSettingsClient::EProcessExtCapturedImageNoInit );
+}
+
+void CCaeTestRelease::TestProcessExtCancelL()
+{
+	// Group:   still capture/extension mode.
+    // 
+    // ID:      CAE.SC.ProcessExtCancel.001
+    //
+    // Action : Test extension mode ProcessExtCancel call before extension interface is used
+	//      
+	// Output : No leave.   
+
+    iSettingsClient->RunTestActionL( CCaeTestSettingsClient::EProcessExtCancel );
+}
+
+
+void CCaeTestRelease::TestProcessExtCancel2L()
+{
+	// Group:   still capture/extension mode.
+    // 
+    // ID:      CAE.SC.ProcessExtCancel.002
+    //
+    // Action : Test extension mode ProcessExtCancel normal operation. Cancell is called when extension
+    //          processing is in progress
+	//      
+	// Output : No leave.   
+
+    iSettingsClient->RunTestActionL( CCaeTestSettingsClient::EProcessExtCancel2 );
+}
+
+void CCaeTestRelease::TestProcessExtCapturedImageBurstL()
+{
+	// Group:   still capture/extension mode.
+    // 
+    // ID:      CAE.SC.ProcessExtCapturedImageBurstL.001
+    //
+    // Action : Test extension mode ProcessExtCapturedImageL normal burst operation with HBufC8 param
+    //          One image is captured and then it is sent as 6 burst images to extension handling.
+    //          Also snap images are sent 6 times.
+	//      
+	// Output : No leave.   
+
+    iSettingsClient->SetStillBurstLength( 6 );
+    iSettingsClient->SetStillFormat( CCamera::EFormatExif );
+    iSettingsClient->RunTestActionL( CCaeTestSettingsClient::EProcessExtCapturedImageBurst );
+    assertL( iSettingsClient->CountStillImageReady() == 6 );
+    assertL( iSettingsClient->CountSnapImageReady() == 6 );
+    assertL( iSettingsClient->CountStillBurstComplete() == 1 );
+}
+
+void CCaeTestRelease::TestProcessExtCapturedImageBurst2L()
+{
+	// Group:   still capture/extension mode.
+    // 
+    // ID:      CAE.SC.ProcessExtCapturedImageBurstL.002
+    //
+    // Action : Test extension mode ProcessExtCapturedImageL normal burst operation with TDesC8 param 
+    //          One image is captured and then it is sent as 6 burst images to extension handling
+    //          Also snap images are sent 6 times.
+	//      
+	// Output : No leave.   
+
+    iSettingsClient->SetStillBurstLength( 6 );
+    iSettingsClient->SetStillFormat( CCamera::EFormatExif );
+    iSettingsClient->RunTestActionL( CCaeTestSettingsClient::EProcessExtCapturedImageBurstTDesC8 );
+    assertL( iSettingsClient->CountSnapImageReady() == 6 );
+    assertL( iSettingsClient->CountStillImageReady() == 6 );
+    assertL( iSettingsClient->CountStillBurstComplete() == 1 );
+}
+
+void CCaeTestRelease::TestInstalledExtensionListL()
+{
+	// Group:   still capture/extension mode.
+    // 
+    // ID:      CAE.SC.InstalledExtensionList.001
+    //
+    // Action : Test extension mode InstalledExtensionList normal operation
+	//      
+	// Output : No leave.   
+
+    iSettingsClient->RunTestActionL( CCaeTestSettingsClient::EInstalledExtensionList );
+}
+
+void CCaeTestRelease::TestSkippedExtensionListL()
+{
+	// Group:   still capture/extension mode.
+    // 
+    // ID:      CAE.SC.SkippedExtensionListL.001
+    //
+    // Action : Test extension mode SkippedExtensionList normal operation
+	//      
+	// Output : No leave.   
+
+    iSettingsClient->RunTestActionL( CCaeTestSettingsClient::ESkippedExtensionList );
+}
+
+void CCaeTestRelease::TestSetSkippedExtensionListL()
+{
+	// Group:   still capture/extension mode.
+    // 
+    // ID:      CAE.SC.SetSkippedExtensionList.001
+    //
+    // Action : Test extension mode SetSkippedExtensionList normal operation
+	//      
+	// Output : No leave.   
+
+    iSettingsClient->RunTestActionL( CCaeTestSettingsClient::ESetSkippedExtensionList );
+}
+
+
+void CCaeTestRelease::TestStartAndStopVideoRecordingSubQcifNoInitL()
+    {
+	// ID: CAE.VR.STARTSTOPVIDEORECORDING.SUBQCIF.NOINIT.001
+    //
+    // Group:   Record
+    // 
+    // Action : To ensure that the implementation is compatible with camcorder plug-in. 
+    //          To ensure that starting and stopping video recording works. 
+    //          To ensure that recording subQCIF sized video works. 
+    //          Video recording prepared for subQCIF format.
+	//      
+	// Output : OK.   
+
+    iStatesClient->SetTimeout( 4000000 );
+
+    TSize sizeQcif( KImgWidthQCIF, KImgHeightQCIF );
+
+    iStatesClient->SetVideoFrameSize( sizeQcif );
+    iStatesClient->SetVideoFrameRate( TReal32( 10.0 ) );
+    iStatesClient->SetVideoBitRate( TInt( 25000 ) );
+
+    iStatesClient->SetVideoCodecSet( 0 ); // 0: AMR audio, H.263 video
+
+    iStatesClient->SetVideoFileName( _L("cae_subqcif_noinit.3gp") );
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::ESpecifiedPrepareAndRecordVideoNoInit );
+
+    assertL( iStatesClient->CountInitComplete() == 0 );
+    assertL( iStatesClient->CountVideoPrepareComplete() == 1 );
+    assertL( iStatesClient->CountVideoRecordingOn() == 1 );
+    assertL( iStatesClient->CountVideoRecordingComplete() == 1 );
+    }
+
+
+
+void CCaeTestRelease::TestSecondaryCamera001L()
+    {
+	// ID: CAE.SC.SecondaryCamera.001
+    //
+    // Group:   Capture
+    // 
+    // Action : Test to setup still capturing for secondary camera and capture Jpeg 
+    //          image when initialization is done.
+	//      
+    //       ** For PROD9 320x240 camera **
+    //
+	// Output : OK.   
+
+    TSize sizeQVGA( KImgWidthQVGA, KImgHeightQVGA );
+
+    iStatesClient->SetStillFormat( CCamera::EFormatJpeg );
+    iStatesClient->SetStillCompressionQuality( 80 );
+    iStatesClient->SetStillFrameSize( sizeQVGA ); // only supported size
+    iStatesClient->SetSnapImageSize( TSize( 240, 180 ) ); // no action, cae returns qvga if no adis
+    iStatesClient->SetSnapImageSource( CCaeEngine::ESnapImageSourceThumbnail ); // no action as C-API returns bitmap
+    iStatesClient->SetStillFileName( _L("cae_jpegsecond_001.jpg") );
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::ESpecifiedPrepareAndCaptureStill2nd );
+
+    assertL( iStatesClient->CountInitComplete() == 1 );
+    assertL( iStatesClient->CountStillPrepareComplete() == 1 );
+    assertL( iStatesClient->CountSnapImageReady() == 1 );
+    assertL( iStatesClient->CountStillImageReady() == 1 );
+    }
+
+void CCaeTestRelease::TestRecordAsyncStop001L()
+    {
+	// ID:      CAE.VR.VIDEORECORDING.AsyncStop.001
+    //
+    // Group:   Record.
+    // 
+    // Action : Test to prepare video recording and record quality level 0 
+    //          video clip when async stop is enabled.
+	//      
+	// Output : No leave.
+
+    iStatesClient->SetVideoQualityLevelIndex( 0 );
+
+    TSize sizeSubQcif( KImgWidthSubQCIF, KImgHeightSubQCIF );
+
+    iStatesClient->SetViewFinderSize( sizeSubQcif );
+    
+    iStatesClient->SetVfFileName( _L("cae_video_asyncstop_001.mbm") ); 
+
+    iStatesClient->SetVideoStopMode( ETrue ); 
+
+    iStatesClient->SetTimeout( 30000000 );
+
+    iStatesClient->SetVideoCodecSet( 0 ); // 0: AMR audio, H.263 video
+
+    iStatesClient->SetVideoFileName( _L("cae_video_asyncstop_001.3gp") );
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::EStartVfPrepareRecordVideoStartAndStopVf );
+
+    assertL( iStatesClient->CountInitComplete() == 1 );
+    assertL( iStatesClient->CountVideoPrepareComplete() == 1 );
+    assertL( iStatesClient->CountVideoRecordingOn() == 1 );
+    assertL( iStatesClient->CountVideoRecordingStopped() == 1 );
+    assertL( iStatesClient->CountVideoRecordingComplete() == 1 );
+    }
+
+void CCaeTestRelease::TestRecordAsyncStop002L()
+    {
+	// ID:      CAE.VR.VIDEORECORDING.AsyncStop.002
+    //
+    // Group:   Record.
+    // 
+    // Action : Test to prepare video recording and record quality level 0 
+    //          video clip when async stop is disabled.
+	//      
+	// Output : No leave.
+
+    iStatesClient->SetVideoQualityLevelIndex( 0 );
+
+    TSize sizeSubQcif( KImgWidthSubQCIF, KImgHeightSubQCIF );
+
+    iStatesClient->SetViewFinderSize( sizeSubQcif );
+    
+    iStatesClient->SetVfFileName( _L("cae_video_asyncstop_001.mbm") ); 
+
+    iStatesClient->SetVideoStopMode( EFalse ); 
+
+    iStatesClient->SetTimeout( 30000000 );
+
+    iStatesClient->SetVideoCodecSet( 0 ); // 0: AMR audio, H.263 video
+
+    iStatesClient->SetVideoFileName( _L("cae_video_asyncstop_001.3gp") );
+
+    iStatesClient->RunTestActionL( CCaeTestStatesClient::EStartVfPrepareRecordVideoStartAndStopVf );
+
+    assertL( iStatesClient->CountInitComplete() == 1 );
+    assertL( iStatesClient->CountVideoPrepareComplete() == 1 );
+    assertL( iStatesClient->CountVideoRecordingOn() == 1 );
+    assertL( iStatesClient->CountVideoRecordingStopped() == 0 );
+    assertL( iStatesClient->CountVideoRecordingComplete() == 1 );
+    }
+
+
+//
+// An own static function to collect the test functions into one 
+// suite of tests. The framework will run the tests and free the
+// memory allocated for the test suite.
+// 
+
+#if 1
+    
+MTest* CCaeTestRelease::suiteL ()
+    {
+	// Always use NewL (Do not use NewLC) !!!
+    CTestSuite *suite = CTestSuite::NewL( _L8("CCaeTestRelease") );
+
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.GEN.INITL.001"), &TestInitL ) );
+    
+#if VIDEO_RECORDING_TEST_CASES
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.GEN.INITVIDEORECORDERL.001"), &TestInitVideoRecorderL ) );
+#endif
+    
+#if (!MIRAGE_X) && (!UNAGI_2M) 
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.GEN.GETINFO.001"), &TestGetInfoL ) );
+#endif
+
+#if MIRAGE_X_PROD1 
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.GEN.GETINFO.002"), &TestGetInfoPROD1MirageXL ) );
+#endif
+    
+#if MIRAGE_X_PROD2 
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.GEN.GETINFO.003"), &TestGetInfoPROD2MirageXL ) );
+#endif
+    
+#if MIRAGE_X_PROD3 
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.GEN.GETINFO.004"), &TestGetInfoPROD3MirageXPL ) );
+#endif
+    
+#if MIRAGE_X_PROD4 
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.GEN.GETINFO.005"), &TestGetInfoPROD4MirageXL ) );
+#endif
+
+#if MIRAGE_X_PROD6 
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.GEN.GETINFO.006"), &TestGetInfoPROD6MirageXL ) );
+#endif
+
+#if MIRAGE_X_PROD7 
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.GEN.GETINFO.007"), &TestGetInfoPROD7Unagi2ML ) );
+#endif
+
+#if MIRAGE_X_PROD8 
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.GEN.GETINFO.008"), &TestGetInfoPROD8MirageXL ) );
+#endif
+
+#if MIRAGE_X_PROD9 
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.GEN.GETINFO.009"), &TestGetInfoPROD9HWL ) );
+#endif
+
+#if HW_DEVLON 
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.GEN.GETINFO.010"), &TestGetInfoDevlonHWL ) );
+#endif
+
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.GEN.POWEROFFANDON.001"), &TestPowerOffAndOnL ) );
+     
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.GEN.RELESEANDRESERVE.001"), &TestReleaseAndReserveL ) );
+    
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.GEN-SC.POWERON.001"), &TestPowerOnWhenInitializedL ) );
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.GEN-SC.POWERON.002"), &TestPowerOnWhenStillCapturePreparedL ) );
+
+#if VIDEO_RECORDING_TEST_CASES
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.GEN-VR.POWERON.003"), &TestPowerOnWhenVideoRecordingPreparedL ) );
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.GEN-VR.POWERON.004"), &TestPowerOnWhenRecordingL ) );
+#endif
+    
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.GEN-SC.POWEROFF.001"), &TestPowerOffWhenStillCapturePreparedL ) );    
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.GEN-SC.POWEROFF.002"), &TestPowerOffWhenViewfinderRunningL ) );
+
+#if VIDEO_RECORDING_TEST_CASES
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.GEN-VR.POWEROFF.003"), &TestPowerOffWhenVideoRecordingPreparedL ) );
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.GEN-VR.POWEROFF.004"), &TestPowerOffWhenRecordingL ) );
+#endif
+
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.VF.STARTSTOPVIEWFINDER.QQVGA.001"), &TestViewFinderStartAndStopQqvgaL ) );
+    
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.VF.STARTSTOPVIEWFINDER.SUBQCIF.002"), &TestViewFinderStartAndStopSubqcifL ) );
+    
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.VF.STARTSTOPVIEWFINDER.CROPPED.003"), &TestCroppedViewFinderStartAndStopL ) );
+#if !( (HW_DEVLON) )
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.VF.STARTSTOPVIEWFINDERDIRECT.001"), &TestViewFinderDirectStartAndStopL ) );
+#endif
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.VF.STARTSTOPVIEWFINDERDIRECT.002"), &TestCroppedViewFinderDirectStartAndStopL ) );
+    
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SC.CAPTURESTILL.001"), &TestCaptureStillWhenEngineInitializedL ) );
+    
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SC.CAPTURESTILL.VGA16M.002"), &TestCaptureVga16ML ) );
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SC.CAPTURESTILL.VGA64K.003"), &TestCaptureVga64KL ) );
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SC.CAPTURESTILL.VGA4K.004"), &TestCaptureVga4KL ) );
+
+#if !( (MIRAGE_X_PROD9) || (HW_DEVLON) )
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SC.CAPTURESTILL.QQVGA16M.005"), &TestCaptureQqvga16ML ) ); 
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SC.CAPTURESTILL.QQVGA64K.006"), &TestCaptureQqvga64KL ) );
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SC.CAPTURESTILL.QQVGA4K.007"), &TestCaptureQqvga4KL ) );
+#endif
+    
+#if MIRAGE_X_PROD1 
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SC.CAPTURESTILL.MP1.16M.011"), &TestCaptureMp1_16ML ) );
+
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SC.CAPTURESTILL.MP1.64K.012"), &TestCaptureMp1_64KL ) );
+
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SC.CAPTURESTILL.MP1.4K.013"), &TestCaptureMp1_4KL ) );
+
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SC.CAPTURESTILL.JPEGMP1.014"), &TestCaptureJpegMp1L ) );    
+
+#endif
+
+#if (MIRAGE_X_PROD2) || (MIRAGE_X_PROD4) || (MIRAGE_X_PROD3)
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SC.CAPTURESTILL.MP1M3.16M.018"), &TestCaptureMp1M3_16ML ) );
+
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SC.CAPTURESTILL.MP1M3.64K.019"), &TestCaptureMp1M3_64KL ) );
+
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SC.CAPTURESTILL.MP1M3.4K.020"), &TestCaptureMp1M3_4KL ) );
+
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SC.CAPTURESTILL.JPEGMP1M3.021"), &TestCaptureJpegMp1M3L ) );    
+
+#endif // (MIRAGE_X_PROD2) || (MIRAGE_X_PROD4) || (MIRAGE_X_PROD3)
+
+#if MIRAGE_X_PROD7
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SC.CAPTURESTILL.MP2.16M.025"), &TestCaptureMp2_16ML ) );
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SC.CAPTURESTILL.MP2.64K.026"), &TestCaptureMp2_64KL ) );
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SC.CAPTURESTILL.MP2.4K.027"), &TestCaptureMp2_4KL ) );
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SC.CAPTURESTILL.JPEG.MP2.028"), &TestCaptureJpegMp2L ) );    
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SC.CAPTURESTILL.EXIF.MP2.029"), &TestCaptureExifMp2L ) );    
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SC.CAPTURESTILL.EXIF.SVGA.030"), &TestCaptureExifSVGAL ) );    
+#endif // MIRAGE_X_PROD7
+
+#if MIRAGE_X_PROD8
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SC.CAPTURESTILL.CODEC.031"), &TestCaptureCodecL ) );    
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SC.CAPTURESTILL.CODEC.032"), &TestCaptureCodec2L ) );
+#endif // MIRAGE_X_PROD8
+        
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SC.CAPTURESTILL.JPEGVGA90.008"), &TestCaptureQualityLevel0L ) );
+   
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SC.CAPTURESTILL.JPEGVGA50.009"), &TestCaptureQualityLevel1L ) );
+
+#if !( (MIRAGE_X_PROD9) || (HW_DEVLON) )
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SC.CAPTURESTILL.JPEGQQVGA90.010"), &TestCaptureQualityLevel2L ) );
+#endif
+
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SC.CAPTURECAPTURE.001"), &TestCaptureCaptureL ) );
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SC.CAPTURECAPTURE.002"), &TestCaptureCaptureSpecPrepL ) );
+    
+    
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SC.PREPARESTILLCAPTUREL.001"), &TestPrepareStillCapture0L ) );
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SC.PREPARESTILLCAPTUREL.002"), &TestPrepareStillCapture1L ) );
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SC.PREPARESTILLCAPTUREL.003"), &TestPrepareStillCapture2L ) );    
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SC.PREPARESTILLCAPTUREL.004"), &TestPrepareStillCapture0WhenPreparedL ) );
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SC.PREPARESTILLCAPTUREL.007"), &TestSpecPrepareSCSupportedFormatWhenInitializedL ) );
+    
+#if VIDEO_RECORDING_TEST_CASES
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.VR.PREPAREVIDEORECORDINGL.001"), &TestPrepareVideoRecording0L ) );
+
+#if !( (HW_DEVLON) )
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.VR.PREPAREVIDEORECORDINGL.002"), &TestPrepareVideoRecording1L ) );
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.VR.PREPAREVIDEORECORDINGL.003"), &TestPrepareVideoRecording2L ) );    
+#endif
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.VR.PREPAREVIDEORECORDINGL.004"), &TestPrepareVideoRecording0WhenPreparedL ) );
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.VR.PREPAREVIDEORECORDINGL.007"), &TestSpecPrepareVRSupportedFormatWhenVRInitializedL ) );
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.VR.VIDEORECORDING.QCIF64000FR15.001"), &TestRecordQualityLevel0L ) );  
+
+#if !( (HW_DEVLON) )
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.VR.VIDEORECORDING.SUBQCIF60000FR15.002"), &TestRecordQualityLevel1L ) );
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.VR.VIDEORECORDING.SUBQCIF40000FR5.003"), &TestRecordQualityLevel2L ) );
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.VR.STARTSTOPVIDEORECORDING.SUBQCIF.001"), &TestStartAndStopVideoRecordingSubQcifL ) );
+#endif
+    
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.VR.STARTSTOPVIDEORECORDING.QCIF.002"), &TestStartAndStopVideoRecordingQcifL ) );
+#endif
+    
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SET-SC.SETZOOMVALUEL.001"), &TestSCDigiZoomVal0L ) );    
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SET-SC.SETZOOMVALUEL.002_vga"), &TestSCDigiZoomVal1VgaL ) );
+#if !( (MIRAGE_X_PROD9) || (HW_DEVLON) )
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SET-SC.SETZOOMVALUEL.002_qqvga"), &TestSCDigiZoomVal1QqvgaL ) );
+#endif
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SET-SC.SETZOOMVALUEL.005"), &TestSCDigiZoomInitializedVal0L ) );
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SET-SC.SETZOOMVALUEL.012_vga"), &TestSCDigiZoomInitializedVal1VgaL ) );
+
+#if !( (MIRAGE_X_PROD9) || (HW_DEVLON) )
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SET-SC.SETZOOMVALUEL.012_qqvga"), &TestSCDigiZoomInitializedVal1QqvgaL ) );
+#endif
+
+#if VIDEO_RECORDING_TEST_CASES
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SET-VR.SETZOOMVALUEL.006"), &TestVRDigiZoomVal0L ) );    
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SET-VR.SETZOOMVALUEL.007"), &TestVRDigiZoomVal1L ) );    
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SET-VR.SETZOOMVALUEL.010"), &TestVRDigiZoomRecordingVal0L ) );
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SET-VR.SETZOOMVALUEL.011"), &TestVRDigiZoomRecordingVal1L ) );
+
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.VR.RESUMEVIDEORECORDING.001"), &TestRecordPauseResumeStopL ) );
+#endif
+    
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SET-SC.SETEXPOSUREMODEL.001"), &TestSCExposureMode0L ) );
+
+#if !MIRAGE_X_PROD6 
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SET-SC.SETEXPOSUREMODEL.002"), &TestSCExposureMode1L ) );
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SET-SC.SETEXPOSUREMODEL.016"), &TestSCExposureModeInitialized1L ) );
+#endif
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SET-SC.SETEXPOSUREMODEL.015"), &TestSCExposureModeInitialized0L ) );
+
+#if VIDEO_RECORDING_TEST_CASES
+#if !MIRAGE_X_PROD6 
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SET-VR.SETEXPOSUREMODEL.008"), &TestVRExposureMode0L ) );
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SET-VR.SETEXPOSUREMODEL.009"), &TestVRExposureMode1L ) );
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SET-VR.SETEXPOSUREMODEL.018"), &TestVRExposureModeRecording1L ) );
+#endif
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SET-VR.SETEXPOSUREMODEL.017"), &TestVRExposureModeRecording0L ) );
+#endif
+
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SET-SC.SETEVCOMP.001"), &TestSCEvCompensation0L ) );
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SET-SC.SETEVCOMP.002"), &TestSCEvCompensationMaxL ) );
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SET-SC.SETEVCOMP.003"), &TestSCEvCompensationMinL ) );
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SET-SC.SETEVCOMP.004"), &TestSCEvCompensationInitialized0L ) );
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SET-SC.SETEVCOMP.005"), &TestSCEvCompensationInitializedMaxL ) );
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SET-SC.SETEVCOMP.006"), &TestSCEvCompensationInitializedMinL ) );
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SET-SC.SETEVCOMP.007"), &TestSCEvCompensationInitializedInvalidL ) );
+
+#if VIDEO_RECORDING_TEST_CASES
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SET-VR.SETEVCOMP.001"), &TestVREvCompensationMinL ) );
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SET-VR.SETEVCOMP.002"), &TestVREvCompensationRecordingMaxL ) );
+#endif
+
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SET-SC.SETWHITEBALANCEMODEL.001"), &TestSCWhiteBalanceMode0L ) );
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SET-SC.SETWHITEBALANCEMODEL.019"), &TestSCWhiteBalanceModeInitialized0L ) );
+
+#if VIDEO_RECORDING_TEST_CASES
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SET-VR.SETWHITEBALANCEMODEL.010"), &TestVRWhiteBalanceMode0L ) );
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SET-VR.SETWHITEBALANCEMODEL.020"), &TestVRWhiteBalanceModeRecording0L ) );
+#endif
+
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SET-SC.SETBRIGHTNESSL.001"), &TestSCBrightness50L ) );
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SET-SC.SETBRIGHTNESSL.007"), &TestSCBrightnessInitialized50L ) );
+
+#if VIDEO_RECORDING_TEST_CASES
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SET-VR.SETBRIGHTNESSL.008"), &TestVRBrightness50L ) );
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SET-VR.SETBRIGHTNESSL.014"), &TestVRBrightnessRecording50L ) );
+#endif
+
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SET-SC.SETCONTRASTL.001"), &TestSCContrast50L ) );
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SET-SC.SETCONTRASTL.007"), &TestSCContrastInitialized50L ) );
+
+#if VIDEO_RECORDING_TEST_CASES
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SET-VR.SETCONTRASTL.008"), &TestVRContrast50L ) );
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SET-VR.SETCONTRASTL.014"), &TestVRContrastRecording50L ) );
+	
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SET-VR.SETVIDEOCLIPMAXSIZEL.002"), &TestVideoClipMaxSize10000L ) );
+#endif
+    
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SC.CANCELCAPTURESTILL.001"), &TestCancelCaptureStillL ) );
+
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SC.GETSTILLQUALITYINDEX.001"), &TestGetStillQualityIndexWhenEngineInitializedL ) );
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SC.GETSTILLQUALITYINDEX.002"), &TestGetStillQualityIndexWhenPreparedL ) );
+    
+#if VIDEO_RECORDING_TEST_CASES
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.VR.GETVIDEOQUALITYINDEX.001"), &TestGetVideoQualityIndexWhenEngineInitializedL ) );
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.VR.GETVIDEOQUALITYINDEX.002"), &TestGetVideoQualityIndexWhenPreparedL ) );
+    
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.VR.REMAININGVIDEORECORDINGTIME.001"), &TestRemainingTimeWhenVideoPreparedL ) );
+    
+//    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.VR.STARTSTOPVRTOOBIGSIZE.SUBQCIF.001"), &TestStartAndStopVRWhenTooBigSizeSubQcifL ) );
+    
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.VR.PREPAREAUDIOBITRATEANDRECORDVIDEO.001"), &TestPrepareAudioBitRateVR5000L ) );
+
+#if (MIRAGE_X_PROD7)
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.VR.PREPAREAUDIOBITRATEANDRECORDVIDEO.002"), &TestPrepareAudioBitRateVR128L ) );
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.VR.PREPAREAUDIOBITRATEANDRECORDVIDEO.003"), &TestPrepareAudioBitRateVR128InvVtypeL ) );
+#endif
+
+#endif
+
+#ifdef __CAMERA_BURST_MODE
+    // Only if Still BURST is supported (built in).
+    
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SC.CAPTURESTILLBURST.3.001"), &TestCaptureStillBurst3L ) );   
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SC.CAPTURESTILLBURST.0.002"), &TestCaptureStillBurst0L ) );
+
+//    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SC.CAPTURESTILLBURST.100.003"), &TestCaptureStillBurst100L ) );
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SC.CAPTURESTILLBURST.CANCEL.004"), &TestCancelCaptureStillBurst3L ) );
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SC.CAPTURESTILLBURST.STOP2.005"), &TestStopCaptureStillBurstAfter2L ) );
+    
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SC.CAPTURESTILLBURST.3.006"), &TestSpecPrepCaptureStillBurst3L ) );
+    
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SC.CAPTURESTILLBURSTINTERVAL.0.001"), &TestCaptureStillBurstInterval0L ) );
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SC.CAPTURESTILLBURSTINTERVAL.1000000.002"), &TestCaptureStillBurstInterval1000000L ) );
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SC.CAPTURESTILLBURSTINTERVAL.M1.003"), &TestCaptureStillBurstIntervalM1L ) );
+#endif
+
+
+#if (MIRAGE_X_PROD2) || (MIRAGE_X_PROD4) || (MIRAGE_X_PROD3) || (MIRAGE_X_PROD7)
+
+#ifdef __CAMERA_BURST_MODE
+	// Exif burst test
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SC.CAPTURESTILLBURSTEXIF.3.001"), &TestCaptureStillBurstExif3L ) );
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SC.CAPTURESTILLBURSTEXIF.6.002"), &TestCaptureStillBurstExif6L ) );
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SC.CAPTURESTILLBURSTEXIF.100.003"), &TestCaptureStillBurstExif100L ) );
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SC.CAPTURESTILLBURSTEXIF.6.VF.004"), &TestCaptureStillBurstExif6VfL ) );
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SC.CAPTURESTILLBURSTEXIF.6.VF.CANCEL.005"), &TestCaptureStillBurstExif6VfCancelL ) );
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SC.CAPTURESTILLBURSTEXIF.6.006"), &TestCaptureStillBurstExif6NSL ) );
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SC.CAPTURESTILLBURSTEXIF.6.007"), &TestCaptureStillBurstExif6_ThumbnailL ) );
+#endif
+
+	// Exif tests
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SC.CAPTURESTILL.VGA.EXIF.001"), &TestCaptureVgaExifL ) );	
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SC.CAPTURESTILL.QQVGA.EXIF.002"), &TestCaptureQqvgaExifL ) );
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SC.CAPTURESTILL.VGA.EXIF.003"), &TestCaptureVgaSnapOneHalfExifL ) );
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SC.CAPTURESTILL.VGA.EXIF.004"), &TestCaptureVgaSnapOneFourthExifL ) );
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SC.CAPTURESTILL.VGA.EXIF.005"), &TestCaptureVgaSnapOneEighthExifL ) );
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SC.CAPTURESTILL.VGA.EXIF.006"), &TestCaptureVgaSnapExifL ) );
+
+    // Jpeg tests
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SC.CAPTURESTILL.VGA.JPEG.007"), &TestCaptureVgaSnapOneEighthJpegL ) );
+
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SC.CAPTURESTILL.VGA.EXIF.008"), &TestCaptureVgaSnapOneEighthExif2L ) );
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SC.CAPTURESTILL.VGA.EXIF.009"), &TestCaptureVgaSnapColor16MExifL ) );
+#endif // (MIRAGE_X_PROD2) || (MIRAGE_X_PROD4) || (MIRAGE_X_PROD3) || (MIRAGE_X_PROD7)
+
+    // Test cases for snap-image creation switched off.
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SC.CAPTURESTILL.VGA16M.015"), &TestCaptureVga16M_NoSnapL ) );
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SC.CAPTURESTILL.JPEGVGA90.016"), &TestCaptureQualityLevel0_NoSnapL ) );
+#if (MIRAGE_X_PROD2) || (MIRAGE_X_PROD4) || (MIRAGE_X_PROD3) || (MIRAGE_X_PROD7)
+    // Exif tests
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SC.CAPTURESTILL.VGA.EXIF.017"), &TestCaptureVgaExif_NoSnapL ) );	
+#endif
+
+#ifdef __CAMERA_BURST_MODE
+    // Only if Still BURST is supported (built in).
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SC.CAPTURESTILLBURST.3.007"), &TestCaptureStillBurst3_NoSnapL ) );
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SC.CAPTURESTILLBURST.3.008"), &TestSpecPrepCaptureStillBurst3_NoSnapL ) );
+
+#if (MIRAGE_X_PROD2) || (MIRAGE_X_PROD4) || (MIRAGE_X_PROD3) || (MIRAGE_X_PROD7)
+    // Exif tests
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SC.CAPTURESTILLBURSTEXIF.3.004"), &TestCaptureStillBurstExif3_NoSnapL ) );
+#endif
+#endif // __CAMERA_BURST_MODE
+
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.GEN.ENUMERATE.001"), &TestEnumerateCaptureSizesL ) );
+
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SET-SC.SETJPEGQUALITY.001"), &TestSetJpegQuality50L ) );
+
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.GEN.CUSTOMINTERFACE.001"), &TestSCCustomInterfaceL ) );
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SET-SC.SETFLASHMODEL.001"), &TestFlashMode0L ) );
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SET-SC.SETFLASHMODEL.002"), &TestFlashMode1L ) );
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SET-SC.SETFLASHMODEL.003"), &TestFlashMode2L ) );
+
+#if COLOR_TONE_TEST_CASES
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SET-SC.COLORTONE.001"), &TestSCColorToneNormalL ) );
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SET-SC.COLORTONE.002"), &TestSCColorToneSepiaL ) );
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SET-SC.COLORTONE.003"), &TestSCColorToneGrayscaleL ) );
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SET-SC.COLORTONE.004"), &TestSCColorToneNegativeL ) );
+#if VIDEO_RECORDING_TEST_CASES
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SET-VR.COLORTONE.005"), &TestVRColorToneL ) );
+#endif
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SET-SC.COLORTONE.006"), &TestSCColorToneWrongParams1L ) );
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SET-SC.COLORTONE.007"), &TestSCColorToneWrongParams2L ) );
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SET-SC.COLORTONE.008"), &TestSCColorToneReleaseL ) );
+#endif // COLOR_TONE_TEST_CASES
+
+//#if (MIRAGE_X_PROD7)
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SC.SETDISPLAYINDEX.001"), &TestSetDisplayIndexL ) );
+//#endif
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SC.CAPTURESTILL.POWEROFF.001"), &TestCaptureAfterPowerOffL ) );
+
+    // new tests after 3.2
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SET-VR.ENUMERATEVIDEOFRAMESIZE.001"), &TestEnumerateVideoFrameSize001L ) );
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.GEN.CCAMERAHANDLE.001"), &TestCCameraHandleL ) );
+
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SC.ProcessExtViewFinderFrameReadyL.001"), &TestProcessExtViewFinderFrameReadyL ) );
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SC.ProcessExtSnapImageL.001"), &TestProcessExtSnapImageL ) );
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SC.ProcessExtCapturedImageL.001"), &TestProcessExtCapturedImageL ) );
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SC.ProcessExtCapturedImageL.002"), &TestProcessExtCapturedImage2L ) );
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SC.ProcessExtCapturedImageL.003"), &TestProcessExtCapturedImage3L ) );
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SC.ProcessExtCapturedImageL.004"), &TestProcessExtCapturedImage4L ) );
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SC.ProcessExtCancel.001"), &TestProcessExtCancelL ) );
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SC.ProcessExtCancel.002"), &TestProcessExtCancel2L ) );
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SC.ProcessExtCapturedImageBurstL.001"), &TestProcessExtCapturedImageBurstL ) );
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SC.ProcessExtCapturedImageBurstL.002"), &TestProcessExtCapturedImageBurst2L ) );
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SC.InstalledExtensionList.001"), &TestInstalledExtensionListL ) );
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SC.SkippedExtensionListL.001"), &TestSkippedExtensionListL ) );
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SC.SetSkippedExtensionList.001"), &TestSetSkippedExtensionListL ) );
+
+#if VIDEO_RECORDING_TEST_CASES
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.VR.STARTSTOPVIDEORECORDING.SUBQCIF.NOINIT.001"), &TestStartAndStopVideoRecordingSubQcifNoInitL ) );
+#endif
+
+#if ( ((MIRAGE_X_PROD9) || (HW_DEVLON)) && (SECONDARY_CAMERA_TEST_CASES) ) 
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.SC.SecondaryCamera.001"), &TestSecondaryCamera001L ) );
+#endif
+
+    // Asynchronous video stop test cases
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.VR.VIDEORECORDING.AsyncStop.001"), &TestRecordAsyncStop001L ) );  
+    suite->addTestL( CTestCaller<CCaeTestRelease>::NewL( _L8("CAE.VR.VIDEORECORDING.AsyncStop.002"), &TestRecordAsyncStop002L ) );  
+
+    return suite;
+    }
+
+#else
+
+
+MTest* CCaeTestRelease::suiteL ()
+    {
+	// Always use NewL (Do not use NewLC) !!!
+    CTestSuite *suite = CTestSuite::NewL( _L8("CCaeTestRelease") );
+
+    
+    return suite;
+    }
+
+#endif