controlpanel/tsrc/unit/ut_cpdataformlistentryviewitem/src/ut_cpdataformlistentryviewitem.cpp
author hgs
Thu, 02 Sep 2010 17:14:05 +0800
changeset 55 4c15d9aa2384
permissions -rw-r--r--
201035
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
55
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     3
* All rights reserved.
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0""
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
*
hgs
parents:
diff changeset
     9
* Initial Contributors:
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
*
hgs
parents:
diff changeset
    12
* Contributors:
hgs
parents:
diff changeset
    13
*
hgs
parents:
diff changeset
    14
* Description:  
hgs
parents:
diff changeset
    15
*       test application for qt control panel public apis.
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
#include "ut_cpdataformlistentryviewitem.h"
hgs
parents:
diff changeset
    19
hgs
parents:
diff changeset
    20
#include "cpdataformlistentryviewitem.h"
hgs
parents:
diff changeset
    21
#include "CpSettingFormEntryItemDataImpl.h"
hgs
parents:
diff changeset
    22
#include "mycpdataformlistentryviewitem.h"
hgs
parents:
diff changeset
    23
hgs
parents:
diff changeset
    24
#include <QtTest/QtTest>
hgs
parents:
diff changeset
    25
#include <HbMainWindow>
hgs
parents:
diff changeset
    26
#include <hbdataform.h>
hgs
parents:
diff changeset
    27
#include <hbdataformmodel.h>
hgs
parents:
diff changeset
    28
#include <hbpushbutton.h>
hgs
parents:
diff changeset
    29
#include <cppluginutility.h>
hgs
parents:
diff changeset
    30
#include <cpbasesettingview.h>
hgs
parents:
diff changeset
    31
hgs
parents:
diff changeset
    32
/*!
hgs
parents:
diff changeset
    33
    \class TestCpDataFormListEntryViewItem
hgs
parents:
diff changeset
    34
    \brief The TestCpDataFormListEntryViewItem class is designed for the unit testing for CpDataFormListEntryViewItem class.
hgs
parents:
diff changeset
    35
    This unit test is supported by QTest.
hgs
parents:
diff changeset
    36
    There are total 6 test cases in this unit.
hgs
parents:
diff changeset
    37
 */
hgs
parents:
diff changeset
    38
hgs
parents:
diff changeset
    39
void TestCpDataFormListEntryViewItem::initTestCase()
hgs
parents:
diff changeset
    40
    {
hgs
parents:
diff changeset
    41
    mainWindow = 0;
hgs
parents:
diff changeset
    42
    }
hgs
parents:
diff changeset
    43
hgs
parents:
diff changeset
    44
void TestCpDataFormListEntryViewItem::cleanupTestCase()
hgs
parents:
diff changeset
    45
    {
hgs
parents:
diff changeset
    46
    delete mainWindow;
hgs
parents:
diff changeset
    47
    
hgs
parents:
diff changeset
    48
    //if delete mainwindow, test app will be freezing
hgs
parents:
diff changeset
    49
    QCoreApplication::processEvents();
hgs
parents:
diff changeset
    50
    }
hgs
parents:
diff changeset
    51
hgs
parents:
diff changeset
    52
/*!
hgs
parents:
diff changeset
    53
 * Test Case Description:\n &nbsp;
hgs
parents:
diff changeset
    54
 * 1. Fucntion Name: CpDataFormListEntryViewItem() \n&nbsp;
hgs
parents:
diff changeset
    55
   2. Function Descrition: \n &nbsp;&nbsp;
hgs
parents:
diff changeset
    56
       2.1 Create CpDataFormListEntryViewItem object with a HbDataForm pointer.\n &nbsp;&nbsp;
hgs
parents:
diff changeset
    57
       2.2 verify object created successfully.\n &nbsp;&nbsp;
hgs
parents:
diff changeset
    58
       2.3 delete the object.\n &nbsp;
hgs
parents:
diff changeset
    59
   3. Input Parameters: \n&nbsp;
hgs
parents:
diff changeset
    60
       @param: HbDataForm pointer.\n
hgs
parents:
diff changeset
    61
       
hgs
parents:
diff changeset
    62
   4. Expected result: \n&nbsp;&nbsp;
hgs
parents:
diff changeset
    63
       case run without verify failed.\n 
hgs
parents:
diff changeset
    64
 */
hgs
parents:
diff changeset
    65
