controlpanel/tsrc/unit/ut_cpapi/src/ut_cpapi.cpp
author hgs
Thu, 01 Apr 2010 03:23:37 +0800
changeset 32 20bd089f4aaa
parent 31 2c9d3aa5bea2
child 36 48848d132687
permissions -rw-r--r--
201005

/*
* 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:  
*
*/
#include "ut_cpapi.h"

#include <hbmainwindow.h>
#include <QGraphicsWidget>
#include <qDebug>
#include <QtTest/QtTest>
#include <QtAlgorithms>
#include <HbView.h>
#include <hbdataform.h>
#include <hbdataformmodel.h>
#include <hbdataformmodelitem.h>
#include <hbabstractviewitem.h>
#include <hbsettingformitem.h>
#include <hbpushbutton.h>
//testing following classes

#include "cpbasesettingview.h"
#include "cpsettingformentryitemdata.h"
#include "cpsettingformentryitemdataimpl.h"
#include <cpsettingformitemdata.h>
#include <cpitemdatahelper.h>
#include <cppluginutility.h>
#include <cppluginloader.h>
#include <cpplugininterface.h>
#include <cplogger.h>

void TestCpAPI::initTestCase()
{    
	mainWindow = new HbMainWindow;
  mainWindow->show();
}

void TestCpAPI::cleanupTestCase()
{
	delete mainWindow;
	mainWindow = 0;
}
void TestCpAPI::testCpBaseSettingView()
{
	CpBaseSettingView * pview = new CpBaseSettingView(0);
	QVERIFY( pview != 0 );
        HbDataForm *pForm = new HbDataForm(0);
        pview->setSettingForm(pForm);
        QVERIFY( pview->settingForm() == pForm );
	delete pview;
	HbPushButton *widget = new HbPushButton();
	QVERIFY(widget != 0);
	CpBaseSettingView *pView1 = new CpBaseSettingView(widget);
	QVERIFY(pView1!=0);
	HbPushButton *button = qobject_cast<HbPushButton *>(pView1->widget());
	QVERIFY(button != 0);
	delete pView1;
	
}

void TestCpAPI::testCpSettingFormEntryItemDataImpl()
{
	CpItemDataHelper *pHelper = new CpItemDataHelper();
        CpSettingFormEntryItemDataImpl<CpBaseSettingView> *pdataimp = new CpSettingFormEntryItemDataImpl<CpBaseSettingView>( *pHelper, "text", "description"  );
	QVERIFY( pdataimp !=0 );
	QString strtxt = "input texts";
	pdataimp->setText(strtxt);
	QVERIFY( pdataimp->text() == strtxt );
	
	QString strDes = "input descriptions";
	pdataimp->setDescription(strDes);
	QVERIFY( pdataimp->description() == strDes);
	delete pdataimp;
        delete pHelper;
}
void TestCpAPI::testCpSettingFormItemData()
{
        CpSettingFormItemData *pdata = new CpSettingFormItemData( HbDataFormModelItem::TextItem, "label" );
        QVERIFY( pdata !=0 );
        delete pdata;
        pdata = 0;
        pdata = new CpSettingFormItemData( HbDataFormModelItem::SliderItem, "label" );
        QVERIFY( pdata !=0 );
        delete pdata;
        pdata = 0;
        pdata = new CpSettingFormItemData( HbDataFormModelItem::VolumeSliderItem, "label" );
        QVERIFY( pdata !=0 );
        delete pdata;
        pdata = new CpSettingFormItemData( HbDataFormModelItem::CheckBoxItem, "label" );
        QVERIFY( pdata !=0 );
        delete pdata;
        pdata = 0;
        pdata = new CpSettingFormItemData( HbDataFormModelItem::ToggleValueItem, "label" );
        QVERIFY( pdata !=0 );
        delete pdata;
        pdata = 0;
        pdata = new CpSettingFormItemData( HbDataFormModelItem::RadioButtonListItem, "label" );
        QVERIFY( pdata !=0 );
        delete pdata;
        pdata = 0;
        pdata = new CpSettingFormItemData( HbDataFormModelItem::MultiselectionItem, "label" );
        QVERIFY( pdata !=0 );
        delete pdata;
        pdata = 0;
        pdata = new CpSettingFormItemData( HbDataFormModelItem::ComboBoxItem, "label" );
        QVERIFY( pdata !=0 );
        delete pdata;
        pdata = 0;
}
void TestCpAPI::testItemDataHelper()
{
    HbDataForm* form = new HbDataForm();
    HbDataFormModel *model = new HbDataFormModel();
    HbDataFormModelItem *general = model->appendDataFormPage(QString("General"));
    CpItemDataHelper *phelper = new CpItemDataHelper();
    phelper->addConnection( general, "hello",form,"hello");
    phelper->removeConnection(general,"hello",form, "hello");
    phelper->bindToForm(form);
    HbSettingFormItem *pitem = new HbSettingFormItem();
    phelper->addItemPrototype(pitem);
    delete phelper;
}
void TestCpAPI::testCpPluginUtility()
{
    HbDataForm* form = new HbDataForm();
    QList<HbAbstractViewItem *> oldList = form->itemPrototypes();
    CpPluginUtility::addCpItemPrototype(form);
    QList<HbAbstractViewItem *> newList = form->itemPrototypes();
    QVERIFY( oldList.count() == newList.count()-1 );
}

void TestCpAPI::testCpPluginLoader()
{
    CpPluginInterface *plugin = CpPluginLoader::loadCpPlugin("non_existing_plugin.dll");
    QVERIFY(plugin == 0);

    plugin = CpPluginLoader::loadCpPlugin("cppincodeplugin");
    QVERIFY(plugin != 0);

    plugin = CpPluginLoader::loadCpPlugin("cppincodeplugin.dll");
    QVERIFY(plugin != 0);

    plugin = CpPluginLoader::loadCpPlugin("cppincodeplugin.qtplugin");
    QVERIFY(plugin != 0);
}

void TestCpAPI::testCpPluginInterface()
{
    CpPluginInterface *plugin = CpPluginLoader::loadCpPlugin("cppersonalizationplugin.dll");
    if (plugin) {
        CpItemDataHelper helper;
        QList<CpSettingFormItemData*> itemData = plugin->createSettingFormItemData(helper);
        QVERIFY(itemData.size() > 0);
        qDeleteAll(itemData.begin(),itemData.end());
        itemData.clear();
    }
}

void TestCpAPI::testCpLogger()
{
    const QString logConf = "C:/data/.config/ut_cpapi/controlpanellog.conf";
    Logger::instance(CPFW_LOGGER_NAME)->configure(logConf,QSettings::IniFormat);
    CPFW_LOG("Hello World!");
    Logger::closeAll();
}


QTEST_MAIN(TestCpAPI)