camappengine/asynchfilesavequeue/tsrc/public/basic/src/AFSQTestAsynchSave.cpp
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Thu, 17 Dec 2009 08:51:24 +0200
changeset 0 9b3e960ffc8a
permissions -rw-r--r--
Revision: 200949 Kit: 200951

/*
* Copyright (c) 2002-2007 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:  FSQ Test DLL
*
*/


#include "../inc/AFSQTestAsynchSave.h"
#include <f32file.h> // for opening / creating files
#include <bautils.h> // for deleting files

CAFSQTestAsynchSave::CAFSQTestAsynchSave()
    {
    RDebug::Print( _L("CAFSQTestAsynchSave::CAFSQTestAsynchSave in") );
    
    // Create a mutex for synchronization purpose
    iMutex.CreateLocal();
    
    RDebug::Print( _L("CAFSQTestAsynchSave::CAFSQTestAsynchSave out") );
    }

CAFSQTestAsynchSave::~CAFSQTestAsynchSave()
    {
    // Nothing to do
    }

void CAFSQTestAsynchSave::setUpL()
    {
    RDebug::Print( _L("CAFSQTestAsynchSave::setUpL in") );
    }

void CAFSQTestAsynchSave::tearDown()
    {
    RDebug::Print( _L("CAFSQTestAsynchSave::tearDown in") );
    }

void CAFSQTestAsynchSave::TestFileManNewLReturnsNotNullL()
    {
    // Group:   Asynch Save
    // 
    // ID:      CAE.FM.TESTFILEMANNEWLRETURNSNOTNULL.001
    // 
    // Action : Test that cfileman::newl returns a value.
    //      
    // Output : A handle to the requested object.   

    RDebug::Print( _L("CAFSQTestAsynchSave::TestFileManNewLReturnsNotNullL in") );

    currentTest = ECONSTRUCT001p1;
    wait = ETrue;

    TRAPD( err, 
        iFSQ = CAsynchFSQ::NewL();
        );
    
    RDebug::Print( _L("CAFSQTestAsynchSave::TestFileManNewLReturnsNotNullL isNotNull=%d notErr=%d"), (iFSQ!=NULL), !err);
    assertL( (iFSQ != NULL) && !err );
    delete iFSQ;
    iFSQ = NULL;
    RDebug::Print( _L("CAFSQTestAsynchSave::TestFileManNewLReturnsNotNullL out") );
    }

void CAFSQTestAsynchSave::TestDestructorL()
    {
    // Group:   Asynch Save
    // 
    // ID:      CAE.FM.TESTDESTRUCTOR.001
    // 
    // Action : Test that delete works
    //      
    // Output : KErrNone on all fronts.   
	
    RDebug::Print( _L("CAFSQTestAsynchSave::TestDestructorL in") );

    currentTest = EDESTRUCT001p1;
    wait = ETrue;

    TRAPD( err, 
        iFSQ = CAsynchFSQ::NewL();
        delete iFSQ;
        iFSQ = NULL;
        );
    
    RDebug::Print( _L("CAFSQTestAsynchSave::TestDestructorL notErr=%d"), !err );
    
    assertL( !err );
    
    RDebug::Print( _L("CAFSQTestAsynchSave::TestDestructorL out") );
    }
    
void CAFSQTestAsynchSave::TestSetPriorityL()
    {
    // Group:   Asynch Save
    // 
    // ID:      CAE.FM.TESTSETPRIORITY.001
    // 
    // Action : Test that setting the priority doesn't fail
    //      
    // Output : KErrNone on all fronts.   
	
    RDebug::Print( _L("CAFSQTestAsynchSave::TestSetPriorityL in") );

    currentTest = EPRIORITY001p1;
    wait = ETrue;

    TRAPD( err, 
        iFSQ = CAsynchFSQ::NewL();
        iFSQ->SetPriority( EPriorityMore );
        delete iFSQ;
        iFSQ = NULL;
        );
    
    RDebug::Print( _L("CAFSQTestAsynchSave::TestSetPriorityL notErr=%d"), !err );
    
    assertL( !err );
    
    RDebug::Print( _L("CAFSQTestAsynchSave::TestSetPriorityL out") );
    }   
    
