diff -r 000000000000 -r b16258d2340f applayerpluginsandutils/bookmarksupport/test/tbookmark.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/applayerpluginsandutils/bookmarksupport/test/tbookmark.cpp Tue Feb 02 01:09:52 2010 +0200 @@ -0,0 +1,208 @@ +// Copyright (c) 2005-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: +// + +#include +#include "testutils.h" +#include "tbookmarktests.h" + +_LIT(KTitle, "Bookmark Dll Tests"); + +LOCAL_D RTest gTest(KTitle()); + +LOCAL_D CTrapCleanup* gTheTrapCleanup; +LOCAL_D CTestWrapper* gTestWrapper; + +const TInt KTestCleanupStack=0x500; + +const TInt KGeneralDelay = 2*1000*1000; +_LIT ( KUninstallDbFiles, "c:\\private\\10202BE9\\persists\\*.cre" ); +_LIT ( KRefreshTestFolder, "Refresh Test Folder" ); + +LOCAL_C void DoDbRemoveL () + { + gTestWrapper->Next(_L("*** Removing bookmark database files ***")); + RFs fs; + User::LeaveIfError ( fs.Connect () ); + CleanupClosePushL ( fs ); + CFileMan* fileMan = CFileMan::NewL ( fs ); + CleanupStack::PushL ( fileMan ); + + // Ensure all files are deletable. + fileMan->Attribs ( KUninstallDbFiles, KEntryAttArchive, KEntryAttReadOnly, TTime(0), CFileMan::ERecurse ); + + // Delete the files. + fileMan->Delete ( KUninstallDbFiles ); + + // Time for uninstall. + User::After ( KGeneralDelay ); + + CleanupStack::PopAndDestroy ( 2 ); // fileMan, fs + } + +LOCAL_C void TestRbkDatabaseFnsWithNoRepFilesL () + { + DoDbRemoveL (); + + gTestWrapper->Next(_L("Testing bookmarks with no repository file present")); + + RBkDatabase db; + db.OpenL ( Bookmark::EVisibilityManager ); + CleanupClosePushL ( db ); + TRAPD ( err, db.RefreshL () ); + gTestWrapper->TEST ( err == KErrNone ); + TRAP ( err, db.OpenRootL () ); + gTestWrapper->TEST ( err == KErrNone ); + TInt ret = 0; + TRAP ( err, ret = db.DeleteIconL ( 1 ) ); + gTestWrapper->TEST ( err == KErrNone ); + gTestWrapper->TEST ( ret == KErrNotFound ); + TRAP ( err, db.OpenHomeL () ); + gTestWrapper->TEST ( err == KErrNotFound ); + const TUid KMyUid1 = {0x111222}; + TRAP ( err, ret = db.DeregisterDatabasePropertyL (KMyUid1) ); + gTestWrapper->TEST ( err == KErrNone ); + gTestWrapper->TEST ( ret == KErrNotFound ); + TRAP ( err, ret = db.DeregisterFolderPropertyL (KMyUid1) ); + gTestWrapper->TEST ( err == KErrNone ); + gTestWrapper->TEST ( ret == KErrNotFound ); + TRAP ( err, ret = db.DeregisterBookmarkPropertyL (KMyUid1) ); + gTestWrapper->TEST ( err == KErrNone ); + gTestWrapper->TEST ( ret == KErrNotFound ); + + const TInt KMaxTestLength = 60; + TInt intValue; + TReal retReal = 0.0; + HBufC* retDesC16 = HBufC::NewLC(KMaxTestLength); + TPtr retPtr16 = retDesC16->Des(); + HBufC8* retDesC8 = HBufC8::NewLC(KMaxTestLength * 2); + TPtr8 retPtr8 = retDesC8->Des(); + + TRAP ( err, db.GetCustomPropertyL (KMyUid1, intValue) ); + gTestWrapper->TEST ( ret == KErrNotFound ); + + TRAP ( err, db.GetCustomPropertyL (KMyUid1, retReal) ); + gTestWrapper->TEST ( ret == KErrNotFound ); + + TRAP ( err, db.GetCustomPropertyL (KMyUid1, retPtr16) ); + gTestWrapper->TEST ( ret == KErrNotFound ); + + TRAP ( err, db.GetCustomPropertyL (KMyUid1, retPtr8) ); + gTestWrapper->TEST ( ret == KErrNotFound ); + + TRAP ( err, db.SetCustomPropertyL (KMyUid1, intValue) ); + gTestWrapper->TEST ( ret == KErrNotFound ); + + TRAP ( err, db.SetCustomPropertyL (KMyUid1, retReal) ); + gTestWrapper->TEST ( ret == KErrNotFound ); + + TRAP ( err, db.SetCustomPropertyL (KMyUid1, retPtr16) ); + gTestWrapper->TEST ( ret == KErrNotFound ); + + TRAP ( err, db.SetCustomPropertyL (KMyUid1, retPtr8) ); + gTestWrapper->TEST ( ret == KErrNotFound ); + + CleanupStack::PopAndDestroy (3); // db, retDesC16, retDesC8 + } + +LOCAL_C void DoRefreshTestL () + { + DoDbRemoveL (); + gTestWrapper->Next(_L("Testing the refreshing functionality of bookmarks")); + + RBkDatabase db; + CleanupClosePushL ( db ); + db.OpenL (); + + db.RefreshL (); + + RBkFolder root = db.OpenRootL (); + CleanupClosePushL ( root ); + gTestWrapper->TEST ( root.Count() == 0 ); + // Create a folder under root. + RBkFolder folder1 = db.CreateFolderL ( KRefreshTestFolder ); + CleanupClosePushL ( folder1 ); + db.CommitL (); + CleanupStack::PopAndDestroy (3); // db, root, folder1 + + db.OpenL (); + CleanupClosePushL ( db ); + + db.RefreshL (); + + TRAPD ( err, folder1 = db.OpenFolderL ( KRefreshTestFolder ) ); + gTestWrapper->TEST ( err == KErrNone ); + + Bookmark::TItemId id = folder1.Id (); + folder1.Close (); + db.DeleteItemL ( id ); + db.CommitL (); + CleanupStack::PopAndDestroy (); // db + } + +LOCAL_C void DoTestsL() + { + TestRbkDatabaseFnsWithNoRepFilesL (); + DoRefreshTestL (); + DoFolderTestsL(gTestWrapper); + DoBookmarkTestsL(gTestWrapper); + DoNotifyTestsL(gTestWrapper); + DoDirtyTestsL(gTestWrapper); + } + + +LOCAL_C void TestL() + { + gTestWrapper = CTestWrapper::NewLC(gTest); + gTestWrapper->Start(_L("@SYMTestCaseID IWS-APPPROTOCOLS-BOOKMARKS-TBOOKMARK-0001 test")); + + TRAPD(ret,DoTestsL()); + gTestWrapper->TESTE(ret==KErrNone, ret); + + gTestWrapper->End(); + CleanupStack::PopAndDestroy(gTestWrapper); + } + +LOCAL_C void setupCleanup() +// +// Initialise the cleanup stack. +// + { + gTheTrapCleanup=CTrapCleanup::New(); + gTest(gTheTrapCleanup!=NULL); + TRAPD(r,\ + {\ + for (TInt i=KTestCleanupStack;i>0;i--)\ + CleanupStack::PushL((TAny*)0);\ + CleanupStack::Pop(KTestCleanupStack);\ + }); + gTest(r==KErrNone); + } + + +GLDEF_C TInt E32Main() + { + setupCleanup(); + __UHEAP_MARK; + // + + TRAPD(ret,TestL()); + gTest(ret==KErrNone); + // + + __UHEAP_MARKEND; + delete gTheTrapCleanup; + return KErrNone; + } +