filemanager/tsrc/unit/ut_fminternaldrivermodel/src/ut_fminternaldrivemodel.cpp
author hgs
Wed, 29 Sep 2010 10:37:03 +0800
changeset 46 d58987eac7e8
permissions -rw-r--r--
201037
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
46
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 file manager internal apis.
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
#include "ut_fminternaldrivemodel.h"
hgs
parents:
diff changeset
    19
#include "testclassdatafmdrivelistprovider.h"
hgs
parents:
diff changeset
    20
#include "fmdrivemodel.h"
hgs
parents:
diff changeset
    21
#include <QtTest/QtTest>
hgs
parents:
diff changeset
    22
#include <hbapplication.h>
hgs
parents:
diff changeset
    23
#include "fmutils.h"
hgs
parents:
diff changeset
    24
/*!
hgs
parents:
diff changeset
    25
    \class TestFmInternalDriveModel
hgs
parents:
diff changeset
    26
    \brief \n
hgs
parents:
diff changeset
    27
      class name:  FmDriveModel \n
hgs
parents:
diff changeset
    28
      class's description: Test the File Manager internal api functions. \n
hgs
parents:
diff changeset
    29
      type of test case: unit test\n 
hgs
parents:
diff changeset
    30
      test cases' number totally: 10 \n
hgs
parents:
diff changeset
    31
 */
hgs
parents:
diff changeset
    32
hgs
parents:
diff changeset
    33
void TestFmInternalDriveModel::initTestCase()
hgs
parents:
diff changeset
    34
{
hgs
parents:
diff changeset
    35
    // translate the related text. 
hgs
parents:
diff changeset
    36
    QString lang = QLocale::system().name(); 
hgs
parents:
diff changeset
    37
    QString path = "z:/resource/qt/translations/"; 
hgs
parents:
diff changeset
    38
    mTranslator.load( path + "filemanager_" + lang );
hgs
parents:
diff changeset
    39
    qApp->installTranslator(&mTranslator);
hgs
parents:
diff changeset
    40
    
hgs
parents:
diff changeset
    41
    // get all the drives which can be shown, the parameters should be according to the parameter (Options) of FmDriveModel.
hgs
parents:
diff changeset
    42
    FmUtils::getDriveList(mDriverList, false);
hgs
parents:
diff changeset
    43
    qDebug() << mDriverList;        
hgs
parents:
diff changeset
    44
}
hgs
parents:
diff changeset
    45
/*!
hgs
parents:
diff changeset
    46
     Test Case Description:\n 
hgs
parents:
diff changeset
    47
     1. Fucntion Name: \n &nbsp;&nbsp;
hgs
parents:
diff changeset
    48
        explicit FmDriveModel( QObject *parent = 0, Options options = 0,
hgs
parents:
diff changeset
    49
            FmDriveListProvider *driveListProvider = 0 ); \n
hgs
parents:
diff changeset
    50
     2. Case Descrition: test the constructor function. \n
hgs
parents:
diff changeset
    51
     3. Input Parameters:  \n &nbsp;&nbsp;
hgs
parents:
diff changeset
    52
        <1> parent = new QObject(), 
hgs
parents:
diff changeset
    53
            Options = FmDriveModel::FillWithVolume, 
hgs
parents:
diff changeset
    54
            driveListProvider = new TestDataClassFmDriveListProvider();\n &nbsp;&nbsp;
hgs
parents:
diff changeset
    55
        <2> parent = new QObject(),
hgs
parents:
diff changeset
    56
            Options = FmDriveModel::FillWithVolume | FillWithDefaultVolume, 
hgs
parents:
diff changeset
    57
            driveListProvider = 0 \n&nbsp;&nbsp;
hgs
parents:
diff changeset
    58
        <3> parent = new QObject(); 
hgs
parents:
diff changeset
    59
            Options = FmDriveModel::FillWithVolume | FillWithDefaultVolume |HideUnAvailableDrive, 
hgs
parents:
diff changeset
    60
            driveListProvider = 0 \n
hgs
parents:
diff changeset
    61
     4. Expected result: \n &nbsp;&nbsp;
hgs
parents:
diff changeset
    62
        <1> no crash \n &nbsp;&nbsp;
hgs
parents:
diff changeset
    63
        <2> no crash \n &nbsp;&nbsp;
hgs
parents:
diff changeset
    64
        <3> no crash \n
hgs
parents:
diff changeset
    65
 */
