homescreensrv_plat/contentstorage_api/tsrc/t_contentstorage_api/src/t_caclient_createupdate.cpp
changeset 125 26079c1bb561
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/homescreensrv_plat/contentstorage_api/tsrc/t_contentstorage_api/src/t_caclient_createupdate.cpp	Wed Oct 06 16:00:22 2010 +0300
@@ -0,0 +1,231 @@
+/*
+* 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 "caquery.h"
+
+
+// ---------------------------------------------------------------------------
+//
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::Test_instance()
+{
+    {
+        QSharedPointer<CaService> service = CaService::instance();
+        QVERIFY(!service.isNull());
+    }
+}
+
+// ---------------------------------------------------------------------------
+//
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::Test_lastError()
+{
+    {
+        //create item
+        CaEntry item;
+        item.setText("testName");
+        item.setAttribute("attrName1", "attrVal1");
+        item.setEntryTypeName("test");
+        item.setFlags(RemovableEntryFlag);
+        item.setDescription("description");
+        CaIconDescription iconDescription;
+        iconDescription.setFilename("iconFileName");
+        iconDescription.setSkinId("iconSkinId");
+        iconDescription.setApplicationId("268458321");
+
+        item.setIconDescription(iconDescription);
+
+        QSharedPointer<CaService> service = CaService::instance();
+        QSharedPointer<CaEntry> resultItem = service->createEntry(item);
+        QCOMPARE(service->lastError(), NoErrorCode);
+
+        //Cleanup
+        service->removeEntry(*resultItem);
+        QCOMPARE(service->lastError(), NoErrorCode);
+    }
+}
+
+// ---------------------------------------------------------------------------
+//
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::Test_createEntry()
+{
+    {
+        const CaEntry constItem;
+        QCOMPARE(constItem.role(), ItemEntryRole);
+
+        //create item
+        //check if proper entry returned
+        CaEntry item;
+        item.setText("testName");
+        item.setAttribute("attrName1", "attrVal1");
+        item.setEntryTypeName("test");
+        item.setFlags(RemovableEntryFlag);
+        item.setDescription("description");
+        CaIconDescription iconDescription;
+        iconDescription.setFilename("iconFileName");
+        iconDescription.setSkinId("iconSkinId");
+        iconDescription.setApplicationId("268458321");
+
+        item.setIconDescription(iconDescription);
+
+        QSharedPointer<CaService> service = CaService::instance();
+        QSharedPointer<CaEntry> resultItem = service->createEntry(item);
+        QCOMPARE(service->lastError(), NoErrorCode);
+        QVERIFY(!resultItem.isNull());
+        QCOMPARE(resultItem->role(), ItemEntryRole);
+        QCOMPARE(item.text(),resultItem->text());
+        QCOMPARE(item.description(),resultItem->description());
+        QCOMPARE(item.entryTypeName(),resultItem->entryTypeName());
+        QCOMPARE(QString("attrVal1"),resultItem->attribute("attrName1"));
+        QCOMPARE(item.flags(),resultItem->flags());
+        int itId =item.id();
+        int resItId =resultItem->id();
+        QVERIFY(itId != resItId);
+        QCOMPARE(iconDescription.filename(),resultItem->iconDescription().filename());
+        QCOMPARE(iconDescription.skinId(),resultItem->iconDescription().skinId());
+        QCOMPARE(iconDescription.applicationId(),resultItem->iconDescription().applicationId());
+
+        // entry from storage
+        QSharedPointer<CaEntry> storageItem1 = service->getEntry(resultItem->id());
+        QVERIFY(storageItem1);
+        QCOMPARE(QString("testName"),storageItem1->text());
+        QCOMPARE(QString("description"),storageItem1->description());
+        QCOMPARE(QString("test"),storageItem1->entryTypeName());
+        QCOMPARE(QString("attrVal1"),storageItem1->attribute("attrName1"));
+        EntryFlags flags = item.flags();
+        EntryFlags storageFlags = storageItem1->flags();
+        QCOMPARE(iconDescription.filename(),storageItem1->iconDescription().filename());
+        QCOMPARE(iconDescription.skinId(),storageItem1->iconDescription().skinId());
+        QCOMPARE(iconDescription.applicationId(),storageItem1->iconDescription().applicationId());
+        QVERIFY(storageItem1->iconDescription().id() > 0);
+
+        QCOMPARE(flags ,storageFlags);
+
+        //Cleanup
+        service->removeEntry(*resultItem);
+    }
+}
+
+// ---------------------------------------------------------------------------
+//
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::Test_epdateEntry()
+{
+    {
+        CaEntry item1;
+        item1.setText("testName");
+        item1.setAttribute("attrName1", "attrVal1");
+        item1.setEntryTypeName("test");
+        item1.setFlags(RemovableEntryFlag);
+        CaIconDescription iconDescription1;
+        iconDescription1.setFilename("iconFileName");
+        iconDescription1.setSkinId("iconSkinId");
+        iconDescription1.setApplicationId("268458321"); //Bluetouth app UID
+        item1.setIconDescription(iconDescription1);
+
+        CaIconDescription iconDescription2;
+        iconDescription2.setFilename("iconFileName2");
+        iconDescription2.setSkinId("iconSkinId2");
+        iconDescription2.setApplicationId("537001519"); //SW update app UID
+
+        QSharedPointer<CaService> service = CaService::instance();
+        QSharedPointer<CaEntry> resultItem1 = service->createEntry(item1);
+        QCOMPARE(service->lastError(), NoErrorCode);
+
+        QVERIFY(!resultItem1.isNull());
+
+        int id1 = resultItem1->id();
+        resultItem1->setText("testName2");
+        resultItem1->setAttribute("attrName2", "attrVal2");
+        resultItem1->setAttribute("attrName1", "attrVal2");
+        resultItem1->setEntryTypeName("test2");
+        resultItem1->setFlags(UninstallEntryFlag);
+        resultItem1->setIconDescription(iconDescription2);
+
+        bool updateResult1 = service->updateEntry(item1);
+        QVERIFY(service->lastError() != NoErrorCode);
+
+        QVERIFY(!updateResult1);  // no id -> return false
+
+        bool updateResult2 = service->updateEntry(*resultItem1);
+        QCOMPARE(service->lastError(), NoErrorCode);
+        QVERIFY(updateResult2);  // id present -> true
+
+        QSharedPointer<CaEntry> resultItem2 = service->createEntry(*resultItem1);
+        QCOMPARE(service->lastError(), NoErrorCode);
+        QVERIFY(!resultItem2.isNull());
+
+        int id2 = resultItem2->id();
+        QVERIFY(id1 != id2);   //entry clone created
+
+        QSharedPointer<CaEntry> storageItem1 = service->getEntry(id1);
+        QVERIFY(!storageItem1.isNull());
+
+        QSharedPointer<CaEntry> storageItem2 = service->getEntry(id2);
+        QVERIFY(!storageItem2.isNull());
+
+        // check if attributes were updated
+        QCOMPARE(QString("testName2"),storageItem1->text());
+        QCOMPARE(QString("test2"),storageItem1->entryTypeName());
+
+        QCOMPARE(QString("attrVal2"),storageItem1->attribute("attrName1"));
+        QCOMPARE(QString("attrVal2"),storageItem1->attribute("attrName2"));
+        QCOMPARE(resultItem1->flags(),storageItem1->flags());
+        QCOMPARE(iconDescription2.filename(),storageItem1->iconDescription().filename());
+        QCOMPARE(iconDescription2.skinId(),storageItem1->iconDescription().skinId());
+        QCOMPARE(iconDescription2.applicationId(),storageItem1->iconDescription().applicationId());
+        // cloned item should have the same attributes
+        QCOMPARE(QString("testName2"),storageItem2->text());
+        QCOMPARE(QString("test2"),storageItem2->entryTypeName());
+        QCOMPARE(QString("attrVal2"),storageItem2->attribute("attrName1"));
+        QCOMPARE(QString("attrVal2"),storageItem2->attribute("attrName2"));
+        QCOMPARE(resultItem1->flags(),storageItem2->flags());
+
+        //Cleanup
+        service->removeEntry(id1);
+        service->removeEntry(id2);
+    }
+}
+
+// ---------------------------------------------------------------------------
+//
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::terminatServer()
+{
+    TFindProcess processFinder;
+    processFinder.Find(_L("camenuserver*"));
+    TFullName caName;
+    while ( KErrNone == processFinder.Next( caName ) ) {
+        RProcess caProcess;
+        TInt err = caProcess.Open(caName);
+        if( KErrNone ==  err ) {
+            caProcess.Terminate(0);
+        }
+        caProcess.Close();
+    }
+}
+
+QTEST_MAIN(TestCaClient)