void TestCpDataFormListEntryViewItem::testCpDataFormListEntryViewItemWithDataForm()
hgs
parents:
diff changeset
    66
    {
hgs
parents:
diff changeset
    67
    HbDataForm * form = new HbDataForm();
hgs
parents:
diff changeset
    68
    QVERIFY( form != 0 );
hgs
parents:
diff changeset
    69
    
hgs
parents:
diff changeset
    70
    int count0 = form->itemPrototypes().count();
hgs
parents:
diff changeset
    71
    CpPluginUtility::addCpItemPrototype(form);
hgs
parents:
diff changeset
    72
    int count1 = form->itemPrototypes().count();
hgs
parents:
diff changeset
    73
    QVERIFY( count0 + 2 == count1 );
hgs
parents:
diff changeset
    74
    
hgs
parents:
diff changeset
    75
    CpDataFormListEntryViewItem * item = new CpDataFormListEntryViewItem(form);
hgs
parents:
diff changeset
    76
    QVERIFY(item != 0);
hgs
parents:
diff changeset
    77
        
hgs
parents:
diff changeset
    78
    delete form;
hgs
parents:
diff changeset
    79
    }
hgs
parents:
diff changeset
    80
hgs
parents:
diff changeset
    81
/*!
hgs
parents:
diff changeset
    82
 * Test Case Description:\n &nbsp;
hgs
parents:
diff changeset
    83
 * 1. Fucntion Name: CpDataFormListEntryViewItem() \n&nbsp;
hgs
parents:
diff changeset
    84
   2. Function Descrition: \n &nbsp;&nbsp;
hgs
parents:
diff changeset
    85
       2.1 Create CpDataFormListEntryViewItem object with a 0 pointer.\n &nbsp;&nbsp;
hgs
parents:
diff changeset
    86
       2.2 verify object created successfully.\n &nbsp;&nbsp;
hgs
parents:
diff changeset
    87
       2.3 delete the object.\n &nbsp;
hgs
parents:
diff changeset
    88
   3. Input Parameters: \n&nbsp;
hgs
parents:
diff changeset
    89
       @param: HbDataForm pointer.\n
hgs
parents:
diff changeset
    90
       
hgs
parents:
diff changeset
    91
   4. Expected result: \n&nbsp;&nbsp;
hgs
parents:
diff changeset
    92
       case run without verify failed.\n 
hgs
parents:
diff changeset
    93
 */
hgs
parents:
diff changeset
    94
void TestCpDataFormListEntryViewItem::testCpDataFormListEntryViewItemWithNullPointer()
hgs
parents:
diff changeset
    95
    {
hgs
parents:
diff changeset
    96
    CpDataFormListEntryViewItem * item = new CpDataFormListEntryViewItem();
hgs
parents:
diff changeset
    97
    QVERIFY(item != 0);
hgs
parents:
diff changeset
    98
    
hgs
parents:
diff changeset
    99
    delete item;
hgs
parents:
diff changeset
   100
    }
hgs
parents:
diff changeset
   101
hgs
parents:
diff changeset
   102
/*!
hgs
parents:
diff changeset
   103
 * Test Case Description:\n &nbsp;
hgs
parents:
diff changeset
   104
 * 1. Fucntion Name:\n&nbsp;&nbsp;
hgs
parents:
diff changeset
   105
       HbAbstractViewItem *createItem();\n&nbsp;
hgs
parents:
diff changeset
   106
   2. Function Descrition: \n &nbsp;&nbsp;
hgs
parents:
diff changeset
   107
       2.1 Create CpDataFormListEntryViewItem object.\n &nbsp;&nbsp;
hgs
parents:
diff changeset
   108
       2.2 verify object created successfully.\n &nbsp;&nbsp;
hgs
parents:
diff changeset
   109
       2.3 call createItem() to create a HbAbstractViewItem object.\n&nbsp;&nbsp;
hgs
parents:
diff changeset
   110
       2.4 verify the object is not 0.\n&nbsp;&nbsp;
hgs
parents:
diff changeset
   111
       2.5 delete both objects.\n &nbsp;
hgs
parents:
diff changeset
   112
   3. Input Parameters: \n&nbsp;
hgs
parents:
diff changeset
   113
       @param: none.\n
hgs
parents:
diff changeset
   114
       
hgs
parents:
diff changeset
   115
   4. Expected result: \n&nbsp;&nbsp;
hgs
parents:
diff changeset
   116
       case run without verify failed.\n 
hgs
parents:
diff changeset
   117
 */
hgs
parents:
diff changeset
   118
void TestCpDataFormListEntryViewItem::testCreateItemNoDataForm()
hgs
parents:
diff changeset
   119
    {
hgs
parents:
diff changeset
   120
    CpDataFormListEntryViewItem * item = new CpDataFormListEntryViewItem();
hgs
parents:
diff changeset
   121
    QVERIFY(item != 0);
hgs
parents:
diff changeset
   122
    
hgs
parents:
diff changeset
   123
    HbAbstractViewItem * item1 = item->createItem();
hgs
parents:
diff changeset
   124
    QVERIFY(item1 != 0);
hgs
parents:
diff changeset
   125
    
hgs
parents:
diff changeset
   126
    delete item1;
hgs
parents:
diff changeset
   127
    delete item;
hgs
parents:
diff changeset
   128
    }
