controlpanelui/src/cpcategorymodel/tsrc/ut_cppluginconfigreader/src/ut_cppluginconfigreader.cpp
author hgs
Tue, 24 Aug 2010 10:56:32 +0800
changeset 33 0cfa53de576f
permissions -rw-r--r--
201033
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
33
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 the functions in cppluginconfigreader class 
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
#include "ut_cppluginconfigreader.h"
hgs
parents:
diff changeset
    19
#include <QtTest/QtTest>
hgs
parents:
diff changeset
    20
#include <cppluginconfigreader.h>
hgs
parents:
diff changeset
    21
#include <cpbasepath.h>
hgs
parents:
diff changeset
    22
#include <qdir.h>
hgs
parents:
diff changeset
    23
hgs
parents:
diff changeset
    24
/*!
hgs
parents:
diff changeset
    25
      class name: cppluginconfigreader
hgs
parents:
diff changeset
    26
      class's description: 
hgs
parents:
diff changeset
    27
      type of test case: unit test 
hgs
parents:
diff changeset
    28
      test cases' number totally: \n
hgs
parents:
diff changeset
    29
*/
hgs
parents:
diff changeset
    30
hgs
parents:
diff changeset
    31
/*!
hgs
parents:
diff changeset
    32
     Description of test data \n
hgs
parents:
diff changeset
    33
 */
hgs
parents:
diff changeset
    34
void TestCppluginConfigReader::initTestCase()
hgs
parents:
diff changeset
    35
{
hgs
parents:
diff changeset
    36
    // initialize public test data here
hgs
parents:
diff changeset
    37
}
hgs
parents:
diff changeset
    38
hgs
parents:
diff changeset
    39
void TestCppluginConfigReader::testConstructor()
hgs
parents:
diff changeset
    40
{
hgs
parents:
diff changeset
    41
    CpPluginConfigReader *  pReader = new CpPluginConfigReader(CP_PLUGIN_CONFIG_PATH + QDir::separator() + "mainview.cpcfg");
hgs
parents:
diff changeset
    42
    QVERIFY(pReader!=0);
hgs
parents:
diff changeset
    43
    delete pReader;    
hgs
parents:
diff changeset
    44
}
hgs
parents:
diff changeset
    45
hgs
parents:
diff changeset
    46
/*!
hgs
parents:
diff changeset
    47
     Test Case Description: \n
hgs
parents:
diff changeset
    48
     1. Function Name: \n
hgs
parents:
diff changeset
    49
            QList<CpPluginConfig> readCpPluginConfigs();\n
hgs
parents:
diff changeset
    50
     2. Case Descrition: \n
hgs
parents:
diff changeset
    51
         Verify that the valid config file can be read correctly. \n
hgs
parents:
diff changeset
    52
     3. Input Parameters:\n
hgs
parents:
diff changeset
    53
         <1> valid configfiles: pluginfortest.cpcfg \n           
hgs
parents:
diff changeset
    54
     4. Expected result:   \n
hgs
parents:
diff changeset
    55
         <1> return the correct plugin number \n        
hgs
parents:
diff changeset
    56
 */
hgs
parents:
diff changeset
    57
void TestCppluginConfigReader::testReadValidConfigFile()
hgs
parents:
diff changeset
    58
{
hgs
parents:
diff changeset
    59
    CpPluginConfigReader *  pReader = new CpPluginConfigReader(CP_PLUGIN_CONFIG_PATH + QDir::separator() + "pluginfortest.cpcfg");    
hgs
parents:
diff changeset
    60
    QVERIFY(pReader!=0);
hgs
parents:
diff changeset
    61
    mCorrectConfig = pReader->readCpPluginConfigs();
hgs
parents:
diff changeset
    62
    QVERIFY(mCorrectConfig.count() == 4 );
hgs
parents:
diff changeset
    63
    delete pReader;
hgs
parents:
diff changeset
    64
    pReader = 0;
hgs
parents:
diff changeset
    65
}
hgs
parents:
diff changeset
    66
/*!
hgs
parents:
diff changeset
    67
     Test Case Description:  \n
hgs
parents:
diff changeset
    68
     1. Function Name:  \n
hgs
parents:
diff changeset
    69
            QList<CpPluginConfig> readCpPluginConfigs(); \n
hgs
parents:
diff changeset
    70
     2. Case Descrition:  \n
hgs
parents:
diff changeset
    71
         Verify the empty config file path can be dealed without any crash. \n
hgs
parents:
diff changeset
    72
     3. Input Parameters: \n
hgs
parents:
diff changeset
    73
         <1> empty config plugin path \n   
hgs
parents:
diff changeset
    74
         <2> config plugin path = null   \n     
hgs
parents:
diff changeset
    75
     4. Expected result:   \n
hgs
parents:
diff changeset
    76
         <1> no crash   \n
hgs
parents:
diff changeset
    77
         <2> no crash \n
hgs
parents:
diff changeset
    78
 */