hgs
parents:
diff changeset
    66
void TestFmInternalDriveModel::testConstructor()
hgs
parents:
diff changeset
    67
{
hgs
parents:
diff changeset
    68
    QObject *pObject = new QObject();
hgs
parents:
diff changeset
    69
    // the class TestDataClassFmDriveListProvider is a sub class from FmDriveListProvider.
hgs
parents:
diff changeset
    70
    TestDataClassFmDriveListProvider *driveListProvider = new TestDataClassFmDriveListProvider();    
hgs
parents:
diff changeset
    71
    FmDriveModel *fmDriveModel = new FmDriveModel( pObject,FmDriveModel::FillWithVolume,driveListProvider );
hgs
parents:
diff changeset
    72
    QVERIFY ( fmDriveModel != 0 );
hgs
parents:
diff changeset
    73
hgs
parents:
diff changeset
    74
    // the drive number in class TestDataClassFmDriveListProvider is "3".
hgs
parents:
diff changeset
    75
    QVERIFY ( fmDriveModel->rowCount() == 3 );
hgs
parents:
diff changeset
    76
    delete fmDriveModel;
hgs
parents:
diff changeset
    77
    fmDriveModel = 0;
hgs
parents:
diff changeset
    78
    
hgs
parents:
diff changeset
    79
    fmDriveModel = new FmDriveModel( pObject,FmDriveModel::FillWithVolume | FmDriveModel::FillWithDefaultVolume ,0 );
hgs
parents:
diff changeset
    80
    QVERIFY ( fmDriveModel != 0 );
hgs
parents:
diff changeset
    81
    QVERIFY ( fmDriveModel->rowCount() > 0 );
hgs
parents:
diff changeset
    82
    delete fmDriveModel;
hgs
parents:
diff changeset
    83
    fmDriveModel = 0;
hgs
parents:
diff changeset
    84
    
hgs
parents:
diff changeset
    85
    fmDriveModel = new FmDriveModel( pObject, FmDriveModel::FillWithVolume | FmDriveModel::FillWithDefaultVolume | FmDriveModel::HideUnAvailableDrive ,0 );
hgs
parents:
diff changeset
    86
    QVERIFY ( fmDriveModel != 0 );
hgs
parents:
diff changeset
    87
    QVERIFY ( fmDriveModel->rowCount() > 0 );
hgs
parents:
diff changeset
    88
    
hgs
parents:
diff changeset
    89
    delete fmDriveModel;
hgs
parents:
diff changeset
    90
    delete pObject;
hgs
parents:
diff changeset
    91
    delete driveListProvider;
hgs
parents:
diff changeset
    92
}
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. Fucntion Name: int rowCount( const QModelIndex &parent = QModelIndex() ) const; \n
hgs
parents:
diff changeset
    97
     2. Case Descrition: Verify it return the right row count. \n
hgs
parents:
diff changeset
    98
     3. Input Parameters:  \n &nbsp;&nbsp;
hgs
parents:
diff changeset
    99
        <1> parent = QModelIndex() \n
hgs
parents:
diff changeset
   100
     4. Expected result: \n &nbsp;&nbsp;
hgs
parents:
diff changeset
   101
        <1> retColumnCount = 1 \n
hgs
parents:
diff changeset
   102
 */
hgs
parents:
diff changeset
   103
void TestFmInternalDriveModel::testRowCount()
hgs
parents:
diff changeset
   104
{
hgs
parents:
diff changeset
   105
    FmDriveModel *fmDriveModel = new FmDriveModel(0);
hgs
parents:
diff changeset
   106
    QModelIndex testIndex1 = fmDriveModel->index(1,0);
hgs
parents:
diff changeset
   107
hgs
parents:
diff changeset
   108
    int retRowCount1 = fmDriveModel->rowCount(testIndex1);
hgs
parents:
diff changeset
   109
    QVERIFY(retRowCount1 == 0);    
hgs
parents:
diff changeset
   110
    int retRowCount2 = fmDriveModel->rowCount();
hgs
parents:
diff changeset
   111
    delete fmDriveModel;
hgs
parents:
diff changeset
   112
}
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. Fucntion Name: int columnCount( const QModelIndex &parent = QModelIndex() ) const; \n
hgs
parents:
diff changeset
   117
     2. Case Descrition:  \n
