controlpanel/tsrc/unit/ut_cpapi/src/ut_cpapi.cpp
author hgs
Fri, 14 May 2010 13:29:47 +0800
changeset 37 940f6b67827d
parent 36 48848d132687
child 40 6465d5bb863a
permissions -rw-r--r--
201019
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
31
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
     1
/*
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
     2
* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
     3
* All rights reserved.
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0""
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
     8
*
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
     9
* Initial Contributors:
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
    11
*
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
    12
* Contributors:
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
    13
*
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
    14
* Description:  
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
    15
*
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
    16
*/
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
    17
#include "ut_cpapi.h"
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
    18
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
    19
#include <hbmainwindow.h>
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
    20
#include <QGraphicsWidget>
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
    21
#include <qDebug>
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
    22
#include <QtTest/QtTest>
32
hgs
parents: 31
diff changeset
    23
#include <QtAlgorithms>
31
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
    24
#include <HbView.h>
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
    25
#include <hbdataform.h>
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
    26
#include <hbdataformmodel.h>
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
    27
#include <hbdataformmodelitem.h>
36
hgs
parents: 32
diff changeset
    28
#include <hbdataformviewitem.h>
31
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
    29
#include <hbabstractviewitem.h>
32
hgs
parents: 31
diff changeset
    30
#include <hbpushbutton.h>
31
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
    31
//testing following classes
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
    32
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
    33
#include "cpbasesettingview.h"
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
    34
#include "cpsettingformentryitemdata.h"
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
    35
#include "cpsettingformentryitemdataimpl.h"
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
    36
#include <cpsettingformitemdata.h>
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
    37
#include <cpitemdatahelper.h>
32
hgs
parents: 31
diff changeset
    38
#include <cppluginutility.h>
hgs
parents: 31
diff changeset
    39
#include <cppluginloader.h>
hgs
parents: 31
diff changeset
    40
#include <cpplugininterface.h>
hgs
parents: 31
diff changeset
    41
#include <cplogger.h>
31
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
    42
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
    43
void TestCpAPI::initTestCase()
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
    44
{    
37
hgs
parents: 36
diff changeset
    45
	//mainWindow = new HbMainWindow;
hgs
parents: 36
diff changeset
    46
  //mainWindow->show();
31
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
    47
}
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
    48
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
    49
void TestCpAPI::cleanupTestCase()
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
    50
{
36
hgs
parents: 32
diff changeset
    51
	//delete mainWindow;
hgs
parents: 32
diff changeset
    52
	//mainWindow = 0;
hgs
parents: 32
diff changeset
    53
	//if delete mainwindow, test app will be freezing
hgs
parents: 32
diff changeset
    54
	QCoreApplication::processEvents();
31
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
    55
}
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
    56
void TestCpAPI::testCpBaseSettingView()
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
    57
{
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
    58
	CpBaseSettingView * pview = new CpBaseSettingView(0);
32
hgs
parents: 31
diff changeset
    59
	QVERIFY( pview != 0 );
31
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
    60
        HbDataForm *pForm = new HbDataForm(0);
37
hgs
parents: 36
diff changeset
    61
        pview->setWidget(pForm);
hgs
parents: 36
diff changeset
    62
        QVERIFY( qobject_cast<HbDataForm *>(pview->widget()) == pForm );
31
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
    63
	delete pview;
32
hgs
parents: 31
diff changeset
    64
	HbPushButton *widget = new HbPushButton();
hgs
parents: 31
diff changeset
    65
	QVERIFY(widget != 0);
hgs
parents: 31
diff changeset
    66
	CpBaseSettingView *pView1 = new CpBaseSettingView(widget);
hgs
parents: 31
diff changeset
    67
	QVERIFY(pView1!=0);
hgs
parents: 31
diff changeset
    68
	HbPushButton *button = qobject_cast<HbPushButton *>(pView1->widget());
hgs
parents: 31
diff changeset
    69
	QVERIFY(button != 0);
hgs
parents: 31
diff changeset
    70
	delete pView1;
hgs
parents: 31
diff changeset
    71
	
31
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
    72
}
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
    73
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
    74
