qthighway/tsrc/inc/testdata.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Thu, 02 Sep 2010 21:20:48 +0300
changeset 24 9d760f716ca8
parent 19 46686fb6258c
permissions -rw-r--r--
Revision: 201033 Kit: 201035

/*
* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, version 2.1 of the License.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program.  If not,
* see "http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html/".
*
* Description:
*
*/

#ifndef TESTDATA_H_
#define TESTDATA_H_

#include <xqaiwinterfacedescriptor.h>
#include <QString>
#include <QStringList>
#include <QHash>
#include <QMultiHash>
#include <xqappmgr.h>
#include <QDebug>

const QString IUriView = "com.nokia.symbian.IUriView"; 
const QString IFileView = "com.nokia.symbian.IFileView";

#ifdef __WINS__
    const QString drive = "c";
#else
    const QString drive = "z";
#endif

typedef QHash<int, QVariant> FileDrm; 

class InterfaceData
{
public:
    InterfaceData(QString serviceName, QString interfaceName,int major, int minor):
        mServiceName(serviceName), mInterfaceName(interfaceName), mMajor(major), mMinor(minor){}
    
    void addProperty(XQAiwInterfaceDescriptor::PropertyKey key, QVariant value)
    {
        mProperties[key] = value;
    }
    
    void addCustomProperty(QString key, QString value)
    {
        mCustomProperties[key] = value;
    }
    
    bool compare(const XQAiwInterfaceDescriptor& interface, QStringList& log)
    {
        if(mServiceName != interface.serviceName())
        {
            return false;
        }
        
        if(mInterfaceName != interface.interfaceName())
        {
            return false;
        }
               
        if(mMajor != interface.majorVersion())
        {
            return false;
        }
               
        if(mMinor != interface.minorVersion())
        {
            return false;
        }
               
        if(mProperties[XQAiwInterfaceDescriptor::Capabilities] != interface.property(XQAiwInterfaceDescriptor::Capabilities))
        {
            log << "[QTH] [Test_XQApplicationManager] different capabilities";
            return false;
        }
               
        if(mProperties[XQAiwInterfaceDescriptor::Location] != interface.property(XQAiwInterfaceDescriptor::Location))
        {
            log << "[QTH] [Test_XQApplicationManager] different location";
            return false;
        }
               
        if(mProperties[XQAiwInterfaceDescriptor::ServiceDescription] != interface.property(XQAiwInterfaceDescriptor::ServiceDescription))
        {
            log << "[QTH] [Test_XQApplicationManager] different service description";
            return false;
        }
               
        if(mProperties[XQAiwInterfaceDescriptor::InterfaceDescription] != interface.property(XQAiwInterfaceDescriptor::InterfaceDescription))
        {
            log << "[QTH] [Test_XQApplicationManager] different interface description";
            return false;
        }
               
        if(mProperties[XQAiwInterfaceDescriptor::ImplementationId] != interface.property(XQAiwInterfaceDescriptor::ImplementationId))
        {
            log << "[QTH] [Test_XQApplicationManager] different implementation ID";
            return false;
        }
        
        QStringList customPropKeys = interface.customPropertyKeys();
        foreach(QString key, customPropKeys)
        {
            if(mCustomProperties[key] != interface.customProperty(key))
            {
                log << "[QTH] [Test_XQApplicationManager] different custom property:" 
                         << key << " test value:" << mCustomProperties[key] << " system value:" << interface.customProperty(key);
                return false;
            }
        }
        
        return true;
    }
           
public:
    QString mServiceName;
    QString mInterfaceName;
    QHash<XQAiwInterfaceDescriptor::PropertyKey, QVariant> mProperties;
    QHash<QString, QString> mCustomProperties;
    int mMajor;
    int mMinor;
};

