--- /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<CBookmarkFolder&>(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<CBookmark&>(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();
+ }