void TestCpAPI::testCpSettingFormEntryItemDataImpl()
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
    75
{
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
    76
	CpItemDataHelper *pHelper = new CpItemDataHelper();
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
    77
        CpSettingFormEntryItemDataImpl<CpBaseSettingView> *pdataimp = new CpSettingFormEntryItemDataImpl<CpBaseSettingView>( *pHelper, "text", "description"  );
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
    78
	QVERIFY( pdataimp !=0 );
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
    79
	QString strtxt = "input texts";
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
    80
	pdataimp->setText(strtxt);
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
    81
	QVERIFY( pdataimp->text() == strtxt );
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
    82
	
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
    83
	QString strDes = "input descriptions";
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
    84
	pdataimp->setDescription(strDes);
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
    85
	QVERIFY( pdataimp->description() == strDes);
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
    86
	delete pdataimp;
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
    87
        delete pHelper;
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
    88
}
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
    89
void TestCpAPI::testCpSettingFormItemData()
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
    90
{
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
    91
        CpSettingFormItemData *pdata = new CpSettingFormItemData( HbDataFormModelItem::TextItem, "label" );
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
    92
        QVERIFY( pdata !=0 );
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
    93
        delete pdata;
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
    94
        pdata = 0;
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
    95
        pdata = new CpSettingFormItemData( HbDataFormModelItem::SliderItem, "label" );
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
    96
        QVERIFY( pdata !=0 );
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
    97
        delete pdata;
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
    98
        pdata = 0;
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
    99
        pdata = new CpSettingFormItemData( HbDataFormModelItem::VolumeSliderItem, "label" );
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
   100
        QVERIFY( pdata !=0 );
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
   101
        delete pdata;
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
   102
        pdata = new CpSettingFormItemData( HbDataFormModelItem::CheckBoxItem, "label" );
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
   103
        QVERIFY( pdata !=0 );
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
   104
        delete pdata;
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
   105
        pdata = 0;
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
   106
        pdata = new CpSettingFormItemData( HbDataFormModelItem::ToggleValueItem, "label" );
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
   107
        QVERIFY( pdata !=0 );
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
   108
        delete pdata;
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
   109
        pdata = 0;
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
   110
        pdata = new CpSettingFormItemData( HbDataFormModelItem::RadioButtonListItem, "label" );
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
   111
        QVERIFY( pdata !=0 );
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
   112
        delete pdata;
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
   113
        pdata = 0;
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
   114
        pdata = new CpSettingFormItemData( HbDataFormModelItem::MultiselectionItem, "label" );
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
   115
        QVERIFY( pdata !=0 );
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
   116
        delete pdata;
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
   117
        pdata = 0;
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
   118
        pdata = new CpSettingFormItemData( HbDataFormModelItem::ComboBoxItem, "label" );
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
   119
        QVERIFY( pdata !=0 );
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
   120
        delete pdata;
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
   121
        pdata = 0;
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
   122
}
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
   123
void TestCpAPI::testItemDataHelper()
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
   124
{
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
   125
    HbDataForm* form = new HbDataForm();
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
   126
    HbDataFormModel *model = new HbDataFormModel();
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
   127
    HbDataFormModelItem *general = model->appendDataFormPage(QString("General"));
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
   128
    CpItemDataHelper *phelper = new CpItemDataHelper();
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
   129
    phelper->addConnection( general, "hello",form,"hello");
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
   130
    phelper->removeConnection(general,"hello",form, "hello");
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
   131
    phelper->bindToForm(form);
36
hgs
parents: 32
diff changeset
   132
    HbDataFormViewItem *pitem = new HbDataFormViewItem();
31
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
   133
    phelper->addItemPrototype(pitem);
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
   134
    delete phelper;
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
   135
}
32
hgs
parents: 31
diff changeset
   136
