--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/contentstorage/caclient/tsrc/t_caclient/src/t_caclient_notifier_adv.cpp Thu Sep 16 12:11:40 2010 +0100
@@ -0,0 +1,267 @@
+/*
+* 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 "t_caclient.h"
+#include "caservice.h"
+#include "canotifier.h"
+#include "canotifierfilter.h"
+#include "t_caclientNotifier.h"
+
+const int entryIdFake(-1);
+const int waitTime500ms(500);
+const int waitTime1sec(1000);
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestAddItemChangeTypeNotifier3Clients()
+{
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+// __UHEAP_MARK;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+ {
+ QSharedPointer<CaService> service = CaService::instance();
+ TestCaClientNotifier *clientNotifier_1 = new TestCaClientNotifier(*service);
+ CaNotifier *notifier_1 = clientNotifier_1->getNotifier();
+
+ TestCaClientNotifier *clientNotifier_2 = new TestCaClientNotifier(*service);
+ CaNotifier *notifier_2 = clientNotifier_2->getNotifier();
+
+ TestCaClientNotifier *clientNotifier_3 = new TestCaClientNotifier(*service);
+ CaNotifier *notifier_3 = clientNotifier_3->getNotifier();
+
+ connect(notifier_1, SIGNAL(entryChanged(int,ChangeType)),
+ clientNotifier_1, SLOT(entryChanged(int,ChangeType)));
+ connect(notifier_2, SIGNAL(entryChanged(CaEntry,ChangeType)),
+ clientNotifier_2, SLOT(entryChanged(CaEntry,ChangeType)));
+ connect(notifier_3, SIGNAL(entryChanged(int,ChangeType)),
+ clientNotifier_3, SLOT(entryChanged(int,ChangeType)));
+ QTest::qWait(waitTime1sec);
+
+ clientNotifier_1->mChangeType = RemoveChangeType;
+ clientNotifier_2->mChangeType = RemoveChangeType;
+ clientNotifier_3->mChangeType = RemoveChangeType;
+ terminatServer();
+ CaEntry item;
+ item.setText("Text");
+ item.setEntryTypeName("TypeName");
+ QSharedPointer<CaEntry> entry = service->createEntry(item);
+ QTest::qWait(waitTime1sec);
+
+ QCOMPARE(clientNotifier_1->mChangeType, AddChangeType);
+ QVERIFY(clientNotifier_1->mEntryId > 0);
+ QCOMPARE(clientNotifier_1->mEntryId, entry->id());
+ QCOMPARE(clientNotifier_1->mEntryId, clientNotifier_2->mEntryId);
+ QCOMPARE(clientNotifier_3->mEntryId, clientNotifier_2->mEntryId);
+ QCOMPARE(clientNotifier_2->mChangeType, AddChangeType);
+ QCOMPARE(entry->text(), clientNotifier_2->mEntry->text());
+ QCOMPARE(clientNotifier_3->mChangeType, AddChangeType);
+
+
+ // cleanup
+ disconnect(notifier_1, SIGNAL(entryChanged(int,ChangeType)),
+ clientNotifier_1, SLOT(entryChanged(int,ChangeType)));
+ disconnect(notifier_2, SIGNAL(entryChanged(CaEntry,ChangeType)),
+ clientNotifier_2, SLOT(entryChanged(CaEntry,ChangeType)));
+ disconnect(notifier_3, SIGNAL(entryChanged(int,ChangeType)),
+ clientNotifier_3, SLOT(entryChanged(int,ChangeType)));
+ QTest::qWait(waitTime1sec);
+ delete clientNotifier_1;
+ delete clientNotifier_2;
+ delete clientNotifier_3;
+ service->removeEntry(entry->id());
+ }
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+// __UHEAP_MARKEND;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+}
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestRemoveEntryChangeTypeNotifier3Clients()
+{
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+// __UHEAP_MARK;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+ {
+ QSharedPointer<CaService> service = CaService::instance();
+ TestCaClientNotifier *clientNotifier_1 = new TestCaClientNotifier(*service);
+ CaNotifier *notifier_1 = clientNotifier_1->getNotifier();
+
+ TestCaClientNotifier *clientNotifier_2 = new TestCaClientNotifier(*service);
+ CaNotifier *notifier_2 = clientNotifier_2->getNotifier();
+
+ TestCaClientNotifier *clientNotifier_3 = new TestCaClientNotifier(*service);
+ CaNotifier *notifier_3 = clientNotifier_3->getNotifier();
+
+ connect(notifier_1, SIGNAL(entryChanged(int,ChangeType)),
+ clientNotifier_1, SLOT(entryChanged(int,ChangeType)));
+ connect(notifier_2, SIGNAL(entryChanged(CaEntry,ChangeType)),
+ clientNotifier_2, SLOT(entryChanged(CaEntry,ChangeType)));
+ connect(notifier_3, SIGNAL(entryChanged(int,ChangeType)),
+ clientNotifier_3, SLOT(entryChanged(int,ChangeType)));
+ QTest::qWait(waitTime1sec);
+ terminatServer();
+ CaEntry item;
+ item.setText("Text");
+ item.setEntryTypeName("TypeName");
+
+ QSharedPointer<CaEntry> entry = service->createEntry(item);
+ QTest::qWait(waitTime1sec);
+
+ QCOMPARE(clientNotifier_1->mChangeType, AddChangeType);
+ QVERIFY(clientNotifier_2->mEntryId > 0);
+ QCOMPARE(clientNotifier_3->mEntryId, entry->id());
+
+ int entryId_1 = clientNotifier_1->mEntryId;
+ clientNotifier_1->mEntryId = 0;
+ int entryId_2 = clientNotifier_2->mEntryId;
+ clientNotifier_2->mEntryId = 0;
+ int entryId_3 = clientNotifier_3->mEntryId;
+ clientNotifier_3->mEntryId = 0;
+
+ bool removed = service->removeEntry(*entry);
+ QTest::qWait(waitTime1sec);
+
+ QCOMPARE(clientNotifier_1->mChangeType, RemoveChangeType);
+ QCOMPARE(clientNotifier_2->mChangeType, RemoveChangeType);
+ QCOMPARE(clientNotifier_3->mChangeType, RemoveChangeType);
+ QVERIFY(clientNotifier_1->mEntryId > 0);
+ QCOMPARE(clientNotifier_1->mEntryId, entryId_1);
+ QCOMPARE(clientNotifier_2->mEntryId, entryId_2);
+ QCOMPARE(clientNotifier_3->mEntryId, entryId_3);
+ QCOMPARE(entryId_1, entryId_3);
+ QCOMPARE(entryId_2, entryId_3);
+ QCOMPARE(removed, TRUE);
+
+ // cleanup
+ disconnect(notifier_1, SIGNAL(entryChanged(int,ChangeType)),
+ clientNotifier_1, SLOT(entryChanged(int,ChangeType)));
+ disconnect(notifier_2, SIGNAL(entryChanged(const CaEntry &,ChangeType)),
+ clientNotifier_2, SLOT(entryChanged(const CaEntry &,ChangeType)));
+ disconnect(notifier_3, SIGNAL(entryChanged(int,ChangeType)),
+ clientNotifier_3, SLOT(entryChanged(int,ChangeType)));
+ QTest::qWait(waitTime500ms);
+ delete clientNotifier_1;
+ delete clientNotifier_2;
+ delete clientNotifier_3;
+ service->removeEntry(entry->id());
+ }
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+// __UHEAP_MARKEND;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+}
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestRemoveEntriesChangeTypeNotifier3Clients()
+{
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+// __UHEAP_MARK;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+ {
+ QSharedPointer<CaService> service = CaService::instance();
+ TestCaClientNotifier *clientNotifier_1 = new TestCaClientNotifier(*service);
+ CaNotifier *notifier_1 = clientNotifier_1->getNotifier();
+
+ TestCaClientNotifier *clientNotifier_2 = new TestCaClientNotifier(*service);
+ CaNotifier *notifier_2 = clientNotifier_2->getNotifier();
+
+ TestCaClientNotifier *clientNotifier_3 = new TestCaClientNotifier(*service);
+ CaNotifier *notifier_3 = clientNotifier_3->getNotifier();
+
+ connect(notifier_1, SIGNAL(entryChanged(int,ChangeType)),
+ clientNotifier_1, SLOT(entryChanged(int,ChangeType)));
+ connect(notifier_2, SIGNAL(entryChanged(CaEntry,ChangeType)),
+ clientNotifier_2, SLOT(entryChanged(CaEntry,ChangeType)));
+ connect(notifier_3, SIGNAL(entryChanged(int,ChangeType)),
+ clientNotifier_3, SLOT(entryChanged(int,ChangeType)));
+ QTest::qWait(waitTime1sec);
+
+ CaEntry item1;
+ item1.setText("Text1");
+ item1.setEntryTypeName("TypeName1");
+ QSharedPointer<CaEntry> entry1 = service->createEntry(item1);
+ QTest::qWait(waitTime1sec);
+ CaEntry item2;
+ item2.setText("Text2");
+ item2.setEntryTypeName("TypeName2");
+ QSharedPointer<CaEntry> entry2 = service->createEntry(item2);
+ QTest::qWait(waitTime1sec);
+ CaEntry item3;
+ item3.setText("Text3");
+ item3.setEntryTypeName("TypeName3");
+ QSharedPointer<CaEntry> entry3 = service->createEntry(item3);
+ QTest::qWait(waitTime1sec);
+ CaEntry item4;
+ item4.setText("Text4");
+ item4.setEntryTypeName("TypeName4");
+ QSharedPointer<CaEntry> entry4 = service->createEntry(item4);
+ QTest::qWait(waitTime1sec);
+
+ QList<QSharedPointer<CaEntry> > entriesList;
+ entriesList.append(entry1);
+ entriesList.append(entry2);
+ entriesList.append(entry3);
+ entriesList.append(entry4);
+
+ clientNotifier_1->mEntryId = clientNotifier_2->mEntryId =
+ clientNotifier_3->mEntryId = 0;
+
+ bool removed = service->removeEntries(entriesList);
+ QTest::qWait(waitTime1sec);
+
+ QCOMPARE(clientNotifier_1->mChangeType, RemoveChangeType);
+ QCOMPARE(clientNotifier_2->mChangeType, RemoveChangeType);
+ QCOMPARE(clientNotifier_3->mChangeType, RemoveChangeType);
+ QVERIFY(clientNotifier_1->mEntryId > 0);
+ QCOMPARE(clientNotifier_1->mEntryId, clientNotifier_2->mEntryId);
+ QCOMPARE(clientNotifier_1->mEntryId, clientNotifier_3->mEntryId);
+ QCOMPARE(removed, TRUE);
+
+ // cleanup
+ disconnect(notifier_1, SIGNAL(entryChanged(int,ChangeType)),
+ clientNotifier_1, SLOT(entryChanged(int,ChangeType)));
+ disconnect(notifier_2, SIGNAL(entryChanged(CaEntry,ChangeType)),
+ clientNotifier_2, SLOT(entryChanged(CaEntry,ChangeType)));
+ disconnect(notifier_3, SIGNAL(entryChanged(int,ChangeType)),
+ clientNotifier_3, SLOT(entryChanged(int,ChangeType)));
+ QTest::qWait(waitTime1sec);
+
+ delete clientNotifier_1;
+ delete clientNotifier_2;
+ delete clientNotifier_3;
+ service->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
+}
+