hgs
parents:
diff changeset
   118
     3. Input Parameters:  \n &nbsp;&nbsp;
hgs
parents:
diff changeset
   119
        <1> parent = QModelIndex() \n
hgs
parents:
diff changeset
   120
     4. Expected result: \n &nbsp;&nbsp;
hgs
parents:
diff changeset
   121
        <1> retColumnCount = 1 \n
hgs
parents:
diff changeset
   122
 */
hgs
parents:
diff changeset
   123
void TestFmInternalDriveModel::testColumnCount()
hgs
parents:
diff changeset
   124
{
hgs
parents:
diff changeset
   125
    FmDriveModel *fmDriveModel = new FmDriveModel(0);
hgs
parents:
diff changeset
   126
    QModelIndex testIndex = QModelIndex();
hgs
parents:
diff changeset
   127
    int retColumnCount = fmDriveModel->columnCount(testIndex);
hgs
parents:
diff changeset
   128
    QVERIFY(retColumnCount == 1);    
hgs
parents:
diff changeset
   129
    delete fmDriveModel;
hgs
parents:
diff changeset
   130
}
hgs
parents:
diff changeset
   131
hgs
parents:
diff changeset
   132
/*!
hgs
parents:
diff changeset
   133
     Test Case Description:\n 
hgs
parents:
diff changeset
   134
     1. Fucntion Name:  \n &nbsp;&nbsp;
hgs
parents:
diff changeset
   135
        QVariant data( const QModelIndex &index, int role = Qt::DisplayRole ) const; \n
hgs
parents:
diff changeset
   136
     2. Case Descrition:  \n
hgs
parents:
diff changeset
   137
     3. Input Parameters:  \n &nbsp;&nbsp;
hgs
parents:
diff changeset
   138
        <1> index = QModelIndex(), role = Qt::DisplayRole \n &nbsp;&nbsp;
hgs
parents:
diff changeset
   139
        <2> index = QModelIndex(), role = Qt::UserRole \n &nbsp;&nbsp;
hgs
parents:
diff changeset
   140
        <3> index = QModelIndex(), role = Qt::DecorationRole \n &nbsp;&nbsp;
hgs
parents:
diff changeset
   141
        <4> index = QModelIndex(), role = Qt::TextAlignmentRole \n &nbsp;&nbsp;
hgs
parents:
diff changeset
   142
     4. Expected result: \n &nbsp;&nbsp;
hgs
parents:
diff changeset
   143
        <1> retData1 = "C:" \n &nbsp;&nbsp;
hgs
parents:
diff changeset
   144
        <2> retData2 = "C:\"  \n &nbsp;&nbsp;
hgs
parents:
diff changeset
   145
        <3> return the right icon
hgs
parents:
diff changeset
   146
        <4> to be delete...
hgs
parents:
diff changeset
   147
 */
hgs
parents:
diff changeset
   148
void TestFmInternalDriveModel::testData()
hgs
parents:
diff changeset
   149
{
hgs
parents:
diff changeset
   150
    QObject *pObject = new QObject();  
hgs
parents:
diff changeset
   151
    TestDataClassFmDriveListProvider *driveListProvider = new TestDataClassFmDriveListProvider();
hgs
parents:
diff changeset
   152
    
hgs
parents:
diff changeset
   153
    FmDriveModel *fmDriveModel = new FmDriveModel( 0 );
hgs
parents:
diff changeset
   154
    QModelIndex index = fmDriveModel->index(0,0);
hgs
parents:
diff changeset
   155
    
hgs
parents:
diff changeset
   156
    QVariant retData1 = fmDriveModel->data(index, Qt::DisplayRole);
hgs
parents:
diff changeset
   157
    QString strTemp1 = retData1.toString();
hgs
parents:
diff changeset
   158
    QVERIFY( strTemp1.trimmed() == "C:" );
hgs
parents:
diff changeset
   159
hgs
parents:
diff changeset
   160
//  unable to verify the return icon is the right one.
hgs
parents:
diff changeset
   161
    QVariant retData3 = fmDriveModel->data(index, Qt::DecorationRole); 
hgs
parents:
diff changeset
   162
    
hgs
parents:
diff changeset
   163
// need to delete the  "if (index.column() == 1 && role == Qt::TextAlignmentRole)", because only one column is defined.
hgs
parents:
diff changeset
   164
    QVariant retData4 = fmDriveModel->data(index, Qt::TextAlignmentRole);
hgs
parents:
diff changeset
   165
    
hgs
parents:
diff changeset
   166
    delete driveListProvider;
hgs
parents:
diff changeset
   167
    driveListProvider = 0;
hgs
parents:
diff changeset
   168
    delete fmDriveModel;
hgs
parents:
diff changeset
   169
    fmDriveModel = 0; 
hgs
parents:
diff changeset
   170
}
hgs
parents:
diff changeset
   171