hgs
parents:
diff changeset
    79
void TestCppluginConfigReader::testReadEmptyConfigFilePath()
hgs
parents:
diff changeset
    80
{
hgs
parents:
diff changeset
    81
    CpPluginConfigReader *  pReader = new CpPluginConfigReader("");
hgs
parents:
diff changeset
    82
    QVERIFY(pReader!=0);
hgs
parents:
diff changeset
    83
    mCorrectConfig = pReader->readCpPluginConfigs();
hgs
parents:
diff changeset
    84
    QVERIFY(mCorrectConfig.count() == 0 );
hgs
parents:
diff changeset
    85
    delete pReader;
hgs
parents:
diff changeset
    86
    pReader = 0;
hgs
parents:
diff changeset
    87
    pReader = new CpPluginConfigReader(0);
hgs
parents:
diff changeset
    88
    QVERIFY(pReader!=0);
hgs
parents:
diff changeset
    89
    mCorrectConfig = pReader->readCpPluginConfigs();
hgs
parents:
diff changeset
    90
    QVERIFY(mCorrectConfig.count() == 0 );
hgs
parents:
diff changeset
    91
    delete pReader;
hgs
parents:
diff changeset
    92
    pReader = 0;
hgs
parents:
diff changeset
    93
}
hgs
parents:
diff changeset
    94
/*!
hgs
parents:
diff changeset
    95
     Test Case Description: \n 
hgs
parents:
diff changeset
    96
     1. Function Name:  \n
hgs
parents:
diff changeset
    97
            QList<CpPluginConfig> readCpPluginConfigs(); \n
hgs
parents:
diff changeset
    98
     2. Case Descrition:  \n
hgs
parents:
diff changeset
    99
         Verify that the empty config file could be read. \n
hgs
parents:
diff changeset
   100
     3. Input Parameters: \n
hgs
parents:
diff changeset
   101
         <1> empty config file "emptypluginfortest.cpcfg" \n                
hgs
parents:
diff changeset
   102
     4. Expected result:   \n
hgs
parents:
diff changeset
   103
         <1> no crash   \n
hgs
parents:
diff changeset
   104
 */
hgs
parents:
diff changeset
   105
void TestCppluginConfigReader::testReadEmptyConfigFile()
hgs
parents:
diff changeset
   106
{
hgs
parents:
diff changeset
   107
    CpPluginConfigReader *  pReader = new CpPluginConfigReader(CP_PLUGIN_CONFIG_PATH + QDir::separator() + "emptypluginfortest.cpcfg");
hgs
parents:
diff changeset
   108
    QVERIFY(pReader!=0);
hgs
parents:
diff changeset
   109
    mCorrectConfig = pReader->readCpPluginConfigs();
hgs
parents:
diff changeset
   110
    QVERIFY(mCorrectConfig.count() == 0 );
hgs
parents:
diff changeset
   111
    delete pReader;
hgs
parents:
diff changeset
   112
    pReader = 0;
hgs
parents:
diff changeset
   113
}
hgs
parents:
diff changeset
   114
/*!
hgs
parents:
diff changeset
   115
     Test Case Description: \n 
hgs
parents:
diff changeset
   116
     1. Function Name:  \n
hgs
parents:
diff changeset
   117
            void readCpPluginConfigs(QXmlStreamReader &xmlReader,QList<CpPluginConfig> &cpPluginConfigList) \n  
hgs
parents:
diff changeset
   118
     2. Case Descrition:  \n
hgs
parents:
diff changeset
   119
         Verify that the function can work without crash when reading the plugin files with wrong tag. \n
hgs
parents:
diff changeset
   120
     3. Input Parameters: \n
hgs
parents:
diff changeset
   121
         <1> config file with wrong child plugin tag: "pluginfilewithwrongchildtag.cpcfg" \n                
hgs
parents:
diff changeset
   122
     4. Expected result:   \n
hgs
parents:
diff changeset
   123
         <1> no crash   \n
hgs
parents:
diff changeset
   124
 */
hgs
parents:
diff changeset
   125
