diff -r d1dadafc5584 -r 26079c1bb561 homescreensrv_plat/contentstorage_api/tsrc/t_contentstorage_api/src/t_caclient_createupdate.cpp --- /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 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 service = CaService::instance(); + QSharedPointer 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 service = CaService::instance(); + QSharedPointer 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 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 service = CaService::instance(); + QSharedPointer 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 resultItem2 = service->createEntry(*resultItem1); + QCOMPARE(service->lastError(), NoErrorCode); + QVERIFY(!resultItem2.isNull()); + + int id2 = resultItem2->id(); + QVERIFY(id1 != id2); //entry clone created + + QSharedPointer storageItem1 = service->getEntry(id1); + QVERIFY(!storageItem1.isNull()); + + QSharedPointer 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)