hgs
parents:
diff changeset
   172
/*!
hgs
parents:
diff changeset
   173
     Test Case Description:\n 
hgs
parents:
diff changeset
   174
     1. Fucntion Name:  \n &nbsp;&nbsp;
hgs
parents:
diff changeset
   175
        bool indexValid( const QModelIndex &index ) const; \n
hgs
parents:
diff changeset
   176
     2. Case Descrition:  \n
hgs
parents:
diff changeset
   177
     3. Input Parameters:  \n &nbsp;&nbsp;
hgs
parents:
diff changeset
   178
        <1> index = QModelIndex() \n &nbsp;&nbsp;     
hgs
parents:
diff changeset
   179
     4. Expected result: \n &nbsp;&nbsp;
hgs
parents:
diff changeset
   180
        <1> retBool = true \n
hgs
parents:
diff changeset
   181
 */
hgs
parents:
diff changeset
   182
void TestFmInternalDriveModel::testIndexValid()
hgs
parents:
diff changeset
   183
{
hgs
parents:
diff changeset
   184
    FmDriveModel *fmDriveModel = new FmDriveModel(0);
hgs
parents:
diff changeset
   185
    QModelIndex aIndex = fmDriveModel->index(0,0);
hgs
parents:
diff changeset
   186
    QModelIndex bIndex = fmDriveModel->index(0,1); 
hgs
parents:
diff changeset
   187
    bool a = fmDriveModel->indexValid(aIndex);
hgs
parents:
diff changeset
   188
    QVERIFY(a == true);
hgs
parents:
diff changeset
   189
    bool b = fmDriveModel->indexValid(bIndex);
hgs
parents:
diff changeset
   190
    QVERIFY(b == true);
hgs
parents:
diff changeset
   191
    delete fmDriveModel;
hgs
parents:
diff changeset
   192
    fmDriveModel = 0;
hgs
parents:
diff changeset
   193
}
hgs
parents:
diff changeset
   194
hgs
parents:
diff changeset
   195
/*!
hgs
parents:
diff changeset
   196
     Test Case Description:\n 
hgs
parents:
diff changeset
   197
     1. Fucntion Name:  \n &nbsp;&nbsp;
hgs
parents:
diff changeset
   198
        QVariant headerData( int section, Qt::Orientation orientation, int role = Qt::DisplayRole ) const; \n
hgs
parents:
diff changeset
   199
     2. Case Descrition:  \n
hgs
parents:
diff changeset
   200
     3. Input Parameters:  \n &nbsp;&nbsp;
hgs
parents:
diff changeset
   201
        <1> section = 0, orientation =  Qt::Horizontal, role = Qt::DisplayRole \n &nbsp;&nbsp;
hgs
parents:
diff changeset
   202
        <2> section = 1, orientation =  Qt::Horizontal, role = Qt::DisplayRole \n &nbsp;&nbsp;
hgs
parents:
diff changeset
   203
        <3> section = 2, orientation =  Qt::Horizontal, role = Qt::DisplayRole \n &nbsp;&nbsp;
hgs
parents:
diff changeset
   204
        <4> section = 3, orientation =  Qt::Horizontal, role = Qt::DisplayRole \n &nbsp;&nbsp;
hgs
parents:
diff changeset
   205
        <5> section = 4, orientation =  Qt::Horizontal, role = Qt::DisplayRole \n &nbsp;&nbsp; 
hgs
parents:
diff changeset
   206
        <6> section = 1, orientation =  Qt::Vertical, role = Qt::DisplayRole \n &nbsp;&nbsp;
hgs
parents:
diff changeset
   207
        <7> section = 1, orientation =  Qt::Horizontal, role = Qt::UserRole \n
hgs
parents:
diff changeset
   208
     4. Expected result: \n &nbsp;&nbsp;
hgs
parents:
diff changeset
   209
        <1> retHeaderData.toString() = "Name" \n &nbsp;&nbsp;
hgs
parents:
diff changeset
   210
        <2> retHeaderData.toString() = "Size" \n &nbsp;&nbsp;
hgs
parents:
diff changeset
   211
        <3> retHeaderData.toString() = "Type" \n &nbsp;&nbsp;
hgs
parents:
diff changeset
   212
        <4> retHeaderData.toString() = "Date Modified" \n &nbsp;&nbsp;
hgs
parents:
diff changeset
   213
        <5> no crash \n &nbsp;&nbsp;
hgs
parents:
diff changeset
   214
        <6> no crash \n &nbsp;&nbsp;
hgs
parents:
diff changeset
   215
        <7> no crash \n 
hgs
parents:
diff changeset
   216
 */
