videofeeds/server/tsrc/VCXServiceManagementApiTest/src/IptvServiceManagementApiTestLogic.cpp
changeset 0 96612d01cf9f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/videofeeds/server/tsrc/VCXServiceManagementApiTest/src/IptvServiceManagementApiTestLogic.cpp	Mon Jan 18 20:21:12 2010 +0200
@@ -0,0 +1,828 @@
+/*
+* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "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:   ?Description*
+*/
+
+
+
+// INCLUDE FILES
+#include <e32svr.h>
+#include <StifParser.h>
+#include <Stiftestinterface.h>
+#include "IptvServiceManagementApiTest.h"
+#include "CIptvServiceManagementSync.h"
+#include "CIptvTestUtilities.h"
+#include "VCXTestLog.h"
+#include "CIptvIapList.h"
+#include "TIptvIap.h"
+#include <f32file.h>
+#include "IptvEngineUids.h"
+
+// EXTERNAL DATA STRUCTURES
+
+// EXTERNAL FUNCTION PROTOTYPES
+
+// CONSTANTS
+_LIT(KUninitializedService, "UNINITIALIZED");
+
+// MACROS
+
+// LOCAL CONSTANTS AND MACROS
+
+// MODULE DATA STRUCTURES
+
+// LOCAL FUNCTION PROTOTYPES
+
+// FORWARD DECLARATIONS
+
+
+// ============================= LOCAL FUNCTIONS ===============================
+
+
+
+// ============================ MEMBER FUNCTIONS ==============================
+
+// -----------------------------------------------------------------------------
+// CIptvServiceManagementApiTest::UpdateService
+// Example test method function.
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+
+TInt CIptvServiceManagementApiTest::TestUpdateService(CIptvServiceManagementSync::TIptvSmTestConnection aConn, TInt aIdDestination, TInt aIdSource)
+    {
+    TRespStatus expectedResp = ESucceeded;
+    TRespStatus respStatus = ESucceeded;
+    TInt testCaseStatus = KErrNone;
+
+    CIptvService* pServiceSource = NULL;
+    CIptvService* pServiceDestination = NULL;
+
+    pServiceSource = iIptvTestUtilities->GetServiceFromDb(aIdSource);
+
+    CIptvService* pServiceDest = NULL;
+    pServiceDest = iIptvTestUtilities->GetServiceFromDb(aIdDestination);
+
+    // if addresses are same then there won't be an event
+    if(pServiceDest && pServiceSource)
+    if(pServiceDest->GetAddress() == pServiceSource->GetAddress())
+        {
+        iIptvServiceManagementSync->SetSpecialAction(CIptvServiceManagementSync::EIptvSmWaitNoEvents);
+        }
+
+    delete pServiceDest;
+    pServiceDest = NULL;
+
+    // update with uninitialized data
+    if(!pServiceSource)
+        {
+        TBuf<256> uninitializedService(KUninitializedService);
+        pServiceSource = GetHardcodedService(uninitializedService, 0);
+        }
+
+    if(pServiceSource)
+        {
+        pServiceSource->SetId(aIdDestination);//set destination id
+        if(IsServiceInDb(aIdDestination))
+            {
+            //lets update
+
+                respStatus = iIptvServiceManagementSync->CallUpdateService(aConn, *pServiceSource, CIptvSmEvent::EServiceModified);
+                if(respStatus != ESucceeded)
+                    {
+                    testCaseStatus = KErrGeneral;
+                    }
+
+
+            }
+        else
+            {
+            //try to update non existing service
+            expectedResp = EServiceNotFound;
+
+            respStatus = iIptvServiceManagementSync->CallUpdateService(aConn, *pServiceSource, CIptvSmEvent::EServiceModified);
+            if(respStatus != expectedResp)
+                {
+                VCXLOGLO2("** FAIL ** Response to service request is not correct: %d", respStatus);
+                iLog->Log(_L("**** Fail *** Response to service request is not correct"));
+                testCaseStatus = KErrGeneral;
+                }
+
+            }
+        }
+    else
+        {
+        VCXLOGLO1("** FAIL ** Error in testcase, source service not found");
+        iLog->Log(_L("*** FAIL *** Error in testcase, source service not found"));
+        testCaseStatus = KErrGeneral;
+        }
+
+    if(pServiceSource)
+        {
+        delete pServiceSource;
+        pServiceSource = NULL;
+        }
+
+    if(pServiceDestination)
+        {
+        delete pServiceDestination;
+        pServiceDestination = NULL;
+        }
+
+    return testCaseStatus;
+    }
+
+// -----------------------------------------------------------------------------
+// CIptvServiceManagementApiTest::IsServiceInDb
+// Example test method function.
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+
+TBool CIptvServiceManagementApiTest::IsServiceInDb(TInt aId)
+    {
+    TBool rv = FALSE;
+    CIptvService* p = NULL;
+    p = iIptvTestUtilities->GetServiceFromDb(aId);
+
+    if(p)
+        {
+        rv = TRUE;
+        delete p;
+        p = NULL;
+        }
+
+    return rv;
+    }
+
+// -----------------------------------------------------------------------------
+// CIptvServiceManagementApiTest::InitHardcodedServicesL
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+TInt CIptvServiceManagementApiTest::InitHardcodedServicesL()
+    {
+    CIptvServiceInfo* serviceInfo;
+
+    //
+    // Yle media sali
+    //
+
+    serviceInfo = CIptvServiceInfo::NewL();
+
+    serviceInfo->iId = 3;
+    serviceInfo->iName.Append(_L("YLE Mediasali"));
+    serviceInfo->iAddress.Append(_L("http://193.65.182.78/yle.xml"));
+    serviceInfo->iIconPath.Append(_L("c:\\resource\\apps\\logo_yle_24.mif"));
+    serviceInfo->iEpgPluginUid.iUid = 0x102750E1;
+    serviceInfo->iVodPluginUid.iUid = 0x102750D9;
+    serviceInfo->iIptvPluginUid.iUid = 0x00000000;
+    serviceInfo->iServiceType = CIptvService::EVod;
+
+    serviceInfo->iUserName.Append(_L("mediacharger"));
+    serviceInfo->iPassWord.Append(_L("Buran_9o"));
+    serviceInfo->iDesc.Append(_L("YLE Mediasali"));
+
+    serviceInfo->iSelectedFlag = FALSE;
+    serviceInfo->iReadOnlyFlag = FALSE;
+    serviceInfo->iMainServiceFlag = FALSE;
+    serviceInfo->iConnectionApprovedFlag = TRUE;
+    serviceInfo->iApplicationUid = 0x0;
+    serviceInfo->iDisplayOrder = 0x0;
+    serviceInfo->iProviderId.Zero();
+    serviceInfo->iProviderId.Append(_L("Provider_ylemediasali"));;
+    serviceInfo->iAccountManagementUrl.Append(_L("http://www.nokia.com"));
+
+    iHardcodedServices.Append(serviceInfo);
+
+    //
+    // OOPS
+    //
+    serviceInfo = CIptvServiceInfo::NewL();
+
+    serviceInfo->iId = 0;
+    serviceInfo->iName.Append(_L("OOPS"));
+    serviceInfo->iAddress.Append(_L("http://193.65.182.78/oops.xml"));
+    serviceInfo->iIconPath.Append(_L("c:\\"));
+    serviceInfo->iEpgPluginUid.iUid = 0x102750E1;
+    serviceInfo->iVodPluginUid.iUid = 0x102750D9;
+    serviceInfo->iIptvPluginUid.iUid = 0x00000000;
+    serviceInfo->iServiceType = CIptvService::EVod;
+
+    serviceInfo->iUserName.Append(_L("mediacharger"));
+    serviceInfo->iPassWord.Append(_L("Buran_9o"));
+    serviceInfo->iDesc.Append(_L("OOPS"));
+
+    serviceInfo->iSelectedFlag = TRUE;
+    serviceInfo->iReadOnlyFlag = FALSE;
+    serviceInfo->iMainServiceFlag = TRUE;
+    serviceInfo->iConnectionApprovedFlag = TRUE;
+    serviceInfo->iApplicationUid = 0x0;
+    serviceInfo->iDisplayOrder = 0x1;
+    serviceInfo->iProviderId.Zero();
+    serviceInfo->iProviderId.Append(_L("Provider_oops"));;
+    serviceInfo->iAccountManagementUrl.Append(_L("http://www.nokia.com"));
+
+    iHardcodedServices.Append(serviceInfo);
+
+
+    //
+    // OOPS6
+    //
+    serviceInfo = CIptvServiceInfo::NewL(*serviceInfo);
+    serviceInfo->iId = 6;
+    serviceInfo->iName.Zero();
+    serviceInfo->iName.Append(_L("OOPS6"));
+    iHardcodedServices.Append(serviceInfo);
+    serviceInfo->iProviderId.Zero();
+    serviceInfo->iProviderId.Append(_L("Provider_oops6"));;
+
+    //
+    // OOPS9
+    //
+    serviceInfo = CIptvServiceInfo::NewL(*serviceInfo);
+    serviceInfo->iId = 9;
+    serviceInfo->iName.Zero();
+    serviceInfo->iName.Append(_L("OOPS9"));
+    iHardcodedServices.Append(serviceInfo);
+    serviceInfo->iProviderId.Zero();
+    serviceInfo->iProviderId.Append(_L("Provider_oops9"));;
+
+
+    //
+    // Service15Iaps
+    //
+
+
+    serviceInfo = CIptvServiceInfo::NewL();
+
+    serviceInfo->iId = 50;
+    serviceInfo->iName.Append(_L("Service15Iaps"));
+    serviceInfo->iAddress.Append(_L("http://193.65.182.78/oops.xml"));
+    serviceInfo->iIconPath.Append(_L("c:\\"));
+    serviceInfo->iEpgPluginUid.iUid = 0x102750E1;
+    serviceInfo->iVodPluginUid.iUid = 0x102750D9;
+    serviceInfo->iIptvPluginUid.iUid = 0x00000000;
+    serviceInfo->iServiceType = CIptvService::EVod;
+
+    serviceInfo->iUserName.Append(_L("mediacharger"));
+    serviceInfo->iPassWord.Append(_L("Buran_9o"));
+    serviceInfo->iDesc.Append(_L("OOPS"));
+
+    serviceInfo->iSelectedFlag = TRUE;
+    serviceInfo->iReadOnlyFlag = FALSE;
+    serviceInfo->iMainServiceFlag = TRUE;
+    serviceInfo->iConnectionApprovedFlag = TRUE;
+    serviceInfo->iApplicationUid = 0x0;
+    serviceInfo->iDisplayOrder = 0x1;
+    serviceInfo->iProviderId.Zero();
+    serviceInfo->iProviderId.Append(_L("Provider_15iaps"));;
+    serviceInfo->iAccountManagementUrl.Append(_L("http://www.nokia.com"));
+
+    TInt aIapsToAdd = 15;
+
+    serviceInfo->iIapList = CIptvIapList::NewL();
+
+    TInt index = 0;
+    TIptvIap iap;
+    while(aIapsToAdd--)
+        {
+
+        if(index > iIapNumList->Count())
+            {
+            index = 0;
+            }
+
+        if(KErrNone == GetCommDbIapIdByOrder(index, iap.iId) )
+            {
+            iap.iPriority = index;
+            serviceInfo->iIapList->AddIap(iap, ETrue);
+            }
+
+        index++;
+        }
+
+    iHardcodedServices.Append(serviceInfo);
+
+    //
+    // NokiaVideos
+    //
+
+    serviceInfo = CIptvServiceInfo::NewL();
+
+    serviceInfo->iId = 1;
+    serviceInfo->iName.Append(_L("NokiaVideos"));
+    serviceInfo->iAddress.Append(_L("http://193.65.182.78/nokia_vod.xml"));
+    serviceInfo->iIconPath.Append(_L("C:\\"));
+    serviceInfo->iEpgPluginUid.iUid = 0x102750E1;
+    serviceInfo->iVodPluginUid.iUid = 0x102750D9;
+    serviceInfo->iIptvPluginUid.iUid = 0x00000000;
+    serviceInfo->iServiceType = CIptvService::EVod;
+
+    serviceInfo->iUserName.Append(_L("mediacharger"));
+    serviceInfo->iPassWord.Append(_L("Buran_9o"));
+    serviceInfo->iDesc.Append(_L("Own TestService"));
+
+    serviceInfo->iSelectedFlag = FALSE;
+    serviceInfo->iReadOnlyFlag = FALSE;
+    serviceInfo->iMainServiceFlag = FALSE;
+    serviceInfo->iConnectionApprovedFlag = TRUE;
+    serviceInfo->iApplicationUid = 0x0;
+    serviceInfo->iDisplayOrder = 0x0;
+    serviceInfo->iProviderId.Zero();
+    serviceInfo->iProviderId.Append(_L("Provider_nokiavideos"));;
+    serviceInfo->iAccountManagementUrl.Append(_L("http://www.nokia.com"));
+
+    iHardcodedServices.Append(serviceInfo);
+
+    //
+    // NokiaVideos7
+    //
+    serviceInfo = CIptvServiceInfo::NewL();
+
+    serviceInfo = CIptvServiceInfo::NewL(*serviceInfo);
+    serviceInfo->iId = 7;
+    serviceInfo->iName.Zero();
+    serviceInfo->iProviderId.Zero();
+    serviceInfo->iName.Append(_L("NokiaVideos7"));
+    iHardcodedServices.Append(serviceInfo);
+
+    //
+    // Kärppäkanava
+    //
+    serviceInfo = CIptvServiceInfo::NewL();
+
+    serviceInfo->iId = 4;
+    serviceInfo->iName.Append(_L("Kärppäkanava"));
+    serviceInfo->iAddress.Append(_L("http://ws27.oyy.fi/rss/kanava.xml"));
+    serviceInfo->iIconPath.Append(_L("c:\\logo_karpat.mif"));
+    serviceInfo->iEpgPluginUid.iUid = 0x102750E1;
+    serviceInfo->iVodPluginUid.iUid = 0x102750D9;
+    serviceInfo->iIptvPluginUid.iUid = 0x00000000;
+    serviceInfo->iServiceType = CIptvService::EVod;
+
+    serviceInfo->iUserName.Append(_L(""));
+    serviceInfo->iPassWord.Append(_L(""));
+    serviceInfo->iDesc.Append(_L("Karppakanava video in hw"));
+
+    serviceInfo->iSelectedFlag = TRUE;
+    serviceInfo->iReadOnlyFlag = FALSE;
+    serviceInfo->iMainServiceFlag = TRUE;
+    serviceInfo->iConnectionApprovedFlag = TRUE;
+    serviceInfo->iApplicationUid = 0x0;
+    serviceInfo->iDisplayOrder = 0x1;
+    serviceInfo->iProviderId.Zero();
+    serviceInfo->iProviderId.Append(_L("Provider_karppakanava"));;
+    serviceInfo->iAccountManagementUrl.Append(_L("http://www.nokia.com"));
+
+    iHardcodedServices.Append(serviceInfo);
+
+    //
+    // Rocketboom
+    //
+    serviceInfo = CIptvServiceInfo::NewL();
+
+    serviceInfo->iId = 2;
+    serviceInfo->iName.Append(_L("Rocketboom"));
+    serviceInfo->iAddress.Append(_L("http://193.65.182.78/testingfeed_iptvengine.xml"));
+    serviceInfo->iIconPath.Append(_L("C:\\"));
+    serviceInfo->iEpgPluginUid.iUid = 0x102750E1;
+    serviceInfo->iVodPluginUid.iUid = 0x102750D9;
+    serviceInfo->iIptvPluginUid.iUid = 0x00000000;
+    serviceInfo->iServiceType = CIptvService::EVod;
+
+    serviceInfo->iUserName.Append(_L("mediacharger"));
+    serviceInfo->iPassWord.Append(_L("Buran_9o"));
+    serviceInfo->iDesc.Append(_L("Rocketboom"));
+
+    serviceInfo->iSelectedFlag = TRUE;
+    serviceInfo->iReadOnlyFlag = FALSE;
+    serviceInfo->iMainServiceFlag = TRUE;
+    serviceInfo->iConnectionApprovedFlag = TRUE;
+    serviceInfo->iApplicationUid = 0x0;
+    serviceInfo->iDisplayOrder = 0x1;
+    serviceInfo->iProviderId.Zero();
+    serviceInfo->iProviderId.Append(_L("Provider_rocketboom"));;
+    serviceInfo->iAccountManagementUrl.Append(_L("http://www.nokia.com"));
+
+    iHardcodedServices.Append(serviceInfo);
+
+    //
+    // Rocketboom5
+    //
+
+    serviceInfo = CIptvServiceInfo::NewL(*serviceInfo);
+    serviceInfo->iId = 5;
+    serviceInfo->iName.Zero();
+    serviceInfo->iName.Append(_L("Rocketboom5"));
+    serviceInfo->iProviderId.Zero();
+    serviceInfo->iProviderId.Append(_L("Provider_rocketboom5"));;
+    iHardcodedServices.Append(serviceInfo);
+
+    //
+    // Rocketboom8
+    //
+    serviceInfo = CIptvServiceInfo::NewL(*serviceInfo);
+    serviceInfo->iId = 8;
+    serviceInfo->iName.Zero();
+    serviceInfo->iName.Append(_L("Rocketboom8"));
+    iHardcodedServices.Append(serviceInfo);
+    serviceInfo->iProviderId.Zero();
+    serviceInfo->iProviderId.Append(_L("Provider_rocketboom8"));;
+
+    //
+    // NSeries
+    //
+    serviceInfo = CIptvServiceInfo::NewL();
+
+    serviceInfo->iId = 10;
+    serviceInfo->iName.Append(_L("NSeries"));
+    serviceInfo->iAddress.Append(_L("http://193.65.182.78/nseries.xml"));
+    serviceInfo->iIconPath.Append(_L("C:\\"));
+    serviceInfo->iEpgPluginUid.iUid = 0x102750E1;
+    serviceInfo->iVodPluginUid.iUid = 0x102750D9;
+    serviceInfo->iIptvPluginUid.iUid = 0x00000000;
+    serviceInfo->iServiceType = CIptvService::EVod;
+
+    serviceInfo->iUserName.Append(_L("mediacharger"));
+    serviceInfo->iPassWord.Append(_L("Buran_9o"));
+    serviceInfo->iDesc.Append(_L("NSeries"));
+
+    serviceInfo->iSelectedFlag = TRUE;
+    serviceInfo->iReadOnlyFlag = FALSE;
+    serviceInfo->iMainServiceFlag = TRUE;
+    serviceInfo->iConnectionApprovedFlag = TRUE;
+    serviceInfo->iApplicationUid = 0x0;
+    serviceInfo->iDisplayOrder = 0x1;
+    serviceInfo->iProviderId.Zero();
+    serviceInfo->iProviderId.Append(_L("Provider_nseries"));;
+    serviceInfo->iAccountManagementUrl.Append(_L("http://www.nokia.com"));
+
+    iHardcodedServices.Append(serviceInfo);
+
+    //
+    // InvalidService3
+    //
+    serviceInfo = CIptvServiceInfo::NewL();
+
+    serviceInfo->iId = 15;
+    serviceInfo->iName.Append(_L("InvalidService3"));
+    serviceInfo->iAddress.Append(_L("http://"));
+    serviceInfo->iIconPath.Append(_L("C:\\"));
+    serviceInfo->iEpgPluginUid.iUid = 0x500;
+    serviceInfo->iVodPluginUid.iUid = 0x700;
+    serviceInfo->iIptvPluginUid.iUid = 0x00000000;
+    serviceInfo->iServiceType = CIptvService::EVod;
+
+    serviceInfo->iUserName.Append(_L("username"));
+    serviceInfo->iPassWord.Append(_L("password"));
+    serviceInfo->iDesc.Append(_L("Invalid testservice2"));
+
+    serviceInfo->iSelectedFlag = TRUE;
+    serviceInfo->iReadOnlyFlag = FALSE;
+    serviceInfo->iMainServiceFlag = TRUE;
+    serviceInfo->iConnectionApprovedFlag = TRUE;
+    serviceInfo->iApplicationUid = 0x0;
+    serviceInfo->iDisplayOrder = 0x1;
+    serviceInfo->iProviderId.Zero();
+    serviceInfo->iProviderId.Append(_L("Provider_invalidserv3"));;
+    serviceInfo->iAccountManagementUrl.Append(_L("http://www.nokia.com"));
+
+    iHardcodedServices.Append(serviceInfo);
+
+    //
+    // InvalidService4
+    //
+    serviceInfo = CIptvServiceInfo::NewL();
+
+    serviceInfo->iId = 16;
+    serviceInfo->iName.Append(_L("InvalidService4"));
+    serviceInfo->iAddress.Append(_L("http://www.nokia.com"));
+    serviceInfo->iIconPath.Append(_L("C:\\"));
+    serviceInfo->iEpgPluginUid.iUid = 0x102750DF;
+    serviceInfo->iVodPluginUid.iUid = 0x102750D9;
+    serviceInfo->iIptvPluginUid.iUid = 0x00000000;
+    serviceInfo->iServiceType = CIptvService::EVod;
+
+    serviceInfo->iUserName.Append(_L("username"));
+    serviceInfo->iPassWord.Append(_L("password"));
+    serviceInfo->iDesc.Append(_L("Invalid testservice2"));
+
+    serviceInfo->iSelectedFlag = TRUE;
+    serviceInfo->iReadOnlyFlag = FALSE;
+    serviceInfo->iMainServiceFlag = FALSE;
+    serviceInfo->iConnectionApprovedFlag = TRUE;
+    serviceInfo->iApplicationUid = 0x0;
+    serviceInfo->iDisplayOrder = 0x1;
+    serviceInfo->iProviderId.Zero();
+    serviceInfo->iProviderId.Append(_L("Provider_invalidserv4"));;
+    serviceInfo->iAccountManagementUrl.Append(_L("http://www.nokia.com"));
+
+    iHardcodedServices.Append(serviceInfo);
+
+    //
+    // ServiceNoIaps
+    //
+    serviceInfo = CIptvServiceInfo::NewL();
+
+    serviceInfo->iId = 20;
+    serviceInfo->iName.Append(_L("ServiceNoIaps"));
+    serviceInfo->iAddress.Append(_L("http://www.nokia.com"));
+    serviceInfo->iIconPath.Append(_L("C:\\"));
+    serviceInfo->iEpgPluginUid.iUid = 0x102750DF;
+    serviceInfo->iVodPluginUid.iUid = 0x102750D9;
+    serviceInfo->iIptvPluginUid.iUid = 0x00000000;
+    serviceInfo->iServiceType = CIptvService::EVod;
+
+    serviceInfo->iUserName.Append(_L("username"));
+    serviceInfo->iPassWord.Append(_L("password"));
+    serviceInfo->iDesc.Append(_L("Invalid testservice2"));
+
+    serviceInfo->iSelectedFlag = TRUE;
+    serviceInfo->iReadOnlyFlag = FALSE;
+    serviceInfo->iMainServiceFlag = FALSE;
+    serviceInfo->iConnectionApprovedFlag = TRUE;
+    serviceInfo->iApplicationUid = 0x0;
+    serviceInfo->iDisplayOrder = 0x1;
+    serviceInfo->iProviderId.Zero();
+    serviceInfo->iProviderId.Append(_L("Provider_servicenoiaps"));;
+    serviceInfo->iAccountManagementUrl.Append(_L("http://www.nokia.com"));
+
+    iHardcodedServices.Append(serviceInfo);
+
+
+    //
+    // UNINITIALIZED
+    //
+    serviceInfo = CIptvServiceInfo::NewL();
+
+    serviceInfo->iId = 30;
+
+    iHardcodedServices.Append(serviceInfo);
+
+    //
+    // Live TV XMLTV
+    //
+    serviceInfo = CIptvServiceInfo::NewL();
+
+    serviceInfo->iId = 51;
+    serviceInfo->iName.Append(_L("XmlTvTestService"));
+    serviceInfo->iAddress.Append(_L("http://193.65.182.78/dvbtest/xmltv/xmltv_1day.xml"));
+    serviceInfo->iIconPath.Append(_L("C:\\"));
+
+    serviceInfo->iEpgPluginUid.iUid = KIptvLiveTvXmlTvPluginUid;
+    serviceInfo->iIptvPluginUid.iUid = KIptvLiveTvXmlTvPluginUid;
+    serviceInfo->iVodPluginUid.iUid = IPTV_HTTP_VOD_DOWNLOAD_PLUGIN_IMPLEMENTATION_UID;
+
+    serviceInfo->iServiceType = CIptvService::ELiveTv;
+
+    serviceInfo->iUserName.Append(_L("mediacharger"));
+    serviceInfo->iPassWord.Append(_L("Buran_9o"));
+    serviceInfo->iDesc.Append(_L("XmlTvTestService"));
+
+    serviceInfo->iSelectedFlag = TRUE;
+    serviceInfo->iReadOnlyFlag = FALSE;
+    serviceInfo->iMainServiceFlag = FALSE;
+    serviceInfo->iConnectionApprovedFlag = TRUE;
+    serviceInfo->iApplicationUid = 0x0;
+    serviceInfo->iDisplayOrder = 0x1;
+    serviceInfo->iProviderId.Zero();
+    serviceInfo->iProviderId.Append(_L("Provider_enginetesting_livetv_xmltv"));;
+    serviceInfo->iAccountManagementUrl.Append(_L("http://www.nokia.com"));
+
+    iHardcodedServices.Append(serviceInfo);
+
+
+    //
+    // Live TV Thomson
+    //
+    serviceInfo = CIptvServiceInfo::NewL();
+
+    serviceInfo->iId = 50;
+    serviceInfo->iName.Append(_L("ThomsonTestService"));
+    serviceInfo->iAddress.Append(_L("http://193.65.64.241/dvb/sdns/service_discovery"));
+    serviceInfo->iIconPath.Append(_L("C:\\"));
+
+    serviceInfo->iEpgPluginUid.iUid = KIptvSmartvisionPluginUid;
+    serviceInfo->iIptvPluginUid.iUid = KIptvSmartvisionPluginUid;
+    serviceInfo->iVodPluginUid.iUid = IPTV_HTTP_VOD_DOWNLOAD_PLUGIN_IMPLEMENTATION_UID;
+
+    serviceInfo->iServiceType = CIptvService::ELiveTv;
+
+    serviceInfo->iUserName.Append(_L("aca"));
+    serviceInfo->iPassWord.Append(_L("aca"));
+    serviceInfo->iDesc.Append(_L("ThomsonTestService"));
+
+    serviceInfo->iSelectedFlag = TRUE;
+    serviceInfo->iReadOnlyFlag = FALSE;
+    serviceInfo->iMainServiceFlag = FALSE;
+    serviceInfo->iConnectionApprovedFlag = TRUE;
+    serviceInfo->iApplicationUid = 0x0;
+    serviceInfo->iDisplayOrder = 0x1;
+    serviceInfo->iProviderId.Zero();
+    serviceInfo->iProviderId.Append(_L("Provider_enginetesting_livetv_thomsonsmartvision"));;
+    serviceInfo->iAccountManagementUrl.Append(_L("http://www.nokia.com"));
+
+    iHardcodedServices.Append(serviceInfo);
+
+
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CIptvServiceManagementApiTest::GetHardcodedService
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+CIptvService* CIptvServiceManagementApiTest::GetHardcodedService(TDesC& aHardcodedServiceNameOrID, TDesC& aIapName)
+    {
+    VCXLOGLO1(">>>CIptvServiceManagementApiTest::GetHardCodedServiceL - iapname");
+
+    CIptvService* service = GetHardcodedService(aHardcodedServiceNameOrID, 0);
+
+    CleanupStack::PushL(service);
+
+    TUint32 iapId;
+
+    if(!iIptvTestUtilities->GetIapIdL(aIapName, iapId) )
+        {
+        VCXLOGLO2("** FAIL ** Did not find iap with name %S", &aIapName);
+        CleanupStack::PopAndDestroy(service);
+        return NULL;
+        }
+
+    CIptvIapList* iapList = CIptvIapList::NewL();
+    CleanupStack::PushL(iapList);
+
+    TIptvIap iap;
+    iap.iPriority = 0;
+    iap.iId = iapId;
+
+    iapList->AddIap(iap);
+
+    service->SetIapListL(*iapList);
+
+    CleanupStack::PopAndDestroy(iapList);
+    CleanupStack::Pop(service);
+
+    VCXLOGLO1("<<<CIptvServiceManagementApiTest::GetHardCodedServiceL - iapname");
+
+    return service;
+    }
+
+// -----------------------------------------------------------------------------
+// CIptvServiceManagementApiTest::GetHardcodedService
+// Example test method function.
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+CIptvService* CIptvServiceManagementApiTest::GetHardcodedService(TDesC& aHardcodedServiceNameOrID, TInt aIapsToAdd)
+    {
+    VCXLOGLO1(">>>CIptvServiceManagementApiTest::GetHardCodedServiceL");
+
+    if(iHardcodedServices.Count() <= 0)
+        {
+        InitHardcodedServicesL();
+        }
+
+    CIptvServiceInfo* serviceInfo = NULL;
+
+    TBool hardcodedServiceId = -1;
+
+    TInt serviceIdSpecified = CIptvTestUtilities::ParseIntFromString(hardcodedServiceId, aHardcodedServiceNameOrID);
+
+    if(aHardcodedServiceNameOrID.Compare(_L("UNINITIALIZED")) == 0)
+        {
+        serviceIdSpecified = KErrNone;
+        hardcodedServiceId = 30;
+        }
+
+    if(serviceIdSpecified == KErrNone)
+        {
+
+        //
+        // Hardcoded service ID
+        //
+
+        if(hardcodedServiceId == 40)
+            {
+            if(++iHardCodedServiceCounter > 10) iHardCodedServiceCounter = 0;
+            hardcodedServiceId = iHardCodedServiceCounter;
+            }
+
+        for(TInt i = 0; i < iHardcodedServices.Count(); i++)
+            {
+            if(hardcodedServiceId == iHardcodedServices[i]->iId)
+                {
+                serviceInfo = iHardcodedServices[i];
+                break;
+                }
+
+            }
+
+        }
+        else
+        {
+
+        //
+        // Hardcoded service name
+        //
+
+        for(TInt i = 0; i < iHardcodedServices.Count(); i++)
+            {
+            if(aHardcodedServiceNameOrID.Compare(iHardcodedServices[i]->iName) == 0)
+                {
+
+                serviceInfo = iHardcodedServices[i];
+                break;
+                }
+
+            }
+        }
+
+    if(serviceInfo == NULL)
+        {
+        VCXLOGLO2("No hardcoded service found with: %S", &aHardcodedServiceNameOrID);
+        return NULL;
+        }
+
+
+    CIptvService* iptvService = NULL;
+    TRAPD( err, iptvService = iIptvTestUtilities->CreateIptvServiceInstanceL(*serviceInfo) );
+    if(err != KErrNone)
+        {
+        VCXLOGLO1("CreateIptvServiceInstanceL caused a leave");
+        iLog->Log(_L("CreateIptvServiceInstanceL caused a leave"));
+        VCXLOGLO1("<<<CIptvServiceManagementApiTest::GetHardCodedServiceL");
+        return NULL;
+        }
+
+    if(serviceInfo->iId == 30) // uninitialized
+        {
+        return iptvService;
+        }
+
+    if(serviceInfo->iIapList == NULL)
+        {
+        TIptvIap iap;
+
+        CIptvIapList* iapList = CIptvIapList::NewL();
+        CleanupStack::PushL(iapList);
+
+        if(aIapsToAdd > 0)
+            {
+            if(aIapsToAdd > iIapNumList->Count())
+                {
+                aIapsToAdd = iIapNumList->Count();
+                VCXLOGLO2("Not enough iaps, adding only: %d.", aIapsToAdd);
+                }
+
+            for(TInt index = 0; index < aIapsToAdd; index++)
+                {
+                if(!KErrNone == GetCommDbIapIdByOrder(index, iap.iId) )
+                    {
+                    iap.iPriority = index;
+                    iapList->AddIap(iap, ETrue);
+                    }
+                }
+            }
+        // add invalid iaps
+        else
+        if(aIapsToAdd < 0)
+            {
+            VCXLOGLO1("Adding invalid iaps.");
+            aIapsToAdd *= -1;
+
+            for(TInt index = 0; index < aIapsToAdd; index++)
+                {
+                iap.iId = 100 + index;
+                iap.iPriority = index;
+                iapList->AddIap(iap, ETrue);
+                }
+            }
+
+        iptvService->SetIapListL(*iapList);
+
+        CleanupStack::PopAndDestroy(iapList);
+        }
+    else
+        {
+        iptvService->SetIapListL(*serviceInfo->iIapList);
+        }
+
+    VCXLOGLO1("<<<CIptvServiceManagementApiTest::GetHardCodedServiceL");
+    return iptvService;
+    }
+
+//EOF