hgs
parents:
diff changeset
   129
hgs
parents:
diff changeset
   130
/*!
hgs
parents:
diff changeset
   131
 * Test Case Description:\n &nbsp;
hgs
parents:
diff changeset
   132
 * 1. Fucntion Name:\n&nbsp;&nbsp;
hgs
parents:
diff changeset
   133
       HbAbstractViewItem *createItem();\n&nbsp;
hgs
parents:
diff changeset
   134
   2. Function Descrition: \n &nbsp;&nbsp;
hgs
parents:
diff changeset
   135
       2.1 Create CpDataFormListEntryViewItem object.\n &nbsp;&nbsp;
hgs
parents:
diff changeset
   136
       2.2 verify object created successfully.\n &nbsp;&nbsp;
hgs
parents:
diff changeset
   137
       2.3 call createItem() to create a HbAbstractViewItem object.\n&nbsp;&nbsp;
hgs
parents:
diff changeset
   138
       2.4 verify the object is not 0.\n&nbsp;&nbsp;
hgs
parents:
diff changeset
   139
       2.5 delete both objects.\n &nbsp;
hgs
parents:
diff changeset
   140
   3. Input Parameters: \n&nbsp;
hgs
parents:
diff changeset
   141
       @param: none.\n
hgs
parents:
diff changeset
   142
       
hgs
parents:
diff changeset
   143
   4. Expected result: \n&nbsp;&nbsp;
hgs
parents:
diff changeset
   144
       case run without verify failed.\n 
hgs
parents:
diff changeset
   145
 */
hgs
parents:
diff changeset
   146
void TestCpDataFormListEntryViewItem::testCreateItemWithDataForm()
hgs
parents:
diff changeset
   147
    {
hgs
parents:
diff changeset
   148
    HbDataForm * form = new HbDataForm();
hgs
parents:
diff changeset
   149
    QVERIFY( form != 0 );
hgs
parents:
diff changeset
   150
    
hgs
parents:
diff changeset
   151
    CpDataFormListEntryViewItem * item = new CpDataFormListEntryViewItem(form);
hgs
parents:
diff changeset
   152
    QVERIFY(item != 0);
hgs
parents:
diff changeset
   153
    
hgs
parents:
diff changeset
   154
    HbAbstractViewItem * item1 = item->createItem();
hgs
parents:
diff changeset
   155
    QVERIFY(item1 != 0);
hgs
parents:
diff changeset
   156
    
hgs
parents:
diff changeset
   157
    delete item;
hgs
parents:
diff changeset
   158
    }
hgs
parents:
diff changeset
   159
hgs
parents:
diff changeset
   160
/*!
hgs
parents:
diff changeset
   161
 * Test Case Description:\n &nbsp;
hgs
parents:
diff changeset
   162
 * 1. Fucntion Name: CanSetModelIndex();\n&nbsp;&nbsp;
hgs
parents:
diff changeset
   163
       
hgs
parents:
diff changeset
   164
   2. Function Descrition: \n &nbsp;&nbsp;
hgs
parents:
diff changeset
   165
hgs
parents:
diff changeset
   166
   3. Input Parameters: \n&nbsp;
hgs
parents:
diff changeset
   167
       @param: none.\n
hgs
parents:
diff changeset
   168
       
hgs
parents:
diff changeset
   169
   4. Expected result: \n&nbsp;&nbsp;
hgs
parents:
diff changeset
   170
       case run without verify failed.\n 
hgs
parents:
diff changeset
   171
 */
hgs
parents:
diff changeset
   172
void TestCpDataFormListEntryViewItem::testCanSetModelIndexWithDataForm()
hgs
parents:
diff changeset
   173
    {
hgs
parents:
diff changeset
   174
    HbDataForm * form = new HbDataForm();
hgs
parents:
diff changeset
   175
    QVERIFY( form != 0 );
hgs
parents:
diff changeset
   176
    
hgs
parents:
diff changeset
   177
    int count0 = form->itemPrototypes().count();
hgs
parents:
diff changeset
   178
    CpPluginUtility::addCpItemPrototype(form);
hgs
parents:
diff changeset
   179
    int count1 = form->itemPrototypes().count();
hgs
parents:
diff changeset
   180
    QVERIFY( count0 + 2 == count1 );
hgs
parents:
diff changeset
   181
        
hgs
parents:
diff changeset
   182
    CpSettingFormEntryItemDataImpl<CpBaseSettingView> *pdataimp1 = new CpSettingFormEntryItemDataImpl<CpBaseSettingView>( CpSettingFormEntryItemData::ListEntryItem, form, "text", "description" );
hgs
parents:
diff changeset
   183
    QVERIFY( pdataimp1 !=0 );
hgs
parents:
diff changeset
   184
    
hgs
parents:
diff changeset
   185
    HbDataFormModel * model = new HbDataFormModel;
hgs
parents:
diff changeset
   186
    QVERIFY( model != 0 );
hgs
parents:
diff changeset
   187
    
hgs
parents:
diff changeset
   188
    model->appendDataFormItem(pdataimp1);
hgs
parents:
diff changeset
   189
    form->setModel(model);
hgs
parents:
diff changeset
   190
    form->show();
hgs
parents:
diff changeset
   191
    }
