LOCAL_C void TestRemovingAllFilesL() { CDummyObserver ob; CMsvSession* session = CMsvSession::OpenSyncL(ob); CleanupStack::PushL(session); CMsvEntry* cEntry1 = CMsvEntry::NewL(*session, KMsvLocalServiceIndexEntryId, TMsvSelectionOrdering(KMsvNoGrouping, EMsvSortByNone, ETrue)); CleanupStack::PushL(cEntry1); CMsvEntrySelection* selection; CMsvOperation* opert; CTestActive* active = new (ELeave) CTestActive; CleanupStack::PushL(active); CDir* dir; TFileName filename; TInt count; // delete everything under the outbox cEntry1->SetEntryL(KMsvGlobalOutBoxIndexEntryId); selection = cEntry1->ChildrenL(); if (selection->Count()) { active->StartL(); opert = cEntry1->DeleteL(*selection, active->iStatus); CActiveScheduler::Start(); // operation complete delete opert; } delete selection; // delete everything under the inbox cEntry1->SetEntryL(KMsvGlobalInBoxIndexEntryId); selection = cEntry1->ChildrenL(); if (selection->Count()) { active->StartL(); opert = cEntry1->DeleteL(*selection, active->iStatus); CActiveScheduler::Start(); // operation complete delete opert; } delete selection; // delete everything under the draft cEntry1->SetEntryL(KMsvDraftEntryId); selection = cEntry1->ChildrenL(); if (selection->Count()) { active->StartL(); opert = cEntry1->DeleteL(*selection, active->iStatus); CActiveScheduler::Start(); // operation complete delete opert; } delete selection; // delete everything under the sent cEntry1->SetEntryL(KMsvSentEntryId); selection = cEntry1->ChildrenL(); if (selection->Count()) { active->StartL(); opert = cEntry1->DeleteL(*selection, active->iStatus); CActiveScheduler::Start(); // operation complete delete opert; } delete selection; // delete everything under the local service cEntry1->SetEntryL(KMsvLocalServiceIndexEntryId); selection = cEntry1->ChildrenL(); count=selection->Count(); while (count--) { TMsvId id = selection->At(count); #if (defined SYMBIAN_MSGS_ENHANCED_REMOVABLE_MEDIA_SUPPORT) id = UnmaskTMsvId(id); #endif if (id==KMsvGlobalOutBoxIndexEntryId || id==KMsvGlobalInBoxIndexEntryId || id==KMsvDraftEntryId || id==KMsvSentEntryId || id==KMsvDeletedEntryFolderEntryId) selection->Delete(count); } if (selection->Count()) { active->StartL(); opert = cEntry1->DeleteL(*selection, active->iStatus); CActiveScheduler::Start(); // operation complete delete opert; } delete selection; // test cEntry1->SetEntryL(KMsvRootIndexEntryId); cEntry1->SetEntryL(KMsvLocalServiceIndexEntryId); selection = cEntry1->ChildrenL(); test(selection->Count()==5); delete selection; RFs file; file.Connect(); CleanupClosePushL(file); TPtrC driveName = TDriveUnit(MessageServer::CurrentDriveL(file)).Name(); CleanupStack::PopAndDestroy(); file.Close(); filename = driveName; filename.Append(KMsvDefaultFolder2); MsvUtils::ConstructEntryName(KMsvLocalServiceIndexEntryId, KMsvLocalServiceIndexEntryId, filename, MsvUtils::EPath); REPORT_IF_ERROR(theUtils->FileSession().GetDir(filename, KEntryAttMaskSupported, ESortNone, dir)); test(dir->Count()==0); delete dir; // everything under the root cEntry1->SetEntryL(KMsvRootIndexEntryId); selection = cEntry1->ChildrenL(); count=selection->Count(); while (count--) { TMsvId id = selection->At(count); #if (defined SYMBIAN_MSGS_ENHANCED_REMOVABLE_MEDIA_SUPPORT) id = UnmaskTMsvId(id); #endif if (id==KMsvLocalServiceIndexEntryId) selection->Delete(count); } if (selection->Count()) { active->StartL(); opert = cEntry1->DeleteL(*selection, active->iStatus); CActiveScheduler::Start(); // operation complete delete opert; } delete selection; #if (!defined SYMBIAN_MESSAGESTORE_USING_SQLDB) // check corrupt index flag was set when index file was corrupted TBool corrupt=session->GetAndClearIndexCorruptFlagL(); test(corrupt!=EFalse); #endif // test cEntry1->SetEntryL(KMsvLocalServiceIndexEntryId); cEntry1->SetEntryL(KMsvRootIndexEntryId); selection = cEntry1->ChildrenL(); test(selection->Count()==1); delete selection; filename = driveName; filename.Append(KMsvDefaultFolder2); REPORT_IF_ERROR(theUtils->FileSession().GetDir(filename, KEntryAttMaskSupported, ESortNone, dir)); test(dir->Count()==1); //no Index file under Mail2 folder after PREQ1189. delete dir; CleanupStack::PopAndDestroy(3); }