void TestCppluginConfigReader::testReaderWithWrongChildPluginTag()
hgs
parents:
diff changeset
   126
{
hgs
parents:
diff changeset
   127
    CpPluginConfigReader *  pReader = new CpPluginConfigReader(CP_PLUGIN_CONFIG_PATH + QDir::separator() + "pluginfilewithwrongchildtag.cpcfg");
hgs
parents:
diff changeset
   128
    QVERIFY(pReader!=0);
hgs
parents:
diff changeset
   129
    mCorrectConfig = pReader->readCpPluginConfigs();
hgs
parents:
diff changeset
   130
    QVERIFY( mCorrectConfig.count() == 0 );
hgs
parents:
diff changeset
   131
    delete pReader;
hgs
parents:
diff changeset
   132
    pReader = 0;
hgs
parents:
diff changeset
   133
}
hgs
parents:
diff changeset
   134
/*!
hgs
parents:
diff changeset
   135
     Test Case Description: \n 
hgs
parents:
diff changeset
   136
     1. Function Name:  \n
hgs
parents:
diff changeset
   137
            void readChildPluginsElement(QXmlStreamReader &xmlReader,QList<CpPluginConfig> &cpPluginConfigList) \n
hgs
parents:
diff changeset
   138
     2. Case Descrition:  \n
hgs
parents:
diff changeset
   139
         Verify that the function can work without crash when reading the plugin files with empty child plugin element. \n
hgs
parents:
diff changeset
   140
     3. Input Parameters: \n
hgs
parents:
diff changeset
   141
         <1> config file with empty child plugin element: "pluginfilewithemptychildelement.cpcfg" \n                
hgs
parents:
diff changeset
   142
     4. Expected result:   \n
hgs
parents:
diff changeset
   143
         <1> no crash   \n
hgs
parents:
diff changeset
   144
 */
hgs
parents:
diff changeset
   145
void TestCppluginConfigReader::testReaderWithEmptyChildElement()
hgs
parents:
diff changeset
   146
{
hgs
parents:
diff changeset
   147
    CpPluginConfigReader *  pReader = new CpPluginConfigReader(CP_PLUGIN_CONFIG_PATH + QDir::separator() + "pluginfilewithemptychildelement.cpcfg");
hgs
parents:
diff changeset
   148
    QVERIFY(pReader!=0);
hgs
parents:
diff changeset
   149
    mCorrectConfig = pReader->readCpPluginConfigs();
hgs
parents:
diff changeset
   150
    QVERIFY( mCorrectConfig.count() == 0 );
hgs
parents:
diff changeset
   151
    delete pReader;
hgs
parents:
diff changeset
   152
    pReader = 0;
hgs
parents:
diff changeset
   153
}
hgs
parents:
diff changeset
   154
/*!
hgs
parents:
diff changeset
   155
     Test Case Description: \n 
hgs
parents:
diff changeset
   156
     1. Function Name:  \n
hgs
parents:
diff changeset
   157
            void readChildPluginsElement(QXmlStreamReader &xmlReader,QList<CpPluginConfig> &cpPluginConfigList) \n
hgs
parents:
diff changeset
   158
     2. Case Descrition:  \n
hgs
parents:
diff changeset
   159
         Verify that the function can work without crash when reading plugin files with wrong tags. \n
hgs
parents:
diff changeset
   160
     3. Input Parameters: \n
hgs
parents:
diff changeset
   161
         <1> config file with wrong plugin tag: "pluginfilewithwrongplugintag.cpcfg" \n                
hgs
parents:
diff changeset
   162
     4. Expected result:   \n
hgs
parents:
diff changeset
   163
         <1> no crash   \n
hgs
parents:
diff changeset
   164
 */
hgs
parents:
diff changeset
   165
void TestCppluginConfigReader::testReaderWithWrongPluginTag()
hgs
parents:
diff changeset
   166
{
hgs
parents:
diff changeset
   167
    CpPluginConfigReader *  pReader = new CpPluginConfigReader(CP_PLUGIN_CONFIG_PATH + QDir::separator() + "pluginfilewithwrongplugintag.cpcfg");
hgs
parents:
diff changeset
   168
    QVERIFY(pReader!=0);
hgs
parents:
diff changeset
   169
    mCorrectConfig = pReader->readCpPluginConfigs();
hgs
parents:
diff changeset
   170
    QVERIFY( mCorrectConfig.count() == 0 );
hgs
parents:
diff changeset
   171
    delete pReader;
hgs
parents:
diff changeset
   172
    pReader = 0;
hgs
parents:
diff changeset
   173
}
hgs
parents:
diff changeset
   174
