--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/contentstorage/caclient/tsrc/t_caclient/src/t_caclient_notifier.cpp Thu Sep 16 12:11:40 2010 +0100
@@ -0,0 +1,2966 @@
+/*
+* Copyright (c) 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: Main test class for hspluginmodel library.
+*
+*/
+
+#include <QScopedPointer>
+#include <qservicemanager.h>
+
+#include "t_caclient.h"
+#include "caservice.h"
+#include "canotifier.h"
+#include "canotifierfilter.h"
+#include "caquery.h"
+#include "t_caclientNotifier.h"
+
+const int entryIdFake(-1);
+const int waitTime500ms(500);
+const int waitTime1sec(1000);
+
+QTM_USE_NAMESPACE
+
+QStringList pluginPaths;
+QString xmlName("caapphandlerplugin.xml");
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::initTestCase()
+{
+#ifdef Q_OS_SYMBIAN
+ startThread();
+#endif //Q_OS_SYMBIAN
+ mService = CaService::instance();
+}
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::cleanupTestCase()
+{
+#ifdef Q_OS_SYMBIAN
+ stopThread();
+#endif //Q_OS_SYMBIAN
+ QSharedPointer<CaService> serviceNull(NULL);
+ mService = serviceNull;
+ QTest::qWait(5000);
+}
+
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+int threadFunction(void *params)
+{
+#ifdef Q_OS_SYMBIAN
+ while (ETrue) {
+ User::ResetInactivityTime();//it should help for Viewserver11 panic
+ User::After(5000000);
+ }
+#endif //Q_OS_SYMBIAN
+ return 0;
+}
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::startThread()
+{
+#ifdef Q_OS_SYMBIAN
+ User::LeaveIfError(iThread.Create(
+ _L("thread_kill_viewsrv11"),
+ threadFunction,
+ 16384,
+ 4000,
+ 4000,
+ NULL));
+ iThread.Resume();
+#endif //Q_OS_SYMBIAN
+}
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::stopThread()
+{
+#ifdef Q_OS_SYMBIAN
+ iThread.Close();
+#endif //Q_OS_SYMBIAN
+}
+
+
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestAssignmentOperatorNotifier()
+{
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+// __UHEAP_MARK;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+ {
+ CaNotifierFilter filter;
+ filter.setEntryRole(ItemEntryRole);
+ filter.setTypeNames(QStringList() << "typeName1" << "typeName2");
+ filter.setParentId(22);
+ filter.setIds(QList<int>() << 11 << 22);
+
+ CaNotifierFilter filterAssign;
+ filterAssign = filter;
+ QCOMPARE(filterAssign.getEntryRole(), filter.getEntryRole());
+ QCOMPARE(filterAssign.getParentId(), filter.getParentId());
+ for (int i(0); i < filter.getIds().count(); i++) {
+ QCOMPARE(filterAssign.getIds().at(i),
+ filter.getIds().at(i));
+ }
+ for (int i(0); i < filter.getTypeNames().count(); i++) {
+ QCOMPARE(filterAssign.getTypeNames().at(i),
+ filter.getTypeNames().at(i));
+ }
+
+ filter.setEntryRole(GroupEntryRole);
+ filter.getTypeNames().clear();
+ filter.setTypeNames(QStringList() << "typeName3" << "typeName4");
+ filter.setParentId(55);
+ filter.getIds().clear();
+ filter.setIds(QList<int>() << 33 << 44);
+
+ QVERIFY(filterAssign.getEntryRole() != filter.getEntryRole());
+ QVERIFY(filterAssign.getParentId() != filter.getParentId());
+ for (int i(0); i < filter.getIds().count(); i++) {
+ QVERIFY(filterAssign.getIds().at(i)
+ != filter.getIds().at(i));
+ }
+ for (int i(0); i < filter.getTypeNames().count(); i++) {
+ QVERIFY(filterAssign.getTypeNames().at(i)
+ != filter.getTypeNames().at(i));
+ }
+
+ CaNotifierFilter filterCopyConstructor(filter);
+ QCOMPARE(filterCopyConstructor.getEntryRole(), filter.getEntryRole());
+ QCOMPARE(filterCopyConstructor.getParentId(), filter.getParentId());
+ for (int i(0); i < filter.getIds().count(); i++) {
+ QCOMPARE(filterCopyConstructor.getIds().at(i),
+ filter.getIds().at(i));
+ }
+ for (int i(0); i < filter.getTypeNames().count(); i++) {
+ QCOMPARE(filterCopyConstructor.getTypeNames().at(i),
+ filter.getTypeNames().at(i));
+ }
+
+ CaQuery query;
+ query.setEntryRoles(GroupEntryRole);
+ query.setEntryTypeNames(QStringList() << "Query1" << "Query2");
+ query.setParentId(77);
+
+ CaNotifierFilter filterQuery(query);
+ QCOMPARE(filterQuery.getEntryRole(), query.entryRoles());
+ QCOMPARE(filterQuery.getParentId(), query.parentId());
+ QCOMPARE(filterQuery.getIds().count(), 0);
+ for (int i(0); i < query.entryTypeNames().count(); i++) {
+ QCOMPARE(filterQuery.getTypeNames().at(i),
+ query.entryTypeNames().at(i));
+ }
+ }
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+// __UHEAP_MARKEND;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+}
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestAddItemChangeTypeNotifier()
+{
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+// __UHEAP_MARK;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+ {
+ CaNotifierFilter *filter = new CaNotifierFilter();
+ filter->setEntryRole(ItemEntryRole);
+ QStringList strList;
+ strList.append("TypeName");
+ filter->setTypeNames(strList);
+ TestCaClientNotifier *clientNotifier = new TestCaClientNotifier(*mService, filter);
+ CaNotifier *notifier = clientNotifier->getNotifier();
+
+ connect(notifier, SIGNAL(entryChanged(int,ChangeType)),
+ clientNotifier, SLOT(entryChanged(int,ChangeType)));
+ QTest::qWait(waitTime1sec);
+ CaEntry item;
+ item.setText("Text");
+ item.setEntryTypeName("TypeName");
+ QSharedPointer<CaEntry> entry = mService->createEntry(item);
+ QTest::qWait(waitTime1sec);
+
+ QCOMPARE(clientNotifier->mChangeType, AddChangeType);
+ QVERIFY(clientNotifier->mEntryId > 0);
+ QCOMPARE(clientNotifier->mEntryId, entry->id());
+
+ // cleanup
+ disconnect(notifier, SIGNAL(entryChanged(int,ChangeType)),
+ clientNotifier, SLOT(entryChanged(int,ChangeType)));
+ QTest::qWait(waitTime500ms);
+ delete clientNotifier;
+ delete filter;
+ mService->removeEntry(entry->id());
+ QTest::qWait(waitTime500ms);
+ QTest::qWait(waitTime500ms);
+ }
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+// __UHEAP_MARKEND;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+}
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestAddGroupChangeTypeNotifier()
+{
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+// __UHEAP_MARK;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+ {
+
+ CaNotifierFilter *filter = new CaNotifierFilter();
+ filter->setEntryRole(GroupEntryRole);
+ filter->setTypeNames(QStringList() << "TypeName");
+ TestCaClientNotifier *clientNotifier = new TestCaClientNotifier(*mService, filter);
+ CaNotifier *notifier = clientNotifier->getNotifier();
+
+ connect(notifier, SIGNAL(entryChanged(int,ChangeType)),
+ clientNotifier, SLOT(entryChanged(int,ChangeType)));
+ QTest::qWait(waitTime500ms);
+ CaEntry group(GroupEntryRole);
+ group.setText("Text");
+ group.setEntryTypeName("TypeName");
+
+ QSharedPointer<CaEntry> entry = mService->createEntry(group);
+ QTest::qWait(waitTime1sec);
+
+ QCOMPARE(clientNotifier->mChangeType, AddChangeType);
+ QVERIFY(clientNotifier->mEntryId > 0);
+ QCOMPARE(clientNotifier->mEntryId, entry->id());
+
+ // cleanup
+ disconnect(notifier, SIGNAL(entryChanged(int,ChangeType)),
+ clientNotifier, SLOT(entryChanged(int,ChangeType)));
+ QTest::qWait(waitTime500ms);
+ delete clientNotifier;
+ mService->removeEntry(entry->id());
+ }
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+// __UHEAP_MARKEND;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+}
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestRemoveEntryChangeTypeNotifier()
+{
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+// __UHEAP_MARK;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+ {
+
+ CaNotifierFilter *filter = new CaNotifierFilter();
+ filter->setEntryRole(ItemEntryRole);
+ filter->setTypeNames(QStringList() << "TypeName");
+ TestCaClientNotifier *clientNotifier = new TestCaClientNotifier(*mService, filter);
+ CaNotifier *notifier = clientNotifier->getNotifier();
+
+ connect(notifier, SIGNAL(entryChanged(int,ChangeType)),
+ clientNotifier, SLOT(entryChanged(int,ChangeType)));
+ QTest::qWait(waitTime500ms);
+ connect(notifier, SIGNAL(entryChanged(const CaEntry &,ChangeType)),
+ clientNotifier, SLOT(entryChanged(const CaEntry &,ChangeType)));
+ QTest::qWait(waitTime500ms);
+ CaEntry item;
+ item.setText("Text");
+ item.setEntryTypeName("TypeName");
+
+ QSharedPointer<CaEntry> entry = mService->createEntry(item);
+ QTest::qWait(waitTime1sec);
+
+ QCOMPARE(clientNotifier->mChangeType, AddChangeType);
+ QVERIFY(clientNotifier->mEntryId > 0);
+ QCOMPARE(clientNotifier->mEntryId, entry->id());
+
+ int entryId = clientNotifier->mEntryId;
+ clientNotifier->mEntryId = 0;
+
+ bool removed = mService->removeEntry(*entry);
+ QTest::qWait(waitTime1sec);
+
+ QCOMPARE(clientNotifier->mChangeType, RemoveChangeType);
+ QVERIFY(clientNotifier->mEntryId > 0);
+ QCOMPARE(clientNotifier->mEntryId, entryId);
+ QCOMPARE(removed, TRUE);
+
+ // cleanup
+ disconnect(notifier, SIGNAL(entryChanged(int,ChangeType)),
+ clientNotifier, SLOT(entryChanged(int,ChangeType)));
+ disconnect(notifier, SIGNAL(entryChanged(const CaEntry &,ChangeType)),
+ clientNotifier, SLOT(entryChanged(const CaEntry &,ChangeType)));
+ QTest::qWait(waitTime500ms);
+ delete clientNotifier;
+ mService->removeEntry(entry->id());
+ }
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+// __UHEAP_MARKEND;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+}
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestRemoveEntryIdChangeTypeNotifier()
+{
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+// __UHEAP_MARK;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+ {
+
+
+ CaEntry item;
+ item.setText("Text");
+ item.setEntryTypeName("TypeName");
+
+ QSharedPointer<CaEntry> entry = mService->createEntry(item);
+ QTest::qWait(waitTime1sec);
+
+ CaNotifierFilter *filter = new CaNotifierFilter();
+ filter->setEntryRole(ItemEntryRole);
+ filter->setTypeNames(QStringList() << "TypeName");
+ filter->setIds(QList<int>() << entry->id());
+ TestCaClientNotifier *clientNotifier = new TestCaClientNotifier(*mService, filter);
+ CaNotifier *notifier = clientNotifier->getNotifier();
+
+ connect(notifier, SIGNAL(entryChanged(int,ChangeType)),
+ clientNotifier, SLOT(entryChanged(int,ChangeType)));
+ connect(notifier, SIGNAL(entryChanged(const CaEntry &,ChangeType)),
+ clientNotifier, SLOT(entryChanged(const CaEntry &,ChangeType)));
+ QTest::qWait(waitTime500ms);
+
+ int entryId = entry->id();
+ clientNotifier->mEntryId = 0;
+
+ bool removed = mService->removeEntry(entryId);
+ QTest::qWait(waitTime1sec);
+
+ QCOMPARE(clientNotifier->mChangeType, RemoveChangeType);
+ QVERIFY(clientNotifier->mEntryId > 0);
+ QCOMPARE(clientNotifier->mEntryId, entryId);
+ QCOMPARE(removed, TRUE);
+
+ // cleanup
+ disconnect(notifier, SIGNAL(entryChanged(int,ChangeType)),
+ clientNotifier, SLOT(entryChanged(int,ChangeType)));
+ disconnect(notifier, SIGNAL(entryChanged(const CaEntry &,ChangeType)),
+ clientNotifier, SLOT(entryChanged(const CaEntry &,ChangeType)));
+ QTest::qWait(waitTime500ms);
+ delete clientNotifier;
+ delete filter;
+ mService->removeEntry(entry->id());
+ }
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+// __UHEAP_MARKEND;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+}
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestRemoveEntryChangeTypeNotifierFake()
+{
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+// __UHEAP_MARK;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+ {
+
+ TestCaClientNotifier *clientNotifier = new TestCaClientNotifier(*mService);
+ CaNotifier *notifier = clientNotifier->getNotifier();
+
+ connect(notifier, SIGNAL(entryChanged(int,ChangeType)),
+ clientNotifier, SLOT(entryChanged(int,ChangeType)));
+ connect(notifier, SIGNAL(entryChanged(const CaEntry &,ChangeType)),
+ clientNotifier, SLOT(entryChanged(const CaEntry &,ChangeType)));
+ QTest::qWait(waitTime500ms);
+ CaEntry item;
+ item.setText("Text");
+ item.setEntryTypeName("TypeName");
+
+ QSharedPointer<CaEntry> entry = mService->createEntry(item);
+ QTest::qWait(waitTime1sec);
+
+ QCOMPARE(clientNotifier->mChangeType, AddChangeType);
+ QVERIFY(clientNotifier->mEntryId > 0);
+ QCOMPARE(clientNotifier->mEntryId, entry->id());
+
+ clientNotifier->mEntryId = 0;
+ CaEntry *entryFake = new CaEntry();
+ entryFake->setText("Text");
+ entryFake->setEntryTypeName("TypeName");
+
+ bool removed = mService->removeEntry(*entryFake);
+
+ QCOMPARE(clientNotifier->mChangeType, AddChangeType);
+ QCOMPARE(clientNotifier->mEntryId, 0);
+ QCOMPARE(removed, FALSE);
+
+ // cleanup
+ disconnect(notifier, SIGNAL(entryChanged(int,ChangeType)),
+ clientNotifier, SLOT(entryChanged(int,ChangeType)));
+ disconnect(notifier, SIGNAL(entryChanged(const CaEntry &,ChangeType)),
+ clientNotifier, SLOT(entryChanged(const CaEntry &,ChangeType)));
+ QTest::qWait(waitTime500ms);
+ delete clientNotifier;
+ mService->removeEntry(entry->id());
+ delete entryFake;
+ }
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+// __UHEAP_MARKEND;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+}
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestRemoveEntryIdChangeTypeNotifierFake()
+{
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+// __UHEAP_MARK;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+ {
+
+ TestCaClientNotifier *clientNotifier = new TestCaClientNotifier(*mService);
+ CaNotifier *notifier = clientNotifier->getNotifier();
+
+ connect(notifier, SIGNAL(entryChanged(int,ChangeType)),
+ clientNotifier, SLOT(entryChanged(int,ChangeType)));
+ connect(notifier, SIGNAL(entryChanged(const CaEntry &,ChangeType)),
+ clientNotifier, SLOT(entryChanged(const CaEntry &,ChangeType)));
+ QTest::qWait(waitTime500ms);
+ CaEntry item;
+ item.setText("Text");
+ item.setEntryTypeName("TypeName");
+ QSharedPointer<CaEntry> entry = mService->createEntry(item);
+ QTest::qWait(waitTime1sec);
+
+ QCOMPARE(clientNotifier->mChangeType, AddChangeType);
+ QVERIFY(clientNotifier->mEntryId > 0);
+ QCOMPARE(clientNotifier->mEntryId, entry->id());
+
+ clientNotifier->mEntryId = 0;
+ bool removed = mService->removeEntry(entryIdFake);
+ QTest::qWait(waitTime1sec);
+
+ QCOMPARE(clientNotifier->mChangeType, AddChangeType);
+ QCOMPARE(clientNotifier->mEntryId, 0);
+ QCOMPARE(removed, FALSE);
+
+ // cleanup
+ disconnect(notifier, SIGNAL(entryChanged(int,ChangeType)),
+ clientNotifier, SLOT(entryChanged(int,ChangeType)));
+ disconnect(notifier, SIGNAL(entryChanged(const CaEntry &,ChangeType)),
+ clientNotifier, SLOT(entryChanged(const CaEntry &,ChangeType)));
+ QTest::qWait(waitTime500ms);
+ delete clientNotifier;
+ mService->removeEntry(entry->id());
+ }
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+// __UHEAP_MARKEND;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+}
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestRemoveEntriesChangeTypeNotifier()
+{
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+// __UHEAP_MARK;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+ {
+
+
+ CaEntry item1;
+ item1.setText("Text");
+ item1.setEntryTypeName("TypeName");
+ QSharedPointer<CaEntry> entry1 = mService->createEntry(item1);
+ QTest::qWait(waitTime1sec);
+ CaEntry item2;
+ item2.setText("Text");
+ item2.setEntryTypeName("TypeName");
+ QSharedPointer<CaEntry> entry2 = mService->createEntry(item2);
+ QTest::qWait(waitTime1sec);
+ CaEntry item3;
+ item3.setText("Text");
+ item3.setEntryTypeName("TypeName");
+ QSharedPointer<CaEntry> entry3 = mService->createEntry(item3);
+ QTest::qWait(waitTime1sec);
+ CaEntry item4;
+ item4.setText("Text");
+ item4.setEntryTypeName("TypeName");
+ QSharedPointer<CaEntry> entry4 = mService->createEntry(item4);
+ QTest::qWait(waitTime1sec);
+
+ QList< QSharedPointer<CaEntry> > entriesList;
+ entriesList.append(entry1);
+ entriesList.append(entry2);
+ entriesList.append(entry3);
+ entriesList.append(entry4);
+
+ CaNotifierFilter *filter = new CaNotifierFilter();
+ filter->setEntryRole(ItemEntryRole);
+ filter->setTypeNames(QStringList() << "TypeName");
+ filter->setIds(QList<int>() << entry2->id() << entry3->id());
+ TestCaClientNotifier *clientNotifier = new TestCaClientNotifier(*mService, filter);
+ CaNotifier *notifier = clientNotifier->getNotifier();
+
+ connect(notifier, SIGNAL(entryChanged(const CaEntry &,ChangeType)),
+ clientNotifier, SLOT(entryChanged(const CaEntry &,ChangeType)));
+ connect(notifier, SIGNAL(entryChanged(int,ChangeType)),
+ clientNotifier, SLOT(entryChanged(int,ChangeType)));
+ QTest::qWait(waitTime500ms);
+
+ clientNotifier->mEntryId = 0;
+
+ bool removed = mService->removeEntries(entriesList);
+ QTest::qWait(waitTime1sec);
+
+ QCOMPARE(clientNotifier->mChangeType, RemoveChangeType);
+ QVERIFY(clientNotifier->mEntryId > 0);
+ QCOMPARE(clientNotifier->mEntryId, entry3->id());
+ QCOMPARE(removed, TRUE);
+
+ // cleanup
+ disconnect(notifier, SIGNAL(entryChanged(int,ChangeType)),
+ clientNotifier, SLOT(entryChanged(int,ChangeType)));
+ disconnect(notifier, SIGNAL(entryChanged(const CaEntry &,ChangeType)),
+ clientNotifier, SLOT(entryChanged(const CaEntry &,ChangeType)));
+ QTest::qWait(waitTime500ms);
+ delete clientNotifier;
+ delete filter;
+ mService->removeEntries(entriesList);
+ QTest::qWait(waitTime500ms);
+ entriesList.clear();
+ }
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+// __UHEAP_MARKEND;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+}
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestRemoveEntriesIdsChangeTypeNotifier()
+{
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+// __UHEAP_MARK;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+ {
+
+ TestCaClientNotifier *clientNotifier = new TestCaClientNotifier(*mService);
+ CaNotifier *notifier = clientNotifier->getNotifier();
+
+ connect(notifier, SIGNAL(entryChanged(int,ChangeType)),
+ clientNotifier, SLOT(entryChanged(int,ChangeType)));
+ connect(notifier, SIGNAL(entryChanged(const CaEntry &,ChangeType)),
+ clientNotifier, SLOT(entryChanged(const CaEntry &,ChangeType)));
+ QTest::qWait(waitTime500ms);
+ CaEntry item1;
+ item1.setText("Text");
+ item1.setEntryTypeName("TypeName");
+ QSharedPointer<CaEntry> entry1 = mService->createEntry(item1);
+ QTest::qWait(waitTime1sec);
+ CaEntry item2;
+ item2.setText("Text");
+ item2.setEntryTypeName("TypeName");
+ QSharedPointer<CaEntry> entry2 = mService->createEntry(item2);
+ QTest::qWait(waitTime1sec);
+ CaEntry item3;
+ item3.setText("Text");
+ item3.setEntryTypeName("TypeName");
+ QSharedPointer<CaEntry> entry3 = mService->createEntry(item3);
+ QTest::qWait(waitTime1sec);
+ CaEntry item4;
+ item4.setText("Text");
+ item4.setEntryTypeName("TypeName");
+ QSharedPointer<CaEntry> entry4 = mService->createEntry(item4);
+ QTest::qWait(waitTime1sec);
+
+ QList<int> entriesIdsList;
+ entriesIdsList.append(entry1->id());
+ entriesIdsList.append(entry2->id());
+ entriesIdsList.append(entry3->id());
+ entriesIdsList.append(entry4->id());
+
+ clientNotifier->mEntryId = 0;
+
+ bool removed = mService->removeEntries(entriesIdsList);
+ QTest::qWait(waitTime1sec);
+
+ QCOMPARE(clientNotifier->mChangeType, RemoveChangeType);
+ QVERIFY(clientNotifier->mEntryId > 0);
+ QCOMPARE(clientNotifier->mEntryId, entry4->id());
+ QCOMPARE(removed, TRUE);
+
+ // cleanup
+ disconnect(notifier, SIGNAL(entryChanged(int,ChangeType)),
+ clientNotifier, SLOT(entryChanged(int,ChangeType)));
+ disconnect(notifier, SIGNAL(entryChanged(const CaEntry &,ChangeType)),
+ clientNotifier, SLOT(entryChanged(const CaEntry &,ChangeType)));
+ QTest::qWait(waitTime500ms);
+ delete clientNotifier;
+ mService->removeEntries(entriesIdsList);
+ QTest::qWait(waitTime500ms);
+ entriesIdsList.clear();
+ }
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+// __UHEAP_MARKEND;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+}
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestRemoveEntriesChangeTypeNotifierFake()
+{
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+// __UHEAP_MARK;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+ {
+
+ TestCaClientNotifier *clientNotifier = new TestCaClientNotifier(*mService);
+ CaNotifier *notifier = clientNotifier->getNotifier();
+
+ connect(notifier, SIGNAL(entryChanged(int,ChangeType)),
+ clientNotifier, SLOT(entryChanged(int,ChangeType)));
+ connect(notifier, SIGNAL(entryChanged(const CaEntry &,ChangeType)),
+ clientNotifier, SLOT(entryChanged(const CaEntry &,ChangeType)));
+ QTest::qWait(waitTime500ms);
+ CaEntry item1;
+ item1.setText("Text");
+ item1.setEntryTypeName("TypeName");
+ QSharedPointer<CaEntry> entry1 = mService->createEntry(item1);
+ QTest::qWait(waitTime1sec);
+ CaEntry item2;
+ item2.setText("Text");
+ item2.setEntryTypeName("TypeName");
+ QSharedPointer<CaEntry> entry2 = mService->createEntry(item2);
+ QTest::qWait(waitTime1sec);
+ CaEntry item3;
+ item3.setText("Text");
+ item3.setEntryTypeName("TypeName");
+ QSharedPointer<CaEntry> entry3 = mService->createEntry(item3);
+ QTest::qWait(waitTime1sec);
+ CaEntry item4;
+ item4.setText("Text");
+ item4.setEntryTypeName("TypeName");
+ QSharedPointer<CaEntry> entry4 = mService->createEntry(item4);
+ QTest::qWait(waitTime1sec);
+
+ QList<QSharedPointer<CaEntry> > entriesList;
+ entriesList.append(entry1);
+ entriesList.append(entry2);
+ entriesList.append(entry3);
+ entriesList.append(entry4);
+
+ clientNotifier->mEntryId = 0;
+
+ CaEntry itemFake1;
+ itemFake1.setText("Text");
+ itemFake1.setEntryTypeName("TypeName");
+ QSharedPointer<CaEntry> entryFake1 = mService->createEntry(itemFake1);
+ int entryFake1Id = entryFake1->id();
+ entryFake1->setId(entryIdFake);
+ QTest::qWait(waitTime1sec);
+ CaEntry itemFake2;
+ itemFake2.setText("Text");
+ itemFake2.setEntryTypeName("TypeName");
+ QSharedPointer<CaEntry> entryFake2 = mService->createEntry(itemFake2);
+ int entryFake2Id = entryFake2->id();
+ entryFake2->setId(entryIdFake);
+ QTest::qWait(waitTime1sec);
+ QList<QSharedPointer<CaEntry> > entriesListFake;
+ entriesListFake.append(entryFake1);
+ entriesListFake.append(entryFake2);
+
+ clientNotifier->mEntryId = 0;
+ clientNotifier->mChangeType = AddChangeType;
+
+ bool removed = mService->removeEntries(entriesListFake);
+ QTest::qWait(waitTime1sec);
+
+ QCOMPARE(clientNotifier->mChangeType, AddChangeType);
+ QCOMPARE(clientNotifier->mEntryId, 0);
+ QCOMPARE(removed, FALSE);
+
+ entryFake1->setId(entryFake1Id);
+ entryFake2->setId(entryFake2Id);
+
+ // cleanup
+ disconnect(notifier, SIGNAL(entryChanged(int,ChangeType)),
+ clientNotifier, SLOT(entryChanged(int,ChangeType)));
+ disconnect(notifier, SIGNAL(entryChanged(const CaEntry &,ChangeType)),
+ clientNotifier, SLOT(entryChanged(const CaEntry &,ChangeType)));
+ QTest::qWait(waitTime500ms);
+ delete clientNotifier;
+ mService->removeEntries(entriesList);
+ mService->removeEntries(entriesListFake);
+ QTest::qWait(waitTime500ms);
+ entriesList.clear();
+ entriesListFake.clear();
+ }
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+// __UHEAP_MARKEND;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+}
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestRemoveEntriesIdsChangeTypeNotifierFake()
+{
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+// __UHEAP_MARK;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+
+ TestCaClientNotifier *clientNotifier = new TestCaClientNotifier(*mService);
+ CaNotifier *notifier = clientNotifier->getNotifier();
+
+ connect(notifier, SIGNAL(entryChanged(int,ChangeType)),
+ clientNotifier, SLOT(entryChanged(int,ChangeType)));
+ connect(notifier, SIGNAL(entryChanged(const CaEntry &,ChangeType)),
+ clientNotifier, SLOT(entryChanged(const CaEntry &,ChangeType)));
+ QTest::qWait(waitTime500ms);
+ CaEntry item1;
+ item1.setText("Text");
+ item1.setEntryTypeName("TypeName");
+ QSharedPointer<CaEntry> entry1 = mService->createEntry(item1);
+ QTest::qWait(waitTime1sec);
+ CaEntry item2;
+ item2.setText("Text");
+ item2.setEntryTypeName("TypeName");
+ QSharedPointer<CaEntry> entry2 = mService->createEntry(item2);
+ QTest::qWait(waitTime1sec);
+ CaEntry item3;
+ item3.setText("Text");
+ item3.setEntryTypeName("TypeName");
+ QSharedPointer<CaEntry> entry3 = mService->createEntry(item3);
+ QTest::qWait(waitTime1sec);
+ CaEntry item4;
+ item4.setText("Text");
+ item4.setEntryTypeName("TypeName");
+ QSharedPointer<CaEntry> entry4 = mService->createEntry(item4);
+ QTest::qWait(waitTime1sec);
+
+ QList<int> entriesIdsList;
+ entriesIdsList.append(entry1->id());
+ entriesIdsList.append(entry2->id());
+ entriesIdsList.append(entry3->id());
+ entriesIdsList.append(entry4->id());
+
+ CaEntry itemFake1;
+ itemFake1.setText("Text");
+ itemFake1.setEntryTypeName("TypeName");
+ QSharedPointer<CaEntry> entryFake1 = mService->createEntry(itemFake1);
+ int entryFake1Id = entryFake1->id();
+ entryFake1->setId(entryIdFake);
+ QTest::qWait(waitTime1sec);
+ CaEntry itemFake2;
+ itemFake2.setText("Text");
+ itemFake2.setEntryTypeName("TypeName");
+ QSharedPointer<CaEntry> entryFake2 = mService->createEntry(itemFake2);
+ int entryFake2Id = entryFake2->id();
+ entryFake2->setId(entryIdFake);
+ QTest::qWait(waitTime1sec);
+ QList<int> entriesIdsListFake;
+ entriesIdsListFake.append(entryFake1->id());
+ entriesIdsListFake.append(entryFake2->id());
+
+ clientNotifier->mEntryId = 0;
+ clientNotifier->mChangeType = AddChangeType;
+
+ bool removed = mService->removeEntries(entriesIdsListFake);
+ QTest::qWait(waitTime1sec);
+
+ QCOMPARE(clientNotifier->mChangeType, AddChangeType);
+ QCOMPARE(clientNotifier->mEntryId, 0);
+ QCOMPARE(removed, FALSE);
+
+ entryFake1->setId(entryFake1Id);
+ entryFake2->setId(entryFake2Id);
+
+ // cleanup
+ disconnect(notifier, SIGNAL(entryChanged(int,ChangeType)),
+ clientNotifier, SLOT(entryChanged(int,ChangeType)));
+ disconnect(notifier, SIGNAL(entryChanged(const CaEntry &,ChangeType)),
+ clientNotifier, SLOT(entryChanged(const CaEntry &,ChangeType)));
+ QTest::qWait(waitTime500ms);
+ delete clientNotifier;
+ mService->removeEntries(entriesIdsList);
+ mService->removeEntry(*entryFake1);
+ mService->removeEntry(*entryFake2);
+ QTest::qWait(waitTime1sec);
+ entriesIdsList.clear();
+ entriesIdsListFake.clear();
+
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+// __UHEAP_MARKEND;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+}
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestRemoveGroupChangeTypeNotifier()
+{
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+// __UHEAP_MARK;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+
+
+ TestCaClientNotifier *clientNotifier = new TestCaClientNotifier(*mService);
+ CaNotifier *notifier = clientNotifier->getNotifier();
+
+ connect(notifier, SIGNAL(entryChanged(int,ChangeType)),
+ clientNotifier, SLOT(entryChanged(int,ChangeType)));
+ connect(notifier, SIGNAL(entryChanged(const CaEntry &,ChangeType)),
+ clientNotifier, SLOT(entryChanged(const CaEntry &,ChangeType)));
+ QTest::qWait(waitTime500ms);
+ CaEntry group(GroupEntryRole);
+ group.setText("Text");
+ group.setEntryTypeName("TypeName");
+ QSharedPointer<CaEntry> entry = mService->createEntry(group);
+ QTest::qWait(waitTime1sec);
+
+ QCOMPARE(clientNotifier->mChangeType, AddChangeType);
+ QVERIFY(clientNotifier->mEntryId > 0);
+ QCOMPARE(clientNotifier->mEntryId, entry->id());
+
+ int entryId = clientNotifier->mEntryId;
+ clientNotifier->mEntryId = 0;
+
+ bool removed = mService->removeEntry(*entry);
+ QTest::qWait(waitTime1sec);
+
+ QCOMPARE(clientNotifier->mChangeType, RemoveChangeType);
+ QVERIFY(clientNotifier->mEntryId > 0);
+ QCOMPARE(clientNotifier->mEntryId, entryId);
+ QCOMPARE(removed, TRUE);
+
+ // cleanup
+ disconnect(notifier, SIGNAL(entryChanged(int,ChangeType)),
+ clientNotifier, SLOT(entryChanged(int,ChangeType)));
+ disconnect(notifier, SIGNAL(entryChanged(const CaEntry &,ChangeType)),
+ clientNotifier, SLOT(entryChanged(const CaEntry &,ChangeType)));
+ QTest::qWait(waitTime500ms);
+ delete clientNotifier;
+ mService->removeEntry(entry->id());
+ QTest::qWait(waitTime1sec);
+
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+// __UHEAP_MARKEND;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+}
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestRemoveGroupsChangeTypeNotifier()
+{
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+// __UHEAP_MARK;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+
+
+
+ CaEntry group1(GroupEntryRole);
+ group1.setText("Text");
+ group1.setEntryTypeName("TypeName1");
+ QSharedPointer<CaEntry> entry1 = mService->createEntry(group1);
+ QTest::qWait(waitTime1sec);
+ CaEntry group2(GroupEntryRole);
+ group2.setText("Text");
+ group2.setEntryTypeName("TypeName2");
+ QSharedPointer<CaEntry> entry2 = mService->createEntry(group2);
+ QTest::qWait(waitTime1sec);
+ CaEntry group3(GroupEntryRole);
+ group3.setText("Text");
+ group3.setEntryTypeName("TypeName3");
+ QSharedPointer<CaEntry> entry3 = mService->createEntry(group3);
+ QTest::qWait(waitTime1sec);
+ CaEntry group4(GroupEntryRole);
+ group4.setText("Text");
+ group4.setEntryTypeName("TypeName4");
+ QSharedPointer<CaEntry> entry4 = mService->createEntry(group4);
+ QTest::qWait(waitTime1sec);
+
+ QList< QSharedPointer<CaEntry> > entriesList;
+ entriesList.append(entry1);
+ entriesList.append(entry2);
+ entriesList.append(entry3);
+ entriesList.append(entry4);
+
+ CaNotifierFilter *filter = new CaNotifierFilter();
+ filter->setEntryRole(GroupEntryRole);
+ filter->setTypeNames(QStringList() << "TypeName3" << "TypeName4");
+ filter->setIds(QList<int>() << entry3->id());
+ TestCaClientNotifier *clientNotifier = new TestCaClientNotifier(*mService, filter);
+ CaNotifier *notifier = clientNotifier->getNotifier();
+
+ connect(notifier, SIGNAL(entryChanged(int,ChangeType)),
+ clientNotifier, SLOT(entryChanged(int,ChangeType)));
+ connect(notifier, SIGNAL(entryChanged(const CaEntry &,ChangeType)),
+ clientNotifier, SLOT(entryChanged(const CaEntry &,ChangeType)));
+ QTest::qWait(waitTime500ms);
+
+ clientNotifier->mEntryId = 0;
+
+ bool removed = mService->removeEntries(entriesList);
+ QTest::qWait(waitTime1sec);
+
+ QCOMPARE(clientNotifier->mChangeType, RemoveChangeType);
+ QVERIFY(clientNotifier->mEntryId > 0);
+ QCOMPARE(clientNotifier->mEntryId, entry3->id());
+ QCOMPARE(removed, TRUE);
+
+ // cleanup
+ disconnect(notifier, SIGNAL(entryChanged(int,ChangeType)),
+ clientNotifier, SLOT(entryChanged(int,ChangeType)));
+ disconnect(notifier, SIGNAL(entryChanged(const CaEntry &,ChangeType)),
+ clientNotifier, SLOT(entryChanged(const CaEntry &,ChangeType)));
+ QTest::qWait(waitTime500ms);
+ delete clientNotifier;
+ delete filter;
+ mService->removeEntries(entriesList);
+ QTest::qWait(waitTime1sec);
+ entriesList.clear();
+
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+// __UHEAP_MARK;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+}
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestUpdateChangeTypeNotifier()
+{
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+// __UHEAP_MARK;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+
+
+ TestCaClientNotifier *clientNotifier = new TestCaClientNotifier(*mService);
+ CaNotifier *notifier = clientNotifier->getNotifier();
+
+ connect(notifier, SIGNAL(entryChanged(int,ChangeType)),
+ clientNotifier, SLOT(entryChanged(int,ChangeType)));
+ connect(notifier, SIGNAL(entryChanged(const CaEntry &,ChangeType)),
+ clientNotifier, SLOT(entryChanged(const CaEntry &,ChangeType)));
+ QTest::qWait(waitTime500ms);
+
+ CaEntry item;
+ item.setText("Text");
+ item.setEntryTypeName("TypeName");
+ item.setDescription("description");
+
+ QSharedPointer<CaEntry> entry = mService->createEntry(item);
+
+ QTest::qWait(waitTime1sec);
+
+ QCOMPARE(clientNotifier->mChangeType, AddChangeType);
+ QVERIFY(clientNotifier->mEntryId > 0);
+ QCOMPARE(clientNotifier->mEntryId, entry->id());
+
+ disconnect(notifier, SIGNAL(entryChanged(int,ChangeType)),
+ clientNotifier, SLOT(entryChanged(int,ChangeType)));
+ disconnect(notifier, SIGNAL(entryChanged(const CaEntry &,ChangeType)),
+ clientNotifier, SLOT(entryChanged(const CaEntry &,ChangeType)));
+ QTest::qWait(waitTime500ms);
+ int entryId = clientNotifier->mEntryId;
+ delete clientNotifier;
+
+ CaNotifierFilter *filter = new CaNotifierFilter();
+ filter->setEntryRole(ItemEntryRole);
+ filter->setIds(QList<int>() << entry->id());
+ TestCaClientNotifier *clientNotifierUpdate = new TestCaClientNotifier(*mService, filter);
+ CaNotifier *notifierUpdate = clientNotifierUpdate->getNotifier();
+
+ connect(notifierUpdate, SIGNAL(entryChanged(int,ChangeType)),
+ clientNotifierUpdate, SLOT(entryChanged(int,ChangeType)));
+ connect(notifierUpdate, SIGNAL(entryChanged(const CaEntry &,ChangeType)),
+ clientNotifierUpdate, SLOT(entryChanged(const CaEntry &,ChangeType)));
+ QTest::qWait(waitTime500ms);
+
+ bool updated = mService->updateEntry(*entry);
+ QTest::qWait(waitTime1sec);
+
+ QCOMPARE(clientNotifierUpdate->mChangeType, UpdateChangeType);
+ QVERIFY(clientNotifierUpdate->mEntryId > 0);
+ QCOMPARE(clientNotifierUpdate->mEntryId, entryId);
+ QCOMPARE(clientNotifierUpdate->mEntryId, entry->id());
+ QCOMPARE(clientNotifierUpdate->mEntry->description(), QString("description"));
+ QCOMPARE(updated, TRUE);
+
+ // cleanup
+ disconnect(notifierUpdate, SIGNAL(entryChanged(int,ChangeType)),
+ clientNotifierUpdate, SLOT(entryChanged(int,ChangeType)));
+ disconnect(notifierUpdate, SIGNAL(entryChanged(const CaEntry &,ChangeType)),
+ clientNotifierUpdate, SLOT(entryChanged(const CaEntry &,ChangeType)));
+ QTest::qWait(waitTime500ms);
+
+ delete clientNotifierUpdate;
+ delete filter;
+ mService->removeEntry(entry->id());
+ QTest::qWait(waitTime1sec);
+
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+// __UHEAP_MARK;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+}
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestUpdateChangeTypeNotifierFake()
+{
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+// __UHEAP_MARK;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+
+
+ TestCaClientNotifier *clientNotifier = new TestCaClientNotifier(*mService);
+ CaNotifier *notifier = clientNotifier->getNotifier();
+
+ connect(notifier, SIGNAL(entryChanged(int,ChangeType)),
+ clientNotifier, SLOT(entryChanged(int,ChangeType)));
+ connect(notifier, SIGNAL(entryChanged(const CaEntry &,ChangeType)),
+ clientNotifier, SLOT(entryChanged(const CaEntry &,ChangeType)));
+
+ QTest::qWait(waitTime500ms);
+ CaEntry item;
+ item.setText("Text");
+ item.setEntryTypeName("TypeName");
+ QSharedPointer<CaEntry> entry = mService->createEntry(item);
+ QTest::qWait(waitTime1sec);
+
+ QCOMPARE(clientNotifier->mChangeType, AddChangeType);
+ QVERIFY(clientNotifier->mEntryId > 0);
+ QCOMPARE(clientNotifier->mEntryId, entry->id());
+
+
+ int entryId = clientNotifier->mEntryId;
+ clientNotifier->mEntryId = 0;
+ CaEntry itemFake;
+ itemFake.setText("Text");
+ itemFake.setEntryTypeName("TypeName");
+
+ bool updated = mService->updateEntry(itemFake);
+ QTest::qWait(waitTime1sec);
+
+ QCOMPARE(clientNotifier->mChangeType, AddChangeType);
+ QCOMPARE(clientNotifier->mEntryId, 0);
+ QCOMPARE(updated, FALSE);
+
+ // cleanup
+ disconnect(notifier, SIGNAL(entryChanged(int,ChangeType)),
+ clientNotifier, SLOT(entryChanged(int,ChangeType)));
+ disconnect(notifier, SIGNAL(entryChanged(const CaEntry &,ChangeType)),
+ clientNotifier, SLOT(entryChanged(const CaEntry &,ChangeType)));
+ QTest::qWait(waitTime500ms);
+ delete clientNotifier;
+ mService->removeEntry(entry->id());
+ QTest::qWait(waitTime1sec);
+
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+// __UHEAP_MARKEND;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+}
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestAddUpdateRemove()
+{
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+// __UHEAP_MARK;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+
+
+ TestCaClientNotifier *clientNotifier = new TestCaClientNotifier(*mService);
+ CaNotifier *notifier = clientNotifier->getNotifier();
+
+ connect(notifier, SIGNAL(entryChanged(int,ChangeType)),
+ clientNotifier, SLOT(entryChanged(int,ChangeType)));
+ connect(notifier, SIGNAL(entryChanged(const CaEntry &,ChangeType)),
+ clientNotifier, SLOT(entryChanged(const CaEntry &,ChangeType)));
+ QTest::qWait(waitTime500ms);
+
+ CaEntry item;
+ item.setText("Text");
+ item.setEntryTypeName("TypeName");
+ QSharedPointer<CaEntry> entry = mService->createEntry(item);
+ QTest::qWait(waitTime1sec);
+
+ QCOMPARE(clientNotifier->mChangeType, AddChangeType);
+ QVERIFY(clientNotifier->mEntryId > 0);
+ QCOMPARE(clientNotifier->mEntryId, entry->id());
+
+
+ int entryId = clientNotifier->mEntryId;
+ clientNotifier->mEntryId = 0;
+
+ bool updated = mService->updateEntry(*entry);
+ QTest::qWait(waitTime1sec);
+
+ QCOMPARE(clientNotifier->mChangeType, UpdateChangeType);
+ QVERIFY(clientNotifier->mEntryId > 0);
+ QCOMPARE(clientNotifier->mEntryId, entry->id());
+ QCOMPARE(updated, TRUE);
+
+ entryId = clientNotifier->mEntryId;
+ clientNotifier->mEntryId = 0;
+
+ bool removed = mService->removeEntry(entryId);
+ QTest::qWait(waitTime1sec);
+
+ QCOMPARE(clientNotifier->mChangeType, RemoveChangeType);
+ QVERIFY(clientNotifier->mEntryId > 0);
+ QCOMPARE(removed, TRUE);
+
+ // cleanup
+ disconnect(notifier, SIGNAL(entryChanged(int,ChangeType)),
+ clientNotifier, SLOT(entryChanged(int,ChangeType)));
+ disconnect(notifier, SIGNAL(entryChanged(const CaEntry &,ChangeType)),
+ clientNotifier, SLOT(entryChanged(const CaEntry &,ChangeType)));
+ QTest::qWait(waitTime500ms);
+ delete clientNotifier;
+ mService->removeEntry(entry->id());
+ QTest::qWait(waitTime1sec);
+
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+// __UHEAP_MARKEND;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+}
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestRegisterNotifier()
+{
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+// __UHEAP_MARK;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+
+
+ TestCaClientNotifier *clientNotifier = new TestCaClientNotifier(*mService);
+ CaNotifier *notifier = clientNotifier->getNotifier();
+
+ connect(notifier, SIGNAL(entryChanged(int,ChangeType)),
+ clientNotifier, SLOT(entryChanged(int,ChangeType)));
+ connect(notifier, SIGNAL(entryChanged(const CaEntry &,ChangeType)),
+ clientNotifier, SLOT(entryChanged(const CaEntry &,ChangeType)));
+ connect(notifier, SIGNAL(entryTouched(int)),
+ clientNotifier, SLOT(entryTouched(int)));
+ connect(notifier, SIGNAL(groupContentChanged(int)),
+ clientNotifier, SLOT(groupContentChanged(int)));
+ QTest::qWait(waitTime1sec);
+ QCOMPARE(notifier->receivers(SIGNAL(entryChanged(int,ChangeType))), 1);
+ QCOMPARE(notifier->receivers(SIGNAL(entryChanged(CaEntry,ChangeType))), 1);
+ QCOMPARE(notifier->receivers(SIGNAL(entryTouched(int))), 1);
+ QCOMPARE(notifier->receivers(SIGNAL(groupContentChanged(int))), 1);
+
+ // cleanup
+ disconnect(notifier, SIGNAL(entryChanged(int,ChangeType)),
+ clientNotifier, SLOT(entryChanged(int,ChangeType)));
+ disconnect(notifier, SIGNAL(entryChanged(const CaEntry &,ChangeType)),
+ clientNotifier, SLOT(entryChanged(const CaEntry &,ChangeType)));
+ disconnect(notifier, SIGNAL(entryTouched(int)),
+ clientNotifier, SLOT(entryTouched(int)));
+ disconnect(notifier, SIGNAL(groupContentChanged(int)),
+ clientNotifier, SLOT(groupContentChanged(int)));
+ QTest::qWait(waitTime1sec);
+
+ QCOMPARE(notifier->receivers(SIGNAL(entryChanged(int,ChangeType))), 0);
+ QCOMPARE(notifier->receivers(SIGNAL(entryChanged(CaEntry,ChangeType))), 0);
+ QCOMPARE(notifier->receivers(SIGNAL(entryTouched(int))), 0);
+ QCOMPARE(notifier->receivers(SIGNAL(groupContentChanged(int))), 0);
+
+ delete clientNotifier;
+
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+// __UHEAP_MARKEND;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+}
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestUnregisterNotifier()
+{
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+// __UHEAP_MARK;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+
+ TestCaClientNotifier *clientNotifier = new TestCaClientNotifier(*mService);
+ CaNotifier *notifier = clientNotifier->getNotifier();
+
+ connect(notifier, SIGNAL(entryChanged(int,ChangeType)),
+ clientNotifier, SLOT(entryChanged(int,ChangeType)));
+ connect(notifier, SIGNAL(entryChanged(const CaEntry &,ChangeType)),
+ clientNotifier, SLOT(entryChanged(const CaEntry &,ChangeType)));
+ connect(notifier, SIGNAL(entryTouched(int)),
+ clientNotifier, SLOT(entryTouched(int)));
+ QTest::qWait(waitTime500ms);
+ disconnect(notifier, SIGNAL(entryTouched(int)),
+ clientNotifier, SLOT(entryTouched(int)));
+ connect(notifier, SIGNAL(entryTouched(int)),
+ clientNotifier, SLOT(entryTouched(int)));
+ connect(notifier, SIGNAL(groupContentChanged(int)),
+ clientNotifier, SLOT(groupContentChanged(int)));
+ connect(notifier, SIGNAL(groupContentChanged(int)),
+ clientNotifier, SLOT(groupContentChanged(int)));
+ QTest::qWait(waitTime500ms);
+ disconnect(notifier, SIGNAL(groupContentChanged(int)),
+ clientNotifier, SLOT(groupContentChanged(int)));
+ QTest::qWait(waitTime500ms);
+ connect(notifier, SIGNAL(groupContentChanged(int)),
+ clientNotifier, SLOT(groupContentChanged(int)));
+ QTest::qWait(waitTime500ms);
+
+ QCOMPARE(notifier->receivers(SIGNAL(entryChanged(int,ChangeType))), 1);
+ QCOMPARE(notifier->receivers(SIGNAL(entryChanged(CaEntry,ChangeType))), 1);
+ QCOMPARE(notifier->receivers(SIGNAL(entryTouched(int))), 1);
+ QCOMPARE(notifier->receivers(SIGNAL(groupContentChanged(int))), 1);
+
+ disconnect(notifier, SIGNAL(entryChanged(int,ChangeType)),
+ clientNotifier, SLOT(entryChanged(int,ChangeType)));
+ disconnect(notifier, SIGNAL(entryChanged(const CaEntry &,ChangeType)),
+ clientNotifier, SLOT(entryChanged(const CaEntry &,ChangeType)));
+ disconnect(notifier, SIGNAL(entryTouched(int)),
+ clientNotifier, SLOT(entryTouched(int)));
+ disconnect(notifier, SIGNAL(groupContentChanged(int)),
+ clientNotifier, SLOT(groupContentChanged(int)));
+ connect(notifier, SIGNAL(entryChanged(int,ChangeType)),
+ clientNotifier, SLOT(entryChanged(int,ChangeType)));
+ disconnect(notifier, SIGNAL(entryChanged(int,ChangeType)),
+ clientNotifier, SLOT(entryChanged(int,ChangeType)));
+ disconnect(notifier, SIGNAL(groupContentChanged(int)),
+ clientNotifier, SLOT(groupContentChanged(int)));
+ QTest::qWait(waitTime1sec);
+
+ QCOMPARE(notifier->receivers(SIGNAL(entryChanged(int,ChangeType))), 0);
+ QCOMPARE(notifier->receivers(SIGNAL(entryChanged(CaEntry,ChangeType))), 0);
+ QCOMPARE(notifier->receivers(SIGNAL(entryTouched(int))), 0);
+ QCOMPARE(notifier->receivers(SIGNAL(groupContentChanged(int))), 0);
+
+ delete clientNotifier;
+ QTest::qWait(waitTime500ms);
+
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+// __UHEAP_MARKEND;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+}
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestTouchEntryNotifier()
+{
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+// __UHEAP_MARK;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+
+ CaEntry item;
+ item.setText("Text");
+ item.setEntryTypeName("TypeName");
+ QSharedPointer<CaEntry> entry = mService->createEntry(item);
+ QTest::qWait(waitTime1sec);
+
+ CaNotifierFilter *filter = new CaNotifierFilter();
+ filter->setEntryRole(ItemEntryRole);
+ filter->setIds(QList<int>() << entry->id());
+ TestCaClientNotifier *clientNotifier = new TestCaClientNotifier(*mService, filter);
+ CaNotifier *notifier = clientNotifier->getNotifier();
+
+ connect(notifier, SIGNAL(entryTouched(int)),
+ clientNotifier, SLOT(entryTouched(int)));
+ QTest::qWait(waitTime500ms);
+
+ bool touched = mService->touch(*entry);
+ QTest::qWait(waitTime1sec);
+
+ QVERIFY(clientNotifier->mEntryId > 0);
+ QCOMPARE(clientNotifier->mEntryId, entry->id());
+ QCOMPARE(touched, TRUE);
+
+ // cleanup
+ disconnect(notifier, SIGNAL(entryTouched(int)),
+ clientNotifier, SLOT(entryTouched(int)));
+ QTest::qWait(waitTime500ms);
+ delete clientNotifier;
+ delete filter;
+ mService->removeEntry(entry->id());
+ QTest::qWait(waitTime1sec);
+
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+// __UHEAP_MARKEND;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+}
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestTouchEntryIdNotifier()
+{
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+// __UHEAP_MARK;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+
+
+ TestCaClientNotifier *clientNotifier = new TestCaClientNotifier(*mService);
+ CaNotifier *notifier = clientNotifier->getNotifier();
+
+ connect(notifier, SIGNAL(entryTouched(int)),
+ clientNotifier, SLOT(entryTouched(int)));
+ QTest::qWait(waitTime500ms);
+ CaEntry item;
+ item.setText("Text");
+ item.setEntryTypeName("TypeName");
+ QSharedPointer<CaEntry> entry = mService->createEntry(item);
+ QTest::qWait(waitTime1sec);
+ QCOMPARE(clientNotifier->mEntryId, 0);
+
+ bool touched = mService->touch(*entry);
+ QTest::qWait(waitTime1sec);
+
+ QVERIFY(clientNotifier->mEntryId > 0);
+ QCOMPARE(clientNotifier->mEntryId, entry->id());
+ QCOMPARE(touched, TRUE);
+
+ // cleanup
+ disconnect(notifier, SIGNAL(entryTouched(int)),
+ clientNotifier, SLOT(entryTouched(int)));
+ QTest::qWait(waitTime500ms);
+ delete clientNotifier;
+ mService->removeEntry(entry->id());
+ QTest::qWait(waitTime1sec);
+
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+// __UHEAP_MARKEND;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+}
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestTouchEntryNotifierFake()
+{
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+// __UHEAP_MARK;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+
+
+ TestCaClientNotifier *clientNotifier = new TestCaClientNotifier(*mService);
+ CaNotifier *notifier = clientNotifier->getNotifier();
+
+ connect(notifier, SIGNAL(entryTouched(int)),
+ clientNotifier, SLOT(entryTouched(int)));
+ QTest::qWait(waitTime500ms);
+ CaEntry item;
+ item.setText("Text");
+ item.setEntryTypeName("TypeName");
+ QSharedPointer<CaEntry> entry = mService->createEntry(item);
+ QTest::qWait(waitTime1sec);
+
+ QCOMPARE(clientNotifier->mEntryId, 0);
+
+ CaEntry *entryFake = new CaEntry();
+ entryFake->setText("Text");
+ entryFake->setEntryTypeName("TypeName");
+
+ bool touched = mService->touch(*entryFake);
+ QTest::qWait(waitTime1sec);
+
+ QCOMPARE(clientNotifier->mEntryId, 0);
+ QCOMPARE(touched, FALSE);
+
+ // cleanup
+ disconnect(notifier, SIGNAL(entryTouched(int)),
+ clientNotifier, SLOT(entryTouched(int)));
+ QTest::qWait(waitTime500ms);
+ delete clientNotifier;
+ mService->removeEntry(entry->id());
+ QTest::qWait(waitTime1sec);
+ delete entryFake;
+
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+// __UHEAP_MARKEND;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+}
+
+
+void TestCaClient::TestTouchEntryUidNotifier()
+{
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+// __UHEAP_MARK;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+
+
+ QScopedPointer<TestCaClientNotifier> clientNotifier(
+ new TestCaClientNotifier(*mService));
+
+ CaNotifier *notifier = clientNotifier->getNotifier();
+
+ connect(notifier, SIGNAL(entryTouched(int)),
+ clientNotifier.data(), SLOT(entryTouched(int)));
+
+ CaEntry item;
+ item.setText("Text");
+ item.setEntryTypeName("application");
+ item.setAttribute(
+ "application:uid",
+ "-3");
+
+ QSharedPointer<CaEntry> entry = mService->createEntry(item);
+
+ QTest::qWait(waitTime1sec);
+
+ QVERIFY(!entry.isNull());
+
+ const int expectedEntryId = entry->id();
+
+ entry->setId(0);
+
+ QCOMPARE(clientNotifier->mEntryId, 0);
+
+ bool touched = mService->touch(*entry);
+
+ QTest::qWait(waitTime1sec);
+
+ QCOMPARE(clientNotifier->mEntryId, expectedEntryId);
+ QCOMPARE(touched, true);
+
+ // cleanup
+ disconnect(notifier, SIGNAL(entryTouched(int)),
+ clientNotifier.data(), SLOT(entryTouched(int)));
+
+ QTest::qWait(waitTime500ms);
+
+ mService->removeEntry(expectedEntryId);
+ QTest::qWait(waitTime1sec);
+
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+// __UHEAP_MARKEND;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+}
+
+
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestTouchEntryIdNotifierFake()
+{
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+// __UHEAP_MARK;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+
+ TestCaClientNotifier *clientNotifier = new TestCaClientNotifier(*mService);
+ CaNotifier *notifier = clientNotifier->getNotifier();
+
+ connect(notifier, SIGNAL(entryTouched(int)),
+ clientNotifier, SLOT(entryTouched(int)));
+ QTest::qWait(waitTime500ms);
+ CaEntry item;
+ item.setText("Text");
+ item.setEntryTypeName("TypeName");
+ QSharedPointer<CaEntry> entry = mService->createEntry(item);
+ QTest::qWait(waitTime1sec);
+
+ QCOMPARE(clientNotifier->mEntryId, 0);
+
+ QScopedPointer<CaEntry> entryFake(new CaEntry());
+ entryFake->setText("Text");
+ entryFake->setEntryTypeName("TypeName");
+ entryFake->setId(entryIdFake);
+
+ bool touched = mService->touch(*entryFake);
+ QTest::qWait(waitTime1sec);
+
+ QCOMPARE(clientNotifier->mEntryId, 0);
+ QCOMPARE(touched, FALSE);
+
+ // cleanup
+ disconnect(notifier, SIGNAL(entryTouched(int)),
+ clientNotifier, SLOT(entryTouched(int)));
+ QTest::qWait(waitTime500ms);
+ delete clientNotifier;
+ mService->removeEntry(entry->id());
+ QTest::qWait(waitTime1sec);
+
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+// __UHEAP_MARKEND;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+}
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestTouchGroupNotifier()
+{
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+// __UHEAP_MARK;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+
+
+ TestCaClientNotifier *clientNotifier = new TestCaClientNotifier(*mService);
+ CaNotifier *notifier = clientNotifier->getNotifier();
+
+ connect(notifier, SIGNAL(entryTouched(int)),
+ clientNotifier, SLOT(entryTouched(int)));
+ QTest::qWait(waitTime500ms);
+ CaEntry group(GroupEntryRole);
+ group.setText("Text");
+ group.setEntryTypeName("TypeName");
+ QSharedPointer<CaEntry> entry = mService->createEntry(group);
+ QTest::qWait(waitTime1sec);
+
+ QCOMPARE(clientNotifier->mEntryId, 0);
+
+ bool touched = mService->touch(*entry);
+ QTest::qWait(waitTime1sec);
+
+ QVERIFY(clientNotifier->mEntryId > 0);
+ QCOMPARE(clientNotifier->mEntryId, entry->id());
+ QCOMPARE(touched, TRUE);
+
+ // cleanup
+ disconnect(notifier, SIGNAL(entryTouched(int)),
+ clientNotifier, SLOT(entryTouched(int)));
+ QTest::qWait(waitTime500ms);
+ delete clientNotifier;
+ mService->removeEntry(entry->id());
+ QTest::qWait(waitTime1sec);
+
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+// __UHEAP_MARKEND;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+}
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestAppendEntryGroupNotifier()
+{
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+// __UHEAP_MARK;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+
+ TestCaClientNotifier *clientNotifier = new TestCaClientNotifier(*mService);
+ CaNotifier *notifier = clientNotifier->getNotifier();
+
+ connect(notifier, SIGNAL(entryChanged(int, ChangeType)),
+ clientNotifier, SLOT(entryChanged(int, ChangeType)));
+ QTest::qWait(waitTime500ms);
+ CaEntry group(GroupEntryRole);
+ group.setText("Text");
+ group.setEntryTypeName("TypeName");
+ QSharedPointer<CaEntry> entryG = mService->createEntry(group);
+ QTest::qWait(waitTime1sec);
+
+ QCOMPARE(clientNotifier->mChangeType, AddChangeType);
+ QVERIFY(clientNotifier->mEntryId > 0);
+ QCOMPARE(clientNotifier->mEntryId, entryG->id());
+
+ connect(notifier, SIGNAL(groupContentChanged(int)),
+ clientNotifier, SLOT(groupContentChanged(int)));
+ QTest::qWait(waitTime500ms);
+ CaEntry item;
+ item.setText("Text");
+ item.setEntryTypeName("TypeName");
+ QSharedPointer<CaEntry> entryI = mService->createEntry(item);
+ QTest::qWait(waitTime1sec);
+ int groupId = entryG->id();
+
+ clientNotifier->mChangeType = RemoveChangeType;
+ clientNotifier->mEntryId = 0;
+ clientNotifier->mGroupId = 0;
+
+ bool appended = mService->appendEntryToGroup((CaEntry &)(*entryG), *entryI);
+ QTest::qWait(waitTime1sec);
+
+ QVERIFY(clientNotifier->mGroupId > 0);
+ QCOMPARE(clientNotifier->mGroupId, groupId);
+ QCOMPARE(clientNotifier->mGroupId, entryG->id());
+ QCOMPARE(appended, TRUE);
+
+ // cleanup
+ disconnect(notifier, SIGNAL(entryChanged(int,ChangeType)),
+ clientNotifier, SLOT(entryChanged(int,ChangeType)));
+ disconnect(notifier, SIGNAL(groupContentChanged(int)),
+ clientNotifier, SLOT(groupContentChanged(int)));
+ QTest::qWait(waitTime500ms);
+ delete clientNotifier;
+ mService->removeEntry(entryI->id());
+ QTest::qWait(waitTime1sec);
+ mService->removeEntry(entryG->id());
+ QTest::qWait(waitTime1sec);
+
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+// __UHEAP_MARKEND;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+}
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestAppendEntryGroupIdNotifier()
+{
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+// __UHEAP_MARK;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+
+
+ TestCaClientNotifier *clientNotifier = new TestCaClientNotifier(*mService);
+ CaNotifier *notifier = clientNotifier->getNotifier();
+
+ connect(notifier, SIGNAL(entryChanged(int, ChangeType)),
+ clientNotifier, SLOT(entryChanged(int, ChangeType)));
+ QTest::qWait(waitTime500ms);
+ CaEntry group(GroupEntryRole);
+ group.setText("Text");
+ group.setEntryTypeName("TypeName");
+ QSharedPointer<CaEntry> entryG = mService->createEntry(group);
+ QTest::qWait(waitTime1sec);
+
+ QCOMPARE(clientNotifier->mChangeType, AddChangeType);
+ QVERIFY(clientNotifier->mEntryId > 0);
+ QCOMPARE(clientNotifier->mEntryId, entryG->id());
+
+ connect(notifier, SIGNAL(groupContentChanged(int)),
+ clientNotifier, SLOT(groupContentChanged(int)));
+ QTest::qWait(waitTime500ms);
+ CaEntry item;
+ item.setText("Text");
+ item.setEntryTypeName("TypeName");
+ QSharedPointer<CaEntry> entryI = mService->createEntry(item);
+ QTest::qWait(waitTime1sec);
+ int groupId = entryG->id();
+
+ clientNotifier->mChangeType = RemoveChangeType;
+ clientNotifier->mEntryId = 0;
+ clientNotifier->mGroupId = 0;
+
+ bool appended = mService->appendEntryToGroup(((CaEntry &)*entryG).id(), (*entryI).id());
+ QTest::qWait(waitTime1sec);
+
+ QVERIFY(clientNotifier->mGroupId > 0);
+ QCOMPARE(clientNotifier->mGroupId, groupId);
+ QCOMPARE(clientNotifier->mGroupId, entryG->id());
+ QCOMPARE(appended, TRUE);
+
+ // cleanup
+ disconnect(notifier, SIGNAL(entryChanged(int, ChangeType)),
+ clientNotifier, SLOT(entryChanged(int, ChangeType)));
+ disconnect(notifier, SIGNAL(groupContentChanged(int)),
+ clientNotifier, SLOT(groupContentChanged(int)));
+ QTest::qWait(waitTime500ms);
+ delete clientNotifier;
+ mService->removeEntry(entryI->id());
+ QTest::qWait(waitTime1sec);
+ mService->removeEntry(entryG->id());
+ QTest::qWait(waitTime1sec);
+
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+// __UHEAP_MARKEND;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+}
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestAppendEntriesGroupNotifier()
+{
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+// __UHEAP_MARK;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+
+
+ TestCaClientNotifier *clientNotifier = new TestCaClientNotifier(*mService);
+ CaNotifier *notifier = clientNotifier->getNotifier();
+
+ connect(notifier, SIGNAL(entryChanged(int, ChangeType)),
+ clientNotifier, SLOT(entryChanged(int, ChangeType)));
+ QTest::qWait(waitTime500ms);
+ CaEntry group(GroupEntryRole);
+ group.setText("Text");
+ group.setEntryTypeName("TypeName");
+ QSharedPointer<CaEntry> entryGroup = mService->createEntry(group);
+ QTest::qWait(waitTime1sec);
+ int groupId = entryGroup->id();
+
+ QCOMPARE(clientNotifier->mChangeType, AddChangeType);
+ QVERIFY(clientNotifier->mEntryId > 0);
+ QCOMPARE(clientNotifier->mEntryId, entryGroup->id());
+
+ connect(notifier, SIGNAL(groupContentChanged(int)),
+ clientNotifier, SLOT(groupContentChanged(int)));
+ QTest::qWait(waitTime500ms);
+ CaEntry item1;
+ item1.setText("Text");
+ item1.setEntryTypeName("TypeName");
+ QSharedPointer<CaEntry> entry1 = mService->createEntry(item1);
+ QTest::qWait(waitTime1sec);
+ CaEntry item2;
+ item2.setText("Text");
+ item2.setEntryTypeName("TypeName");
+ QSharedPointer<CaEntry> entry2 = mService->createEntry(item2);
+ QTest::qWait(waitTime1sec);
+
+ QList< QSharedPointer<CaEntry> > entriesList;
+ entriesList.append(entry1);
+ entriesList.append(entry2);
+
+ clientNotifier->mChangeType = RemoveChangeType;
+ clientNotifier->mEntryId = 0;
+ clientNotifier->mGroupId = 0;
+
+ bool appended = mService->appendEntriesToGroup((CaEntry &)*entryGroup, entriesList);
+ QTest::qWait(waitTime1sec);
+
+ QVERIFY(clientNotifier->mGroupId > 0);
+ QCOMPARE(clientNotifier->mGroupId, groupId);
+ QCOMPARE(clientNotifier->mGroupId, entryGroup->id());
+ QCOMPARE(appended, TRUE);
+
+ // cleanup
+ disconnect(notifier, SIGNAL(entryChanged(int, ChangeType)),
+ clientNotifier, SLOT(entryChanged(int, ChangeType)));
+ disconnect(notifier, SIGNAL(groupContentChanged(int)),
+ clientNotifier, SLOT(groupContentChanged(int)));
+ QTest::qWait(waitTime500ms);
+ delete clientNotifier;
+ mService->removeEntries(entriesList);
+ QTest::qWait(waitTime1sec);
+ mService->removeEntry(entryGroup->id());
+ QTest::qWait(waitTime1sec);
+ entriesList.clear();
+
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+// __UHEAP_MARKEND;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+}
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestAppendEntriesGroupIdNotifier()
+{
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+// __UHEAP_MARK;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+
+
+ TestCaClientNotifier *clientNotifier = new TestCaClientNotifier(*mService);
+ CaNotifier *notifier = clientNotifier->getNotifier();
+
+ connect(notifier, SIGNAL(entryChanged(int, ChangeType)),
+ clientNotifier, SLOT(entryChanged(int, ChangeType)));
+ QTest::qWait(waitTime500ms);
+ CaEntry group(GroupEntryRole);
+ group.setText("Text");
+ group.setEntryTypeName("TypeName");
+ QSharedPointer<CaEntry> entryGroup = mService->createEntry(group);
+ QTest::qWait(waitTime1sec);
+ int groupId = entryGroup->id();
+
+ QCOMPARE(clientNotifier->mChangeType, AddChangeType);
+ QVERIFY(clientNotifier->mEntryId > 0);
+ QCOMPARE(clientNotifier->mEntryId, entryGroup->id());
+
+ connect(notifier, SIGNAL(groupContentChanged(int)),
+ clientNotifier, SLOT(groupContentChanged(int)));
+ QTest::qWait(waitTime500ms);
+ CaEntry item1;
+ item1.setText("Text");
+ item1.setEntryTypeName("TypeName");
+ QSharedPointer<CaEntry> entryItem1 = mService->createEntry(item1);
+ QTest::qWait(waitTime1sec);
+ CaEntry item2;
+ item2.setText("Text");
+ item2.setEntryTypeName("TypeName");
+ QSharedPointer<CaEntry> entryItem2 = mService->createEntry(item2);
+ QTest::qWait(waitTime1sec);
+
+ QList<int> entriesIdsList;
+ entriesIdsList.append(entryItem1->id());
+ entriesIdsList.append(entryItem2->id());
+
+ clientNotifier->mChangeType = RemoveChangeType;
+ clientNotifier->mEntryId = 0;
+ clientNotifier->mGroupId = 0;
+
+ bool appended = mService->appendEntriesToGroup(((CaEntry &)*entryGroup).id(), entriesIdsList);
+ QTest::qWait(waitTime1sec);
+
+ QVERIFY(clientNotifier->mGroupId > 0);
+ QCOMPARE(clientNotifier->mGroupId, groupId);
+ QCOMPARE(clientNotifier->mGroupId, entryGroup->id());
+ QCOMPARE(appended, TRUE);
+
+ // cleanup
+ disconnect(notifier, SIGNAL(entryChanged(int, ChangeType)),
+ clientNotifier, SLOT(entryChanged(int, ChangeType)));
+ disconnect(notifier, SIGNAL(groupContentChanged(int)),
+ clientNotifier, SLOT(groupContentChanged(int)));
+ QTest::qWait(waitTime500ms);
+ delete clientNotifier;
+ mService->removeEntries(entriesIdsList);
+ QTest::qWait(waitTime1sec);
+ mService->removeEntry(entryGroup->id());
+ QTest::qWait(waitTime1sec);
+ entriesIdsList.clear();
+
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+// __UHEAP_MARKEND;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+}
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestPrependEntryGroupNotifier()
+{
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+// __UHEAP_MARK;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+
+
+ TestCaClientNotifier *clientNotifier = new TestCaClientNotifier(*mService);
+ CaNotifier *notifier = clientNotifier->getNotifier();
+
+ connect(notifier, SIGNAL(entryChanged(int, ChangeType)),
+ clientNotifier, SLOT(entryChanged(int, ChangeType)));
+ QTest::qWait(waitTime500ms);
+ CaEntry group(GroupEntryRole);
+ group.setText("Text");
+ group.setEntryTypeName("TypeName");
+ QSharedPointer<CaEntry> entryG = mService->createEntry(group);
+ QTest::qWait(waitTime1sec);
+
+ QCOMPARE(clientNotifier->mChangeType, AddChangeType);
+ QVERIFY(clientNotifier->mEntryId > 0);
+ QCOMPARE(clientNotifier->mEntryId, entryG->id());
+
+ connect(notifier, SIGNAL(groupContentChanged(int)),
+ clientNotifier, SLOT(groupContentChanged(int)));
+ QTest::qWait(waitTime500ms);
+ CaEntry item;
+ item.setText("Text");
+ item.setEntryTypeName("TypeName");
+ QSharedPointer<CaEntry> entryI = mService->createEntry(item);
+ QTest::qWait(waitTime1sec);
+ int groupId = entryG->id();
+
+ clientNotifier->mChangeType = RemoveChangeType;
+ clientNotifier->mEntryId = 0;
+ clientNotifier->mGroupId = 0;
+
+ bool appended = mService->prependEntryToGroup((CaEntry &)(*entryG), *entryI);
+ QTest::qWait(waitTime1sec);
+
+ QVERIFY(clientNotifier->mGroupId > 0);
+ QCOMPARE(clientNotifier->mGroupId, groupId);
+ QCOMPARE(clientNotifier->mGroupId, entryG->id());
+ QCOMPARE(appended, TRUE);
+
+ // cleanup
+ disconnect(notifier, SIGNAL(entryChanged(int, ChangeType)),
+ clientNotifier, SLOT(entryChanged(int, ChangeType)));
+ disconnect(notifier, SIGNAL(groupContentChanged(int)),
+ clientNotifier, SLOT(groupContentChanged(int)));
+ QTest::qWait(waitTime500ms);
+ delete clientNotifier;
+ mService->removeEntry(entryI->id());
+ QTest::qWait(waitTime1sec);
+ mService->removeEntry(entryG->id());
+ QTest::qWait(waitTime1sec);
+
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+// __UHEAP_MARKEND;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+}
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestPrependEntryGroupIdNotifier()
+{
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+// __UHEAP_MARK;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+
+
+ TestCaClientNotifier *clientNotifier = new TestCaClientNotifier(*mService);
+ CaNotifier *notifier = clientNotifier->getNotifier();
+
+ connect(notifier, SIGNAL(entryChanged(int, ChangeType)),
+ clientNotifier, SLOT(entryChanged(int, ChangeType)));
+ QTest::qWait(waitTime500ms);
+ CaEntry group(GroupEntryRole);
+ group.setText("Text");
+ group.setEntryTypeName("TypeName");
+ QSharedPointer<CaEntry> entryG = mService->createEntry(group);
+ QTest::qWait(waitTime1sec);
+
+ QCOMPARE(clientNotifier->mChangeType, AddChangeType);
+ QVERIFY(clientNotifier->mEntryId > 0);
+ QCOMPARE(clientNotifier->mEntryId, entryG->id());
+
+ connect(notifier, SIGNAL(groupContentChanged(int)),
+ clientNotifier, SLOT(groupContentChanged(int)));
+ QTest::qWait(waitTime500ms);
+ CaEntry item;
+ item.setText("Text");
+ item.setEntryTypeName("TypeName");
+ QSharedPointer<CaEntry> entryI = mService->createEntry(item);
+ QTest::qWait(waitTime1sec);
+ int groupId = entryG->id();
+
+ clientNotifier->mChangeType = RemoveChangeType;
+ clientNotifier->mEntryId = 0;
+ clientNotifier->mGroupId = 0;
+
+ bool appended = mService->prependEntryToGroup(((CaEntry &)*entryG).id(), (*entryI).id());
+ QTest::qWait(waitTime1sec);
+
+ QVERIFY(clientNotifier->mGroupId > 0);
+ QCOMPARE(clientNotifier->mGroupId, groupId);
+ QCOMPARE(clientNotifier->mGroupId, entryG->id());
+ QCOMPARE(appended, TRUE);
+
+ // cleanup
+ disconnect(notifier, SIGNAL(entryChanged(int, ChangeType)),
+ clientNotifier, SLOT(entryChanged(int, ChangeType)));
+ disconnect(notifier, SIGNAL(groupContentChanged(int)),
+ clientNotifier, SLOT(groupContentChanged(int)));
+ QTest::qWait(waitTime500ms);
+ delete clientNotifier;
+ mService->removeEntry(entryI->id());
+ QTest::qWait(waitTime1sec);
+ mService->removeEntry(entryG->id());
+ QTest::qWait(waitTime1sec);
+
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+// __UHEAP_MARKEND;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+}
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestPrependEntriesGroupNotifier()
+{
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+// __UHEAP_MARK;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+
+
+ TestCaClientNotifier *clientNotifier = new TestCaClientNotifier(*mService);
+ CaNotifier *notifier = clientNotifier->getNotifier();
+
+ connect(notifier, SIGNAL(entryChanged(int, ChangeType)),
+ clientNotifier, SLOT(entryChanged(int, ChangeType)));
+ QTest::qWait(waitTime500ms);
+ CaEntry group(GroupEntryRole);
+ group.setText("Text");
+ group.setEntryTypeName("TypeName");
+ QSharedPointer<CaEntry> entryGroup = mService->createEntry(group);
+ QTest::qWait(waitTime1sec);
+ int groupId = entryGroup->id();
+
+ QCOMPARE(clientNotifier->mChangeType, AddChangeType);
+ QVERIFY(clientNotifier->mEntryId > 0);
+ QCOMPARE(clientNotifier->mEntryId, entryGroup->id());
+
+ connect(notifier, SIGNAL(groupContentChanged(int)),
+ clientNotifier, SLOT(groupContentChanged(int)));
+ QTest::qWait(waitTime500ms);
+ CaEntry item1;
+ item1.setText("Text");
+ item1.setEntryTypeName("TypeName");
+ QSharedPointer<CaEntry> entry1 = mService->createEntry(item1);
+ QTest::qWait(waitTime1sec);
+ CaEntry item2;
+ item2.setText("Text");
+ item2.setEntryTypeName("TypeName");
+ QSharedPointer<CaEntry> entry2 = mService->createEntry(item2);
+ QTest::qWait(waitTime1sec);
+
+ QList< QSharedPointer<CaEntry> > entriesList;
+ entriesList.append(entry1);
+ entriesList.append(entry2);
+
+ clientNotifier->mChangeType = RemoveChangeType;
+ clientNotifier->mEntryId = 0;
+ clientNotifier->mGroupId = 0;
+
+ bool appended = mService->prependEntriesToGroup((CaEntry &)*entryGroup, entriesList);
+ QTest::qWait(waitTime1sec);
+
+ QVERIFY(clientNotifier->mGroupId > 0);
+ QCOMPARE(clientNotifier->mGroupId, groupId);
+ QCOMPARE(clientNotifier->mGroupId, entryGroup->id());
+ QCOMPARE(appended, TRUE);
+
+ // cleanup
+ disconnect(notifier, SIGNAL(entryChanged(int, ChangeType)),
+ clientNotifier, SLOT(entryChanged(int, ChangeType)));
+ disconnect(notifier, SIGNAL(groupContentChanged(int)),
+ clientNotifier, SLOT(groupContentChanged(int)));
+ QTest::qWait(waitTime500ms);
+ delete clientNotifier;
+ mService->removeEntries(entriesList);
+ QTest::qWait(waitTime1sec);
+ mService->removeEntry(entryGroup->id());
+ QTest::qWait(waitTime1sec);
+ entriesList.clear();
+
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+// __UHEAP_MARKEND;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+}
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestPrependEntriesGroupIdNotifier()
+{
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+// __UHEAP_MARK;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+
+
+ TestCaClientNotifier *clientNotifier = new TestCaClientNotifier(*mService);
+ CaNotifier *notifier = clientNotifier->getNotifier();
+
+ connect(notifier, SIGNAL(entryChanged(int, ChangeType)),
+ clientNotifier, SLOT(entryChanged(int, ChangeType)));
+ QTest::qWait(waitTime500ms);
+ CaEntry group(GroupEntryRole);
+ group.setText("Text");
+ group.setEntryTypeName("TypeName");
+ QSharedPointer<CaEntry> entryGroup = mService->createEntry(group);
+ QTest::qWait(waitTime1sec);
+ int groupId = entryGroup->id();
+
+ QCOMPARE(clientNotifier->mChangeType, AddChangeType);
+ QVERIFY(clientNotifier->mEntryId > 0);
+ QCOMPARE(clientNotifier->mEntryId, entryGroup->id());
+
+ connect(notifier, SIGNAL(groupContentChanged(int)),
+ clientNotifier, SLOT(groupContentChanged(int)));
+ QTest::qWait(waitTime500ms);
+ CaEntry item1;
+ item1.setText("Text");
+ item1.setEntryTypeName("TypeName");
+ QSharedPointer<CaEntry> entryItem1 = mService->createEntry(item1);
+ QTest::qWait(waitTime1sec);
+ CaEntry item2;
+ item2.setText("Text");
+ item2.setEntryTypeName("TypeName");
+ QSharedPointer<CaEntry> entryItem2 = mService->createEntry(item2);
+ QTest::qWait(waitTime1sec);
+
+ QList<int> entriesIdsList;
+ entriesIdsList.append(entryItem1->id());
+ entriesIdsList.append(entryItem2->id());
+
+ clientNotifier->mChangeType = RemoveChangeType;
+ clientNotifier->mEntryId = 0;
+ clientNotifier->mGroupId = 0;
+
+ bool appended = mService->prependEntriesToGroup(((CaEntry &)*entryGroup).id(), entriesIdsList);
+ QTest::qWait(waitTime1sec);
+
+ QVERIFY(clientNotifier->mGroupId > 0);
+ QCOMPARE(clientNotifier->mGroupId, groupId);
+ QCOMPARE(clientNotifier->mGroupId, entryGroup->id());
+ QCOMPARE(appended, TRUE);
+
+ // cleanup
+ disconnect(notifier, SIGNAL(entryChanged(int, ChangeType)),
+ clientNotifier, SLOT(entryChanged(int, ChangeType)));
+ disconnect(notifier, SIGNAL(groupContentChanged(int)),
+ clientNotifier, SLOT(groupContentChanged(int)));
+ QTest::qWait(waitTime500ms);
+ delete clientNotifier;
+ mService->removeEntries(entriesIdsList);
+ QTest::qWait(waitTime1sec);
+ mService->removeEntry(entryGroup->id());
+ QTest::qWait(waitTime1sec);
+ entriesIdsList.clear();
+
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+// __UHEAP_MARKEND;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+}
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestRemoveEntryGroupNotifier()
+{
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+// __UHEAP_MARK;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+
+ TestCaClientNotifier *clientNotifier = new TestCaClientNotifier(*mService);
+ CaNotifier *notifier = clientNotifier->getNotifier();
+
+ connect(notifier, SIGNAL(entryChanged(int, ChangeType)),
+ clientNotifier, SLOT(entryChanged(int, ChangeType)));
+ QTest::qWait(waitTime500ms);
+ CaEntry group(GroupEntryRole);
+ group.setText("Text");
+ group.setEntryTypeName("TypeName");
+ QSharedPointer<CaEntry> entryGroup = mService->createEntry(group);
+ QTest::qWait(waitTime1sec);
+ int groupId = entryGroup->id();
+
+ QCOMPARE(clientNotifier->mChangeType, AddChangeType);
+ QVERIFY(clientNotifier->mEntryId > 0);
+ QCOMPARE(clientNotifier->mEntryId, entryGroup->id());
+
+ connect(notifier, SIGNAL(groupContentChanged(int)),
+ clientNotifier, SLOT(groupContentChanged(int)));
+ QTest::qWait(waitTime500ms);
+ CaEntry item1;
+ item1.setText("Text");
+ item1.setEntryTypeName("TypeName");
+ QSharedPointer<CaEntry> entry1 = mService->createEntry(item1);
+ QTest::qWait(waitTime1sec);
+ CaEntry item2;
+ item2.setText("Text");
+ item2.setEntryTypeName("TypeName");
+ QSharedPointer<CaEntry> entry2 = mService->createEntry(item2);
+ QTest::qWait(waitTime1sec);
+
+ QList< QSharedPointer<CaEntry> > entriesList;
+ entriesList.append(entry1);
+ entriesList.append(entry2);
+
+ bool appended = mService->appendEntriesToGroup((CaEntry &)*entryGroup, entriesList);
+ QTest::qWait(waitTime1sec);
+ QCOMPARE(appended, TRUE);
+
+ clientNotifier->mChangeType = AddChangeType;
+ clientNotifier->mEntryId = 0;
+ clientNotifier->mGroupId = 0;
+ bool removed = mService->removeEntryFromGroup((CaEntry &)*entryGroup, *entry1);
+ QTest::qWait(waitTime1sec);
+
+ QVERIFY(clientNotifier->mGroupId > 0);
+ QCOMPARE(clientNotifier->mGroupId, groupId);
+ QCOMPARE(clientNotifier->mGroupId, entryGroup->id());
+ QCOMPARE(removed, TRUE);
+
+ clientNotifier->mChangeType = AddChangeType;
+ clientNotifier->mEntryId = 0;
+ clientNotifier->mGroupId = 0;
+ removed = mService->removeEntryFromGroup((CaEntry &)*entryGroup, *entry2);
+ QTest::qWait(waitTime1sec);
+
+ QVERIFY(clientNotifier->mGroupId > 0);
+ QCOMPARE(clientNotifier->mGroupId, groupId);
+ QCOMPARE(clientNotifier->mGroupId, entryGroup->id());
+ QCOMPARE(removed, TRUE);
+
+ // cleanup
+ disconnect(notifier, SIGNAL(entryChanged(int, ChangeType)),
+ clientNotifier, SLOT(entryChanged(int, ChangeType)));
+ disconnect(notifier, SIGNAL(groupContentChanged(int)),
+ clientNotifier, SLOT(groupContentChanged(int)));
+ QTest::qWait(waitTime500ms);
+ delete clientNotifier;
+ mService->removeEntries(entriesList);
+ QTest::qWait(waitTime1sec);
+ mService->removeEntry(entryGroup->id());
+ QTest::qWait(waitTime1sec);
+ entriesList.clear();
+
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+// __UHEAP_MARKEND;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+}
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestRemoveEntryGroupIdNotifier()
+{
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+// __UHEAP_MARK;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+
+
+ TestCaClientNotifier *clientNotifier = new TestCaClientNotifier(*mService);
+ CaNotifier *notifier = clientNotifier->getNotifier();
+
+ connect(notifier, SIGNAL(entryChanged(int, ChangeType)),
+ clientNotifier, SLOT(entryChanged(int, ChangeType)));
+ QTest::qWait(waitTime500ms);
+ CaEntry group(GroupEntryRole);
+ group.setText("Text");
+ group.setEntryTypeName("TypeName");
+ QSharedPointer<CaEntry> entryGroup = mService->createEntry(group);
+ QTest::qWait(waitTime1sec);
+ int groupId = entryGroup->id();
+
+ QCOMPARE(clientNotifier->mChangeType, AddChangeType);
+ QVERIFY(clientNotifier->mEntryId > 0);
+ QCOMPARE(clientNotifier->mEntryId, entryGroup->id());
+
+ connect(notifier, SIGNAL(groupContentChanged(int)),
+ clientNotifier, SLOT(groupContentChanged(int)));
+ QTest::qWait(waitTime500ms);
+ CaEntry item1;
+ item1.setText("Text");
+ item1.setEntryTypeName("TypeName");
+ QSharedPointer<CaEntry> entry1 = mService->createEntry(item1);
+ QTest::qWait(waitTime1sec);
+ CaEntry item2;
+ item2.setText("Text");
+ item2.setEntryTypeName("TypeName");
+ QSharedPointer<CaEntry> entry2 = mService->createEntry(item2);
+ QTest::qWait(waitTime1sec);
+
+ QList< QSharedPointer<CaEntry> > entriesList;
+ entriesList.append(entry1);
+ entriesList.append(entry2);
+
+ bool appended = mService->appendEntriesToGroup((CaEntry &)*entryGroup, entriesList);
+ QTest::qWait(waitTime1sec);
+ QCOMPARE(appended, TRUE);
+
+ clientNotifier->mEntryId = 0;
+ clientNotifier->mGroupId = 0;
+ bool removed = mService->removeEntryFromGroup(entryGroup->id(), entry1->id());
+ QTest::qWait(waitTime1sec);
+
+ QVERIFY(clientNotifier->mGroupId > 0);
+ QCOMPARE(clientNotifier->mGroupId, groupId);
+ QCOMPARE(clientNotifier->mGroupId, entryGroup->id());
+ QCOMPARE(removed, TRUE);
+
+ clientNotifier->mEntryId = 0;
+ clientNotifier->mGroupId = 0;
+ removed = mService->removeEntryFromGroup(entryGroup->id(), entry2->id());
+ QTest::qWait(waitTime1sec);
+
+ QVERIFY(clientNotifier->mGroupId > 0);
+ QCOMPARE(clientNotifier->mGroupId, groupId);
+ QCOMPARE(clientNotifier->mGroupId, entryGroup->id());
+ QCOMPARE(removed, TRUE);
+
+ // cleanup
+ disconnect(notifier, SIGNAL(entryChanged(int, ChangeType)),
+ clientNotifier, SLOT(entryChanged(int, ChangeType)));
+ disconnect(notifier, SIGNAL(groupContentChanged(int)),
+ clientNotifier, SLOT(groupContentChanged(int)));
+ QTest::qWait(waitTime500ms);
+ delete clientNotifier;
+ mService->removeEntries(entriesList);
+ QTest::qWait(waitTime1sec);
+ mService->removeEntry(entryGroup->id());
+ QTest::qWait(waitTime1sec);
+ entriesList.clear();
+
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+// __UHEAP_MARKEND;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+}
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestRemoveEntriesGroupNotifier()
+{
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+// __UHEAP_MARK;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+
+ TestCaClientNotifier *clientNotifier = new TestCaClientNotifier(*mService);
+ CaNotifier *notifier = clientNotifier->getNotifier();
+
+ connect(notifier, SIGNAL(entryChanged(int, ChangeType)),
+ clientNotifier, SLOT(entryChanged(int, ChangeType)));
+ QTest::qWait(waitTime500ms);
+ CaEntry group(GroupEntryRole);
+ group.setText("Text");
+ group.setEntryTypeName("TypeName");
+ QSharedPointer<CaEntry> entryGroup = mService->createEntry(group);
+ QTest::qWait(waitTime1sec);
+ int groupId = entryGroup->id();
+
+ QCOMPARE(clientNotifier->mChangeType, AddChangeType);
+ QVERIFY(clientNotifier->mEntryId > 0);
+ QCOMPARE(clientNotifier->mEntryId, entryGroup->id());
+
+ connect(notifier, SIGNAL(groupContentChanged(int)),
+ clientNotifier, SLOT(groupContentChanged(int)));
+ QTest::qWait(waitTime500ms);
+ CaEntry item1;
+ item1.setText("Text");
+ item1.setEntryTypeName("TypeName");
+ QSharedPointer<CaEntry> entry1 = mService->createEntry(item1);
+ QTest::qWait(waitTime1sec);
+ CaEntry item2;
+ item2.setText("Text");
+ item2.setEntryTypeName("TypeName");
+ QSharedPointer<CaEntry> entry2 = mService->createEntry(item2);
+ QTest::qWait(waitTime1sec);
+
+ QList<QSharedPointer<CaEntry> > entriesList;
+ entriesList.append(entry1);
+ entriesList.append(entry2);
+
+ bool appended = mService->appendEntriesToGroup((CaEntry &)*entryGroup, entriesList);
+ QTest::qWait(waitTime1sec);
+ QCOMPARE(appended, TRUE);
+
+ clientNotifier->mEntryId = 0;
+ clientNotifier->mGroupId = 0;
+ bool removed = mService->removeEntriesFromGroup((CaEntry &)*entryGroup, entriesList);
+ QTest::qWait(waitTime1sec);
+
+ QVERIFY(clientNotifier->mGroupId > 0);
+ QCOMPARE(clientNotifier->mGroupId, groupId);
+ QCOMPARE(clientNotifier->mGroupId, entryGroup->id());
+ QCOMPARE(removed, TRUE);
+
+ // cleanup
+ disconnect(notifier, SIGNAL(entryChanged(int, ChangeType)),
+ clientNotifier, SLOT(entryChanged(int, ChangeType)));
+ disconnect(notifier, SIGNAL(groupContentChanged(int)),
+ clientNotifier, SLOT(groupContentChanged(int)));
+ QTest::qWait(waitTime500ms);
+ delete clientNotifier;
+ mService->removeEntries(entriesList);
+ QTest::qWait(waitTime1sec);
+ mService->removeEntry(entryGroup->id());
+ QTest::qWait(waitTime1sec);
+ entriesList.clear();
+
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+// __UHEAP_MARKEND;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+}
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestRemoveEntriesGroupIdNotifier()
+{
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+// __UHEAP_MARK;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+
+ TestCaClientNotifier *clientNotifier = new TestCaClientNotifier(*mService);
+ CaNotifier *notifier = clientNotifier->getNotifier();
+
+ connect(notifier, SIGNAL(entryChanged(int, ChangeType)),
+ clientNotifier, SLOT(entryChanged(int, ChangeType)));
+ QTest::qWait(waitTime500ms);
+ CaEntry group(GroupEntryRole);
+ group.setText("Text");
+ group.setEntryTypeName("TypeName");
+ QSharedPointer<CaEntry> entryGroup = mService->createEntry(group);
+ QTest::qWait(waitTime1sec);
+ int groupId = entryGroup->id();
+
+ QCOMPARE(clientNotifier->mChangeType, AddChangeType);
+ QVERIFY(clientNotifier->mEntryId > 0);
+ QCOMPARE(clientNotifier->mEntryId, entryGroup->id());
+
+ connect(notifier, SIGNAL(groupContentChanged(int)),
+ clientNotifier, SLOT(groupContentChanged(int)));
+ QTest::qWait(waitTime500ms);
+ CaEntry item1;
+ item1.setText("Text");
+ item1.setEntryTypeName("TypeName");
+ QSharedPointer<CaEntry> entry1 = mService->createEntry(item1);
+ QTest::qWait(waitTime1sec);
+ CaEntry item2;
+ item2.setText("Text");
+ item2.setEntryTypeName("TypeName");
+ QSharedPointer<CaEntry> entry2 = mService->createEntry(item2);
+ QTest::qWait(waitTime1sec);
+
+ QList<QSharedPointer<CaEntry> > entriesList;
+ entriesList.append(entry1);
+ entriesList.append(entry2);
+
+ bool appended = mService->appendEntriesToGroup((CaEntry &)*entryGroup, entriesList);
+ QTest::qWait(waitTime1sec);
+ QCOMPARE(appended, TRUE);
+
+ QList<int> entriesIdList;
+ entriesIdList.append(entry1->id());
+ entriesIdList.append(entry2->id());
+ clientNotifier->mEntryId = 0;
+ clientNotifier->mGroupId = 0;
+ bool removed = mService->removeEntriesFromGroup(entryGroup->id(), entriesIdList);
+ QTest::qWait(waitTime1sec);
+
+ QVERIFY(clientNotifier->mGroupId > 0);
+ QCOMPARE(clientNotifier->mGroupId, groupId);
+ QCOMPARE(clientNotifier->mGroupId, entryGroup->id());
+ QCOMPARE(removed, TRUE);
+
+ // cleanup
+ disconnect(notifier, SIGNAL(entryChanged(int, ChangeType)),
+ clientNotifier, SLOT(entryChanged(int, ChangeType)));
+ disconnect(notifier, SIGNAL(groupContentChanged(int)),
+ clientNotifier, SLOT(groupContentChanged(int)));
+ QTest::qWait(waitTime500ms);
+ delete clientNotifier;
+ mService->removeEntries(entriesList);
+ QTest::qWait(waitTime1sec);
+ mService->removeEntry(entryGroup->id());
+ QTest::qWait(waitTime1sec);
+ entriesList.clear();
+ entriesIdList.clear();
+
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+// __UHEAP_MARKEND;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+}
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestInsertEntryGroupNotifier()
+{
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+// __UHEAP_MARK;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+
+ TestCaClientNotifier *clientNotifier = new TestCaClientNotifier(*mService);
+ CaNotifier *notifier = clientNotifier->getNotifier();
+
+ connect(notifier, SIGNAL(entryChanged(int, ChangeType)),
+ clientNotifier, SLOT(entryChanged(int, ChangeType)));
+ QTest::qWait(waitTime500ms);
+ CaEntry group(GroupEntryRole);
+ group.setText("Text");
+ group.setEntryTypeName("TypeName");
+ QSharedPointer<CaEntry> entryG = mService->createEntry(group);
+ QTest::qWait(waitTime1sec);
+ int groupId = entryG->id();
+
+ QCOMPARE(clientNotifier->mChangeType, AddChangeType);
+ QVERIFY(clientNotifier->mEntryId > 0);
+ QCOMPARE(clientNotifier->mEntryId, entryG->id());
+
+ connect(notifier, SIGNAL(groupContentChanged(int)),
+ clientNotifier, SLOT(groupContentChanged(int)));
+ QTest::qWait(waitTime500ms);
+ CaEntry item1;
+ item1.setText("Text1");
+ item1.setEntryTypeName("TypeName1");
+ QSharedPointer<CaEntry> entryI1 = mService->createEntry(item1);
+ QTest::qWait(waitTime1sec);
+ CaEntry item2;
+ item2.setText("Text2");
+ item2.setEntryTypeName("TypeName2");
+ QSharedPointer<CaEntry> entryI2 = mService->createEntry(item2);
+ QTest::qWait(waitTime1sec);
+
+ bool appended = mService->appendEntryToGroup((CaEntry &)(*entryG), *entryI1);
+ QTest::qWait(waitTime500ms);
+ QCOMPARE(appended, TRUE);
+ appended = mService->prependEntryToGroup((CaEntry &)(*entryG), *entryI2);
+ QTest::qWait(waitTime500ms);
+ QCOMPARE(appended, TRUE);
+
+ CaEntry item3;
+ item3.setText("Text3");
+ item3.setEntryTypeName("TypeName3");
+ QSharedPointer<CaEntry> entryI3 = mService->createEntry(item3);
+ QTest::qWait(waitTime1sec);
+ clientNotifier->mEntryId = 0;
+ clientNotifier->mGroupId = 0;
+
+ bool inserted = mService->insertEntryIntoGroup((CaEntry &)*entryG, *entryI3, entryI2->id());
+ QTest::qWait(waitTime1sec);
+
+ QVERIFY(clientNotifier->mGroupId > 0);
+ QCOMPARE(clientNotifier->mGroupId, groupId);
+ QCOMPARE(clientNotifier->mGroupId, entryG->id());
+ QCOMPARE(inserted, TRUE);
+
+ // cleanup
+ disconnect(notifier, SIGNAL(entryChanged(int,ChangeType)),
+ clientNotifier, SLOT(entryChanged(int,ChangeType)));
+ disconnect(notifier, SIGNAL(groupContentChanged(int)),
+ clientNotifier, SLOT(groupContentChanged(int)));
+ QTest::qWait(waitTime500ms);
+ delete clientNotifier;
+ mService->removeEntry(entryI1->id());
+ QTest::qWait(waitTime500ms);
+ mService->removeEntry(entryI2->id());
+ QTest::qWait(waitTime500ms);
+ mService->removeEntry(entryI3->id());
+ QTest::qWait(waitTime500ms);
+ mService->removeEntry(entryG->id());
+ QTest::qWait(waitTime1sec);
+
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+// __UHEAP_MARKEND;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+}
+// ---------------------------------------------------------------------------
+//
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestInsertEntryGroupIdNotifier()
+{
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+// __UHEAP_MARK;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+
+ TestCaClientNotifier *clientNotifier = new TestCaClientNotifier(*mService);
+ CaNotifier *notifier = clientNotifier->getNotifier();
+
+ connect(notifier, SIGNAL(entryChanged(int, ChangeType)),
+ clientNotifier, SLOT(entryChanged(int, ChangeType)));
+ QTest::qWait(waitTime500ms);
+ CaEntry group(GroupEntryRole);
+ group.setText("Text");
+ group.setEntryTypeName("TypeName");
+ QSharedPointer<CaEntry> entryG = mService->createEntry(group);
+ QTest::qWait(waitTime1sec);
+ int groupId = entryG->id();
+
+ QCOMPARE(clientNotifier->mChangeType, AddChangeType);
+ QVERIFY(clientNotifier->mEntryId > 0);
+ QCOMPARE(clientNotifier->mEntryId, entryG->id());
+
+ connect(notifier, SIGNAL(groupContentChanged(int)),
+ clientNotifier, SLOT(groupContentChanged(int)));
+ QTest::qWait(waitTime500ms);
+ CaEntry item1;
+ item1.setText("Text1");
+ item1.setEntryTypeName("TypeName1");
+ QSharedPointer<CaEntry> entryI1 = mService->createEntry(item1);
+ QTest::qWait(waitTime1sec);
+ CaEntry item2;
+ item2.setText("Text2");
+ item2.setEntryTypeName("TypeName2");
+ QSharedPointer<CaEntry> entryI2 = mService->createEntry(item2);
+ QTest::qWait(waitTime1sec);
+
+ bool appended = mService->appendEntryToGroup(entryG->id(), entryI1->id());
+ QTest::qWait(waitTime500ms);
+ QCOMPARE(appended, TRUE);
+ appended = mService->prependEntryToGroup(entryG->id(), entryI2->id());
+ QTest::qWait(waitTime500ms);
+ QCOMPARE(appended, TRUE);
+
+ CaEntry item3;
+ item3.setText("Text3");
+ item3.setEntryTypeName("TypeName3");
+ QSharedPointer<CaEntry> entryI3 = mService->createEntry(item3);
+ QTest::qWait(waitTime1sec);
+ clientNotifier->mEntryId = 0;
+ clientNotifier->mGroupId = 0;
+
+ bool inserted = mService->insertEntryIntoGroup(entryG->id(), entryI3->id(), entryI2->id());
+ QTest::qWait(waitTime1sec);
+
+ QVERIFY(clientNotifier->mGroupId > 0);
+ QCOMPARE(clientNotifier->mGroupId, groupId);
+ QCOMPARE(clientNotifier->mGroupId, entryG->id());
+ QCOMPARE(inserted, TRUE);
+
+ // cleanup
+ disconnect(notifier, SIGNAL(entryChanged(int,ChangeType)),
+ clientNotifier, SLOT(entryChanged(int,ChangeType)));
+ disconnect(notifier, SIGNAL(groupContentChanged(int)),
+ clientNotifier, SLOT(groupContentChanged(int)));
+ QTest::qWait(waitTime500ms);
+ delete clientNotifier;
+ mService->removeEntry(entryI1->id());
+ QTest::qWait(waitTime500ms);
+ mService->removeEntry(entryI2->id());
+ QTest::qWait(waitTime500ms);
+ mService->removeEntry(entryI3->id());
+ QTest::qWait(waitTime500ms);
+ mService->removeEntry(entryG->id());
+ QTest::qWait(waitTime1sec);
+
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+// __UHEAP_MARKEND;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+}
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestInsertEntriesGroupNotifier()
+{
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+// __UHEAP_MARK;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+
+ TestCaClientNotifier *clientNotifier = new TestCaClientNotifier(*mService);
+ CaNotifier *notifier = clientNotifier->getNotifier();
+
+ connect(notifier, SIGNAL(entryChanged(int, ChangeType)),
+ clientNotifier, SLOT(entryChanged(int, ChangeType)));
+ QTest::qWait(waitTime500ms);
+ CaEntry group(GroupEntryRole);
+ group.setText("Text");
+ group.setEntryTypeName("TypeName");
+ QSharedPointer<CaEntry> entryG = mService->createEntry(group);
+ QTest::qWait(waitTime1sec);
+ int groupId = entryG->id();
+
+ QCOMPARE(clientNotifier->mChangeType, AddChangeType);
+ QVERIFY(clientNotifier->mEntryId > 0);
+ QCOMPARE(clientNotifier->mEntryId, entryG->id());
+
+ connect(notifier, SIGNAL(groupContentChanged(int)),
+ clientNotifier, SLOT(groupContentChanged(int)));
+ QTest::qWait(waitTime500ms);
+ CaEntry item1;
+ item1.setText("Text1");
+ item1.setEntryTypeName("TypeName1");
+ QSharedPointer<CaEntry> entryI1 = mService->createEntry(item1);
+ QTest::qWait(waitTime1sec);
+ CaEntry item2;
+ item2.setText("Text2");
+ item2.setEntryTypeName("TypeName2");
+ QSharedPointer<CaEntry> entryI2 = mService->createEntry(item2);
+ QTest::qWait(waitTime1sec);
+
+ bool appended = mService->appendEntryToGroup((CaEntry &)(*entryG), *entryI1);
+ QTest::qWait(waitTime500ms);
+ QCOMPARE(appended, TRUE);
+ appended = mService->prependEntryToGroup((CaEntry &)(*entryG), *entryI2);
+ QTest::qWait(waitTime500ms);
+ QCOMPARE(appended, TRUE);
+
+ CaEntry item3;
+ item3.setText("Text3");
+ item3.setEntryTypeName("TypeName3");
+ QSharedPointer<CaEntry> entryI3 = mService->createEntry(item3);
+ QTest::qWait(waitTime1sec);
+ CaEntry item4;
+ item4.setText("Text4");
+ item4.setEntryTypeName("TypeName4");
+ QSharedPointer<CaEntry> entryI4 = mService->createEntry(item4);
+ QTest::qWait(waitTime1sec);
+
+ QList<QSharedPointer<CaEntry> > entriesList;
+ entriesList.append(entryI3);
+ entriesList.append(entryI4);
+ clientNotifier->mEntryId = 0;
+ clientNotifier->mGroupId = 0;
+
+ bool inserted = mService->insertEntriesIntoGroup((CaEntry &)*entryG, entriesList, entryI2->id());
+ QTest::qWait(waitTime1sec);
+
+ QVERIFY(clientNotifier->mGroupId > 0);
+ QCOMPARE(clientNotifier->mGroupId, groupId);
+ QCOMPARE(clientNotifier->mGroupId, entryG->id());
+ QCOMPARE(inserted, TRUE);
+
+ // cleanup
+ disconnect(notifier, SIGNAL(entryChanged(int,ChangeType)),
+ clientNotifier, SLOT(entryChanged(int,ChangeType)));
+ disconnect(notifier, SIGNAL(groupContentChanged(int)),
+ clientNotifier, SLOT(groupContentChanged(int)));
+ QTest::qWait(waitTime500ms);
+ delete clientNotifier;
+ mService->removeEntry(entryI1->id());
+ QTest::qWait(waitTime500ms);
+ mService->removeEntry(entryI2->id());
+ QTest::qWait(waitTime500ms);
+ mService->removeEntry(entryI3->id());
+ QTest::qWait(waitTime500ms);
+ mService->removeEntry(entryI4->id());
+ QTest::qWait(waitTime500ms);
+ mService->removeEntry(entryG->id());
+ QTest::qWait(waitTime1sec);
+ entriesList.clear();
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+// __UHEAP_MARKEND;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+}
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestInsertEntriesGroupIdNotifier()
+{
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+// __UHEAP_MARK;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+
+ TestCaClientNotifier *clientNotifier = new TestCaClientNotifier(*mService);
+ CaNotifier *notifier = clientNotifier->getNotifier();
+
+ connect(notifier, SIGNAL(entryChanged(int, ChangeType)),
+ clientNotifier, SLOT(entryChanged(int, ChangeType)));
+ QTest::qWait(waitTime500ms);
+ CaEntry group(GroupEntryRole);
+ group.setText("Text");
+ group.setEntryTypeName("TypeName");
+ QSharedPointer<CaEntry> entryG = mService->createEntry(group);
+ QTest::qWait(waitTime1sec);
+ int groupId = entryG->id();
+
+ QCOMPARE(clientNotifier->mChangeType, AddChangeType);
+ QVERIFY(clientNotifier->mEntryId > 0);
+ QCOMPARE(clientNotifier->mEntryId, entryG->id());
+
+ connect(notifier, SIGNAL(groupContentChanged(int)),
+ clientNotifier, SLOT(groupContentChanged(int)));
+ QTest::qWait(waitTime500ms);
+ CaEntry item1;
+ item1.setText("Text1");
+ item1.setEntryTypeName("TypeName1");
+ QSharedPointer<CaEntry> entryI1 = mService->createEntry(item1);
+ QTest::qWait(waitTime1sec);
+ CaEntry item2;
+ item2.setText("Text2");
+ item2.setEntryTypeName("TypeName2");
+ QSharedPointer<CaEntry> entryI2 = mService->createEntry(item2);
+ QTest::qWait(waitTime1sec);
+
+ bool appended = mService->appendEntryToGroup((CaEntry &)(*entryG), *entryI1);
+ QTest::qWait(waitTime500ms);
+ QCOMPARE(appended, TRUE);
+ appended = mService->prependEntryToGroup((CaEntry &)(*entryG), *entryI2);
+ QTest::qWait(waitTime500ms);
+ QCOMPARE(appended, TRUE);
+
+ CaEntry item3;
+ item3.setText("Text3");
+ item3.setEntryTypeName("TypeName3");
+ QSharedPointer<CaEntry> entryI3 = mService->createEntry(item3);
+ QTest::qWait(waitTime1sec);
+ CaEntry item4;
+ item4.setText("Text4");
+ item4.setEntryTypeName("TypeName4");
+ QSharedPointer<CaEntry> entryI4 = mService->createEntry(item4);
+ QTest::qWait(waitTime1sec);
+
+ QList<int> entriesIdsList;
+ entriesIdsList.append(entryI3->id());
+ entriesIdsList.append(entryI4->id());
+ clientNotifier->mEntryId = 0;
+ clientNotifier->mGroupId = 0;
+
+ bool inserted = mService->insertEntriesIntoGroup(entryG->id(), entriesIdsList, entryI2->id());
+ QTest::qWait(waitTime1sec);
+
+ QVERIFY(clientNotifier->mGroupId > 0);
+ QCOMPARE(clientNotifier->mGroupId, groupId);
+ QCOMPARE(clientNotifier->mGroupId, entryG->id());
+ QCOMPARE(inserted, TRUE);
+
+ // cleanup
+ disconnect(notifier, SIGNAL(entryChanged(int,ChangeType)),
+ clientNotifier, SLOT(entryChanged(int,ChangeType)));
+ disconnect(notifier, SIGNAL(groupContentChanged(int)),
+ clientNotifier, SLOT(groupContentChanged(int)));
+ QTest::qWait(waitTime500ms);
+ delete clientNotifier;
+ mService->removeEntry(entryI1->id());
+ QTest::qWait(waitTime500ms);
+ mService->removeEntry(entryI2->id());
+ QTest::qWait(waitTime500ms);
+ mService->removeEntry(entryI3->id());
+ QTest::qWait(waitTime500ms);
+ mService->removeEntry(entryI4->id());
+ QTest::qWait(waitTime500ms);
+ mService->removeEntry(entryG->id());
+ QTest::qWait(waitTime1sec);
+ entriesIdsList.clear();
+
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+// __UHEAP_MARKEND;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+}
+
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestChangeEntryWithParentIdNotifier()
+{
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+// __UHEAP_MARK;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+ CaNotifierFilter *filter = new CaNotifierFilter();
+ filter->setParentId(1); // AllCollections
+ TestCaClientNotifier *clientNotifier = new TestCaClientNotifier(*mService, filter);
+
+ CaNotifier *notifier = clientNotifier->getNotifier();
+
+ connect(notifier, SIGNAL(entryChanged(int, ChangeType)),
+ clientNotifier, SLOT(entryChanged(int, ChangeType)));
+ connect(notifier, SIGNAL(groupContentChanged(int)),
+ clientNotifier, SLOT(groupContentChanged(int)));
+ QTest::qWait(waitTime500ms);
+
+ CaEntry entryToAdd(ItemEntryRole);
+ entryToAdd.setText("Text");
+ entryToAdd.setEntryTypeName("TypeName");
+ QSharedPointer<CaEntry> entry = mService->createEntry(entryToAdd);
+ QTest::qWait(waitTime1sec);
+ int entryId = entry->id();
+
+ QCOMPARE(clientNotifier->mChangeType, AddChangeType);
+ QCOMPARE(clientNotifier->mEntryId, 0);
+ QCOMPARE(clientNotifier->mCount, 0);
+
+ bool appended = mService->appendEntryToGroup(3, entryId); // office
+ QTest::qWait(waitTime1sec);
+
+
+ QCOMPARE(clientNotifier->mChangeType, AddChangeType);
+ QVERIFY(clientNotifier->mGroupId > 0);
+ QCOMPARE(clientNotifier->mCount, 1);
+
+ mService->removeEntry(entryId);
+
+ QTest::qWait(waitTime1sec);
+
+ QCOMPARE(clientNotifier->mChangeType, RemoveChangeType);
+ QVERIFY(clientNotifier->mGroupId > 0);
+ QCOMPARE(clientNotifier->mCount, 2);
+
+ disconnect(notifier, SIGNAL(entryChanged(int, ChangeType)),
+ clientNotifier, SLOT(entryChanged(int, ChangeType)));
+ disconnect(notifier, SIGNAL(groupContentChanged(int)),
+ clientNotifier, SLOT(groupContentChanged(int)));
+
+ QTest::qWait(waitTime500ms);
+
+ delete clientNotifier;
+ delete filter;
+
+
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+// __UHEAP_MARKEND;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+}
+
+//QTEST_MAIN(homescreen::test::TestCaClient)