hgs
parents:
diff changeset
   217
void TestFmInternalDriveModel::testHeaderData()
hgs
parents:
diff changeset
   218
{
hgs
parents:
diff changeset
   219
    FmDriveModel *fmDriveModel = new FmDriveModel(0);
hgs
parents:
diff changeset
   220
    // 
hgs
parents:
diff changeset
   221
    QVariant retHeaderData1 = fmDriveModel->headerData(0, Qt::Horizontal, Qt::DisplayRole);
hgs
parents:
diff changeset
   222
    QVERIFY(retHeaderData1.toString() == "Name");
hgs
parents:
diff changeset
   223
    
hgs
parents:
diff changeset
   224
    QVariant retHeaderData2 = fmDriveModel->headerData(1, Qt::Horizontal, Qt::DisplayRole);
hgs
parents:
diff changeset
   225
    QVERIFY(retHeaderData2.toString() == "Size");
hgs
parents:
diff changeset
   226
    
hgs
parents:
diff changeset
   227
    QVariant retHeaderData3 = fmDriveModel->headerData(2, Qt::Horizontal, Qt::DisplayRole);
hgs
parents:
diff changeset
   228
    QVERIFY(retHeaderData3.toString() == "Type");
hgs
parents:
diff changeset
   229
    
hgs
parents:
diff changeset
   230
    QVariant retHeaderData4 = fmDriveModel->headerData(3, Qt::Horizontal, Qt::DisplayRole);
hgs
parents:
diff changeset
   231
    QVERIFY(retHeaderData4.toString() == "Date Modified");
hgs
parents:
diff changeset
   232
    
hgs
parents:
diff changeset
   233
    QVariant retHeaderData5 = fmDriveModel->headerData(4, Qt::Horizontal, Qt::DisplayRole);    
hgs
parents:
diff changeset
   234
    QVERIFY(retHeaderData5.toString().isEmpty());// "");
hgs
parents:
diff changeset
   235
    
hgs
parents:
diff changeset
   236
#ifdef TO_BE_INVESTIGATE    
hgs
parents:
diff changeset
   237
    QVariant retHeaderData6 = fmDriveModel->headerData(0, Qt::Vertical, Qt::DisplayRole);  
hgs
parents:
diff changeset
   238
    QString a = retHeaderData6.toString(); // to be investigated.
hgs
parents:
diff changeset
   239
//    QVERIFY(retHeaderData6.toString() == ""); 
hgs
parents:
diff changeset
   240
#endif
hgs
parents:
diff changeset
   241
    
hgs
parents:
diff changeset
   242
    QVariant retHeaderData7 = fmDriveModel->headerData(1, Qt::Horizontal, Qt::UserRole);  
hgs
parents:
diff changeset
   243
    QVERIFY(retHeaderData7.toString().isEmpty()); //== "");
hgs
parents:
diff changeset
   244
    
hgs
parents:
diff changeset
   245
    delete fmDriveModel;
hgs
parents:
diff changeset
   246
    fmDriveModel = 0;
hgs
parents:
diff changeset
   247
}
hgs
parents:
diff changeset
   248
hgs
parents:
diff changeset
   249