class TestData
{
public:
    TestData()
    {
        // interfaces
        {
            QString serviceName("com.nokia.services.qthighway.test.service_1");
            QString interfaceName("interface_1");
            InterfaceData* interface = new InterfaceData(serviceName, interfaceName, 1, 0);
            interface->addProperty(XQAiwInterfaceDescriptor::ServiceDescription, QVariant(QString("QtHighway automatic tests server 1")));
            interface->addProperty(XQAiwInterfaceDescriptor::InterfaceDescription, QVariant(QString("Interface 1")));
            interface->addProperty(XQAiwInterfaceDescriptor::Location, QVariant(QString("No path")));
            interface->addProperty(XQAiwInterfaceDescriptor::ImplementationId, QVariant(int(0xE42DF0E6)));
            services.insert(serviceName, interface);
            interfaces.insert(interfaceName, interface);
        }
           
        {
            QString serviceName("com.nokia.services.qthighway.test.service_1");
            QString interfaceName("interface_2");
            InterfaceData* interface = new InterfaceData(serviceName, interfaceName, 1, 0);
            interface->addProperty(XQAiwInterfaceDescriptor::ServiceDescription, QVariant(QString("QtHighway automatic tests server 1")));
            interface->addProperty(XQAiwInterfaceDescriptor::InterfaceDescription, QVariant(QString("Interface 2")));
            interface->addProperty(XQAiwInterfaceDescriptor::Location, QVariant(QString("No path")));
            interface->addProperty(XQAiwInterfaceDescriptor::ImplementationId, QVariant(int(0xE42DF0E6)));
            services.insert(serviceName, interface);
            interfaces.insert(interfaceName, interface);
        }
        
        {
            QString serviceName("com.nokia.services.qthighway.test.service_1");
            QString interfaceName("interface_3");
            InterfaceData* interface = new InterfaceData(serviceName, interfaceName, 1, 0);
            interface->addProperty(XQAiwInterfaceDescriptor::ServiceDescription, QVariant(QString("QtHighway automatic tests server 1")));
            interface->addProperty(XQAiwInterfaceDescriptor::InterfaceDescription, QVariant(QString("Interface 3")));
            interface->addProperty(XQAiwInterfaceDescriptor::Location, QVariant(QString("No path")));
            interface->addProperty(XQAiwInterfaceDescriptor::ImplementationId, QVariant(int(0xE42DF0E6)));
            services.insert(serviceName, interface);
            interfaces.insert(interfaceName, interface);
        }
        
        {
            QString serviceName("com.nokia.services.qthighway.test.service_1");
            QString interfaceName(IUriView);
            InterfaceData* interface = new InterfaceData(serviceName, interfaceName, 1, 0);
            interface->addProperty(XQAiwInterfaceDescriptor::InterfaceDescription, QVariant(QString("Interface for showing URIs")));
            interface->addProperty(XQAiwInterfaceDescriptor::ServiceDescription, QVariant(QString("QtHighway automatic tests server 1")));
            interface->addProperty(XQAiwInterfaceDescriptor::Location, QVariant(QString("No path")));
            interface->addProperty(XQAiwInterfaceDescriptor::ImplementationId, QVariant(int(0xE42DF0E6)));
            interface->addCustomProperty("schemes","qhattestto");
            services.insert(serviceName, interface);
            interfaces.insert(interfaceName, interface);
        }
        
        {
            QString serviceName("com.nokia.services.qthighway.test.service_1");
            QString interfaceName(IFileView);
            InterfaceData* interface = new InterfaceData(serviceName, interfaceName, 1, 0);
            interface->addProperty(XQAiwInterfaceDescriptor::InterfaceDescription, QVariant(QString("Interface for showing Files")));
            interface->addProperty(XQAiwInterfaceDescriptor::ServiceDescription, QVariant(QString("QtHighway automatic tests server 1")));
            interface->addProperty(XQAiwInterfaceDescriptor::Location, QVariant(QString("No path")));
            interface->addProperty(XQAiwInterfaceDescriptor::ImplementationId, QVariant(int(0xE42DF0E6)));
            services.insert(serviceName, interface);
            interfaces.insert(interfaceName, interface);
        }
    
        {
            QString serviceName("com.nokia.services.qthighway.test.service_2");
            QString interfaceName("interface_1");
            InterfaceData* interface = new InterfaceData(serviceName, interfaceName, 1, 0);
            interface->addProperty(XQAiwInterfaceDescriptor::InterfaceDescription, QVariant(QString("Interface 1")));
            interface->addProperty(XQAiwInterfaceDescriptor::ServiceDescription, QVariant(QString("QtHighway automatic tests server 2")));
            interface->addProperty(XQAiwInterfaceDescriptor::Location, QVariant(QString("No path")));
            interface->addProperty(XQAiwInterfaceDescriptor::ImplementationId, QVariant(int(0xED698FE0)));
            services.insert(serviceName, interface);
            interfaces.insert(interfaceName, interface);
        }
        
        {
            QString serviceName("com.nokia.services.qthighway.test.service_2");
            QString interfaceName("interface_2");
            InterfaceData* interface = new InterfaceData(serviceName, interfaceName, 1, 0);
            interface->addProperty(XQAiwInterfaceDescriptor::InterfaceDescription, QVariant(QString("Interface 2")));
            interface->addProperty(XQAiwInterfaceDescriptor::ServiceDescription, QVariant(QString("QtHighway automatic tests server 2")));
            interface->addProperty(XQAiwInterfaceDescriptor::Location, QVariant(QString("No path")));
            interface->addProperty(XQAiwInterfaceDescriptor::ImplementationId, QVariant(int(0xED698FE0)));
            services.insert(serviceName, interface);
            interfaces.insert(interfaceName, interface);
        }
        
        {
            QString serviceName("com.nokia.services.qthighway.test.service_2");
            QString interfaceName(IUriView);
            InterfaceData* interface = new InterfaceData(serviceName, interfaceName, 1, 0);
            interface->addProperty(XQAiwInterfaceDescriptor::InterfaceDescription, QVariant(QString("Interface for showing URIs")));
            interface->addProperty(XQAiwInterfaceDescriptor::ServiceDescription, QVariant(QString("QtHighway automatic tests server 2")));
            interface->addProperty(XQAiwInterfaceDescriptor::Location, QVariant(QString("No path")));
            interface->addProperty(XQAiwInterfaceDescriptor::ImplementationId, QVariant(int(0xED698FE0)));
            interface->addCustomProperty("schemes","qhattestto");
            services.insert(serviceName, interface);
            interfaces.insert(interfaceName, interface);
        }
        
        {
            QString serviceName("com.nokia.services.qthighway.test.service_2");
            QString interfaceName(IFileView);
            InterfaceData* interface = new InterfaceData(serviceName, interfaceName, 1, 0);
            interface->addProperty(XQAiwInterfaceDescriptor::InterfaceDescription, QVariant(QString("Interface for showing Files")));
            interface->addProperty(XQAiwInterfaceDescriptor::ServiceDescription, QVariant(QString("QtHighway automatic tests server 2")));
            interface->addProperty(XQAiwInterfaceDescriptor::Location, QVariant(QString("No path")));
            interface->addProperty(XQAiwInterfaceDescriptor::ImplementationId, QVariant(int(0xED698FE0)));
            services.insert(serviceName, interface);
            interfaces.insert(interfaceName, interface);
        }
        
        // DRM files
        
        {
            FileDrm drm;
            drm[XQApplicationManager::IsProtected] = QVariant(0);
            drm[XQApplicationManager::IsForwardable] = QVariant(1);
            drm[XQApplicationManager::Description] = QVariant();
            drm[XQApplicationManager::MimeType] = QVariant(QString("text/plain"));
            
            files[QString(drive + ":\\data\\Others\\test.txt")] = drm;
            
        }
        
        {
            FileDrm drm;
            drm[XQApplicationManager::IsProtected] = QVariant(1);
            drm[XQApplicationManager::IsForwardable] = QVariant(1);
            drm[XQApplicationManager::Description] = QVariant();
            drm[XQApplicationManager::MimeType] = QVariant(QString("audio/aac"));
            
            files[QString(drive + ":\\data\\Others\\111-test1.odf")] = drm;
        }
        
        {
            FileDrm drm;
            drm[XQApplicationManager::IsProtected] = QVariant(0);
            drm[XQApplicationManager::IsForwardable] = QVariant(1);
            drm[XQApplicationManager::Description] = QVariant();
            drm[XQApplicationManager::MimeType] = QVariant(QString("image/jpeg"));
            
            files[QString(drive + ":\\data\\Others\\one.jpg")] = drm;
        }
        
        {
            FileDrm drm;
            drm[XQApplicationManager::IsProtected] = QVariant(0);
            drm[XQApplicationManager::IsForwardable] = QVariant(1);
            drm[XQApplicationManager::Description] = QVariant();
            drm[XQApplicationManager::MimeType] = QVariant(QString("application/vnd.oma.drm.roap-trigger+xml"));
            
            files[QString(drive + ":\\data\\Others\\RoAcqoffer-111-aac-i15m.ort")] = drm;
        }
        
        {
            FileDrm drm;
            drm[XQApplicationManager::IsProtected] = QVariant(1);
            drm[XQApplicationManager::IsForwardable] = QVariant(1);
            drm[XQApplicationManager::Description] = QVariant();
            drm[XQApplicationManager::MimeType] = QVariant(QString("audio/sp-midi"));
            
            files[QString(drive + ":\\data\\Others\\SD_Celebration_SP.dcf")] = drm;
        }
        
        {
            FileDrm drm;
            drm[XQApplicationManager::IsProtected] = QVariant(1);
            drm[XQApplicationManager::IsForwardable] = QVariant(1);
            drm[XQApplicationManager::Description] = QVariant();
            drm[XQApplicationManager::MimeType] = QVariant(QString("image/jpeg"));
            
            files[QString(drive + ":\\data\\Others\\SD_jpg_sun.dcf")] = drm;
        }
        
        {
            FileDrm drm;
            drm[XQApplicationManager::IsProtected] = QVariant(1);
            drm[XQApplicationManager::IsForwardable] = QVariant(1);
            drm[XQApplicationManager::Description] = QVariant(QString(""));
            drm[XQApplicationManager::MimeType] = QVariant(QString("audio/x-ms-wma"));
            
            files[QString(drive + ":\\data\\Others\\STC1_128_44_16_2_CBR.wma")] = drm;
        }
            

    }
    
    ~TestData()
    {
        foreach(InterfaceData* interface , interfaces.values())
            delete interface;
    }
    
public:
    QMultiHash<QString, InterfaceData*> services;
    QMultiHash<QString, InterfaceData*> interfaces;
    QHash<QString, FileDrm> files;
};

TestData testData;

#endif /* TESTDATA_H_ */