void TestCpAPI::testCpPluginUtility()
hgs
parents: 31
diff changeset
   137
{
hgs
parents: 31
diff changeset
   138
    HbDataForm* form = new HbDataForm();
hgs
parents: 31
diff changeset
   139
    QList<HbAbstractViewItem *> oldList = form->itemPrototypes();
hgs
parents: 31
diff changeset
   140
    CpPluginUtility::addCpItemPrototype(form);
hgs
parents: 31
diff changeset
   141
    QList<HbAbstractViewItem *> newList = form->itemPrototypes();
36
hgs
parents: 32
diff changeset
   142
    QVERIFY( oldList.count() < newList.count() );
32
hgs
parents: 31
diff changeset
   143
}
hgs
parents: 31
diff changeset
   144
hgs
parents: 31
diff changeset
   145
void TestCpAPI::testCpPluginLoader()
hgs
parents: 31
diff changeset
   146
{
37
hgs
parents: 36
diff changeset
   147
    CpPluginInterface *plugin = CpPluginLoader::loadCpPluginInterface("non_existing_plugin.dll");
32
hgs
parents: 31
diff changeset
   148
    QVERIFY(plugin == 0);
hgs
parents: 31
diff changeset
   149
37
hgs
parents: 36
diff changeset
   150
    plugin = CpPluginLoader::loadCpPluginInterface("cppersonalizationplugin");
32
hgs
parents: 31
diff changeset
   151
    QVERIFY(plugin != 0);
hgs
parents: 31
diff changeset
   152
37
hgs
parents: 36
diff changeset
   153
    plugin = CpPluginLoader::loadCpPluginInterface("cppersonalizationplugin.dll");
32
hgs
parents: 31
diff changeset
   154
    QVERIFY(plugin != 0);
hgs
parents: 31
diff changeset
   155
37
hgs
parents: 36
diff changeset
   156
    plugin = CpPluginLoader::loadCpPluginInterface("cppersonalizationplugin.qtplugin");
32
hgs
parents: 31
diff changeset
   157
    QVERIFY(plugin != 0);
hgs
parents: 31
diff changeset
   158
}
hgs
parents: 31
diff changeset
   159
hgs
parents: 31
diff changeset
   160
void TestCpAPI::testCpPluginInterface()
hgs
parents: 31
diff changeset
   161
{
37
hgs
parents: 36
diff changeset
   162
    CpPluginInterface *plugin = CpPluginLoader::loadCpPluginInterface("cppersonalizationplugin.dll");
32
hgs
parents: 31
diff changeset
   163
    if (plugin) {
hgs
parents: 31
diff changeset
   164
        CpItemDataHelper helper;
hgs
parents: 31
diff changeset
   165
        QList<CpSettingFormItemData*> itemData = plugin->createSettingFormItemData(helper);
hgs
parents: 31
diff changeset
   166
        QVERIFY(itemData.size() > 0);
hgs
parents: 31
diff changeset
   167
        qDeleteAll(itemData.begin(),itemData.end());
hgs
parents: 31
diff changeset
   168
        itemData.clear();
hgs
parents: 31
diff changeset
   169
    }
hgs
parents: 31
diff changeset
   170
}
hgs
parents: 31
diff changeset
   171
hgs
parents: 31
diff changeset
   172
void TestCpAPI::testCpLogger()
hgs
parents: 31
diff changeset
   173
{
hgs
parents: 31
diff changeset
   174
    const QString logConf = "C:/data/.config/ut_cpapi/controlpanellog.conf";
hgs
parents: 31
diff changeset
   175
    Logger::instance(CPFW_LOGGER_NAME)->configure(logConf,QSettings::IniFormat);
hgs
parents: 31
diff changeset
   176
    CPFW_LOG("Hello World!");
hgs
parents: 31
diff changeset
   177
    Logger::closeAll();
hgs
parents: 31
diff changeset
   178
}
hgs
parents: 31
diff changeset
   179
hgs
parents: 31
diff changeset
   180
31
2c9d3aa5bea2 201003_2
hgs
parents:
diff changeset
   181
QTEST_MAIN(TestCpAPI)