/*!
hgs
parents:
diff changeset
   250
     Test Case Description:\n 
hgs
parents:
diff changeset
   251
     1. Fucntion Name:  \n &nbsp;&nbsp;
hgs
parents:
diff changeset
   252
        QString displayString( const QModelIndex &index ) const; \n
hgs
parents:
diff changeset
   253
     2. Case Descrition: Verify the correct display string is shown. \n
hgs
parents:
diff changeset
   254
     3. Input Parameters:  \n &nbsp;&nbsp;
hgs
parents:
diff changeset
   255
        <1> index = QModelIndex() \n &nbsp;&nbsp;     
hgs
parents:
diff changeset
   256
     4. Expected result: \n &nbsp;&nbsp;
hgs
parents:
diff changeset
   257
        <1> retBool = true \n
hgs
parents:
diff changeset
   258
 */
hgs
parents:
diff changeset
   259
void TestFmInternalDriveModel::testDisplayStringWithVolume()
hgs
parents:
diff changeset
   260
{
hgs
parents:
diff changeset
   261
    // option = FillWithVolume | FillWithDefaultVolume
hgs
parents:
diff changeset
   262
    FmDriveModel *fmDriveModel = new FmDriveModel( 0,FmDriveModel::FillWithVolume | FmDriveModel::FillWithDefaultVolume, 0);
hgs
parents:
diff changeset
   263
    
hgs
parents:
diff changeset
   264
    for(int i=0; i < mDriverList.count(); i++){
hgs
parents:
diff changeset
   265
        QModelIndex indexValid = fmDriveModel->index(i,0);
hgs
parents:
diff changeset
   266
        // get the display string.
hgs
parents:
diff changeset
   267
        QVariant retData = fmDriveModel->displayString(indexValid); 
hgs
parents:
diff changeset
   268
        QVERIFY(retData.toString() == FmUtils::fillDriveVolume(mDriverList[i], true));
hgs
parents:
diff changeset
   269
    }
hgs
parents:
diff changeset
   270
    delete fmDriveModel;
hgs
parents:
diff changeset
   271
}
hgs
parents:
diff changeset
   272
hgs
parents:
diff changeset
   273
/*!
hgs
parents:
diff changeset
   274
     Test Case Description:\n 
hgs
parents:
diff changeset
   275
     1. Fucntion Name:  \n &nbsp;&nbsp;
hgs
parents:
diff changeset
   276
        QString displayString( const QModelIndex &index ) const; \n
hgs
parents:
diff changeset
   277
     2. Case Descrition: Verify the correct display string is shown. \n
hgs
parents:
diff changeset
   278
     3. Input Parameters:  \n &nbsp;&nbsp;
hgs
parents:
diff changeset
   279
        <1> index = QModelIndex() \n &nbsp;&nbsp;     
hgs
parents:
diff changeset
   280
     4. Expected result: \n &nbsp;&nbsp;
hgs
parents:
diff changeset
   281
        <1> retBool = true \n
hgs
parents:
diff changeset
   282
 */
hgs
parents:
diff changeset
   283
void TestFmInternalDriveModel::testDisplayStringWithoutVolume()
hgs
parents:
diff changeset
   284
{ 
hgs
parents:
diff changeset
   285
    FmDriveModel *fmDriveModel = new FmDriveModel();
hgs
parents:
diff changeset
   286
    
hgs
parents:
diff changeset
   287
    for(int i=0; i < mDriverList.count(); i++){
hgs
parents:
diff changeset
   288
        QModelIndex indexValid = fmDriveModel->index(i,0);
hgs
parents:
diff changeset
   289
        // get the display string.
hgs
parents:
diff changeset
   290
        QVariant retData = fmDriveModel->displayString(indexValid); 
hgs
parents:
diff changeset
   291
//        QString retString = retData.toString();
hgs
parents:
diff changeset
   292
//        qDebug()<<retString;
hgs
parents:
diff changeset
   293
        QVERIFY(retData.toString() == FmUtils::removePathSplash( mDriverList[i] ));
hgs
parents:
diff changeset
   294
    }
hgs
parents:
diff changeset
   295
    delete fmDriveModel;
hgs
parents:
diff changeset
   296
}
hgs
parents:
diff changeset
   297
hgs
parents:
diff changeset
   298