void CAFSQTestAsynchSave::TestCancelL()
    {
    // Group:   Asynch Save
    // 
    // ID:      CAE.FM.TESTCANCEL.001
    // 
    // Action : Test that canceling will....
    //      
    // Output : An error code.   

    RDebug::Print( _L("CAFSQTestAsynchSave::TestCancelL in") );

    TInt error = KErrNone;
    currentTest = ECANCEL001p1;
    numSaved = 0;
    wait = ETrue;

    // Read the file to be used in testing.
    TFileName aFilename = KNibbles;
    RFs aFs;
    User::LeaveIfError(aFs.Connect());
    RFile file;
    TInt connectErr = file.Open(aFs, aFilename, EFileRead);
    TInt iSize;   
    file.Size(iSize);
    HBufC8* buf = HBufC8::NewL(iSize);
    TPtr8  myData = buf->Des();
    if ( !connectErr )
        {
        file.Read( myData );
        }
    file.Close();
    
    // Delete the file if it exists
    TFileName cancel001 = KNibblesCANCEL001;
    RFile deleter;
    TInt isDeleted = deleter.Open(aFs, cancel001, EFileRead);
    deleter.Close();

    if ( isDeleted == KErrNone )
        {
        // if no error, assume the file exists, so delete it
        RDebug::Print( _L("CAFSQTestAsynchSave::TestCancelL exists, deleting") );
        BaflUtils ba;
        ba.DeleteFile(aFs, cancel001);
        }
    aFs.Close();
    
    // Save    
    TRAPD( err, 
        iFSQ = CAsynchFSQ::NewL();        
        //add this as a callback
        iFSQ->SetCallback( this );
        error = iFSQ->SaveAndDestroy( *buf, cancel001 );
        buf = NULL; // transfer ownership 
        iFSQ->Cancel();
        );
    
    RDebug::Print( _L("CAFSQTestAsynchSave::TestCancelL isKErrNone=%d notErr=%d"), (error == KErrNone), !err );
   
    // do not wait for callback to assert, since we have canceled
    delayedBool = ( (error == KErrNone) && !err );
    assertL( delayedBool );
    
    RDebug::Print( _L("CAFSQTestAsynchSave::TestCancelL out") );
    }
    
void CAFSQTestAsynchSave::WaitForAsynchCompleteL()
    {
    RDebug::Print( _L("CAFSQTestAsynchSave::WaitForAsynchCompleteL in") );

    RDebug::Print( _L("CAFSQTestAsynchSave::WaitForAsynchCompleteL starting AS now") );
    CActiveScheduler::Start();
        
    RDebug::Print( _L("CAFSQTestAsynchSave::WaitForAsynchCompleteL closing") );
    //close up and assert
    User::After( TTimeIntervalMicroSeconds32(1000000) );
    if( iFSQ )
        {
        delete iFSQ;
        iFSQ = NULL; 
        }
        
    RDebug::Print( _L("CAFSQTestAsynchSave::WaitForAsynchCompleteL we are asserting the following: %d"), assertion );
        
    assertL( assertion );
       
    RDebug::Print( _L("CAFSQTestAsynchSave::WaitForAsynchCompleteL out") );
    }

