diff -r 000000000000 -r b16258d2340f applayerpluginsandutils/bookmarksupport/test/tbmtests.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/applayerpluginsandutils/bookmarksupport/test/tbmtests.cpp Tue Feb 02 01:09:52 2010 +0200 @@ -0,0 +1,468 @@ +// Copyright (c) 2006-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 "tbmtests.h" +#include +#include "testutils.h" + +_LIT ( KTxtFolder1, "Folder 1" ); +_LIT ( KTxtFolder1_1, "Folder 1.1" ); +_LIT ( KTxtFolder1_2, "Folder 1.2" ); +_LIT ( KTxtFolder1_2_1, "Folder 1.2.1" ); +_LIT ( KTxtFolder1_2_2, "Folder 1.2.2" ); +_LIT ( KTxtFolder1_3, "Folder 1.3" ); + +_LIT ( KTxtFolder2, "Folder 2" ); +_LIT ( KTxtFolder2_1, "Folder 2.1" ); +_LIT ( KTxtFolder2_2, "Folder 2.2" ); +_LIT ( KTxtFolder2_2_1, "Folder 2.2.1" ); +_LIT ( KTxtFolder2_2_2, "Folder 2.2.2" ); +_LIT ( KTxtFolder2_2_3, "Folder 2.2.3" ); +_LIT ( KTxtFolder2_2_4, "Folder 2.2.4" ); + +_LIT ( KTxtFolder3, "Folder 3" ); +_LIT ( KTxtFolder3_1, "Folder 3.1" ); +_LIT ( KTxtFolder3_1_1, "Folder 3.1.1" ); +_LIT ( KTxtFolder3_1_2, "Folder 3.1.2" ); +_LIT ( KTxtFolder3_1_3, "Folder 3.1.3" ); +_LIT ( KTxtFolder3_1_4, "Folder 3.1.4" ); +_LIT ( KTxtFolder3_2, "Folder 3.2" ); + +_LIT8 ( KAuthUri, "sip:user:pass@location.com:1666;transport=tcp;x=123;df=223?asd=b" ); +_LIT8 ( KAuthName2, "joe" ); +_LIT8 ( KAuthPassword2, "pswd1234" ); + + +_LIT8 (KIconData, "****4644372131**7*&879"); +_LIT8 (KIconData2, "****abcdefghij**7*&xyz"); + +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}; +const TUid KUid13 = {0x1111}; +const TUid KUid14 = {0x2222}; +const TUid KUid15 = {0x3333}; +const TUid KUid16 = {0x4444}; +const TUid KUid17 = {0x5555}; +const TUid KUid18 = {0x6666}; +const TUid KUid19 = {0x7777}; +const TUid KUid20 = {0x8888}; +const TUid KUid21 = {0x9999}; +const TUid KUid22 = {0xAAAA}; +const TUid KUid23 = {0xBBBB}; +const TUid KUid24 = {0xCCCC}; + +const TInt KMaxTestLength = 50; + +TInt intValue1 = 1200; +TReal realValue1 = 67.456; +TInt intValue2 = 2000; +TReal realValue2 = 255.123; +TInt intValue3 = 3500; +TReal realValue3 = 289.567; + +TInt intValue4 = 1200; +TReal realValue4 = 67.456; +TInt intValue5 = 2000; +TReal realValue5 = 255.123; +TInt intValue6 = 3500; +TReal realValue6 = 289.567; + +_LIT8 ( KDbValue8, "Database 8-bit value1" ); +_LIT ( KDbValue, "Database 16-bit value1" ); +_LIT8 ( KFldrValue8, "Folder 8-bit value1" ); +_LIT ( KFldrValue, "Folder 16-bit value1" ); +_LIT8 ( KBkmrkValue8, "Bookmark 8-bit value1" ); +_LIT ( KBkmrkValue, "Bookmark 16-bit value1" ); + +_LIT8 ( KDb2Value8, "Database 8-bit value2" ); +_LIT ( KDb2Value, "Database 16-bit value2" ); +_LIT8 ( KFldr2Value8, "Folder 8-bit value2" ); +_LIT ( KFldr2Value, "Folder 16-bit value2" ); +_LIT8 ( KBkmrk2Value8, "Bookmark 8-bit value2" ); +_LIT ( KBkmrk2Value, "Bookmark 16-bit value2" ); + + +CBmTests* CBmTests::NewL ( CTestWrapper& aTestWrapper ) + { + CBmTests* self = new ( ELeave )CBmTests ( aTestWrapper ); + return self; + } + +CBmTests::CBmTests ( CTestWrapper& aTestWrapper ) +: iTestWrapper ( aTestWrapper ) + { + + } + +CBmTests::~CBmTests () + { + CloseDb (); + } + +void CBmTests::OpenDbL () + { + iBkDatabase.OpenL (); + } + +void CBmTests::CloseDb () + { + iBkDatabase.Close (); + } + +RBkFolder CBmTests::CreateFolderLC ( const TDesC& aFolderName, RBkFolder* aParent ) + { + RBkFolder folder; + TRAPD ( err, folder = iBkDatabase.CreateFolderL ( aFolderName, aParent ) ); + User::LeaveIfError ( err ); + CleanupClosePushL ( folder ); + return folder; + } + +RBkFolder CBmTests::OpenFolderLC ( const TDesC& aFolderName ) + { + RBkFolder folder = iBkDatabase.OpenFolderL ( aFolderName ); + CleanupClosePushL ( folder ); + return folder; + } + +void CBmTests::CommitDbL () + { + iBkDatabase.CommitL (); + } + +void CBmTests::SetBkmrkDbPropertiesL () + { + RBkBookmark home = iBkDatabase.CreateBookmarkL (); + CleanupClosePushL ( home ); + + home.SetTitleL ( _L ( "Home bookmark" ) ); + + iBkDatabase.SetHome ( home ); + iBkDatabase.SetHomePageTextL ( _L ( "My home page text" ) ); + iBkDatabase.SetSearchUriL ( _L8 ( "www.searchuri.com" ) ); + + CleanupStack::PopAndDestroy ( &home ); // home + } + +void CBmTests::UpdateBkmrkDbPropertiesL () + { + RBkBookmark home = iBkDatabase.CreateBookmarkL (); + CleanupClosePushL ( home ); + + home.SetTitleL ( _L ( "New home bookmark" ) ); + + iBkDatabase.SetHome ( home ); + iBkDatabase.SetHomePageTextL ( _L ( "My new home page text" ) ); + iBkDatabase.SetSearchUriL ( _L8 ( "www.newsearchuri.com" ) ); + + CleanupStack::PopAndDestroy ( &home ); // home + } + +void CBmTests::CreateTreeL () + { + // Create bookmarks under root + RBkBookmark bookmark1 = iBkDatabase.CreateBookmarkL (); + CleanupClosePushL ( bookmark1 ); + RBkBookmark bookmark2 = iBkDatabase.CreateBookmarkL (); + CleanupClosePushL ( bookmark2 ); + + bookmark1.SetTitleL ( _L("Google") ); + bookmark2.SetTitleL ( _L("Hotmail") ); + + bookmark1.SetUriL ( KAuthUri ); + CAuthentication* auth = CAuthentication::NewL(KAuthName2, KAuthPassword2, CAuthentication::EBasic); + CleanupStack::PushL(auth); + bookmark2.SetAuthenticationL(*auth); + CleanupStack::PopAndDestroy ( auth ); + + CleanupStack::PopAndDestroy ( 2 ); // bookmark1, bookmark2 + + // Create folder1 + RBkFolder folder1 = iBkDatabase.CreateFolderL ( KTxtFolder1() ); + CleanupClosePushL ( folder1 ); + // Create sub-folders under folder1 + RBkFolder folder1_1 = iBkDatabase.CreateFolderL ( KTxtFolder1_1(), &folder1 ); + CleanupClosePushL ( folder1_1 ); + RBkFolder folder1_2 = iBkDatabase.CreateFolderL ( KTxtFolder1_2(), &folder1 ); + CleanupClosePushL ( folder1_2 ); + RBkFolder folder1_3 = iBkDatabase.CreateFolderL ( KTxtFolder1_3(), &folder1 ); + CleanupClosePushL ( folder1_3 ); + RBkFolder folder1_2_1 = iBkDatabase.CreateFolderL ( KTxtFolder1_2_1(), &folder1_2 ); + CleanupClosePushL ( folder1_2_1 ); + RBkFolder folder1_2_2 = iBkDatabase.CreateFolderL ( KTxtFolder1_2_2(), &folder1_2 ); + CleanupClosePushL ( folder1_2_2 ); + + // Create bookmarks under folder1 + bookmark1 = iBkDatabase.CreateBookmarkL ( &folder1 ); + CleanupClosePushL ( bookmark1 ); + bookmark2 = iBkDatabase.CreateBookmarkL ( &folder1 ); + CleanupClosePushL ( bookmark2 ); + bookmark1.SetTitleL ( _L ( "ESPN Sports" ) ); + bookmark2.SetTitleL ( _L ( "Star Sports" ) ); + + Bookmark::TAttachmentId iconId = iBkDatabase.CreateIconL ( KIconData ); + bookmark1.SetIconIdL ( iconId ); + + CleanupStack::PopAndDestroy ( 2 ); // bookmark1, bookmark2 + + CleanupStack::PopAndDestroy ( 6 ); // folder1, folder1_1, folder1_2, folder1_3, + // folder1_2_1, folder1_2_2 + + RBkFolder folder2 = iBkDatabase.CreateFolderL ( KTxtFolder2() ); + CleanupClosePushL ( folder2 ); + RBkFolder folder2_1 = iBkDatabase.CreateFolderL ( KTxtFolder2_1(), &folder2 ); + CleanupClosePushL ( folder2_1 ); + RBkFolder folder2_2 = iBkDatabase.CreateFolderL ( KTxtFolder2_2(), &folder2 ); + CleanupClosePushL ( folder2_2 ); + RBkFolder folder2_2_1 = iBkDatabase.CreateFolderL ( KTxtFolder2_2_1(), &folder2_2 ); + CleanupClosePushL ( folder2_2_1 ); + RBkFolder folder2_2_2 = iBkDatabase.CreateFolderL ( KTxtFolder2_2_2(), &folder2_2 ); + CleanupClosePushL ( folder2_2_2 ); + + CleanupStack::PopAndDestroy ( 5 ); // folder2, folder2_1, folder2_2, + // folder2_2_1, folder2_2_2 + + RBkFolder folder3 = iBkDatabase.CreateFolderL ( KTxtFolder3() ); + CleanupClosePushL ( folder3 ); + Bookmark::TAttachmentId iconId2 = iBkDatabase.CreateIconL ( KIconData2 ); + folder3.SetIconIdL ( iconId2 ); + RBkFolder folder3_1 = iBkDatabase.CreateFolderL ( KTxtFolder3_1(), &folder3 ); + CleanupClosePushL ( folder3_1 ); + RBkFolder folder3_2 = iBkDatabase.CreateFolderL ( KTxtFolder3_2(), &folder3 ); + CleanupClosePushL ( folder3_2 ); + RBkFolder folder3_1_1 = iBkDatabase.CreateFolderL ( KTxtFolder3_1_1(), &folder3_1 ); + CleanupClosePushL ( folder3_1_1 ); + RBkFolder folder3_1_4 = iBkDatabase.CreateFolderL ( KTxtFolder3_1_4(), &folder3_1 ); + CleanupClosePushL ( folder3_1_4 ); + + CleanupStack::PopAndDestroy ( 5 ); // folder3, folder3_1, folder3_2, folder3_1_1, folder3_1_4 + } + +void CBmTests::ModifyTreeL () + { + RBkFolder folder2_2 = iBkDatabase.OpenFolderL ( KTxtFolder2_2() ); + CleanupClosePushL ( folder2_2 ); + RBkFolder folder2_2_3 = iBkDatabase.CreateFolderL ( KTxtFolder2_2_3() ); + CleanupClosePushL ( folder2_2_3 ); + RBkFolder folder2_2_4 = iBkDatabase.CreateFolderL ( KTxtFolder2_2_4() ); + CleanupClosePushL ( folder2_2_4 ); + + folder2_2.AppendL ( folder2_2_3 ); + folder2_2.AppendL ( folder2_2_4 ); + + CleanupStack::PopAndDestroy ( 3 ); // folder2_2, folder2_2_3, folder2_2_4 + + RBkFolder folder3_1 = iBkDatabase.OpenFolderL ( KTxtFolder3_1() ); + CleanupClosePushL ( folder3_1 ); + RBkFolder folder3_1_2 = iBkDatabase.CreateFolderL ( KTxtFolder3_1_2() ); + CleanupClosePushL ( folder3_1_2 ); + RBkFolder folder3_1_3 = iBkDatabase.CreateFolderL ( KTxtFolder3_1_3() ); + CleanupClosePushL ( folder3_1_3 ); + folder3_1.InsertL ( folder3_1_2, 1 ); + folder3_1.InsertL ( folder3_1_3, 2 ); + + CleanupStack::PopAndDestroy ( 3 ); // folder3_1, folder3_1_2, folder3_3 + + } + +void CBmTests::CreateCustomPropertiesL () + { + iBkDatabase.RegisterDatabasePropertyL ( KUid1, Bookmark::EDataTypeInt ); + iBkDatabase.RegisterDatabasePropertyL ( KUid2, Bookmark::EDataTypeReal ); + iBkDatabase.RegisterDatabasePropertyL ( KUid3, Bookmark::EDataTypeDes8 ); + iBkDatabase.RegisterDatabasePropertyL ( KUid4, Bookmark::EDataTypeDes16 ); + + iBkDatabase.RegisterBookmarkPropertyL ( KUid5, Bookmark::EDataTypeInt ); + iBkDatabase.RegisterBookmarkPropertyL ( KUid6, Bookmark::EDataTypeReal ); + iBkDatabase.RegisterBookmarkPropertyL ( KUid7, Bookmark::EDataTypeDes8 ); + iBkDatabase.RegisterBookmarkPropertyL ( KUid8, Bookmark::EDataTypeDes16 ); + + iBkDatabase.RegisterFolderPropertyL ( KUid9, Bookmark::EDataTypeInt ); + iBkDatabase.RegisterFolderPropertyL ( KUid10, Bookmark::EDataTypeReal ); + iBkDatabase.RegisterFolderPropertyL ( KUid11, Bookmark::EDataTypeDes8 ); + iBkDatabase.RegisterFolderPropertyL ( KUid12, Bookmark::EDataTypeDes16 ); + + iBkDatabase.RegisterDatabasePropertyL ( KUid13, Bookmark::EDataTypeInt ); + iBkDatabase.RegisterDatabasePropertyL ( KUid14, Bookmark::EDataTypeReal ); + iBkDatabase.RegisterDatabasePropertyL ( KUid15, Bookmark::EDataTypeDes8 ); + iBkDatabase.RegisterDatabasePropertyL ( KUid16, Bookmark::EDataTypeDes16 ); + + iBkDatabase.RegisterBookmarkPropertyL ( KUid17, Bookmark::EDataTypeInt ); + iBkDatabase.RegisterBookmarkPropertyL ( KUid18, Bookmark::EDataTypeReal ); + iBkDatabase.RegisterBookmarkPropertyL ( KUid19, Bookmark::EDataTypeDes8 ); + iBkDatabase.RegisterBookmarkPropertyL ( KUid20, Bookmark::EDataTypeDes16 ); + + iBkDatabase.RegisterFolderPropertyL ( KUid21, Bookmark::EDataTypeInt ); + iBkDatabase.RegisterFolderPropertyL ( KUid22, Bookmark::EDataTypeReal ); + iBkDatabase.RegisterFolderPropertyL ( KUid23, Bookmark::EDataTypeDes8 ); + iBkDatabase.RegisterFolderPropertyL ( KUid24, Bookmark::EDataTypeDes16 ); + + } + +void CBmTests::SetCustomPropertiesValueL () + { + iBkDatabase.SetCustomPropertyL ( KUid1, intValue1 ); + iBkDatabase.SetCustomPropertyL ( KUid2, realValue1 ); + iBkDatabase.SetCustomPropertyL ( KUid3, KDbValue8 ); + iBkDatabase.SetCustomPropertyL ( KUid4, KDbValue ); + + RBkBookmark bookmark1 = iBkDatabase.OpenBookmarkL ( 1 ); + CleanupClosePushL ( bookmark1 ); + bookmark1.SetCustomPropertyL ( KUid5, intValue2 ); + bookmark1.SetCustomPropertyL ( KUid6, realValue2 ); + bookmark1.SetCustomPropertyL ( KUid7, KBkmrkValue8 ); + bookmark1.SetCustomPropertyL ( KUid8, KBkmrkValue ); + CleanupStack::PopAndDestroy ( 1 ); // bookmark1 + + RBkFolder folder1 = iBkDatabase.OpenFolderL ( KTxtFolder1 ); + CleanupClosePushL ( folder1 ); + folder1.SetCustomPropertyL ( KUid9, intValue3 ); + folder1.SetCustomPropertyL ( KUid10, realValue3 ); + folder1.SetCustomPropertyL ( KUid11, KFldrValue8 ); + folder1.SetCustomPropertyL ( KUid12, KFldrValue ); + CleanupStack::PopAndDestroy ( &folder1 ); + + iBkDatabase.SetCustomPropertyL ( KUid13, intValue4 ); + iBkDatabase.SetCustomPropertyL ( KUid14, realValue4 ); + iBkDatabase.SetCustomPropertyL ( KUid15, KDb2Value8 ); + iBkDatabase.SetCustomPropertyL ( KUid16, KDb2Value ); + + RBkBookmark bookmark2 = iBkDatabase.OpenBookmarkL ( 2 ); + CleanupClosePushL ( bookmark2 ); + bookmark2.SetCustomPropertyL ( KUid17, intValue5 ); + bookmark2.SetCustomPropertyL ( KUid18, realValue5 ); + bookmark2.SetCustomPropertyL ( KUid19, KBkmrk2Value8 ); + bookmark2.SetCustomPropertyL ( KUid20, KBkmrk2Value ); + CleanupStack::PopAndDestroy ( &bookmark2 ); + + // Reset the custom property value for bookmark1 + bookmark1 = iBkDatabase.OpenBookmarkL ( 1 ); + CleanupClosePushL ( bookmark1 ); + bookmark1.SetCustomPropertyL ( KUid17, intValue5 ); + bookmark1.SetCustomPropertyL ( KUid18, realValue5 ); + bookmark1.SetCustomPropertyL ( KUid19, KBkmrk2Value8 ); + bookmark1.SetCustomPropertyL ( KUid20, KBkmrk2Value ); + CleanupStack::PopAndDestroy ( 1 ); // bookmark1 + + + RBkFolder folder2 = iBkDatabase.OpenFolderL ( KTxtFolder2 ); + CleanupClosePushL ( folder2 ); + folder2.SetCustomPropertyL ( KUid21, intValue6 ); + folder2.SetCustomPropertyL ( KUid22, realValue6 ); + folder2.SetCustomPropertyL ( KUid23, KFldr2Value8 ); + folder2.SetCustomPropertyL ( KUid24, KFldr2Value ); + CleanupStack::PopAndDestroy ( &folder2 ); + folder1 = iBkDatabase.OpenFolderL ( KTxtFolder1 ); + CleanupClosePushL ( folder1 ); + folder1.SetCustomPropertyL ( KUid21, intValue6 ); + folder1.SetCustomPropertyL ( KUid22, realValue6 ); + folder1.SetCustomPropertyL ( KUid23, KFldr2Value8 ); + folder1.SetCustomPropertyL ( KUid24, KFldr2Value ); + CleanupStack::PopAndDestroy ( &folder1 ); + } + +void CBmTests::ReadCustomPropertiesValueL () + { + HBufC* retDesC16 = HBufC::NewLC(KMaxTestLength); + TPtr retPtr16 = retDesC16->Des(); + HBufC8* retDesC8 = HBufC8::NewLC(KMaxTestLength * 2); + TPtr8 retPtr8 = retDesC8->Des(); + TReal realValue; + TInt intValue; + + iBkDatabase.GetCustomPropertyL ( KUid1, intValue ); + iTestWrapper.TEST ( intValue == intValue1 ); + + iBkDatabase.GetCustomPropertyL ( KUid2, realValue ); + iTestWrapper.TEST ( realValue == realValue1 ); + + iBkDatabase.GetCustomPropertyL ( KUid3, retPtr8 ); + iTestWrapper.TEST(retPtr8.Compare(KDbValue8) == 0); + + iBkDatabase.GetCustomPropertyL ( KUid4, retPtr16 ); + iTestWrapper.TEST(retPtr16.Compare(KDbValue) == 0); + + RBkBookmark bookmark2 = iBkDatabase.OpenBookmarkL ( 2 ); + CleanupClosePushL ( bookmark2 ); + + bookmark2.GetCustomPropertyL ( KUid17, intValue ); + iTestWrapper.TEST ( intValue == intValue5 ); + + bookmark2.GetCustomPropertyL ( KUid18, realValue ); + iTestWrapper.TEST ( realValue == realValue5 ); + + bookmark2.GetCustomPropertyL ( KUid19, retPtr8 ); + iTestWrapper.TEST(retPtr8.Compare ( KBkmrk2Value8 ) == 0); + + bookmark2.GetCustomPropertyL ( KUid20, retPtr16 ); + iTestWrapper.TEST(retPtr16.Compare ( KBkmrk2Value ) == 0); + + RBkFolder folder2 = iBkDatabase.OpenFolderL ( KTxtFolder2 ); + CleanupClosePushL ( folder2 ); + folder2.GetCustomPropertyL ( KUid21, intValue ); + iTestWrapper.TEST ( intValue == intValue6 ); + + folder2.GetCustomPropertyL ( KUid22, realValue ); + iTestWrapper.TEST ( realValue == realValue6 ); + + folder2.GetCustomPropertyL ( KUid23, retPtr8 ); + iTestWrapper.TEST(retPtr8.Compare ( KFldr2Value8 ) == 0); + + folder2.GetCustomPropertyL ( KUid24, retPtr16 ); + iTestWrapper.TEST(retPtr16.Compare ( KFldr2Value ) == 0); + + CleanupStack::PopAndDestroy ( 4 ); // retDesC16, retDesC8, bookmark2, folder2 + } + +void CBmTests::UpdateTreeL () + { + iBkDatabase.RefreshL (); + } + +void CBmTests::DeleteAllL () + { + RBkFolder root = iBkDatabase.OpenRootL (); + CleanupClosePushL ( root ); + + TInt count = root.Count (); + + while ( count-- ) + { + RBkNode node = root.OpenItemL ( 0 ); + CleanupClosePushL ( node ); + TBool recursive = ETrue; + + if ( node.Type() == Bookmark::ETypeBookmark ) + { + recursive = EFalse; + } + + iBkDatabase.DeleteItemL ( node.Id(), recursive ); + CleanupStack::PopAndDestroy ( &node ); + } + CleanupStack::PopAndDestroy ( &root ); + } + +