/*!
hgs
parents:
diff changeset
   299
     Test Case Description:\n 
hgs
parents:
diff changeset
   300
     1. Fucntion Name:  \n &nbsp;&nbsp;
hgs
parents:
diff changeset
   301
        QString displayString( const QModelIndex &index ) const; \n
hgs
parents:
diff changeset
   302
     2. Case Descrition: Verify it doesn't crash when using an invalid index. \n
hgs
parents:
diff changeset
   303
     3. Input Parameters:  \n &nbsp;&nbsp;
hgs
parents:
diff changeset
   304
        <1> index = QModelIndex() \n &nbsp;&nbsp;     
hgs
parents:
diff changeset
   305
     4. Expected result: \n &nbsp;&nbsp;
hgs
parents:
diff changeset
   306
        <1> retString = QString() \n
hgs
parents:
diff changeset
   307
 */
hgs
parents:
diff changeset
   308
void TestFmInternalDriveModel::testDisplayStringEmpty()
hgs
parents:
diff changeset
   309
{ 
hgs
parents:
diff changeset
   310
    FmDriveModel *fmDriveModel = new FmDriveModel();
hgs
parents:
diff changeset
   311
    QModelIndex indexInValid = fmDriveModel->index(-1,0);
hgs
parents:
diff changeset
   312
    QVariant retData = fmDriveModel->displayString(indexInValid); 
hgs
parents:
diff changeset
   313
    QVERIFY(retData.toString() == QString());
hgs
parents:
diff changeset
   314
}
hgs
parents:
diff changeset
   315
/*!
hgs
parents:
diff changeset
   316
     Test Case Description:\n 
hgs
parents:
diff changeset
   317
     1. Fucntion Name:  \n &nbsp;&nbsp;
hgs
parents:
diff changeset
   318
        QString driveName( const QModelIndex &index ) const; \n
hgs
parents:
diff changeset
   319
     2. Case Descrition:  \n
hgs
parents:
diff changeset
   320
     3. Input Parameters:  \n &nbsp;&nbsp;
hgs
parents:
diff changeset
   321
        <1> indexValid = QModelIndex() \n &nbsp;&nbsp;
hgs
parents:
diff changeset
   322
        <2> indexInValid = QModelIndex() \n     
hgs
parents:
diff changeset
   323
     4. Expected result: \n &nbsp;&nbsp;
hgs
parents:
diff changeset
   324
        <1> return the rignt drive name. \n &nbsp;&nbsp;
hgs
parents:
diff changeset
   325
        <2> no crash. \n
hgs
parents:
diff changeset
   326
 */
hgs
parents:
diff changeset
   327
void TestFmInternalDriveModel::testDriveName()
hgs
parents:
diff changeset
   328
{
hgs
parents:
diff changeset
   329
    FmDriveModel *fmDriveModel = new FmDriveModel();
hgs
parents:
diff changeset
   330
    QModelIndex indexValid = fmDriveModel->index(0,0);    
hgs
parents:
diff changeset
   331
    QModelIndex indexInValid1 = fmDriveModel->index(0,2);
hgs
parents:
diff changeset
   332
    QModelIndex indexInValid2 = fmDriveModel->index(18);
hgs
parents:
diff changeset
   333
    QModelIndex indexInValid3 = fmDriveModel->index(5,0);
hgs
parents:
diff changeset
   334
    QString retDriveName1 = fmDriveModel->driveName(indexValid);
hgs
parents:
diff changeset
   335
    QVERIFY(retDriveName1 == "C:/");
hgs
parents:
diff changeset
   336
    QString retDriveName2 = fmDriveModel->driveName(indexInValid1);
hgs
parents:
diff changeset
   337
    QVERIFY(retDriveName2.isEmpty());
hgs
parents:
diff changeset
   338
    QString retDriveName3 = fmDriveModel->driveName(indexInValid2);
hgs
parents:
diff changeset
   339
    QVERIFY(retDriveName3.isEmpty());
hgs
parents:
diff changeset
   340
    QString retDriveName4 = fmDriveModel->driveName(indexInValid3);
hgs
parents:
diff changeset
   341
    QVERIFY(retDriveName4.isEmpty());
hgs
parents:
diff changeset
   342
    delete fmDriveModel;
hgs
parents:
diff changeset
   343
    fmDriveModel = 0;
hgs
parents:
diff changeset
   344
}
hgs
parents:
diff changeset
   345
hgs
parents:
diff changeset
   346
void TestFmInternalDriveModel::cleanupTestCase()
hgs
parents:
diff changeset
   347
{
hgs
parents:
diff changeset
   348
}
hgs
parents:
diff changeset
   349
hgs
parents:
diff changeset
   350
QTEST_MAIN(TestFmInternalDriveModel)