/** @SYMTestCaseID SYSLIB-STORE-CT-1152 @SYMTestCaseDesc Tests empty streams @SYMTestPriority High @SYMTestActions Tests for empty stream buffers.Check for end of file error,overflow error flags @SYMTestExpectedResults Test must not fail @SYMREQ REQ0000 */ LOCAL_C void testEmptyL(CStreamStore& aStore) { test.Next(_L(" @SYMTestCaseID:SYSLIB-STORE-CT-1152 Stream created using 'extend' ")); TStreamId empty=aStore.ExtendL(); RStoreReadStream in; in.OpenL(aStore,empty); TUint8 b; test(in.Source()->ReadL(&b,1)==0); in.Source()->SeekL(0,KStreamBeginning); test(in.Source()->SeekL(MStreamBuf::ERead,EStreamMark)==KStreamBeginning); test(in.Source()->SizeL()==0); TRAPD(r,in.Source()->SeekL(MStreamBuf::ERead,EStreamBeginning,1)); test(r==KErrEof); TRAP(r,in.Source()->SeekL(MStreamBuf::ERead,EStreamEnd,-1)); test(r==KErrEof); in.Close(); RStoreWriteStream out; out.OpenL(aStore,empty); out.Sink()->SeekL(0,KStreamBeginning); test(out.Sink()->SeekL(MStreamBuf::EWrite,EStreamMark)==KStreamBeginning); test(out.Sink()->SizeL()==0); TRAP(r,out.Sink()->SeekL(MStreamBuf::EWrite,EStreamBeginning,1)); test(r==KErrEof); TRAP(r,out.Sink()->SeekL(MStreamBuf::EWrite,EStreamEnd,-1)); test(r==KErrEof); TRAP(r,out.WriteUint8L(0)); test(r==KErrOverflow); out.Close(); // test.Next(_L("Replacing empty with empty")); out.ReplaceL(aStore,empty); out.CommitL(); out.Release(); in.OpenL(aStore,empty); test(in.Source()->ReadL(&b,1)==0); in.Source()->SeekL(0,KStreamBeginning); test(in.Source()->SeekL(MStreamBuf::ERead,EStreamMark)==KStreamBeginning); test(in.Source()->SizeL()==0); TRAP(r,in.Source()->SeekL(MStreamBuf::ERead,EStreamBeginning,1)); test(r==KErrEof); TRAP(r,in.Source()->SeekL(MStreamBuf::ERead,EStreamEnd,-1)); test(r==KErrEof); in.Close(); out.OpenL(aStore,empty); out.Sink()->SeekL(0,KStreamBeginning); test(out.Sink()->SeekL(MStreamBuf::EWrite,EStreamMark)==KStreamBeginning); test(out.Sink()->SizeL()==0); TRAP(r,out.Sink()->SeekL(MStreamBuf::EWrite,EStreamBeginning,1)); test(r==KErrEof); TRAP(r,out.Sink()->SeekL(MStreamBuf::EWrite,EStreamEnd,-1)); test(r==KErrEof); TRAP(r,out.WriteUint8L(0)); test(r==KErrOverflow); out.Close(); }
/** @SYMTestCaseID PDS-STORE-CT-4020 @SYMTestCaseDesc Tests writing and replacing a stream from securestore @SYMTestPriority High @SYMTestActions Create a new stream in the store and then open it for replacement @SYMTestExpectedResults stream is created and writtenn to successfully @SYMDEF DEF135804 */ LOCAL_C void testWriteReplaceL() { test.Next(_L("@SYMTestCaseID PDS-STORE-CT-4020")); TDriveUnit drive(static_cast<TUint>(RFs::GetSystemDrive())); TParse parse; parse.Set(drive.Name(), &KFileLocationSpec, NULL); test.Next(_L("Testing Extend")); CFileStore* file=CPermanentFileStore::ReplaceLC(TheFs,parse.NameAndExt(),EFileRead|EFileWrite); file->SetTypeL(file->Layout()); CSecureStore* secure=NULL; secure=CSecureStore::NewLC(*file,*thePBEKey); RStoreWriteStream out; TStreamId id = out.CreateL(*secure); test(id != NULL); out.Close(); TRAPD(r, out.OpenL(*secure, id) ); test(r == KErrNone); out.WriteL(KTestDes,8); out.CommitL(); out.Close(); r = secure->Commit(); test(r == KErrNone); TRAP(r,out.ReplaceL(*secure, id)); test(r == KErrNone); out.WriteL(KTestDes,8); out.CommitL(); out.Close(); secure->Revert(); out.Close(); CleanupStack::PopAndDestroy(2); }