void CAFSQTestAsynchSave::MAsynchFSQEvent( TInt aError )
    {
    RDebug::Print( _L("CAFSQTestAsynchSave::MAFSQEvent in, waiting"));
    User::After( TTimeIntervalMicroSeconds32(2000000) );
    RDebug::Print( _L("CAFSQTestAsynchSave::MAFSQEvent in, done waiting"));

    numSaved++;
    RDebug::Print( _L("CAFSQTestAsynchSave::MAFSQEvent in, numToSave=%d"),numToSave);

    switch( currentTest )
        {
        case EADD002p1:
            RDebug::Print( _L("CAFSQTestAsynchSave::MAFSQEvent(2) delayedBool=%d !aError=%d"), delayedBool, !aError );
            CActiveScheduler::Stop();
            RDebug::Print( _L("CAFSQTestAsynchSave::MAFSQEvent(2)"));
    
            assertion = ( delayedBool && !aError );
            break;
            
        case EADD003p1:
            {
            RDebug::Print( _L("CAFSQTestAsynchSave::MAFSQEvent(3)"));
            CActiveScheduler::Stop();
            RDebug::Print( _L("CAFSQTestAsynchSave::MAFSQEvent(3)"));
            
            //check that the file exists
            RFs fsSession;
            TInt connectErr = fsSession.Connect();
            RDebug::Print( _L("CAFSQTestAsynchSave::MAFSQEvent(3) connectErr=%d"), connectErr );
            RFile file;
            TFileName add003 = KNibblesADD003;
            TInt fileErr = file.Open(fsSession, add003, EFileRead);
            file.Close();
            fsSession.Close();

            RDebug::Print( _L("CAFSQTestAsynchSave::MAFSQEvent(3) aErrorIsKErrNone=%d !fileErr=%d"), (aError == KErrNone), !fileErr );
            assertion = ( (aError == KErrNone) && !fileErr);
            break;        
            }           
        case EADD004p1:
            {
            if( numToSave == numSaved )
                {
                RDebug::Print( _L("CAFSQTestAsynchSave::MAFSQEvent(4)"));
                CActiveScheduler::Stop();
                RDebug::Print( _L("CAFSQTestAsynchSave::MAFSQEvent(4)"));
                
                //check that the file exists
                RFs fsSession;
                TInt connectErr = fsSession.Connect();
                RDebug::Print( _L("CAFSQTestAsynchSave::MAFSQEvent(4) connectErr=%d"), connectErr );
                RFile file1;
                RFile file2;
                TFileName add004A = KNibblesADD004A;
                TFileName add004B = KNibblesADD004B;
                TInt fileErr1 = file1.Open(fsSession, add004A, EFileRead);
                TInt fileErr2 = file2.Open(fsSession, add004B, EFileRead);
                file1.Close();
                file2.Close();
                fsSession.Close();

                RDebug::Print( _L("CAFSQTestAsynchSave::MAFSQEvent(4) delayedBool=%d !aError=%d !fileErr1=%d !fileErr2=%d"), delayedBool, !aError, !fileErr1, !fileErr2 );
                assertion = ( delayedBool && !aError && !fileErr1 && !fileErr2);
                }
            break;
            }
        case EADD005p1:
            {        
            if( numToSave == numSaved )
                {
                RDebug::Print( _L("CAFSQTestAsynchSave::MAFSQEvent(5)"));
                CActiveScheduler::Stop();
                RDebug::Print( _L("CAFSQTestAsynchSave::MAFSQEvent(5)"));
                
                //check that the file exists
                RFs fsSession;
                TInt connectErr = fsSession.Connect();
                RDebug::Print( _L("CAFSQTestAsynchSave::MAFSQEvent(5) connectErr=%d"), connectErr );
                RFile file1;
                RFile file2;
                TFileName add005A = KNibblesADD005A;
                TFileName add005B = KNibblesADD005B;
                TInt fileErr1 = file1.Open(fsSession, add005A, EFileRead);
                TInt fileErr2 = file2.Open(fsSession, add005B, EFileRead);
                file1.Close();
                file2.Close();
                fsSession.Close();
                    
                RDebug::Print( _L("CAFSQTestAsynchSave::MAFSQEvent(5) isaErrorKErrNone=%d"), (aError==KErrNone) );
                assertion = ( aError == KErrNone );
                }
            break;
            }        
        case EADD007p1:
            {        
            RDebug::Print( _L("CAFSQTestAsynchSave::MAFSQEvent(EADD007p1) delayedBool=%d !aError=%d"), delayedBool, !aError );
            CActiveScheduler::Stop();
            RDebug::Print( _L("CAFSQTestAsynchSave::MAFSQEvent(EADD007p1)"));
    
            assertion = ( delayedBool && !aError );
            break;
            }                
        case EDEL003p1:
            {
            if( numToSave == numSaved )
                {
                RDebug::Print( _L("CAFSQTestAsynchSave::MAFSQEvent(8)"));
                CActiveScheduler::Stop();
                RDebug::Print( _L("CAFSQTestAsynchSave::MAFSQEvent(8)"));
                
                //check that file was deleted
                RFs fsSession2;
                TInt connectErr = fsSession2.Connect();
                RDebug::Print( _L("CAFSQTestAsynchSave::MAFSQEvent(8) connectErr=%d"), connectErr );
                RFile file3;
                TFileName del003A = KNibblesDEL003A;
                TInt fileError = file3.Open(fsSession2, del003A, EFileRead);
                file3.Close();
                fsSession2.Close();
    
                RDebug::Print( _L("CAFSQTestAsynchSave::MAFSQEvent(8) delayedBool=%d !aError=%d fileError=%d"), delayedBool, !aError, !(!fileError) );
                assertion = ( delayedBool && !aError && !(!fileError) );
                }
            break;
            }    
        case EDEL004p1:
            {
            if( numToSave == numSaved )
                {
                RDebug::Print( _L("CAFSQTestAsynchSave::MAFSQEvent(9)"));
                CActiveScheduler::Stop();
                RDebug::Print( _L("CAFSQTestAsynchSave::MAFSQEvent(9)"));
                
                RDebug::Print( _L("CAFSQTestAsynchSave::MAFSQEvent(9) delayedBool=%d !aError=%d"), delayedBool, !aError );
                assertion = ( delayedBool && !aError );
                }
            break;
            }    
        case EDEL005p1:
            {
            if( numToSave == numSaved )
                {
                RDebug::Print( _L("CAFSQTestAsynchSave::MAFSQEvent(10)"));
                CActiveScheduler::Stop();
                RDebug::Print( _L("CAFSQTestAsynchSave::MAFSQEvent(10)"));
                
                //check that file was deleted
                RFs fsSession2;
                TInt connectErr = fsSession2.Connect();
                RDebug::Print( _L("CAFSQTestAsynchSave::MAFSQEvent(10) connectErr=%d"), connectErr );
                RFile file3;
                TFileName del005A = KNibblesDEL005A;
                TInt fileError = file3.Open(fsSession2, del005A, EFileRead);
                file3.Close();
            
                //check that file was saved
                RFile file4;
                TFileName del005B = KNibblesDEL005B;
                TInt fileError2 = file4.Open(fsSession2, del005B, EFileRead);
                file4.Close();
                
                //check that file was saved
                RFile file5;
                TFileName del005C = KNibblesDEL005C;
                TInt fileError3 = file5.Open(fsSession2, del005C, EFileRead);
                file5.Close();
                fsSession2.Close();
            
                RDebug::Print( _L("CAFSQTestAsynchSave::MAFSQEvent(10) delayedBool=%d !aError=%d fileError=%d !fileError2=%d !fileError3=%d"), delayedBool, !aError, !(!fileError), !fileError2, !fileError3 );
                assertion = ( delayedBool && !aError && !(!fileError) && !fileError2 && !fileError3 );
                }
            break;
            }    
        case EDEL006p1:
            {
            //check that file was saved
            RFs fsSession2;
            TInt connectErr = fsSession2.Connect();
            RDebug::Print( _L("CAFSQTestAsynchSave::MAFSQEvent(11) connectErr=%d"), connectErr );
            RFile file5;
            TFileName del006A = KNibblesDEL006A;
            TInt fileError3 = file5.Open(fsSession2, del006A, EFileRead);
            file5.Close();
            
            if( iFSQ->ActionsLeft() == 0 )
                {
                //we should be done with the rest...
                
                RDebug::Print( _L("CAFSQTestAsynchSave::MAFSQEvent(11)"));
                CActiveScheduler::Stop();
                RDebug::Print( _L("CAFSQTestAsynchSave::MAFSQEvent(11)"));
                
                //check that file was deleted
                RFile file3;
                TFileName del006C = KNibblesDEL006C;
                TInt fileError = file3.Open(fsSession2, del006C, EFileRead);
                file3.Close();
                
                //check that file was saved
                RFile file4;
                TFileName del006B = KNibblesDEL006B;
                TInt fileError2 = file4.Open(fsSession2, del006B, EFileRead);
                file4.Close();
                
            
                RDebug::Print( _L("CAFSQTestAsynchSave::MAFSQEvent(11) delayedBool=%d !aError=%d fileError=%d fileError2=%d !fileError3=%d"), delayedBool, !aError, !(!fileError), !(!fileError2), !fileError3 );
                assertion = ( delayedBool && !aError && !(!fileError) && !(!fileError2) && !fileError3 );
                }
                
            fsSession2.Close();
            break;
            }    
        case EREN003p1:
            {
            if( numToSave == numSaved )
                {
                RDebug::Print( _L("CAFSQTestAsynchSave::MAFSQEvent(15)"));
                CActiveScheduler::Stop();
                RDebug::Print( _L("CAFSQTestAsynchSave::MAFSQEvent(15)"));
                
                //check that file was renamed
                RFs fsSession2;
                TInt connectErr = fsSession2.Connect();
                RDebug::Print( _L("CAFSQTestAsynchSave::MAFSQEvent(15) connectErr=%d"), connectErr );
                RFile file3;
                TFileName ren003A2 = KNibblesREN003A2;
                TInt fileError = file3.Open(fsSession2, ren003A2, EFileRead);
                file3.Close();
                
                //check that file was saved
                RFile file4;
                TFileName ren003B = KNibblesREN003B;
                TInt fileError2 = file4.Open(fsSession2, ren003B, EFileRead);
                file4.Close();
                
                //check that file was renamed (so this one wont exist anymore)
                RFile file5;
                TFileName ren003A = KNibblesREN003A;
                TInt fileError3 = file5.Open(fsSession2, ren003A, EFileRead);
                file5.Close();
                fsSession2.Close();
            
                RDebug::Print( _L("CAFSQTestAsynchSave::MAFSQEvent(15) delayedBool=%d !aError=%d !fileError=%d !fileError2=%d !!fileError3=%d"), delayedBool, !aError, !fileError, !fileError2, !(!fileError3) );
                assertion = ( delayedBool && !aError && !fileError && !fileError2 && !(!fileError3) );
                }
            break;
            }    
        case EREN004p1:
            {
            if( numToSave == numSaved )
                {
                RDebug::Print( _L("CAFSQTestAsynchSave::MAFSQEvent(16)"));
                CActiveScheduler::Stop();
                RDebug::Print( _L("CAFSQTestAsynchSave::MAFSQEvent(16)"));
                
                RDebug::Print( _L("CAFSQTestAsynchSave::MAFSQEvent(16) delayedBool=%d !aError=%d"), delayedBool, !aError );
                assertion = ( delayedBool && !aError );
                }
            break;
            }    
        case EREN005p1:
            {
            if( numToSave == numSaved )
                {
                RDebug::Print( _L("CAFSQTestAsynchSave::MAFSQEvent(17)"));
                CActiveScheduler::Stop();
                RDebug::Print( _L("CAFSQTestAsynchSave::MAFSQEvent(17)"));
                
                //check that file was renamed
                RFs fsSession2;
                TInt connectErr = fsSession2.Connect();
                RDebug::Print( _L("CAFSQTestAsynchSave::MAFSQEvent(17) connectErr=%d"), connectErr );
                RFile file3;
                TFileName ren005A2 = KNibblesREN005A2;
                TInt fileError = file3.Open(fsSession2, ren005A2, EFileRead);
                file3.Close();
                
                //check that file was saved
                RFile file4;
                TFileName ren005B = KNibblesREN005B;
                TInt fileError2 = file4.Open(fsSession2, ren005B, EFileRead);
                file4.Close();
                
                //check that file was renamed (so this one wont exist anymore)
                RFile file5;
                TFileName ren005A = KNibblesREN005A;
                TInt fileError3 = file5.Open(fsSession2, ren005A, EFileRead);
                file5.Close();
                
                //check that file was saved
                RFile file6;
                TFileName ren005C = KNibblesREN005C;
                TInt fileError4 = file6.Open(fsSession2, ren005C, EFileRead);
                file6.Close();
                fsSession2.Close();
            
                RDebug::Print( _L("CAFSQTestAsynchSave::MAFSQEvent(17) delayedBool=%d !aError=%d !fileError=%d !fileError2=%d !!fileError3=%d !fileError4=%d"), delayedBool, !aError, !fileError, !fileError2, !(!fileError3), !fileError4 );
                assertion = ( delayedBool && !aError && !fileError && !fileError2 && !(!fileError3) && !fileError4 );
                }
            break;
            }    
        case EREN006p1:
            {
            if( numToSave == numSaved )
                {
                RDebug::Print( _L("CAFSQTestAsynchSave::MAFSQEvent(18)"));
                CActiveScheduler::Stop();
                RDebug::Print( _L("CAFSQTestAsynchSave::MAFSQEvent(18)"));
                
                //check that file was renamed
                RFs fsSession2;
                TInt connectErr = fsSession2.Connect();
                RDebug::Print( _L("CAFSQTestAsynchSave::MAFSQEvent(18) connectErr=%d"), connectErr );
                RFile file3;
                TFileName ren006C2 = KNibblesREN006C2;
                TInt fileError = file3.Open(fsSession2, ren006C2, EFileRead);
                file3.Close();
                
                //check that file was saved
                RFile file4;
                TFileName ren006B2 = KNibblesREN006B2;
                TInt fileError2 = file4.Open(fsSession2, ren006B2, EFileRead);
                file4.Close();
                
                //check that file was renamed (so this one wont exist anymore)
                RFile file5;
                TFileName ren006B = KNibblesREN006B;
                TInt fileError3 = file5.Open(fsSession2, ren006B, EFileRead);
                file5.Close();
                
                //check that file was saved
                RFile file6;
                TFileName ren006A = KNibblesREN006A;
                TInt fileError4 = file6.Open(fsSession2, ren006A, EFileRead);
                file6.Close();
                
                //check that file was renamed (so this one wont exist anymore)
                RFile file7;
                TFileName ren006C = KNibblesREN006C;
                TInt fileError5 = file7.Open(fsSession2, ren006C, EFileRead);
                file7.Close();
                
                fsSession2.Close();
            
                RDebug::Print( _L("CAFSQTestAsynchSave::MAFSQEvent(17) delayedBool=%d !aError=%d !fileError=%d !fileError2=%d !!fileError3=%d !fileError4=%d !!fileError5=%d"), delayedBool, !aError, !fileError, !fileError2, !(!fileError3), !fileError4, !(!fileError5) );
                assertion = ( delayedBool && !aError && !fileError && !fileError2 && !(!fileError3) && !fileError4 && !(!fileError5) );
                }
            break;
            }
        case EADD006p1:
            {
            RDebug::Print( _L("CAFSQTestAsynchSave::MAFSQEvent(19)"));
            CActiveScheduler::Stop();
            RDebug::Print( _L("CAFSQTestAsynchSave::MAFSQEvent(19)"));
            assertion = ( delayedBool && ( aError == KErrAlreadyExists ));
            break;
            }
        case ECANCEL001p1:
            {
            RDebug::Print( _L("CAFSQTestAsynchSave::MAFSQEvent(ECANCEL001p1) delayedBool=%d !aError=%d"), delayedBool, !aError );
            // do nothing, we are waiting for cancel
            RDebug::Print( _L("CAFSQTestAsynchSave::MAFSQEvent(ECANCEL001p1)"));
            break;
            }
        default:
            break;
        }

    RDebug::Print( _L("CAFSQTestAsynchSave::MAFSQEvent out") );
    }

