diff -r 000000000000 -r b16258d2340f applayerpluginsandutils/bookmarksupport/test/t_cpropertyreg.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/applayerpluginsandutils/bookmarksupport/test/t_cpropertyreg.cpp Tue Feb 02 01:09:52 2010 +0200 @@ -0,0 +1,391 @@ +// 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 "testutils.h" +#include "propertyreg.h" +#include "bkmrkdb.h" +#include "bkmrk.h" +#include "bkmrkfolder.h" + +LOCAL_D CTestWrapper* gTestWrapper; + +_LIT(KFilename, "t_cpropertyreg.cpp"); + +_LIT(KTxtFolder, "propertyTEST folder 1"); + +_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}; + +LOCAL_D void GeneralTestsL() + { + CPropertyReg* propRegister = CPropertyReg::NewL(); + CleanupStack::PushL(propRegister); + + propRegister->RegisterPropertyL(CPropertyReg::EGroupDatabase, KUid1, Bookmark::EDataTypeInt); + propRegister->RegisterPropertyL(CPropertyReg::EGroupDatabase, KUid2, Bookmark::EDataTypeReal); + propRegister->RegisterPropertyL(CPropertyReg::EGroupDatabase, KUid3, Bookmark::EDataTypeDes8); + propRegister->RegisterPropertyL(CPropertyReg::EGroupDatabase, KUid4, Bookmark::EDataTypeDes16); + + propRegister->RegisterPropertyL(CPropertyReg::EGroupFolder, KUid5, Bookmark::EDataTypeInt); + propRegister->RegisterPropertyL(CPropertyReg::EGroupFolder, KUid6, Bookmark::EDataTypeReal); + propRegister->RegisterPropertyL(CPropertyReg::EGroupFolder, KUid7, Bookmark::EDataTypeDes8); + propRegister->RegisterPropertyL(CPropertyReg::EGroupFolder, KUid8, Bookmark::EDataTypeDes16); + + propRegister->RegisterPropertyL(CPropertyReg::EGroupBookmark, KUid9, Bookmark::EDataTypeInt); + propRegister->RegisterPropertyL(CPropertyReg::EGroupBookmark, KUid10, Bookmark::EDataTypeReal); + propRegister->RegisterPropertyL(CPropertyReg::EGroupBookmark, KUid11, Bookmark::EDataTypeDes8); + propRegister->RegisterPropertyL(CPropertyReg::EGroupBookmark, KUid12, Bookmark::EDataTypeDes16); + + gTestWrapper->TEST(propRegister->PropertyIndex(CPropertyReg::EGroupDatabase, KUid1, Bookmark::EDataTypeInt) != KErrNotFound); + gTestWrapper->TEST(propRegister->PropertyIndex(CPropertyReg::EGroupDatabase, KUid2, Bookmark::EDataTypeReal) != KErrNotFound); + gTestWrapper->TEST(propRegister->PropertyIndex(CPropertyReg::EGroupDatabase, KUid3, Bookmark::EDataTypeDes8) != KErrNotFound); + gTestWrapper->TEST(propRegister->PropertyIndex(CPropertyReg::EGroupDatabase, KUid4, Bookmark::EDataTypeDes16) != KErrNotFound); + + gTestWrapper->TEST(propRegister->PropertyIndex(CPropertyReg::EGroupFolder, KUid5, Bookmark::EDataTypeInt) != KErrNotFound); + gTestWrapper->TEST(propRegister->PropertyIndex(CPropertyReg::EGroupFolder, KUid6, Bookmark::EDataTypeReal) != KErrNotFound); + gTestWrapper->TEST(propRegister->PropertyIndex(CPropertyReg::EGroupFolder, KUid7, Bookmark::EDataTypeDes8) != KErrNotFound); + gTestWrapper->TEST(propRegister->PropertyIndex(CPropertyReg::EGroupFolder, KUid8, Bookmark::EDataTypeDes16) != KErrNotFound); + + gTestWrapper->TEST(propRegister->PropertyIndex(CPropertyReg::EGroupBookmark, KUid9, Bookmark::EDataTypeInt) != KErrNotFound); + gTestWrapper->TEST(propRegister->PropertyIndex(CPropertyReg::EGroupBookmark, KUid10, Bookmark::EDataTypeReal) != KErrNotFound); + gTestWrapper->TEST(propRegister->PropertyIndex(CPropertyReg::EGroupBookmark, KUid11, Bookmark::EDataTypeDes8) != KErrNotFound); + gTestWrapper->TEST(propRegister->PropertyIndex(CPropertyReg::EGroupBookmark, KUid12, Bookmark::EDataTypeDes16) != KErrNotFound); + + // some negative cases + gTestWrapper->TEST(propRegister->PropertyIndex(CPropertyReg::EGroupDatabase, KUid1, Bookmark::EDataTypeReal) == KErrNotFound); + gTestWrapper->TEST(propRegister->PropertyIndex(CPropertyReg::EGroupDatabase, KUid1, Bookmark::EDataTypeDes8) == KErrNotFound); + gTestWrapper->TEST(propRegister->PropertyIndex(CPropertyReg::EGroupDatabase, KUid1, Bookmark::EDataTypeDes16) == KErrNotFound); + gTestWrapper->TEST(propRegister->PropertyIndex(CPropertyReg::EGroupFolder, KUid1, Bookmark::EDataTypeInt) == KErrNotFound); + gTestWrapper->TEST(propRegister->PropertyIndex(CPropertyReg::EGroupBookmark, KUid1, Bookmark::EDataTypeInt) == KErrNotFound); + + propRegister->CommitL(); + CleanupStack::PopAndDestroy(propRegister); + propRegister = CPropertyReg::NewL(); + CleanupStack::PushL(propRegister); + + gTestWrapper->TEST(propRegister->PropertyIndex(CPropertyReg::EGroupDatabase, KUid1, Bookmark::EDataTypeInt) != KErrNotFound); + gTestWrapper->TEST(propRegister->PropertyIndex(CPropertyReg::EGroupDatabase, KUid2, Bookmark::EDataTypeReal) != KErrNotFound); + gTestWrapper->TEST(propRegister->PropertyIndex(CPropertyReg::EGroupDatabase, KUid3, Bookmark::EDataTypeDes8) != KErrNotFound); + gTestWrapper->TEST(propRegister->PropertyIndex(CPropertyReg::EGroupDatabase, KUid4, Bookmark::EDataTypeDes16) != KErrNotFound); + + gTestWrapper->TEST(propRegister->PropertyIndex(CPropertyReg::EGroupFolder, KUid5, Bookmark::EDataTypeInt) != KErrNotFound); + gTestWrapper->TEST(propRegister->PropertyIndex(CPropertyReg::EGroupFolder, KUid6, Bookmark::EDataTypeReal) != KErrNotFound); + gTestWrapper->TEST(propRegister->PropertyIndex(CPropertyReg::EGroupFolder, KUid7, Bookmark::EDataTypeDes8) != KErrNotFound); + gTestWrapper->TEST(propRegister->PropertyIndex(CPropertyReg::EGroupFolder, KUid8, Bookmark::EDataTypeDes16) != KErrNotFound); + + gTestWrapper->TEST(propRegister->PropertyIndex(CPropertyReg::EGroupBookmark, KUid9, Bookmark::EDataTypeInt) != KErrNotFound); + gTestWrapper->TEST(propRegister->PropertyIndex(CPropertyReg::EGroupBookmark, KUid10, Bookmark::EDataTypeReal) != KErrNotFound); + gTestWrapper->TEST(propRegister->PropertyIndex(CPropertyReg::EGroupBookmark, KUid11, Bookmark::EDataTypeDes8) != KErrNotFound); + gTestWrapper->TEST(propRegister->PropertyIndex(CPropertyReg::EGroupBookmark, KUid12, Bookmark::EDataTypeDes16) != KErrNotFound); + + // some negative cases + gTestWrapper->TEST(propRegister->PropertyIndex(CPropertyReg::EGroupDatabase, KUid1, Bookmark::EDataTypeReal) == KErrNotFound); + gTestWrapper->TEST(propRegister->PropertyIndex(CPropertyReg::EGroupDatabase, KUid1, Bookmark::EDataTypeDes8) == KErrNotFound); + gTestWrapper->TEST(propRegister->PropertyIndex(CPropertyReg::EGroupDatabase, KUid1, Bookmark::EDataTypeDes16) == KErrNotFound); + gTestWrapper->TEST(propRegister->PropertyIndex(CPropertyReg::EGroupFolder, KUid1, Bookmark::EDataTypeInt) == KErrNotFound); + gTestWrapper->TEST(propRegister->PropertyIndex(CPropertyReg::EGroupBookmark, KUid1, Bookmark::EDataTypeInt) == KErrNotFound); + + User::LeaveIfError(propRegister->DeregisterPropertyL(CPropertyReg::EGroupDatabase, KUid1)); + User::LeaveIfError(propRegister->DeregisterPropertyL(CPropertyReg::EGroupDatabase, KUid2)); + User::LeaveIfError(propRegister->DeregisterPropertyL(CPropertyReg::EGroupDatabase, KUid3)); + User::LeaveIfError(propRegister->DeregisterPropertyL(CPropertyReg::EGroupDatabase, KUid4)); + + User::LeaveIfError(propRegister->DeregisterPropertyL(CPropertyReg::EGroupFolder, KUid5)); + User::LeaveIfError(propRegister->DeregisterPropertyL(CPropertyReg::EGroupFolder, KUid6)); + User::LeaveIfError(propRegister->DeregisterPropertyL(CPropertyReg::EGroupFolder, KUid7)); + User::LeaveIfError(propRegister->DeregisterPropertyL(CPropertyReg::EGroupFolder, KUid8)); + + User::LeaveIfError(propRegister->DeregisterPropertyL(CPropertyReg::EGroupBookmark, KUid9)); + User::LeaveIfError(propRegister->DeregisterPropertyL(CPropertyReg::EGroupBookmark, KUid10)); + User::LeaveIfError(propRegister->DeregisterPropertyL(CPropertyReg::EGroupBookmark, KUid11)); + User::LeaveIfError(propRegister->DeregisterPropertyL(CPropertyReg::EGroupBookmark, KUid12)); + + gTestWrapper->TEST(propRegister->PropertyIndex(CPropertyReg::EGroupDatabase, KUid1, Bookmark::EDataTypeInt) == KErrNotFound); + gTestWrapper->TEST(propRegister->PropertyIndex(CPropertyReg::EGroupDatabase, KUid2, Bookmark::EDataTypeReal) == KErrNotFound); + gTestWrapper->TEST(propRegister->PropertyIndex(CPropertyReg::EGroupDatabase, KUid3, Bookmark::EDataTypeDes8) == KErrNotFound); + gTestWrapper->TEST(propRegister->PropertyIndex(CPropertyReg::EGroupDatabase, KUid4, Bookmark::EDataTypeDes16) == KErrNotFound); + + gTestWrapper->TEST(propRegister->PropertyIndex(CPropertyReg::EGroupFolder, KUid5, Bookmark::EDataTypeInt) == KErrNotFound); + gTestWrapper->TEST(propRegister->PropertyIndex(CPropertyReg::EGroupFolder, KUid6, Bookmark::EDataTypeReal) == KErrNotFound); + gTestWrapper->TEST(propRegister->PropertyIndex(CPropertyReg::EGroupFolder, KUid7, Bookmark::EDataTypeDes8) == KErrNotFound); + gTestWrapper->TEST(propRegister->PropertyIndex(CPropertyReg::EGroupFolder, KUid8, Bookmark::EDataTypeDes16) == KErrNotFound); + + gTestWrapper->TEST(propRegister->PropertyIndex(CPropertyReg::EGroupBookmark, KUid9, Bookmark::EDataTypeInt) == KErrNotFound); + gTestWrapper->TEST(propRegister->PropertyIndex(CPropertyReg::EGroupBookmark, KUid10, Bookmark::EDataTypeReal) == KErrNotFound); + gTestWrapper->TEST(propRegister->PropertyIndex(CPropertyReg::EGroupBookmark, KUid11, Bookmark::EDataTypeDes8) == KErrNotFound); + gTestWrapper->TEST(propRegister->PropertyIndex(CPropertyReg::EGroupBookmark, KUid12, Bookmark::EDataTypeDes16) == KErrNotFound); + + propRegister->CommitL(); + CleanupStack::PopAndDestroy(propRegister); + propRegister = CPropertyReg::NewL(); + CleanupStack::PushL(propRegister); + + gTestWrapper->TEST(propRegister->PropertyIndex(CPropertyReg::EGroupDatabase, KUid1, Bookmark::EDataTypeInt) == KErrNotFound); + gTestWrapper->TEST(propRegister->PropertyIndex(CPropertyReg::EGroupDatabase, KUid2, Bookmark::EDataTypeReal) == KErrNotFound); + gTestWrapper->TEST(propRegister->PropertyIndex(CPropertyReg::EGroupDatabase, KUid3, Bookmark::EDataTypeDes8) == KErrNotFound); + gTestWrapper->TEST(propRegister->PropertyIndex(CPropertyReg::EGroupDatabase, KUid4, Bookmark::EDataTypeDes16) == KErrNotFound); + + gTestWrapper->TEST(propRegister->PropertyIndex(CPropertyReg::EGroupFolder, KUid5, Bookmark::EDataTypeInt) == KErrNotFound); + gTestWrapper->TEST(propRegister->PropertyIndex(CPropertyReg::EGroupFolder, KUid6, Bookmark::EDataTypeReal) == KErrNotFound); + gTestWrapper->TEST(propRegister->PropertyIndex(CPropertyReg::EGroupFolder, KUid7, Bookmark::EDataTypeDes8) == KErrNotFound); + gTestWrapper->TEST(propRegister->PropertyIndex(CPropertyReg::EGroupFolder, KUid8, Bookmark::EDataTypeDes16) == KErrNotFound); + + gTestWrapper->TEST(propRegister->PropertyIndex(CPropertyReg::EGroupBookmark, KUid9, Bookmark::EDataTypeInt) == KErrNotFound); + gTestWrapper->TEST(propRegister->PropertyIndex(CPropertyReg::EGroupBookmark, KUid10, Bookmark::EDataTypeReal) == KErrNotFound); + gTestWrapper->TEST(propRegister->PropertyIndex(CPropertyReg::EGroupBookmark, KUid11, Bookmark::EDataTypeDes8) == KErrNotFound); + gTestWrapper->TEST(propRegister->PropertyIndex(CPropertyReg::EGroupBookmark, KUid12, Bookmark::EDataTypeDes16) == KErrNotFound); + + CleanupStack::PopAndDestroy(propRegister); + } + +LOCAL_D void DatabasePropertyTestsL() + { + TInt retIntVal; + TReal retRealVal; + HBufC* buf16 = HBufC::NewLC(Bookmark::KMaxDescriptorLength); + TPtr buf16Ptr(buf16->Des()); + HBufC8* buf8 = HBufC8::NewLC(Bookmark::KMaxDataLength); + TPtr8 buf8Ptr(buf8->Des()); + + CBookmarkDb* db = CBookmarkDb::NewL(Bookmark::EVisibilityDefault, NULL); + CleanupStack::PushL(db); + + CPropertyReg& propRegister = db->PropertyRegister(); + + propRegister.RegisterPropertyL(CPropertyReg::EGroupDatabase, KUid1, Bookmark::EDataTypeInt); + propRegister.RegisterPropertyL(CPropertyReg::EGroupDatabase, KUid2, Bookmark::EDataTypeReal); + propRegister.RegisterPropertyL(CPropertyReg::EGroupDatabase, KUid3, Bookmark::EDataTypeDes8); + propRegister.RegisterPropertyL(CPropertyReg::EGroupDatabase, KUid4, Bookmark::EDataTypeDes16); + + TInt err = db->CustomProperties().GetCustomProperty(KUid1, retIntVal); + gTestWrapper->TESTE(err == KErrNotFound, err); + TRAP(err, db->CustomProperties().SetCustomPropertyL(KUid5, KInt1)); + gTestWrapper->TESTE(err == Bookmark::KErrNotRegistered, err); + + TRAP(err, db->CustomProperties().SetCustomPropertyL(KUid1, KInt1)); + gTestWrapper->TESTE(err == KErrNone, err); + TRAP(err, db->CustomProperties().SetCustomPropertyL(KUid2, KReal1)); + gTestWrapper->TESTE(err == KErrNone, err); + TRAP(err, db->CustomProperties().SetCustomPropertyL(KUid3, KData8Bit1)); + gTestWrapper->TESTE(err == KErrNone, err); + TRAP(err, db->CustomProperties().SetCustomPropertyL(KUid4, KData16Bit1)); + gTestWrapper->TESTE(err == KErrNone, err); + + err = db->CustomProperties().GetCustomProperty(KUid1, retIntVal); + gTestWrapper->TESTE(err == KErrNone, err); + gTestWrapper->TEST(retIntVal == KInt1); + err = db->CustomProperties().GetCustomProperty(KUid2, retRealVal); + gTestWrapper->TESTE(err == KErrNone, err); + gTestWrapper->TEST(retRealVal == KReal1); + err = db->CustomProperties().GetCustomProperty(KUid3, buf8Ptr); + gTestWrapper->TESTE(err == KErrNone, err); + gTestWrapper->TEST(buf8Ptr.Compare(KData8Bit1) == 0); + err = db->CustomProperties().GetCustomProperty(KUid4, buf16Ptr); + gTestWrapper->TESTE(err == KErrNone, err); + gTestWrapper->TEST(buf16Ptr.Compare(KData16Bit1) == 0); + + db->CommitL(); + + CleanupStack::PopAndDestroy(db); + + db = CBookmarkDb::NewL(Bookmark::EVisibilityDefault, NULL); + CleanupStack::PushL(db); + + err = db->CustomProperties().GetCustomProperty(KUid1, retIntVal); + gTestWrapper->TESTE(err == KErrNone, err); + gTestWrapper->TEST(retIntVal == KInt1); + err = db->CustomProperties().GetCustomProperty(KUid2, retRealVal); + gTestWrapper->TESTE(err == KErrNone, err); + gTestWrapper->TEST(retRealVal == KReal1); + err = db->CustomProperties().GetCustomProperty(KUid3, buf8Ptr); + gTestWrapper->TESTE(err == KErrNone, err); + gTestWrapper->TEST(buf8Ptr.Compare(KData8Bit1) == 0); + err = db->CustomProperties().GetCustomProperty(KUid4, buf16Ptr); + gTestWrapper->TESTE(err == KErrNone, err); + gTestWrapper->TEST(buf16Ptr.Compare(KData16Bit1) == 0); + + User::LeaveIfError(propRegister.DeregisterPropertyL(CPropertyReg::EGroupDatabase, KUid1)); + User::LeaveIfError(propRegister.DeregisterPropertyL(CPropertyReg::EGroupDatabase, KUid2)); + User::LeaveIfError(propRegister.DeregisterPropertyL(CPropertyReg::EGroupDatabase, KUid3)); + User::LeaveIfError(propRegister.DeregisterPropertyL(CPropertyReg::EGroupDatabase, KUid4)); + + db->CommitL(); + + CleanupStack::PopAndDestroy(3); + } + +LOCAL_D void BookmarkPropertyTestsL() + { + TInt retIntVal; + TReal retRealVal; + HBufC* buf16 = HBufC::NewLC(Bookmark::KMaxDescriptorLength); + TPtr buf16Ptr(buf16->Des()); + HBufC8* buf8 = HBufC8::NewLC(Bookmark::KMaxDataLength); + TPtr8 buf8Ptr(buf8->Des()); + + CBookmarkDb* db = CBookmarkDb::NewL(Bookmark::EVisibilityDefault, NULL); + CleanupStack::PushL(db); + + CPropertyReg& propRegister = db->PropertyRegister(); + + propRegister.RegisterPropertyL(CPropertyReg::EGroupFolder, KUid5, Bookmark::EDataTypeInt); + propRegister.RegisterPropertyL(CPropertyReg::EGroupFolder, KUid6, Bookmark::EDataTypeReal); + propRegister.RegisterPropertyL(CPropertyReg::EGroupFolder, KUid7, Bookmark::EDataTypeDes8); + propRegister.RegisterPropertyL(CPropertyReg::EGroupFolder, KUid8, Bookmark::EDataTypeDes16); + + propRegister.RegisterPropertyL(CPropertyReg::EGroupBookmark, KUid9, Bookmark::EDataTypeInt); + propRegister.RegisterPropertyL(CPropertyReg::EGroupBookmark, KUid10, Bookmark::EDataTypeReal); + propRegister.RegisterPropertyL(CPropertyReg::EGroupBookmark, KUid11, Bookmark::EDataTypeDes8); + propRegister.RegisterPropertyL(CPropertyReg::EGroupBookmark, KUid12, Bookmark::EDataTypeDes16); + + CBookmarkFolder& folder = db->CreateFolderL(KTxtFolder, db->RootL()); + CBookmark& bookmark = db->CreateBookmarkL(folder); + + CBkmrkProperties& fldProperties = folder.BkmrkPropertiesL(); + TInt err = fldProperties.CustomProperties().GetCustomProperty(KUid5, retIntVal); + gTestWrapper->TESTE(err == KErrNotFound, err); + TRAP(err, fldProperties.CustomProperties().SetCustomPropertyL(KUid1, KInt1)); + gTestWrapper->TESTE(err == Bookmark::KErrNotRegistered, err); + + TRAP(err, fldProperties.CustomProperties().SetCustomPropertyL(KUid5, KInt1)); + gTestWrapper->TESTE(err == KErrNone, err); + TRAP(err, fldProperties.CustomProperties().SetCustomPropertyL(KUid6, KReal1)); + gTestWrapper->TESTE(err == KErrNone, err); + TRAP(err, fldProperties.CustomProperties().SetCustomPropertyL(KUid7, KData8Bit1)); + gTestWrapper->TESTE(err == KErrNone, err); + TRAP(err, fldProperties.CustomProperties().SetCustomPropertyL(KUid8, KData16Bit1)); + gTestWrapper->TESTE(err == KErrNone, err); + + err = fldProperties.CustomProperties().GetCustomProperty(KUid5, retIntVal); + gTestWrapper->TESTE(err == KErrNone, err); + gTestWrapper->TEST(retIntVal == KInt1); + err = fldProperties.CustomProperties().GetCustomProperty(KUid6, retRealVal); + gTestWrapper->TESTE(err == KErrNone, err); + gTestWrapper->TEST(retRealVal == KReal1); + err = fldProperties.CustomProperties().GetCustomProperty(KUid7, buf8Ptr); + gTestWrapper->TESTE(err == KErrNone, err); + gTestWrapper->TEST(buf8Ptr.Compare(KData8Bit1) == 0); + err = fldProperties.CustomProperties().GetCustomProperty(KUid8, buf16Ptr); + gTestWrapper->TESTE(err == KErrNone, err); + gTestWrapper->TEST(buf16Ptr.Compare(KData16Bit1) == 0); + + CBkmrkExtendedProperties& properties = bookmark.BkmrkExtendedPropertiesL(); + err = properties.CustomProperties().GetCustomProperty(KUid9, retIntVal); + gTestWrapper->TESTE(err == KErrNotFound, err); + + TRAP(err, properties.CustomProperties().SetCustomPropertyL(KUid9, KInt1)); + gTestWrapper->TESTE(err == KErrNone, err); + TRAP(err, properties.CustomProperties().SetCustomPropertyL(KUid10, KReal1)); + gTestWrapper->TESTE(err == KErrNone, err); + TRAP(err, properties.CustomProperties().SetCustomPropertyL(KUid11, KData8Bit1)); + gTestWrapper->TESTE(err == KErrNone, err); + TRAP(err, properties.CustomProperties().SetCustomPropertyL(KUid12, KData16Bit1)); + gTestWrapper->TESTE(err == KErrNone, err); + + err = properties.CustomProperties().GetCustomProperty(KUid9, retIntVal); + gTestWrapper->TESTE(err == KErrNone, err); + gTestWrapper->TEST(retIntVal == KInt1); + err = properties.CustomProperties().GetCustomProperty(KUid10, retRealVal); + gTestWrapper->TESTE(err == KErrNone, err); + gTestWrapper->TEST(retRealVal == KReal1); + err = properties.CustomProperties().GetCustomProperty(KUid11, buf8Ptr); + gTestWrapper->TESTE(err == KErrNone, err); + gTestWrapper->TEST(buf8Ptr.Compare(KData8Bit1) == 0); + err = properties.CustomProperties().GetCustomProperty(KUid12, buf16Ptr); + gTestWrapper->TESTE(err == KErrNone, err); + gTestWrapper->TEST(buf16Ptr.Compare(KData16Bit1) == 0); + + db->CommitL(); + + CleanupStack::PopAndDestroy(db); + + db = CBookmarkDb::NewL(Bookmark::EVisibilityDefault, NULL); + CleanupStack::PushL(db); + + CBookmarkFolder& folder2 = static_cast(db->RootL().At(1)); + CBkmrkProperties& fldProperties2 = folder2.BkmrkPropertiesL(); + + err = fldProperties2.CustomProperties().GetCustomProperty(KUid5, retIntVal); + gTestWrapper->TESTE(err == KErrNone, err); + gTestWrapper->TEST(retIntVal == KInt1); + err = fldProperties2.CustomProperties().GetCustomProperty(KUid6, retRealVal); + gTestWrapper->TESTE(err == KErrNone, err); + gTestWrapper->TEST(retRealVal == KReal1); + err = fldProperties2.CustomProperties().GetCustomProperty(KUid7, buf8Ptr); + gTestWrapper->TESTE(err == KErrNone, err); + gTestWrapper->TEST(buf8Ptr.Compare(KData8Bit1) == 0); + err = fldProperties2.CustomProperties().GetCustomProperty(KUid8, buf16Ptr); + gTestWrapper->TESTE(err == KErrNone, err); + gTestWrapper->TEST(buf16Ptr.Compare(KData16Bit1) == 0); + + CBookmark& bookmark2 = static_cast(folder2.At(0)); + CBkmrkExtendedProperties& properties2 = bookmark2.BkmrkExtendedPropertiesL(); + + err = properties2.CustomProperties().GetCustomProperty(KUid9, retIntVal); + gTestWrapper->TESTE(err == KErrNone, err); + gTestWrapper->TEST(retIntVal == KInt1); + err = properties2.CustomProperties().GetCustomProperty(KUid10, retRealVal); + gTestWrapper->TESTE(err == KErrNone, err); + gTestWrapper->TEST(retRealVal == KReal1); + err = properties2.CustomProperties().GetCustomProperty(KUid11, buf8Ptr); + gTestWrapper->TESTE(err == KErrNone, err); + gTestWrapper->TEST(buf8Ptr.Compare(KData8Bit1) == 0); + err = properties2.CustomProperties().GetCustomProperty(KUid12, buf16Ptr); + gTestWrapper->TESTE(err == KErrNone, err); + gTestWrapper->TEST(buf16Ptr.Compare(KData16Bit1) == 0); + + User::LeaveIfError(propRegister.DeregisterPropertyL(CPropertyReg::EGroupFolder, KUid5)); + User::LeaveIfError(propRegister.DeregisterPropertyL(CPropertyReg::EGroupFolder, KUid6)); + User::LeaveIfError(propRegister.DeregisterPropertyL(CPropertyReg::EGroupFolder, KUid7)); + User::LeaveIfError(propRegister.DeregisterPropertyL(CPropertyReg::EGroupFolder, KUid8)); + + User::LeaveIfError(propRegister.DeregisterPropertyL(CPropertyReg::EGroupBookmark, KUid9)); + User::LeaveIfError(propRegister.DeregisterPropertyL(CPropertyReg::EGroupBookmark, KUid10)); + User::LeaveIfError(propRegister.DeregisterPropertyL(CPropertyReg::EGroupBookmark, KUid11)); + User::LeaveIfError(propRegister.DeregisterPropertyL(CPropertyReg::EGroupBookmark, KUid12)); + + db->DeleteItemL(folder2.Id(), ETrue); + + db->CommitL(); + + CleanupStack::PopAndDestroy(3); + } + +void DoCPropertyRegUnitL(CTestWrapper* aTest) + { + gTestWrapper = aTest; + gTestWrapper->SetFile(KFilename); + gTestWrapper->Next(_L("*** CPropertyReg tests ***")); + + GeneralTestsL(); + + DatabasePropertyTestsL(); + BookmarkPropertyTestsL(); + }