--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/applayerpluginsandutils/bookmarksupport/test/tdirtytests.cpp Tue Feb 02 01:09:52 2010 +0200
@@ -0,0 +1,772 @@
+// 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 <bookmarkdatabase.h>
+#include "testutils.h"
+
+_LIT(KFilename, "tdirtytests.cpp");
+
+LOCAL_D CTestWrapper* gTestWrapper;
+
+_LIT(KTxtTester1, "DirtyTEST Tester 1");
+
+_LIT(KTxtFolder1, "DirtyTEST Folder 1");
+
+_LIT(KTxtBookmark1, "DirtyTEST Bookmark 1");
+_LIT(KTxtBookmarkMod, "DirtyTEST Bookmark Modified");
+
+_LIT(KTxtDes1, "This is DirtyTEST Bookmark 1");
+_LIT(KTxtDesMod, "This is a modified description");
+
+_LIT8(KIconData1, "****4644372131**7*&879");
+
+_LIT(KTxtDesc, "This is the home page text");
+_LIT8(KTxtUri, "sip:user:pass@location.com:1666;transport=tcp;x=123;df=223?asd=b");
+_LIT8(KTxtUser, "user");
+_LIT8(KTxtPassword, "pass");
+_LIT8(KTxtNewUser, "user2");
+_LIT8(KTxtNewPassword, "password");
+
+const TUint32 KProxyId = 0x7CFFFFFF;
+const TUint32 KNapId = 0x6CFFF000;
+
+const TInt KMaxTestLength = 50;
+_LIT8(KData8Bit1, "8BitData");
+_LIT(KData16Bit1, "16BitData");
+const TInt KInt1 = 999;
+const TReal KReal1 = 42.999;
+
+const TUid KUid1 = {0x111};
+const TUid KUid2 = {0x222};
+const TUid KUid3 = {0x333};
+const TUid KUid4 = {0x444};
+const TUid KUid5 = {0x555};
+const TUid KUid6 = {0x666};
+const TUid KUid7 = {0x777};
+const TUid KUid8 = {0x888};
+const TUid KUid9 = {0x999};
+const TUid KUid10 = {0xAAA};
+const TUid KUid11 = {0xBBB};
+const TUid KUid12 = {0xCCC};
+
+class CDirtyTester: public CBase
+ {
+public:
+ static CDirtyTester* NewL(const TDesC& aTitle);
+ ~CDirtyTester();
+
+ void SetupL();
+ void ShutdownL();
+ void DeleteBookmarksL();
+
+ void OpenAllL(Bookmark::TVisibility aVisibility = Bookmark::EVisibilityDefault);
+ void CloseAll();
+
+ void CheckTitleL();
+ void CheckDescriptionL();
+ void CheckTimeL();
+ void CheckIconL();
+ void CheckPublicWritableL();
+ void CheckConfigL();
+ void CheckCustomPropertiesL();
+ void CheckAuthenticationL();
+
+private:
+ CDirtyTester();
+ void ConstructL(const TDesC& aTitle);
+
+private:
+ HBufC* iTitle;
+ RBkDatabase iDatabase;
+ RBkFolder iRoot;
+ RBkBookmark iBookmark;
+ RBkFolder iFolder;
+ };
+
+CDirtyTester* CDirtyTester::NewL(const TDesC& aTitle)
+ {
+ CDirtyTester* self = new (ELeave) CDirtyTester();
+ CleanupStack::PushL(self);
+ self->ConstructL(aTitle);
+ CleanupStack::Pop(self);
+ return self;
+ }
+
+CDirtyTester::CDirtyTester()
+ {
+ }
+
+CDirtyTester::~CDirtyTester()
+ {
+ delete iTitle;
+ }
+
+
+void CDirtyTester::ConstructL(const TDesC& aTitle)
+ {
+ iTitle = aTitle.AllocL();
+ }
+
+void CDirtyTester::OpenAllL(Bookmark::TVisibility aVisibility)
+ {
+ iDatabase.OpenL(aVisibility);
+ iRoot = iDatabase.OpenRootL();
+
+ RBkNode item = iRoot.OpenItemL(0);
+ CleanupClosePushL(item);
+ gTestWrapper->TEST(item.Type() == Bookmark::ETypeBookmark);
+ iBookmark = item.OpenBookmarkL();
+ CleanupStack::PopAndDestroy(&item);
+
+ if (iRoot.Count() > 1)
+ {
+ item = iRoot.OpenItemL(1);
+ CleanupClosePushL(item);
+ gTestWrapper->TEST(item.Type() == Bookmark::ETypeFolder);
+ iFolder = item.OpenFolderL();
+ CleanupStack::PopAndDestroy(&item);
+ }
+ }
+
+void CDirtyTester::CloseAll()
+ {
+ iBookmark.Close();
+ if (iRoot.Count() > 1)
+ {
+ iFolder.Close();
+ }
+ iRoot.Close();
+ iDatabase.Close();
+ }
+
+void CDirtyTester::SetupL()
+ {
+ iDatabase.OpenL(Bookmark::EVisibilityDefault);
+ iRoot = iDatabase.OpenRootL();
+ iBookmark = iDatabase.CreateBookmarkL();
+ iFolder = iDatabase.CreateFolderL(KTxtFolder1);
+ }
+
+void CDirtyTester::ShutdownL()
+ {
+ iBookmark.Close();
+ iFolder.Close();
+ DeleteBookmarksL();
+ iRoot.Close();
+ iDatabase.Close();
+ }
+
+void CDirtyTester::CheckTitleL()
+ {
+ gTestWrapper->Next(_L("[Dirty tests] Check Title"));
+
+ SetupL();
+ iBookmark.SetTitleL(KTxtBookmark1);
+ iDatabase.CommitL();
+ CloseAll();
+ OpenAllL();
+ gTestWrapper->TEST(iBookmark.Title().Compare(KTxtBookmark1) == 0);
+ iBookmark.SetTitleL(KTxtBookmarkMod);
+ iDatabase.CommitL();
+ CloseAll();
+ OpenAllL();
+ gTestWrapper->TEST(iBookmark.Title().Compare(KTxtBookmarkMod) == 0);
+ ShutdownL();
+ }
+
+void CDirtyTester::CheckDescriptionL()
+ {
+ gTestWrapper->Next(_L("[Dirty tests] Check Description"));
+
+ SetupL();
+ iBookmark.SetDescriptionL(KTxtDes1);
+ iDatabase.CommitL();
+ CloseAll();
+ OpenAllL();
+ gTestWrapper->TEST(iBookmark.DescriptionL().Compare(KTxtDes1) == 0);
+ iBookmark.SetDescriptionL(KTxtDesMod);
+ iDatabase.CommitL();
+ CloseAll();
+ OpenAllL();
+ gTestWrapper->TEST(iBookmark.DescriptionL().Compare(KTxtDesMod) == 0);
+ ShutdownL();
+ }
+
+void CDirtyTester::CheckTimeL()
+ {
+ gTestWrapper->Next(_L("[Dirty tests] Check Time"));
+
+ SetupL();
+ iBookmark.UpdateVisited();
+ TTime firstUpdate = iBookmark.LastVisited();
+ iDatabase.CommitL();
+ CloseAll();
+ OpenAllL();
+ gTestWrapper->TEST(iBookmark.LastVisited() == firstUpdate);
+ iBookmark.UpdateVisited();
+ TTime nextUpdate = iBookmark.LastVisited();
+ iDatabase.CommitL();
+ CloseAll();
+ OpenAllL();
+ gTestWrapper->TEST(iBookmark.LastVisited() == nextUpdate);
+ TRAPD(err, iBookmark.SetLastVisitedL(firstUpdate));
+ gTestWrapper->TESTE(err == KErrPermissionDenied, err);
+ iDatabase.CommitL();
+ ShutdownL();
+ }
+
+void CDirtyTester::CheckIconL()
+ {
+ gTestWrapper->Next(_L("[Dirty tests] Check Icon"));
+
+ SetupL();
+ Bookmark::TAttachmentId iconId = iDatabase.CreateIconL(KIconData1);
+ iDatabase.CommitL();
+ CloseAll();
+ OpenAllL();
+ TRAPD(err, iDatabase.GetIconL(iconId));
+ gTestWrapper->TESTE(err == KErrNone, err);
+ iBookmark.SetIconIdL(iconId);
+ iDatabase.CommitL();
+ CloseAll();
+ OpenAllL();
+ gTestWrapper->TEST(iBookmark.IconIdL() == iconId);
+ User::LeaveIfError(iDatabase.DeleteIconL(iconId));
+ iDatabase.CommitL();
+ CloseAll();
+ OpenAllL();
+ TRAP(err, iDatabase.GetIconL(iconId));
+ gTestWrapper->TESTE(err == KErrNotFound, err);
+ ShutdownL();
+ }
+
+void CDirtyTester::CheckPublicWritableL()
+ {
+ gTestWrapper->Next(_L("[Dirty tests] Check Public & Writable"));
+
+ SetupL();
+ iDatabase.CommitL();
+ CloseAll();
+ OpenAllL();
+ iBookmark.SetPublicL(EFalse);
+ iDatabase.CommitL();
+ CloseAll();
+ OpenAllL();
+ gTestWrapper->TEST(!iBookmark.IsPublic());
+ RThread thread;
+ TSecurityInfo secInfo(thread);
+ TRAPD(err, iBookmark.OwnerL());
+ gTestWrapper->TESTE(err == KErrPermissionDenied, err);
+ TRAP(err, iBookmark.SetOwnerL(0x00112233));
+ gTestWrapper->TESTE(err == KErrPermissionDenied, err);
+ TRAP(err, iBookmark.SetWritableL(EFalse));
+ gTestWrapper->TESTE(err == KErrNone, err);
+ ShutdownL();
+ }
+
+void CDirtyTester::CheckConfigL()
+ {
+ gTestWrapper->Next(_L("[Dirty tests] Check Database Config Properties"));
+
+ SetupL();
+ RBkBookmark homepage;
+ TRAPD(err, homepage = iDatabase.OpenHomeL());
+ gTestWrapper->TESTE(err == KErrNotFound, err);
+ gTestWrapper->TEST(iDatabase.HomePageText().Compare(KTxtDesc) != 0);
+ gTestWrapper->TEST(iDatabase.SearchUri().Compare(KTxtUri) != 0);
+ gTestWrapper->TEST(iDatabase.DefaultProxy() != KProxyId);
+ gTestWrapper->TEST(iDatabase.DefaultNap() != KNapId);
+ iDatabase.SetHomePageTextL(KTxtDesc);
+ iDatabase.SetHome(iBookmark);
+ iDatabase.SetSearchUriL(KTxtUri);
+ iDatabase.SetDefaultProxy(KProxyId);
+ iDatabase.SetDefaultNap(KNapId);
+ gTestWrapper->TEST(iDatabase.HomePageText().Compare(KTxtDesc) == 0);
+ TRAP(err, homepage = iDatabase.OpenHomeL());
+ gTestWrapper->TESTE(err == KErrNone, err);
+ homepage.Close();
+ gTestWrapper->TEST(iBookmark.IsHomePage());
+ gTestWrapper->TEST(iDatabase.SearchUri().Compare(KTxtUri) == 0);
+ gTestWrapper->TEST(iDatabase.DefaultProxy() == KProxyId);
+ gTestWrapper->TEST(iDatabase.DefaultNap() == KNapId);
+ iDatabase.CommitL();
+ CloseAll();
+ OpenAllL();
+ gTestWrapper->TEST(iDatabase.HomePageText().Compare(KTxtDesc) == 0);
+ TRAP(err, homepage = iDatabase.OpenHomeL());
+ gTestWrapper->TESTE(err == KErrNone, err);
+ homepage.Close();
+ gTestWrapper->TEST(iBookmark.IsHomePage());
+ gTestWrapper->TEST(iDatabase.SearchUri().Compare(KTxtUri) == 0);
+ gTestWrapper->TEST(iDatabase.DefaultProxy() == KProxyId);
+ gTestWrapper->TEST(iDatabase.DefaultNap() == KNapId);
+ CloseAll();
+ OpenAllL(Bookmark::EVisibilityPrivate);
+ iDatabase.SetHomePageTextL(KNullDesC);
+ iDatabase.SetSearchUriL(KNullDesC8);
+ iDatabase.SetDefaultProxy(0);
+ iDatabase.SetDefaultNap(0);
+ iDatabase.CommitL();
+ CloseAll();
+ OpenAllL();
+ gTestWrapper->TEST(iDatabase.HomePageText().Compare(KTxtDesc) != 0);
+ gTestWrapper->TEST(iDatabase.SearchUri().Compare(KTxtUri) != 0);
+ gTestWrapper->TEST(iDatabase.DefaultProxy() != KProxyId);
+ gTestWrapper->TEST(iDatabase.DefaultNap() != KNapId);
+ ShutdownL();
+ }
+
+void CDirtyTester::CheckCustomPropertiesL()
+ {
+ TInt retInt = 0;
+ TReal retReal = 0.0;
+ HBufC* retDesC16 = HBufC::NewLC(KMaxTestLength);
+ TPtr retPtr16 = retDesC16->Des();
+ HBufC8* retDesC8 = HBufC8::NewLC(KMaxTestLength * 2);
+ TPtr8 retPtr8 = retDesC8->Des();
+
+ gTestWrapper->Next(_L("[Dirty tests] Custom Properties"));
+
+ SetupL();
+
+ TRAPD(err, iDatabase.RegisterDatabasePropertyL(KUid1, Bookmark::EDataTypeInt));
+ gTestWrapper->TESTE(err == KErrNone, err);
+ TRAP(err, iDatabase.RegisterDatabasePropertyL(KUid2, Bookmark::EDataTypeReal));
+ gTestWrapper->TESTE(err == KErrNone, err);
+ TRAP(err, iDatabase.RegisterDatabasePropertyL(KUid3, Bookmark::EDataTypeDes8));
+ gTestWrapper->TESTE(err == KErrNone, err);
+ TRAP(err, iDatabase.RegisterDatabasePropertyL(KUid4, Bookmark::EDataTypeDes16));
+ gTestWrapper->TESTE(err == KErrNone, err);
+
+ TRAP(err, iDatabase.RegisterBookmarkPropertyL(KUid5, Bookmark::EDataTypeInt));
+ gTestWrapper->TESTE(err == KErrNone, err);
+ TRAP(err, iDatabase.RegisterBookmarkPropertyL(KUid6, Bookmark::EDataTypeReal));
+ gTestWrapper->TESTE(err == KErrNone, err);
+ TRAP(err, iDatabase.RegisterBookmarkPropertyL(KUid7, Bookmark::EDataTypeDes8));
+ gTestWrapper->TESTE(err == KErrNone, err);
+ TRAP(err, iDatabase.RegisterBookmarkPropertyL(KUid8, Bookmark::EDataTypeDes16));
+ gTestWrapper->TESTE(err == KErrNone, err);
+
+ TRAP(err, iDatabase.RegisterFolderPropertyL(KUid9, Bookmark::EDataTypeInt));
+ gTestWrapper->TESTE(err == KErrNone, err);
+ TRAP(err, iDatabase.RegisterFolderPropertyL(KUid10, Bookmark::EDataTypeReal));
+ gTestWrapper->TESTE(err == KErrNone, err);
+ TRAP(err, iDatabase.RegisterFolderPropertyL(KUid11, Bookmark::EDataTypeDes8));
+ gTestWrapper->TESTE(err == KErrNone, err);
+ TRAP(err, iDatabase.RegisterFolderPropertyL(KUid12, Bookmark::EDataTypeDes16));
+ gTestWrapper->TESTE(err == KErrNone, err);
+
+ iDatabase.CommitL();
+ CloseAll();
+ OpenAllL();
+
+ TRAP(err, iDatabase.RegisterDatabasePropertyL(KUid1, Bookmark::EDataTypeInt));
+ gTestWrapper->TESTE(err == Bookmark::KErrUidAlreadyUsed, err);
+ TRAP(err, iDatabase.RegisterDatabasePropertyL(KUid2, Bookmark::EDataTypeReal));
+ gTestWrapper->TESTE(err == Bookmark::KErrUidAlreadyUsed, err);
+ TRAP(err, iDatabase.RegisterDatabasePropertyL(KUid3, Bookmark::EDataTypeDes8));
+ gTestWrapper->TESTE(err == Bookmark::KErrUidAlreadyUsed, err);
+ TRAP(err, iDatabase.RegisterDatabasePropertyL(KUid4, Bookmark::EDataTypeDes16));
+ gTestWrapper->TESTE(err == Bookmark::KErrUidAlreadyUsed, err);
+
+ TRAP(err, iDatabase.RegisterBookmarkPropertyL(KUid5, Bookmark::EDataTypeInt));
+ gTestWrapper->TESTE(err == Bookmark::KErrUidAlreadyUsed, err);
+ TRAP(err, iDatabase.RegisterBookmarkPropertyL(KUid6, Bookmark::EDataTypeReal));
+ gTestWrapper->TESTE(err == Bookmark::KErrUidAlreadyUsed, err);
+ TRAP(err, iDatabase.RegisterBookmarkPropertyL(KUid7, Bookmark::EDataTypeDes8));
+ gTestWrapper->TESTE(err == Bookmark::KErrUidAlreadyUsed, err);
+ TRAP(err, iDatabase.RegisterBookmarkPropertyL(KUid8, Bookmark::EDataTypeDes16));
+ gTestWrapper->TESTE(err == Bookmark::KErrUidAlreadyUsed, err);
+
+ TRAP(err, iDatabase.RegisterFolderPropertyL(KUid9, Bookmark::EDataTypeInt));
+ gTestWrapper->TESTE(err == Bookmark::KErrUidAlreadyUsed, err);
+ TRAP(err, iDatabase.RegisterFolderPropertyL(KUid10, Bookmark::EDataTypeReal));
+ gTestWrapper->TESTE(err == Bookmark::KErrUidAlreadyUsed, err);
+ TRAP(err, iDatabase.RegisterFolderPropertyL(KUid11, Bookmark::EDataTypeDes8));
+ gTestWrapper->TESTE(err == Bookmark::KErrUidAlreadyUsed, err);
+ TRAP(err, iDatabase.RegisterFolderPropertyL(KUid12, Bookmark::EDataTypeDes16));
+ gTestWrapper->TESTE(err == Bookmark::KErrUidAlreadyUsed, err);
+
+ TRAP(err, iDatabase.DeregisterDatabasePropertyL(KUid1));
+ gTestWrapper->TESTE(err == KErrNone, err);
+ TRAP(err, iDatabase.DeregisterDatabasePropertyL(KUid2));
+ gTestWrapper->TESTE(err == KErrNone, err);
+ TRAP(err, iDatabase.DeregisterDatabasePropertyL(KUid3));
+ gTestWrapper->TESTE(err == KErrNone, err);
+ TRAP(err, iDatabase.DeregisterDatabasePropertyL(KUid4));
+ gTestWrapper->TESTE(err == KErrNone, err);
+
+ TRAP(err, iDatabase.DeregisterBookmarkPropertyL(KUid5));
+ gTestWrapper->TESTE(err == KErrNone, err);
+ TRAP(err, iDatabase.DeregisterBookmarkPropertyL(KUid6));
+ gTestWrapper->TESTE(err == KErrNone, err);
+ TRAP(err, iDatabase.DeregisterBookmarkPropertyL(KUid7));
+ gTestWrapper->TESTE(err == KErrNone, err);
+ TRAP(err, iDatabase.DeregisterBookmarkPropertyL(KUid8));
+ gTestWrapper->TESTE(err == KErrNone, err);
+
+ TRAP(err, iDatabase.DeregisterFolderPropertyL(KUid9));
+ gTestWrapper->TESTE(err == KErrNone, err);
+ TRAP(err, iDatabase.DeregisterFolderPropertyL(KUid10));
+ gTestWrapper->TESTE(err == KErrNone, err);
+ TRAP(err, iDatabase.DeregisterFolderPropertyL(KUid11));
+ gTestWrapper->TESTE(err == KErrNone, err);
+ TRAP(err, iDatabase.DeregisterFolderPropertyL(KUid12));
+ gTestWrapper->TESTE(err == KErrNone, err);
+
+ iDatabase.CommitL();
+ CloseAll();
+ OpenAllL();
+
+ TRAP(err, iDatabase.RegisterDatabasePropertyL(KUid1, Bookmark::EDataTypeInt));
+ gTestWrapper->TESTE(err == KErrNone, err);
+ TRAP(err, iDatabase.RegisterDatabasePropertyL(KUid2, Bookmark::EDataTypeReal));
+ gTestWrapper->TESTE(err == KErrNone, err);
+ TRAP(err, iDatabase.RegisterDatabasePropertyL(KUid3, Bookmark::EDataTypeDes8));
+ gTestWrapper->TESTE(err == KErrNone, err);
+ TRAP(err, iDatabase.RegisterDatabasePropertyL(KUid4, Bookmark::EDataTypeDes16));
+ gTestWrapper->TESTE(err == KErrNone, err);
+
+ TRAP(err, iDatabase.RegisterBookmarkPropertyL(KUid5, Bookmark::EDataTypeInt));
+ gTestWrapper->TESTE(err == KErrNone, err);
+ TRAP(err, iDatabase.RegisterBookmarkPropertyL(KUid6, Bookmark::EDataTypeReal));
+ gTestWrapper->TESTE(err == KErrNone, err);
+ TRAP(err, iDatabase.RegisterBookmarkPropertyL(KUid7, Bookmark::EDataTypeDes8));
+ gTestWrapper->TESTE(err == KErrNone, err);
+ TRAP(err, iDatabase.RegisterBookmarkPropertyL(KUid8, Bookmark::EDataTypeDes16));
+ gTestWrapper->TESTE(err == KErrNone, err);
+
+ TRAP(err, iDatabase.RegisterFolderPropertyL(KUid9, Bookmark::EDataTypeInt));
+ gTestWrapper->TESTE(err == KErrNone, err);
+ TRAP(err, iDatabase.RegisterFolderPropertyL(KUid10, Bookmark::EDataTypeReal));
+ gTestWrapper->TESTE(err == KErrNone, err);
+ TRAP(err, iDatabase.RegisterFolderPropertyL(KUid11, Bookmark::EDataTypeDes8));
+ gTestWrapper->TESTE(err == KErrNone, err);
+ TRAP(err, iDatabase.RegisterFolderPropertyL(KUid12, Bookmark::EDataTypeDes16));
+ gTestWrapper->TESTE(err == KErrNone, err);
+
+ TRAP(err, iDatabase.SetCustomPropertyL(KUid1, KInt1));
+ gTestWrapper->TESTE(err == KErrNone, err);
+ TRAP(err, iDatabase.SetCustomPropertyL(KUid2, KReal1));
+ gTestWrapper->TESTE(err == KErrNone, err);
+ TRAP(err, iDatabase.SetCustomPropertyL(KUid3, KData8Bit1));
+ gTestWrapper->TESTE(err == KErrNone, err);
+ TRAP(err, iDatabase.SetCustomPropertyL(KUid4, KData16Bit1));
+ gTestWrapper->TESTE(err == KErrNone, err);
+
+ TRAP(err, iBookmark.SetCustomPropertyL(KUid5, KInt1));
+ gTestWrapper->TESTE(err == KErrNone, err);
+ TRAP(err, iBookmark.SetCustomPropertyL(KUid6, KReal1));
+ gTestWrapper->TESTE(err == KErrNone, err);
+ TRAP(err, iBookmark.SetCustomPropertyL(KUid7, KData8Bit1));
+ gTestWrapper->TESTE(err == KErrNone, err);
+ TRAP(err, iBookmark.SetCustomPropertyL(KUid8, KData16Bit1));
+ gTestWrapper->TESTE(err == KErrNone, err);
+
+ TRAP(err, iFolder.SetCustomPropertyL(KUid9, KInt1));
+ gTestWrapper->TESTE(err == KErrNone, err);
+ TRAP(err, iFolder.SetCustomPropertyL(KUid10, KReal1));
+ gTestWrapper->TESTE(err == KErrNone, err);
+ TRAP(err, iFolder.SetCustomPropertyL(KUid11, KData8Bit1));
+ gTestWrapper->TESTE(err == KErrNone, err);
+ TRAP(err, iFolder.SetCustomPropertyL(KUid12, KData16Bit1));
+ gTestWrapper->TESTE(err == KErrNone, err);
+
+ iDatabase.CommitL();
+ CloseAll();
+ OpenAllL();
+
+ TRAP(err, iDatabase.GetCustomPropertyL(KUid1, retInt));
+ gTestWrapper->TESTE(err == KErrNone, err);
+ gTestWrapper->TEST(retInt == KInt1);
+ TRAP(err, iDatabase.GetCustomPropertyL(KUid2, retReal));
+ gTestWrapper->TESTE(err == KErrNone, err);
+ gTestWrapper->TEST(retReal == KReal1);
+ TRAP(err, iDatabase.GetCustomPropertyL(KUid3, retPtr8));
+ gTestWrapper->TESTE(err == KErrNone, err);
+ gTestWrapper->TEST(retPtr8.Compare(KData8Bit1) == 0);
+ TRAP(err, iDatabase.GetCustomPropertyL(KUid4, retPtr16));
+ gTestWrapper->TESTE(err == KErrNone, err);
+ gTestWrapper->TEST(retPtr16.Compare(KData16Bit1) == 0);
+
+ TRAP(err, iBookmark.GetCustomPropertyL(KUid5, retInt));
+ gTestWrapper->TESTE(err == KErrNone, err);
+ gTestWrapper->TEST(retInt == KInt1);
+ TRAP(err, iBookmark.GetCustomPropertyL(KUid6, retReal));
+ gTestWrapper->TESTE(err == KErrNone, err);
+ gTestWrapper->TEST(retReal == KReal1);
+ TRAP(err, iBookmark.GetCustomPropertyL(KUid7, retPtr8));
+ gTestWrapper->TESTE(err == KErrNone, err);
+ gTestWrapper->TEST(retPtr8.Compare(KData8Bit1) == 0);
+ TRAP(err, iBookmark.GetCustomPropertyL(KUid8, retPtr16));
+ gTestWrapper->TESTE(err == KErrNone, err);
+ gTestWrapper->TEST(retPtr16.Compare(KData16Bit1) == 0);
+
+ TRAP(err, iFolder.GetCustomPropertyL(KUid9, retInt));
+ gTestWrapper->TESTE(err == KErrNone, err);
+ gTestWrapper->TEST(retInt == KInt1);
+ TRAP(err, iFolder.GetCustomPropertyL(KUid10, retReal));
+ gTestWrapper->TESTE(err == KErrNone, err);
+ gTestWrapper->TEST(retReal == KReal1);
+ TRAP(err, iFolder.GetCustomPropertyL(KUid11, retPtr8));
+ gTestWrapper->TESTE(err == KErrNone, err);
+ gTestWrapper->TEST(retPtr8.Compare(KData8Bit1) == 0);
+ TRAP(err, iFolder.GetCustomPropertyL(KUid12, retPtr16));
+ gTestWrapper->TESTE(err == KErrNone, err);
+ gTestWrapper->TEST(retPtr16.Compare(KData16Bit1) == 0);
+
+ TRAP(err, iDatabase.DeregisterDatabasePropertyL(KUid1));
+ gTestWrapper->TESTE(err == KErrNone, err);
+ TRAP(err, iDatabase.DeregisterDatabasePropertyL(KUid2));
+ gTestWrapper->TESTE(err == KErrNone, err);
+ TRAP(err, iDatabase.DeregisterDatabasePropertyL(KUid3));
+ gTestWrapper->TESTE(err == KErrNone, err);
+ TRAP(err, iDatabase.DeregisterDatabasePropertyL(KUid4));
+ gTestWrapper->TESTE(err == KErrNone, err);
+
+ TRAP(err, iDatabase.DeregisterBookmarkPropertyL(KUid5));
+ gTestWrapper->TESTE(err == KErrNone, err);
+ TRAP(err, iDatabase.DeregisterBookmarkPropertyL(KUid6));
+ gTestWrapper->TESTE(err == KErrNone, err);
+ TRAP(err, iDatabase.DeregisterBookmarkPropertyL(KUid7));
+ gTestWrapper->TESTE(err == KErrNone, err);
+ TRAP(err, iDatabase.DeregisterBookmarkPropertyL(KUid8));
+ gTestWrapper->TESTE(err == KErrNone, err);
+
+ TRAP(err, iDatabase.DeregisterFolderPropertyL(KUid9));
+ gTestWrapper->TESTE(err == KErrNone, err);
+ TRAP(err, iDatabase.DeregisterFolderPropertyL(KUid10));
+ gTestWrapper->TESTE(err == KErrNone, err);
+ TRAP(err, iDatabase.DeregisterFolderPropertyL(KUid11));
+ gTestWrapper->TESTE(err == KErrNone, err);
+ TRAP(err, iDatabase.DeregisterFolderPropertyL(KUid12));
+ gTestWrapper->TESTE(err == KErrNone, err);
+
+ iDatabase.CommitL();
+ CloseAll();
+ OpenAllL();
+
+ TRAP(err, iDatabase.GetCustomPropertyL(KUid1, retInt));
+ gTestWrapper->TESTE(err == KErrNotFound, err);
+ TRAP(err, iDatabase.GetCustomPropertyL(KUid2, retReal));
+ gTestWrapper->TESTE(err == KErrNotFound, err);
+ TRAP(err, iDatabase.GetCustomPropertyL(KUid3, retPtr8));
+ gTestWrapper->TESTE(err == KErrNotFound, err);
+ TRAP(err, iDatabase.GetCustomPropertyL(KUid4, retPtr16));
+ gTestWrapper->TESTE(err == KErrNotFound, err);
+
+ TRAP(err, iBookmark.GetCustomPropertyL(KUid5, retInt));
+ gTestWrapper->TESTE(err == KErrNotFound, err);
+ TRAP(err, iBookmark.GetCustomPropertyL(KUid6, retReal));
+ gTestWrapper->TESTE(err == KErrNotFound, err);
+ TRAP(err, iBookmark.GetCustomPropertyL(KUid7, retPtr8));
+ gTestWrapper->TESTE(err == KErrNotFound, err);
+ TRAP(err, iBookmark.GetCustomPropertyL(KUid8, retPtr16));
+ gTestWrapper->TESTE(err == KErrNotFound, err);
+
+ TRAP(err, iFolder.GetCustomPropertyL(KUid9, retInt));
+ gTestWrapper->TESTE(err == KErrNotFound, err);
+ TRAP(err, iFolder.GetCustomPropertyL(KUid10, retReal));
+ gTestWrapper->TESTE(err == KErrNotFound, err);
+ TRAP(err, iFolder.GetCustomPropertyL(KUid11, retPtr8));
+ gTestWrapper->TESTE(err == KErrNotFound, err);
+ TRAP(err, iFolder.GetCustomPropertyL(KUid12, retPtr16));
+ gTestWrapper->TESTE(err == KErrNotFound, err);
+
+ ShutdownL();
+
+ CleanupStack::PopAndDestroy(retDesC8);
+ CleanupStack::PopAndDestroy(retDesC16);
+ }
+
+void CDirtyTester::CheckAuthenticationL()
+ {
+ gTestWrapper->Next(_L("[Dirty tests] Check Authenication"));
+
+ SetupL();
+ iBookmark.SetUriL(KTxtUri);
+ gTestWrapper->TEST(iBookmark.AuthenticationL().Name().Compare(KTxtUser) == 0);
+ gTestWrapper->TEST(iBookmark.AuthenticationL().Password().Compare(KTxtPassword) == 0);
+ iDatabase.CommitL();
+ CloseAll();
+ OpenAllL();
+ gTestWrapper->TEST(iBookmark.AuthenticationL().Name().Compare(KTxtUser) == 0);
+ gTestWrapper->TEST(iBookmark.AuthenticationL().Password().Compare(KTxtPassword) == 0);
+ CAuthentication* newAuth = CAuthentication::NewL(KTxtNewUser(), KTxtNewPassword());
+ CleanupStack::PushL(newAuth);
+ iBookmark.SetAuthenticationL(*newAuth);
+ CleanupStack::PopAndDestroy(newAuth);
+ gTestWrapper->TEST(iBookmark.AuthenticationL().Name().Compare(KTxtNewUser) == 0);
+ gTestWrapper->TEST(iBookmark.AuthenticationL().Password().Compare(KTxtNewPassword) == 0);
+ iDatabase.CommitL();
+ CloseAll();
+ OpenAllL();
+ gTestWrapper->TEST(iBookmark.AuthenticationL().Name().Compare(KTxtNewUser) == 0);
+ gTestWrapper->TEST(iBookmark.AuthenticationL().Password().Compare(KTxtNewPassword) == 0);
+ ShutdownL();
+ }
+
+void SmallDatabaseTestL()
+ {
+ gTestWrapper->Next(_L("[Dirty tests] Small custom database property test"));
+
+ RBkDatabase db;
+ db.OpenL();
+ CleanupClosePushL(db);
+
+ TUid myuid = TUid::Uid(0x1234a);
+ TRAPD(error, db.RegisterDatabasePropertyL(myuid, Bookmark::EDataTypeInt));
+ gTestWrapper->TESTE(error == KErrNone, error);
+ db.CommitL();
+ db.Close();
+
+ TRAP(error, db.OpenL());
+ gTestWrapper->TESTE(error == KErrNone, error);
+ TUid myuid2 = TUid::Uid(0x1234b);
+ TRAP(error, db.RegisterDatabasePropertyL(myuid2, Bookmark::EDataTypeReal));
+ gTestWrapper->TESTE(error == KErrNone, error);
+ db.CommitL();
+ db.Close();
+
+ TRAP(error, db.OpenL());
+ gTestWrapper->TESTE(error == KErrNone, error);
+ TRAP(error, db.SetCustomPropertyL(myuid, 10));
+ gTestWrapper->TESTE(error == KErrNone, error);
+ db.CommitL();
+ db.Close();
+
+ TRAP(error, db.OpenL());
+ gTestWrapper->TESTE(error == KErrNone, error);
+ TReal real = 234.1234;
+ TRAP(error, db.SetCustomPropertyL(myuid2, real));
+ gTestWrapper->TESTE(error == KErrNone, error);
+ db.CommitL();
+ db.Close();
+
+ TRAP(error, db.OpenL());
+ gTestWrapper->TESTE(error == KErrNone, error);
+ TInt var = 0;
+ TRAP(error, db.GetCustomPropertyL(myuid, var));
+ gTestWrapper->TESTE(error == KErrNone, error);
+ gTestWrapper->TEST(var == 10);
+ db.CommitL();
+ db.Close();
+
+ TRAP(error, db.OpenL());
+ gTestWrapper->TESTE(error == KErrNone, error);
+ TReal realvar = 0;
+ TRAP(error, db.GetCustomPropertyL(myuid2, realvar));
+ gTestWrapper->TESTE(error == KErrNone, error);
+ gTestWrapper->TEST(var == 10);
+ db.CommitL();
+ db.Close();
+
+ TRAP(error, db.OpenL());
+ gTestWrapper->TESTE(error == KErrNone, error);
+ TRAP(error, db.DeregisterDatabasePropertyL(myuid));
+ gTestWrapper->TESTE(error == KErrNone, error);
+ db.CommitL();
+ db.Close();
+
+ TRAP(error, db.OpenL());
+ gTestWrapper->TESTE(error == KErrNone, error);
+ TRAP(error, db.DeregisterDatabasePropertyL(myuid2));
+ gTestWrapper->TESTE(error == KErrNone, error);
+ db.CommitL();
+
+ CleanupStack::PopAndDestroy(&db);
+ }
+
+void DeleteHomePageTestL()
+ {
+ gTestWrapper->Next(_L("[Dirty tests] Fix: DEF057872 Bookmarks home page is not updated when the home page bookmark is deleted"));
+
+ RBkDatabase db;
+ db.OpenL();
+ CleanupClosePushL(db);
+
+ RBkBookmark homepage;
+ TRAPD(err, homepage = db.OpenHomeL());
+ gTestWrapper->TESTE(err == KErrNotFound, err);
+ homepage = db.CreateBookmarkL();
+ db.SetHome(homepage);
+ homepage.Close();
+ TRAP(err, homepage = db.OpenHomeL());
+ gTestWrapper->TESTE(err == KErrNone, err);
+ homepage.Close();
+ db.CommitL();
+ db.Close();
+
+ TRAP(err, db.OpenL());
+ gTestWrapper->TESTE(err == KErrNone, err);
+ TRAP(err, homepage = db.OpenHomeL());
+ gTestWrapper->TESTE(err == KErrNone, err);
+ Bookmark::TItemId homeId = homepage.Id();
+ homepage.Close();
+ TRAP(err, db.DeleteItemL(homeId));
+ gTestWrapper->TESTE(err == KErrNone, err);
+ TRAP(err, homepage = db.OpenHomeL());
+ gTestWrapper->TESTE(err == KErrNotFound, err);
+ db.CommitL();
+ db.Close();
+
+ TRAP(err, db.OpenL());
+ gTestWrapper->TESTE(err == KErrNone, err);
+ TRAP(err, homepage = db.OpenHomeL());
+ gTestWrapper->TESTE(err == KErrNotFound, err);
+
+ CleanupStack::PopAndDestroy(&db);
+ }
+
+void CDirtyTester::DeleteBookmarksL()
+ {
+ RBkNode item;
+ TInt index = iRoot.Count() -1;
+ for (; index >= 0; --index)
+ {
+ item = iRoot.OpenItemL(index);
+ CleanupClosePushL(item);
+ iDatabase.DeleteItemL(item.Id(), ETrue);
+ CleanupStack::PopAndDestroy(&item);
+ }
+ iDatabase.CommitL();
+ }
+
+void DoDirtyTestsL(CTestWrapper* aTest)
+ {
+ gTestWrapper = aTest;
+ gTestWrapper->SetFile(KFilename);
+ gTestWrapper->Next(_L("*** Dirty tests ***"));
+
+ CDirtyTester* tester = CDirtyTester::NewL(KTxtTester1);
+ gTestWrapper->TEST(tester != NULL);
+ CleanupStack::PushL(tester);
+
+ tester->CheckTitleL();
+ tester->CheckDescriptionL();
+ tester->CheckTimeL();
+ tester->CheckAuthenticationL();
+ tester->CheckIconL();
+ tester->CheckPublicWritableL();
+ tester->CheckCustomPropertiesL();
+ tester->CheckConfigL();
+
+ CleanupStack::PopAndDestroy(tester);
+
+ SmallDatabaseTestL();
+ DeleteHomePageTestL();
+ }
+
+