/*!
hgs
parents:
diff changeset
   175
     Test Case Description: \n 
hgs
parents:
diff changeset
   176
     1. Function Name:  \n
hgs
parents:
diff changeset
   177
          void readPluginElement(QXmlStreamReader &xmlReader,QList<CpPluginConfig> &cpPluginConfigList); \n
hgs
parents:
diff changeset
   178
     2. Case Descrition:  \n
hgs
parents:
diff changeset
   179
         Verify that the function can work without crash when reading the plugin files having no attrs. \n
hgs
parents:
diff changeset
   180
     3. Input Parameters: \n
hgs
parents:
diff changeset
   181
         <1> plugin element has no plugin attrs: "pluginfilewithoutattrs.cpcfg" \n  
hgs
parents:
diff changeset
   182
         <2> plugin element has wrong plugin attrs. \n              
hgs
parents:
diff changeset
   183
     4. Expected result:   \n
hgs
parents:
diff changeset
   184
         <1> no crash   \n
hgs
parents:
diff changeset
   185
         <2> no crash \n
hgs
parents:
diff changeset
   186
 */
hgs
parents:
diff changeset
   187
void TestCppluginConfigReader::testReaderWithoutAttrs()
hgs
parents:
diff changeset
   188
{
hgs
parents:
diff changeset
   189
    CpPluginConfigReader *  pReader = new CpPluginConfigReader(CP_PLUGIN_CONFIG_PATH + QDir::separator() + "pluginfilewithoutattrs.cpcfg");
hgs
parents:
diff changeset
   190
    QVERIFY(pReader!=0);
hgs
parents:
diff changeset
   191
    mCorrectConfig = pReader->readCpPluginConfigs();    
hgs
parents:
diff changeset
   192
    QVERIFY( mCorrectConfig.count() == 1 );
hgs
parents:
diff changeset
   193
    delete pReader;
hgs
parents:
diff changeset
   194
    pReader = 0;
hgs
parents:
diff changeset
   195
}
hgs
parents:
diff changeset
   196
/*!
hgs
parents:
diff changeset
   197
     Test Case Description: \n 
hgs
parents:
diff changeset
   198
     1. Function Name:  \n
hgs
parents:
diff changeset
   199
          void readDescElement(QXmlStreamReader &xmlReader,CpPluginConfig &cpPluginConfig) \n
hgs
parents:
diff changeset
   200
     2. Case Descrition:  \n
hgs
parents:
diff changeset
   201
         Verify that the function can work without crash when reading the plugin files with wrong tag. \n
hgs
parents:
diff changeset
   202
     3. Input Parameters: \n
hgs
parents:
diff changeset
   203
         <1> plugin element has no desc tag: "pluginfilewithwrongdesctag.cpcfg" \n  
hgs
parents:
diff changeset
   204
         <2> plugin element has wrong desc tag \n              
hgs
parents:
diff changeset
   205
     4. Expected result:   \n
hgs
parents:
diff changeset
   206
         <1> no crash   \n
hgs
parents:
diff changeset
   207
         <2> no crash \n
hgs
parents:
diff changeset
   208
 */
hgs
parents:
diff changeset
   209
void TestCppluginConfigReader::testReaderWithWrongDescTag()
hgs
parents:
diff changeset
   210
{
hgs
parents:
diff changeset
   211
    CpPluginConfigReader *  pReader = new CpPluginConfigReader(CP_PLUGIN_CONFIG_PATH + QDir::separator() + "pluginfilewithwrongdesctag.cpcfg");
hgs
parents:
diff changeset
   212
    QVERIFY(pReader!=0);
hgs
parents:
diff changeset
   213
    mCorrectConfig = pReader->readCpPluginConfigs();
hgs
parents:
diff changeset
   214
    delete pReader;
hgs
parents:
diff changeset
   215
    pReader = 0;
hgs
parents:
diff changeset
   216
}
hgs
parents:
diff changeset
   217
/*!
hgs
parents:
diff changeset
   218
    Descrition of what you will do in this function
hgs
parents:
diff changeset
   219
 */
hgs
parents:
diff changeset
   220
void TestCppluginConfigReader::cleanupTestCase()
hgs
parents:
diff changeset
   221
{
hgs
parents:
diff changeset
   222
    // release all test data
hgs
parents:
diff changeset
   223
    QCoreApplication::processEvents();
hgs
parents:
diff changeset
   224
}
hgs
parents:
diff changeset
   225
hgs
parents:
diff changeset
   226
QTEST_APPLESS_MAIN(TestCppluginConfigReader)