hgs
parents:
diff changeset
   192
hgs
parents:
diff changeset
   193
/*!
hgs
parents:
diff changeset
   194
 * Test Case Description:\n &nbsp;
hgs
parents:
diff changeset
   195
 * 1. Fucntion Name: \n&nbsp;&nbsp;
hgs
parents:
diff changeset
   196
      HbWidget* createCustomWidget();
hgs
parents:
diff changeset
   197
       
hgs
parents:
diff changeset
   198
   2. Function Descrition: \n &nbsp;&nbsp;
hgs
parents:
diff changeset
   199
hgs
parents:
diff changeset
   200
   3. Input Parameters: \n&nbsp;
hgs
parents:
diff changeset
   201
       @param: none.\n
hgs
parents:
diff changeset
   202
       
hgs
parents:
diff changeset
   203
   4. Expected result: \n&nbsp;&nbsp;
hgs
parents:
diff changeset
   204
       case run without verify failed.\n 
hgs
parents:
diff changeset
   205
 */
hgs
parents:
diff changeset
   206
void TestCpDataFormListEntryViewItem::testCreateCustomedWidgetNoParam()
hgs
parents:
diff changeset
   207
    {
hgs
parents:
diff changeset
   208
    HbDataForm * form = new HbDataForm();
hgs
parents:
diff changeset
   209
    QVERIFY( form != 0 );
hgs
parents:
diff changeset
   210
    
hgs
parents:
diff changeset
   211
    int count0 = form->itemPrototypes().count();
hgs
parents:
diff changeset
   212
    CpPluginUtility::addCpItemPrototype(form);
hgs
parents:
diff changeset
   213
    int count1 = form->itemPrototypes().count();
hgs
parents:
diff changeset
   214
    QVERIFY( count0 + 2 == count1 );
hgs
parents:
diff changeset
   215
        
hgs
parents:
diff changeset
   216
    CpSettingFormEntryItemDataImpl<CpBaseSettingView> *pdataimp1 = new CpSettingFormEntryItemDataImpl<CpBaseSettingView>( CpSettingFormEntryItemData::ListEntryItem, form, "text", "description" );
hgs
parents:
diff changeset
   217
    QVERIFY( pdataimp1 !=0 );
hgs
parents:
diff changeset
   218
    
hgs
parents:
diff changeset
   219
    HbDataFormModel * model = new HbDataFormModel;
hgs
parents:
diff changeset
   220
    QVERIFY( model != 0 );
hgs
parents:
diff changeset
   221
    
hgs
parents:
diff changeset
   222
    model->appendDataFormItem(pdataimp1);
hgs
parents:
diff changeset
   223
    form->setModel(model);
hgs
parents:
diff changeset
   224
    
hgs
parents:
diff changeset
   225
    mainWindow = new HbMainWindow;
hgs
parents:
diff changeset
   226
    QVERIFY( mainWindow != 0 );
hgs
parents:
diff changeset
   227
    
hgs
parents:
diff changeset
   228
    CpBaseSettingView *mainView = new CpBaseSettingView(form);
hgs
parents:
diff changeset
   229
    QVERIFY( mainView != 0 );
hgs
parents:
diff changeset
   230
    
hgs
parents:
diff changeset
   231
    QObject::connect(mainView,SIGNAL(aboutToClose()),qApp,SLOT(quit()));
hgs
parents:
diff changeset
   232
    HbView * view = mainWindow->addView(mainView);
hgs
parents:
diff changeset
   233
    QVERIFY( view != 0 );
hgs
parents:
diff changeset
   234
    
hgs
parents:
diff changeset
   235
    mainWindow->setCurrentView(mainView);
hgs
parents:
diff changeset
   236
    HbView * curView = mainWindow->currentView();
hgs
parents:
diff changeset
   237
    QVERIFY( curView == mainView );
hgs
parents:
diff changeset
   238
    
hgs
parents:
diff changeset
   239
    mainWindow->show();
hgs
parents:
diff changeset
   240
    }
hgs
parents:
diff changeset
   241
hgs
parents:
diff changeset
   242
QTEST_MAIN(TestCpDataFormListEntryViewItem)