diff -r 18fa9327a158 -r e3cdd00b5ae3 camerasrv_plat/asynchronous_file_saving_queue_api/tsrc/src/AFSQTestDelete.cpp --- a/camerasrv_plat/asynchronous_file_saving_queue_api/tsrc/src/AFSQTestDelete.cpp Thu Aug 19 10:05:54 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,692 +0,0 @@ -/* -* 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 // for opening / creating files -#include // for deleting files - -void CAFSQTestAsynchSave::TestDeleteFromEmptyNotExistL() - { - // Group: Asynch Save - // - // ID: CAE.FM.TESTDELETEOBJECT.001 - // - // Action : Test that cfileman::delete returns error if no such file. - // - // Output : A KErrNotFound. - - RDebug::Print( _L("CAFSQTestAsynchSave::TestDeleteFromEmptyNotExistL in") ); - - currentTest = EDEL001p1; - numSaved = 0; - wait = ETrue; - TInt error = KErrNone; - - // Delete the file if it exists - RFs aFs; - User::LeaveIfError(aFs.Connect()); - TFileName del001 = KNibblesDEL001; - RFile deleter; - TInt isDeleted = deleter.Open(aFs, del001, EFileRead); - deleter.Close(); - if ( isDeleted == KErrNone ) - { - // if no error, assume the file exists, so delete it - RDebug::Print( _L("CAFSQTestAsynchSave::TestDeleteFromEmptyNotExistL exists, deleting") ); - BaflUtils ba; - ba.DeleteFile(aFs, del001); - } - aFs.Close(); - - // Try delete - CAsynchFSQ* aFSQ = NULL; - TRAPD( err, - aFSQ = CAsynchFSQ::NewL(); - error = aFSQ->Delete( del001 ); - ); - TRAP_IGNORE( - delete aFSQ; - aFSQ = NULL; - ); - - RDebug::Print( _L("CAFSQTestAsynchSave::TestDeleteFromEmptyNotExistL errorIsKErrNotFound=%d notErr=%d"), (error == KErrNotFound), !err ); - - assertL( (error == KErrNotFound) && !err ); - - RDebug::Print( _L("CAFSQTestAsynchSave::TestDeleteFromEmptyNotExistL out") ); - } - -void CAFSQTestAsynchSave::TestDeleteFromEmptyExistsL() - { - // Group: Asynch Save - // - // ID: CAE.FM.TESTDELETEOBJECT.002 - // - // Action : Test that delete works if file exists and queue empty - // - // Output : A KErrNone. - - RDebug::Print( _L("CAFSQTestAsynchSave::TestDeleteFromEmptyExistsL in") ); - - currentTest = EDEL002p1; - numSaved = 0; - wait = ETrue; - TInt error = KErrNone; - - // 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 del002 = KNibblesDEL002; - RFile deleter; - TInt isDeleted = deleter.Open(aFs, del002, EFileRead); - deleter.Close(); - if ( isDeleted == KErrNone ) - { - // if no error, assume the file exists, so delete it - RDebug::Print( _L("CAFSQTestAsynchSave::TestDeleteFromEmptyExistsL exists, deleting") ); - BaflUtils ba; - ba.DeleteFile(aFs, del002); - } - aFs.Close(); - - // Write the file to be used in testing - TInt err2 = KErrNone; - RFs fsSession; - err2 = fsSession.Connect(); - RFile myFile; - if ( !err2 ) - { - err2 = myFile.Create( fsSession, del002, - EFileStream | EFileShareExclusive | EFileWrite ); - } - if( !err2 ) - { - err2 = myFile.Write( myData ); - } - if( !err2 ) - { - err2 = myFile.Flush(); - } - myFile.Close(); - fsSession.Close(); - delete buf; - buf = NULL; - - //delete - CAsynchFSQ* aFSQ = NULL; - TRAPD( err, - aFSQ = CAsynchFSQ::NewL(); - error = aFSQ->Delete( del002 ); - ); - TRAP_IGNORE( - delete aFSQ; - aFSQ = NULL; - ); - - //check that file was deleted - RFs fsSession2; - TInt fsConnectErr = fsSession2.Connect(); - RDebug::Print( _L("CAFSQTestAsynchSave::TestDeleteFromEmptyExistsL fsConnectErr=%d"), fsConnectErr ); - RFile file2; - TInt fileError = file2.Open(fsSession2, del002, EFileRead); - file2.Close(); - fsSession2.Close(); - - //assert - RDebug::Print( _L("CAFSQTestAsynchSave::TestDeleteFromEmptyExistsL errorIsKErrNone=%d notErr=%d isFileError=%d"), (error == KErrNone), !err, !(!(fileError )) ); - - assertL( (error == KErrNone) && !err && (fileError!=KErrNone) ); - - RDebug::Print( _L("CAFSQTestAsynchSave::TestDeleteFromEmptyExistsL out") ); - } - -void CAFSQTestAsynchSave::TestDeleteNonEmptyExistsButNotInQueueL() - { - // Group: Asynch Save - // - // ID: CAE.FM.TESTDELETEOBJECT.003 - // - // Action : Test that delete will work if the queue is not empty but - // the requested file is not in the queue (but it also exists) - // - // Output : A KErrNone. - - RDebug::Print( _L("CAFSQTestAsynchSave::TestDeleteNonEmptyExistsButNotInQueueL in") ); - - currentTest = EDEL003p1; - numSaved = 0; - numToSave = 2; - wait = ETrue; - TInt error = KErrNone; - - // 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(); - - // Read the file to be used in testing. - TFileName aFilename2 = KNibbles2; - RFile file2; - TInt connectErr2 = file2.Open(aFs, aFilename2, EFileRead); - file2.Size(iSize); - HBufC8* buf2 = HBufC8::NewL(iSize); - TPtr8 myData2 = buf2->Des(); - if ( !connectErr2 ) - { - file2.Read( myData2 ); - } - file2.Close(); - - // Read the file to be used in testing. - TFileName aFilename3 = KNibbles3; - RFile file3; - TInt connectErr3 = file3.Open(aFs, aFilename3, EFileRead); - file3.Size(iSize); - HBufC8* buf3 = HBufC8::NewL(iSize); - TPtr8 myData3 = buf3->Des(); - if ( !connectErr3 ) - { - file3.Read( myData3 ); - } - file3.Close(); - - // Delete the file if it exists - TFileName del003A = KNibblesDEL003A; - RFile deleter; - TInt isDeleted = deleter.Open(aFs, del003A, EFileRead); - deleter.Close(); - if ( isDeleted == KErrNone ) - { - // if no error, assume the file exists, so delete it - RDebug::Print( _L("CAFSQTestAsynchSave::TestDeleteNonEmptyExistsButNotInQueueL 1st exists, deleting") ); - BaflUtils ba; - ba.DeleteFile(aFs, del003A); - } - - // Delete the file if it exists - TFileName del003B = KNibblesDEL003B; - RFile deleter2; - TInt isDeleted2 = deleter2.Open(aFs, del003B, EFileRead); - deleter2.Close(); - if ( isDeleted2 == KErrNone ) - { - // if no error, assume the file exists, so delete it - RDebug::Print( _L("CAFSQTestAsynchSave::TestDeleteNonEmptyExistsButNotInQueueL 2nd exists, deleting") ); - BaflUtils ba; - ba.DeleteFile(aFs, del003B); - } - - // Delete the file if it exists - TFileName del003C = KNibblesDEL003C; - RFile deleter3; - TInt isDeleted3 = deleter3.Open(aFs, del003C, EFileRead); - deleter3.Close(); - if ( isDeleted3 == KErrNone ) - { - // if no error, assume the file exists, so delete it - RDebug::Print( _L("CAFSQTestAsynchSave::TestDeleteNonEmptyExistsButNotInQueueL 3rd exists, deleting") ); - BaflUtils ba; - ba.DeleteFile(aFs, del003C); - } - - // Write the file to be used in testing - TInt err2 = KErrNone; - RFs fsSession; - err2 = fsSession.Connect(); - RFile myFile; - if ( !err2 ) - { - err2 = myFile.Create( fsSession, del003A, - EFileStream | EFileShareExclusive | EFileWrite ); - } - if( !err2 ) - { - err2 = myFile.Write( myData ); - } - if( !err2 ) - { - err2 = myFile.Flush(); - } - myFile.Close(); - fsSession.Close(); - aFs.Close(); - delete buf; - buf = NULL; - - //delete - TRAPD( err, - iFSQ = CAsynchFSQ::NewL(); - iFSQ->SetCallback( this ); - error = iFSQ->SaveAndDestroy( *buf2, del003B ); - buf2 = NULL; - error = iFSQ->SaveAndDestroy( *buf3, del003C ); - buf3 = NULL; - error = iFSQ->Delete( del003A ); - ); - - //delayed assert on callback - RDebug::Print( _L("CAFSQTestAsynchSave::TestDeleteNonEmptyExistsButNotInQueueL errorIsKErrNone=%d notErr=%d"), (error == KErrNone), !err ); - - delayedBool = ( (error == KErrNone) && !err ); - WaitForAsynchCompleteL(); - - RDebug::Print( _L("CAFSQTestAsynchSave::TestDeleteNonEmptyExistsButNotInQueueL out") ); - } - -void CAFSQTestAsynchSave::TestDeleteNonEmptyNotExistAndNotInQueueL() - { - // Group: Asynch Save - // - // ID: CAE.FM.TESTDELETEOBJECT.004 - // - // Action : Test that delete will return error if the queue is not empty but - // the requested file is not in the queue (but it doesnt exist) - // - // Output : A KErrNotFound. - - RDebug::Print( _L("CAFSQTestAsynchSave::TestDeleteNonEmptyNotExistAndNotInQueueL in") ); - - currentTest = EDEL004p1; - numSaved = 0; - numToSave = 2; - wait = ETrue; - TInt error = KErrNone; - - // 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(); - - // Read the file to be used in testing. - TFileName aFilename2 = KNibbles2; - RFile file2; - TInt connectErr2 = file2.Open(aFs, aFilename2,EFileRead); - file2.Size(iSize); - HBufC8* buf2 = HBufC8::NewL(iSize); - TPtr8 myData2 = buf2->Des(); - if ( !connectErr2 ) - { - file2.Read( myData2 ); - } - file2.Close(); - - // Read the file to be used in testing. - TFileName aFilename3 = KNibbles3; - RFile file3; - TInt connectErr3 = file3.Open(aFs, aFilename3,EFileRead); - file3.Size(iSize); - HBufC8* buf3 = HBufC8::NewL(iSize); - TPtr8 myData3 = buf3->Des(); - if ( !connectErr3 ) - { - file3.Read( myData3 ); - } - file3.Close(); - - // Delete the file if it exists - TFileName del004A = KNibblesDEL004A; - RFile deleter; - TInt isDeleted = deleter.Open(aFs, del004A, EFileRead); - deleter.Close(); - if ( isDeleted == KErrNone ) - { - // if no error, assume the file exists, so delete it - RDebug::Print( _L("CAFSQTestAsynchSave::TestDeleteNonEmptyNotExistAndNotInQueueL 1st exists, deleting") ); - BaflUtils ba; - ba.DeleteFile(aFs, del004A); - } - - // Delete the file if it exists - TFileName del004B = KNibblesDEL004B; - RFile deleter2; - TInt isDeleted2 = deleter2.Open(aFs, del004B, EFileRead); - deleter2.Close(); - if ( isDeleted2 == KErrNone ) - { - // if no error, assume the file exists, so delete it - RDebug::Print( _L("CAFSQTestAsynchSave::TestDeleteNonEmptyNotExistAndNotInQueueL 2nd exists, deleting") ); - BaflUtils ba; - ba.DeleteFile(aFs, del004B); - } - - // Delete the file if it exists - TFileName del004C = KNibblesDEL004C; - RFile deleter3; - TInt isDeleted3 = deleter3.Open(aFs, del004C, EFileRead); - deleter3.Close(); - if ( isDeleted3 == KErrNone ) - { - // if no error, assume the file exists, so delete it - RDebug::Print( _L("CAFSQTestAsynchSave::TestDeleteNonEmptyNotExistAndNotInQueueL 3rd exists, deleting") ); - BaflUtils ba; - ba.DeleteFile(aFs, del004C); - } - - aFs.Close(); - delete buf; - buf = NULL; - - //delete - TRAPD( err, - iFSQ = CAsynchFSQ::NewL(); - iFSQ->SetCallback( this ); - error = iFSQ->SaveAndDestroy( *buf2, del004B ); - buf2 = NULL; - error = iFSQ->SaveAndDestroy( *buf3, del004C ); - buf3 = NULL; - error = iFSQ->Delete( del004A ); - ); - - //delayed assert on callback - RDebug::Print( _L("CAFSQTestAsynchSave::TestDeleteNonEmptyNotExistAndNotInQueueL errorIsKErrNotFound=%d notErr=%d"), (error == KErrNotFound), !err ); - - delayedBool = ( (error == KErrNotFound) && !err ); - WaitForAsynchCompleteL(); - - RDebug::Print( _L("CAFSQTestAsynchSave::TestDeleteNonEmptyNotExistAndNotInQueueL out") ); - } - -void CAFSQTestAsynchSave::TestDeleteInQueueNotActiveL() - { - // Group: Asynch Save - // - // ID: CAE.FM.TESTDELETEOBJECT.005 - // - // Action : Test that delete will work ok if the queue is not empty and - // the file is in the queue. Should also check filesystem for existence. - // This case checks that the file NOT ACTIVELY being saved gets deleted. - // - // Output : A KErrNone. - - RDebug::Print( _L("CAFSQTestAsynchSave::TestDeleteInQueueNotActiveL in") ); - - currentTest = EDEL005p1; - numSaved = 0; - numToSave = 2; - wait = ETrue; - TInt error = KErrNone; - - // 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(); - - // Read the file to be used in testing. - TFileName aFilename2 = KNibbles2; - RFile file2; - TInt connectErr2 = file2.Open(aFs, aFilename2,EFileRead); - file2.Size(iSize); - HBufC8* buf2 = HBufC8::NewL(iSize); - TPtr8 myData2 = buf2->Des(); - if ( !connectErr2 ) - { - file2.Read( myData2 ); - } - file2.Close(); - - // Read the file to be used in testing. - TFileName aFilename3 = KNibbles3; - RFile file3; - TInt connectErr3 = file3.Open(aFs, aFilename3,EFileRead); - file3.Size(iSize); - HBufC8* buf3 = HBufC8::NewL(iSize); - TPtr8 myData3 = buf3->Des(); - if ( !connectErr3 ) - { - file3.Read( myData3 ); - } - file3.Close(); - - // Delete the file if it exists - TFileName del005A = KNibblesDEL005A; - RFile deleter; - TInt isDeleted = deleter.Open(aFs, del005A, EFileRead); - deleter.Close(); - if ( isDeleted == KErrNone ) - { - // if no error, assume the file exists, so delete it - RDebug::Print( _L("CAFSQTestAsynchSave::TestDeleteInQueueNotActiveL 1st exists, deleting") ); - BaflUtils ba; - ba.DeleteFile(aFs, del005A); - } - - // Delete the file if it exists - TFileName del005B = KNibblesDEL005B; - RFile deleter2; - TInt isDeleted2 = deleter2.Open(aFs, del005B, EFileRead); - deleter2.Close(); - if ( isDeleted2 == KErrNone ) - { - // if no error, assume the file exists, so delete it - RDebug::Print( _L("CAFSQTestAsynchSave::TestDeleteNonEmptyNotExistAndNotInQueueL 2nd exists, deleting") ); - BaflUtils ba; - ba.DeleteFile(aFs, del005B); - } - - // Delete the file if it exists - TFileName del005C = KNibblesDEL005C; - RFile deleter3; - TInt isDeleted3 = deleter3.Open(aFs, del005C, EFileRead); - deleter3.Close(); - if ( isDeleted3 == KErrNone ) - { - // if no error, assume the file exists, so delete it - RDebug::Print( _L("CAFSQTestAsynchSave::TestDeleteInQueueNotActiveL 3rd exists, deleting") ); - BaflUtils ba; - ba.DeleteFile(aFs, del005C); - } - - aFs.Close(); - - //delete - TRAPD( err, - iFSQ = CAsynchFSQ::NewL(); - iFSQ->SetCallback( this ); - error = iFSQ->SaveAndDestroy( *buf2, del005B ); - buf2 = NULL; - error = iFSQ->SaveAndDestroy( *buf3, del005C ); - buf3 = NULL; - error = iFSQ->SaveAndDestroy( *buf, del005A ); - buf = NULL; - error = iFSQ->Delete( del005A ); - ); - - //delayed assert on callback - RDebug::Print( _L("CAFSQTestAsynchSave::TestDeleteInQueueNotActiveL errorIsKErrNone=%d notErr=%d"), (error == KErrNone), !err ); - - delayedBool = ( (error == KErrNone) && !err ); - WaitForAsynchCompleteL(); - - RDebug::Print( _L("CAFSQTestAsynchSave::TestDeleteInQueueNotActiveL out") ); - } - -void CAFSQTestAsynchSave::TestDeleteInQueueActiveL() - { - // Group: Asynch Save - // - // ID: CAE.FM.TESTDELETEOBJECT.006 - // - // Action : Test that delete will work ok if the queue is not empty and - // the file is in the queue. Should also check filesystem for existence. - // This case checks that the file ACTIVELY being saved gets deleted. - // - // Output : A KErrNone. - - RDebug::Print( _L("CAFSQTestAsynchSave::TestDeleteInQueueActiveL in") ); - - currentTest = EDEL006p1; - numSaved = 0; - wait = ETrue; - TInt error = KErrNone; - - // 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(); - - // Read the file to be used in testing. - TFileName aFilename2 = KNibbles2; - RFile file2; - TInt connectErr2 = file2.Open(aFs, aFilename2,EFileRead); - file2.Size(iSize); - HBufC8* buf2 = HBufC8::NewL(iSize); - TPtr8 myData2 = buf2->Des(); - if ( !connectErr2 ) - { - file2.Read( myData2 ); - } - file2.Close(); - - // Read the file to be used in testing. - TFileName aFilename3 = KNibbles3; - RFile file3; - TInt connectErr3 = file3.Open(aFs, aFilename3,EFileRead); - file3.Size(iSize); - HBufC8* buf3 = HBufC8::NewL(iSize); - TPtr8 myData3 = buf3->Des(); - if ( !connectErr3 ) - { - file3.Read( myData3 ); - } - file3.Close(); - - // Delete the file if it exists - TFileName del006A = KNibblesDEL006A; - RFile deleter; - TInt isDeleted = deleter.Open(aFs, del006A, EFileRead); - deleter.Close(); - if ( isDeleted == KErrNone ) - { - // if no error, assume the file exists, so delete it - RDebug::Print( _L("CAFSQTestAsynchSave::TestDeleteInQueueNotActiveL 1st exists, deleting") ); - BaflUtils ba; - ba.DeleteFile(aFs, del006A); - } - - // Delete the file if it exists - TFileName del006B = KNibblesDEL006B; - RFile deleter2; - TInt isDeleted2 = deleter2.Open(aFs, del006B, EFileRead); - deleter2.Close(); - if ( isDeleted2 == KErrNone ) - { - // if no error, assume the file exists, so delete it - RDebug::Print( _L("CAFSQTestAsynchSave::TestDeleteNonEmptyNotExistAndNotInQueueL 2nd exists, deleting") ); - BaflUtils ba; - ba.DeleteFile(aFs, del006B); - } - - // Delete the file if it exists - TFileName del006C = KNibblesDEL006C; - RFile deleter3; - TInt isDeleted3 = deleter3.Open(aFs, del006C, EFileRead); - deleter3.Close(); - if ( isDeleted3 == KErrNone ) - { - // if no error, assume the file exists, so delete it - RDebug::Print( _L("CAFSQTestAsynchSave::TestDeleteInQueueNotActiveL 3rd exists, deleting") ); - BaflUtils ba; - ba.DeleteFile(aFs, del006C); - } - - aFs.Close(); - - //delete - TInt errorA = 0; - TInt errorB = 0; - TRAPD( err, - iFSQ = CAsynchFSQ::NewL(); - iFSQ->SetCallback( this ); - error = iFSQ->SaveAndDestroy( *buf2, del006B ); - buf2 = NULL; - error = iFSQ->SaveAndDestroy( *buf3, del006C ); - buf3 = NULL; - error = iFSQ->SaveAndDestroy( *buf, del006A ); - buf = NULL; - errorA = iFSQ->Delete( del006B ); - errorB = iFSQ->Delete( del006C ); - ); - - //delayed assert on callback - RDebug::Print( _L("CAFSQTestAsynchSave::TestDeleteInQueueActiveL errorIsKErrNone=%d notErr=%d !errorA=%d !errorB=%d"), (error == KErrNone), !err, !errorA, !errorB ); - - delayedBool = ( (error == KErrNone) && !err && !errorA && !errorB ); - WaitForAsynchCompleteL(); - - RDebug::Print( _L("CAFSQTestAsynchSave::TestDeleteInQueueActiveL out") ); - } - -