--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/applayerpluginsandutils/bookmarksupport/test/t_cbookmarkbase.cpp Tue Feb 02 01:09:52 2010 +0200
@@ -0,0 +1,109 @@
+// 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 "bkmrk.h"
+#include "bkmrkfolder.h"
+#include "bkmrkdb.h"
+#include "testutils.h"
+
+LOCAL_D CTestWrapper* gTestWrapper;
+
+_LIT(KFilename, "t_cbookmarkbase.cpp");
+
+_LIT(KTxtNewFolder, "New Folder 1");
+
+_LIT(KTxtItem1, "Bookmark Item 1");
+
+const Bookmark::TItemId KItemId = 0x00000123;
+
+LOCAL_D void GeneralTestsL()
+ {
+ CBookmarkDb* db = CBookmarkDb::NewL(Bookmark::EVisibilityManager, NULL);
+ CleanupStack::PushL(db);
+ CBookmark& bookmark = db->CreateBookmarkL(db->RootL());
+
+ gTestWrapper->Next(_L("[CBookmarkBase tests] id"));
+ gTestWrapper->TEST(bookmark.Id() != KItemId);
+ bookmark.SetId(KItemId);
+ gTestWrapper->TEST(bookmark.Id() == KItemId);
+
+ gTestWrapper->Next(_L("[CBookmarkBase tests] reference counting"));
+ gTestWrapper->TEST(bookmark.RefCount() == 0);
+ bookmark.IncRefCount();
+ gTestWrapper->TEST(bookmark.RefCount() == 1);
+ bookmark.DecRefCount();
+ gTestWrapper->TEST(bookmark.RefCount() == 0);
+ bookmark.IncRefCount();
+ bookmark.IncRefCount();
+ bookmark.IncRefCount();
+ gTestWrapper->TEST(bookmark.RefCount() == 3);
+ bookmark.DecRefCount();
+ bookmark.DecRefCount();
+ bookmark.DecRefCount();
+ gTestWrapper->TEST(bookmark.RefCount() == 0);
+
+ gTestWrapper->Next(_L("[CBookmarkBase tests] parent"));
+ CBookmarkFolder& folder = db->CreateFolderL(KTxtNewFolder, db->RootL());
+ gTestWrapper->TEST(bookmark.Parent()->Id() == db->RootL().Id());
+ bookmark.SetParentL(folder);
+ gTestWrapper->TEST(bookmark.Parent()->Id() == folder.Id());
+ bookmark.SetParentL(db->RootL());
+ gTestWrapper->TEST(bookmark.Parent()->Id() == db->RootL().Id());
+
+ gTestWrapper->Next(_L("[CBookmarkBase tests] title"));
+ bookmark.SetTitleL(KTxtItem1);
+ gTestWrapper->TEST(bookmark.Title().Compare(KTxtItem1) == 0);
+
+ gTestWrapper->Next(_L("[CBookmarkBase tests] public and writable"));
+ gTestWrapper->TEST(bookmark.IsPublic());
+
+ TInt err = KErrNone;
+ gTestWrapper->TEST(bookmark.IsPublic());
+
+ gTestWrapper->TEST(bookmark.IsWritable());
+ bookmark.SetWritableL(EFalse);
+ gTestWrapper->TEST(!bookmark.IsWritable());
+ // test that write operations work as application is WriteDeviceData
+ TRAP(err, bookmark.SetTitleL(KTxtItem1));
+ gTestWrapper->TEST(err == KErrNone);
+ TRAP(err, bookmark.SetPublicL(ETrue));
+ gTestWrapper->TEST(err == KErrNone);
+ bookmark.SetWritableL(ETrue);
+
+ gTestWrapper->Next(_L("[CBookmarkBase tests] handle"));
+ gTestWrapper->TEST(bookmark.RefCount() == 0);
+ RBkFolder root = db->RootL().OpenFolder();
+ CleanupClosePushL(root);
+ RBkNode handle = root.OpenItemL(0);
+ CleanupClosePushL(handle);
+
+ gTestWrapper->TEST(bookmark.RefCount() == 1);
+ gTestWrapper->TEST(handle.Type() == bookmark.Type());
+ gTestWrapper->TEST(handle.Title() == bookmark.Title());
+
+ CleanupStack::PopAndDestroy(&handle);
+ CleanupStack::PopAndDestroy(&root);
+
+ CleanupStack::PopAndDestroy(db);
+ }
+
+void DoCBookmarkBaseUnitL(CTestWrapper* aTest)
+ {
+ gTestWrapper = aTest;
+ gTestWrapper->SetFile(KFilename);
+ gTestWrapper->Next(_L("*** CBookmarkBase tests ***"));
+
+ GeneralTestsL();
+ }