MTest* CAFSQTestAsynchSave::suiteL ()
    {
    // 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.

    RDebug::Print( _L("CAFSQTestAsynchSave::suiteL in") );
    
    // Always use NewL (Do not use NewLC here)
    CTestSuite *suite = CTestSuite::NewL( _L8("CAFSQTestAsynchSave") );

    suite->addTestL( CTestCaller<CAFSQTestAsynchSave>::NewL( _L8("CAE.FM.TESTFILEMANNEWLRETURNSNOTNULL.001"), &TestFileManNewLReturnsNotNullL ) );
    
    suite->addTestL( CTestCaller<CAFSQTestAsynchSave>::NewL( _L8("CAE.FM.TESTDESTRUCTOR.001"), &TestDestructorL ) );
    
    suite->addTestL( CTestCaller<CAFSQTestAsynchSave>::NewL( _L8("CAE.FM.TESTSETPRIORITY.001"), &TestSetPriorityL ) );
    
    suite->addTestL( CTestCaller<CAFSQTestAsynchSave>::NewL( _L8("CAE.FM.TESTCANCEL.001"), &TestCancelL ) );
    
    suite->addTestL( CTestCaller<CAFSQTestAsynchSave>::NewL( _L8("CAE.FM.TESTADDOBJECT.001"), &TestAddEmptyObjectToQueueL ) );
    suite->addTestL( CTestCaller<CAFSQTestAsynchSave>::NewL( _L8("CAE.FM.TESTADDOBJECT.002"), &TestAddObjectToEmptyQueueL ) );
    suite->addTestL( CTestCaller<CAFSQTestAsynchSave>::NewL( _L8("CAE.FM.TESTADDOBJECT.003"), &TestAddObjectToEmptyQueueWillSaveL ) );
    suite->addTestL( CTestCaller<CAFSQTestAsynchSave>::NewL( _L8("CAE.FM.TESTADDOBJECT.004"), &TestAddObjectToNonEmptyQueueL ) );
    suite->addTestL( CTestCaller<CAFSQTestAsynchSave>::NewL( _L8("CAE.FM.TESTADDOBJECT.005"), &TestAddObjectToNonEmptyQueueWillSaveL ) );
    suite->addTestL( CTestCaller<CAFSQTestAsynchSave>::NewL( _L8("CAE.FM.TESTADDOBJECT.006"), &TestAddObjectThatExistsAlreadyL ) );
    suite->addTestL( CTestCaller<CAFSQTestAsynchSave>::NewL( _L8("CAE.FM.TESTADDOBJECT.007"), &TestAddObjectToEmptyQueueLManualStart ) );
    
    suite->addTestL( CTestCaller<CAFSQTestAsynchSave>::NewL( _L8("CAE.FM.TESTDELETEOBJECT.001"), &TestDeleteFromEmptyNotExistL ) );
    suite->addTestL( CTestCaller<CAFSQTestAsynchSave>::NewL( _L8("CAE.FM.TESTDELETEOBJECT.002"), &TestDeleteFromEmptyExistsL ) );
    suite->addTestL( CTestCaller<CAFSQTestAsynchSave>::NewL( _L8("CAE.FM.TESTDELETEOBJECT.003"), &TestDeleteNonEmptyExistsButNotInQueueL ) );
    suite->addTestL( CTestCaller<CAFSQTestAsynchSave>::NewL( _L8("CAE.FM.TESTDELETEOBJECT.004"), &TestDeleteNonEmptyNotExistAndNotInQueueL ) );
    suite->addTestL( CTestCaller<CAFSQTestAsynchSave>::NewL( _L8("CAE.FM.TESTDELETEOBJECT.005"), &TestDeleteInQueueNotActiveL ) );
    suite->addTestL( CTestCaller<CAFSQTestAsynchSave>::NewL( _L8("CAE.FM.TESTDELETEOBJECT.006"), &TestDeleteInQueueActiveL ) );
    
    suite->addTestL( CTestCaller<CAFSQTestAsynchSave>::NewL( _L8("CAE.FM.TESTRENAMEOBJECT.001"), &TestRenameFromEmptyNotExistL ) );
    suite->addTestL( CTestCaller<CAFSQTestAsynchSave>::NewL( _L8("CAE.FM.TESTRENAMEOBJECT.002"), &TestRenameFromEmptyExistsL ) );
    suite->addTestL( CTestCaller<CAFSQTestAsynchSave>::NewL( _L8("CAE.FM.TESTRENAMEOBJECT.003"), &TestRenameNonEmptyExistsButNotInQueueL ) );
    suite->addTestL( CTestCaller<CAFSQTestAsynchSave>::NewL( _L8("CAE.FM.TESTRENAMEOBJECT.004"), &TestRenameNonEmptyNotExistAndNotInQueueL ) );
    suite->addTestL( CTestCaller<CAFSQTestAsynchSave>::NewL( _L8("CAE.FM.TESTRENAMEOBJECT.005"), &TestRenameInQueueNotActiveL ) );
    suite->addTestL( CTestCaller<CAFSQTestAsynchSave>::NewL( _L8("CAE.FM.TESTRENAMEOBJECT.006"), &TestRenameInQueueActiveL ) );

    RDebug::Print( _L("CAFSQTestAsynchSave::suiteL returning") );
    return suite;
    }