wlanutilities/wlanqtutilities/tsrc/testwlanqtutils.cpp
author hgs
Mon, 24 May 2010 21:11:39 +0300
changeset 31 e8f4211554fb
child 39 7b3e49e4608a
permissions -rw-r--r--
201021
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
31
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2009-2010 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
* This is the source file for testing Wlan Qt Utilities library.
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
#include <QApplication>
hgs
parents:
diff changeset
    19
#include <QtCore>
hgs
parents:
diff changeset
    20
#include <QTest>
hgs
parents:
diff changeset
    21
#include <QSignalSpy>
hgs
parents:
diff changeset
    22
#include <QSharedPointer>
hgs
parents:
diff changeset
    23
#include <rconnmon.h>
hgs
parents:
diff changeset
    24
#include <nifvar.h>
hgs
parents:
diff changeset
    25
#include <cmmanagerdefines_shim.h>
hgs
parents:
diff changeset
    26
hgs
parents:
diff changeset
    27
#include "wlanqtutilsap.h"
hgs
parents:
diff changeset
    28
#include "wlanqtutilsiap.h"
hgs
parents:
diff changeset
    29
#include "wlanqtutils.h"
hgs
parents:
diff changeset
    30
#include "wlanqtutils_p.h"
hgs
parents:
diff changeset
    31
#include "wlanqtutilsconmonwrapper.h"
hgs
parents:
diff changeset
    32
#include "wlanqtutilsconmonwrapperinfo_s60_p.h"
hgs
parents:
diff changeset
    33
#include "wlanqtutilsconntestwrapper.h"
hgs
parents:
diff changeset
    34
#include "wlanqtutilsconntestwrapper_s60_p.h"
hgs
parents:
diff changeset
    35
#include "testwlanqtutils.h"
hgs
parents:
diff changeset
    36
#include "wlanqtutilstestcontext.h"
hgs
parents:
diff changeset
    37
hgs
parents:
diff changeset
    38
WlanQtUtilsTestContext testContext;
hgs
parents:
diff changeset
    39
hgs
parents:
diff changeset
    40
const QString TestWlanQtUtils::commsDatDefault_ = "default.cre";
hgs
parents:
diff changeset
    41
hgs
parents:
diff changeset
    42
// ---------------------------------------------------------
hgs
parents:
diff changeset
    43
// FRAMEWORK FUNCTIONS
hgs
parents:
diff changeset
    44
// ---------------------------------------------------------
hgs
parents:
diff changeset
    45
hgs
parents:
diff changeset
    46
/**
hgs
parents:
diff changeset
    47
 * Test main function. Runs all test cases.
hgs
parents:
diff changeset
    48
 */
hgs
parents:
diff changeset
    49
int main(int argc, char *argv[])
hgs
parents:
diff changeset
    50
{
hgs
parents:
diff changeset
    51
    QApplication app(argc, argv);
hgs
parents:
diff changeset
    52
    
hgs
parents:
diff changeset
    53
    char *pass[3];
hgs
parents:
diff changeset
    54
    pass[0] = argv[0];
hgs
parents:
diff changeset
    55
    pass[1] = "-o"; 
hgs
parents:
diff changeset
    56
    pass[2] = "c:\\data\\wlanqtutils_qtest_log.txt";
hgs
parents:
diff changeset
    57
 
hgs
parents:
diff changeset
    58
    TestWlanQtUtils tc;
hgs
parents:
diff changeset
    59
    int res = QTest::qExec(&tc, 3, pass);
hgs
parents:
diff changeset
    60
 
hgs
parents:
diff changeset
    61
    return res;
hgs
parents:
diff changeset
    62
}
hgs
parents:
diff changeset
    63
hgs
parents:
diff changeset
    64
/**
hgs
parents:
diff changeset
    65
 * This function will be called before the first test function is executed.
hgs
parents:
diff changeset
    66
 */
hgs
parents:
diff changeset
    67
void TestWlanQtUtils::initTestCase()
hgs
parents:
diff changeset
    68
{
hgs
parents:
diff changeset
    69
    wlanQtUtils_ = NULL;
hgs
parents:
diff changeset
    70
    signalScanReady_ = NULL;
hgs
parents:
diff changeset
    71
    signalWlanNetworkOpened_ = NULL;
hgs
parents:
diff changeset
    72
    signalWlanNetworkClosed_ = NULL;
hgs
parents:
diff changeset
    73
    signalIctResult_ = NULL;
hgs
parents:
diff changeset
    74
hgs
parents:
diff changeset
    75
    //If Active scheduler exists then don't install a new one as it will cause panic
hgs
parents:
diff changeset
    76
    if (CActiveScheduler::Current() == NULL) {
hgs
parents:
diff changeset
    77
        CActiveScheduler *scheduler = new CActiveScheduler();
hgs
parents:
diff changeset
    78
        CActiveScheduler::Install(scheduler);
hgs
parents:
diff changeset
    79
    }
hgs
parents:
diff changeset
    80
}
hgs
parents:
diff changeset
    81
hgs
parents:
diff changeset
    82
/**
hgs
parents:
diff changeset
    83
 * This function will be called after the last test function was executed.
hgs
parents:
diff changeset
    84
 */
hgs
parents:
diff changeset
    85
void TestWlanQtUtils::cleanupTestCase()
hgs
parents:
diff changeset
    86
{
hgs
parents:
diff changeset
    87
    // CommsDat file is initialized.
hgs
parents:
diff changeset
    88
    subTestLoadCommsDatFile(commsDatDefault_);
hgs
parents:
diff changeset
    89
}
hgs
parents:
diff changeset
    90
hgs
parents:
diff changeset
    91
/**
hgs
parents:
diff changeset
    92
 * This function will be called before each test function is executed.
hgs
parents:
diff changeset
    93
 */
hgs
parents:
diff changeset
    94
void TestWlanQtUtils::init()
hgs
parents:
diff changeset
    95
{
hgs
parents:
diff changeset
    96
    // CommsDat file is initialized.
hgs
parents:
diff changeset
    97
    subTestLoadCommsDatFile(commsDatDefault_);
hgs
parents:
diff changeset
    98
hgs
parents:
diff changeset
    99
    testContext.initialize();
hgs
parents:
diff changeset
   100
hgs
parents:
diff changeset
   101
    QVERIFY(wlanQtUtils_ == NULL);
hgs
parents:
diff changeset
   102
    QVERIFY(signalScanReady_ == NULL);
hgs
parents:
diff changeset
   103
    QVERIFY(signalWlanNetworkOpened_ == NULL);
hgs
parents:
diff changeset
   104
    QVERIFY(signalWlanNetworkClosed_ == NULL);
hgs
parents:
diff changeset
   105
    QVERIFY(signalIctResult_ == NULL);
hgs
parents:
diff changeset
   106
    subTestNewWlanQtUtils();
hgs
parents:
diff changeset
   107
}
hgs
parents:
diff changeset
   108
hgs
parents:
diff changeset
   109
/**
hgs
parents:
diff changeset
   110
 * This function will be called after each test function is executed.
hgs
parents:
diff changeset
   111
 */
hgs
parents:
diff changeset
   112
void TestWlanQtUtils::cleanup()
hgs
parents:
diff changeset
   113
{
hgs
parents:
diff changeset
   114
    delete wlanQtUtils_;
hgs
parents:
diff changeset
   115
    wlanQtUtils_ = NULL;
hgs
parents:
diff changeset
   116
hgs
parents:
diff changeset
   117
    QCOMPARE(signalScanReady_->count(), 0);
hgs
parents:
diff changeset
   118
    delete signalScanReady_;
hgs
parents:
diff changeset
   119
    signalScanReady_ = NULL;
hgs
parents:
diff changeset
   120
hgs
parents:
diff changeset
   121
    QCOMPARE(signalWlanNetworkOpened_->count(), 0);
hgs
parents:
diff changeset
   122
    delete signalWlanNetworkOpened_;
hgs
parents:
diff changeset
   123
    signalWlanNetworkOpened_ = NULL;
hgs
parents:
diff changeset
   124
hgs
parents:
diff changeset
   125
    QCOMPARE(signalWlanNetworkClosed_->count(), 0);
hgs
parents:
diff changeset
   126
    delete signalWlanNetworkClosed_;
hgs
parents:
diff changeset
   127
    signalWlanNetworkClosed_ = NULL;
hgs
parents:
diff changeset
   128
hgs
parents:
diff changeset
   129
    QCOMPARE(signalIctResult_->count(), 0);
hgs
parents:
diff changeset
   130
    delete signalIctResult_;
hgs
parents:
diff changeset
   131
    signalIctResult_ = NULL;
hgs
parents:
diff changeset
   132
}
hgs
parents:
diff changeset
   133
hgs
parents:
diff changeset
   134
// ---------------------------------------------------------
hgs
parents:
diff changeset
   135
// TEST CASES
hgs
parents:
diff changeset
   136
// ---------------------------------------------------------
hgs
parents:
diff changeset
   137
hgs
parents:
diff changeset
   138
/**
hgs
parents:
diff changeset
   139
 * Test available WLAN APs when scan is triggered by client.
hgs
parents:
diff changeset
   140
 */
hgs
parents:
diff changeset
   141
void TestWlanQtUtils::testAvailableWlan()
hgs
parents:
diff changeset
   142
{
hgs
parents:
diff changeset
   143
    testContext.connMon_.wlanScanResult_.createDefaultWlanScanResultList(4);
hgs
parents:
diff changeset
   144
    
hgs
parents:
diff changeset
   145
    // Request a scan to get result signal
hgs
parents:
diff changeset
   146
    wlanQtUtils_->scanWlans();
hgs
parents:
diff changeset
   147
    
hgs
parents:
diff changeset
   148
    // Let active object run and verify signal.
hgs
parents:
diff changeset
   149
    subTestSignalWaitAndTake(signalScanReady_, NULL);
hgs
parents:
diff changeset
   150
hgs
parents:
diff changeset
   151
    // Get and verify the list of available WLAN APs.
hgs
parents:
diff changeset
   152
    QList< QSharedPointer<WlanQtUtilsIap> > iaps;
hgs
parents:
diff changeset
   153
    QList< QSharedPointer<WlanQtUtilsAp> > aps;
hgs
parents:
diff changeset
   154
    wlanQtUtils_->availableWlans(iaps, aps);
hgs
parents:
diff changeset
   155
hgs
parents:
diff changeset
   156
    testContext.connMon_.wlanScanResult_.verifyWlanScanResultList(aps);
hgs
parents:
diff changeset
   157
    QCOMPARE(iaps.count(), 0);
hgs
parents:
diff changeset
   158
    aps.clear();
hgs
parents:
diff changeset
   159
}
hgs
parents:
diff changeset
   160
hgs
parents:
diff changeset
   161
/**
hgs
parents:
diff changeset
   162
 * Test available WLAN APs when scan is triggered by client.
hgs
parents:
diff changeset
   163
 * Two scan results have the same SSID and the latter one of those will be removed.
hgs
parents:
diff changeset
   164
 * Two scan results have the same SSID but different security mode
hgs
parents:
diff changeset
   165
 * Two scan results have the same SSID and security mode but different WpaPsk value
hgs
parents:
diff changeset
   166
 * and both are included in the results.
hgs
parents:
diff changeset
   167
 */
hgs
parents:
diff changeset
   168
void TestWlanQtUtils::testAvailableWlanDuplicates()
hgs
parents:
diff changeset
   169
{
hgs
parents:
diff changeset
   170
    testContext.connMon_.wlanScanResult_.createDefaultWlanScanResultList(10);
hgs
parents:
diff changeset
   171
    testContext.connMon_.wlanScanResult_.wlanScanResultList_[0]->setValue(WlanQtUtilsAp::ConfIdSsid, "Same SSID");
hgs
parents:
diff changeset
   172
    testContext.connMon_.wlanScanResult_.wlanScanResultList_[2]->setValue(WlanQtUtilsAp::ConfIdSsid, "Same SSID");
hgs
parents:
diff changeset
   173
    testContext.connMon_.wlanScanResult_.wlanScanResultList_[5]->setValue(WlanQtUtilsAp::ConfIdSsid, "Same SSID, different SecMode");
hgs
parents:
diff changeset
   174
    testContext.connMon_.wlanScanResult_.wlanScanResultList_[5]->setValue(WlanQtUtilsAp::ConfIdSecurityMode,CMManagerShim::WlanSecModeWpa);
hgs
parents:
diff changeset
   175
    testContext.connMon_.wlanScanResult_.wlanScanResultList_[6]->setValue(WlanQtUtilsAp::ConfIdSsid, "Same SSID, different SecMode");
hgs
parents:
diff changeset
   176
    testContext.connMon_.wlanScanResult_.wlanScanResultList_[6]->setValue(WlanQtUtilsAp::ConfIdSecurityMode,CMManagerShim::WlanSecModeOpen);
hgs
parents:
diff changeset
   177
    testContext.connMon_.wlanScanResult_.wlanScanResultList_[7]->setValue(WlanQtUtilsAp::ConfIdSsid, "Same SSID & SecMode diff Psk");
hgs
parents:
diff changeset
   178
    testContext.connMon_.wlanScanResult_.wlanScanResultList_[7]->setValue(WlanQtUtilsAp::ConfIdSecurityMode,CMManagerShim::WlanSecModeWpa2);
hgs
parents:
diff changeset
   179
    testContext.connMon_.wlanScanResult_.wlanScanResultList_[9]->setValue(WlanQtUtilsAp::ConfIdSsid, "Same SSID & SecMode diff Psk");
hgs
parents:
diff changeset
   180
    testContext.connMon_.wlanScanResult_.wlanScanResultList_[9]->setValue(WlanQtUtilsAp::ConfIdSecurityMode,CMManagerShim::WlanSecModeWpa2);
hgs
parents:
diff changeset
   181
    testContext.connMon_.wlanScanResult_.wlanScanResultList_[9]->setValue(WlanQtUtilsAp::ConfIdWpaPskUse,true);
hgs
parents:
diff changeset
   182
hgs
parents:
diff changeset
   183
    // Request a scan to get result signal
hgs
parents:
diff changeset
   184
    wlanQtUtils_->scanWlans();
hgs
parents:
diff changeset
   185
    
hgs
parents:
diff changeset
   186
    // Let active object run and verify signal.
hgs
parents:
diff changeset
   187
    subTestSignalWaitAndTake(signalScanReady_, NULL);
hgs
parents:
diff changeset
   188
hgs
parents:
diff changeset
   189
    // Get and verify the list of available WLAN APs.
hgs
parents:
diff changeset
   190
    QList< QSharedPointer<WlanQtUtilsIap> > iaps;
hgs
parents:
diff changeset
   191
    QList< QSharedPointer<WlanQtUtilsAp> > aps;
hgs
parents:
diff changeset
   192
    wlanQtUtils_->availableWlans(iaps, aps);
hgs
parents:
diff changeset
   193
hgs
parents:
diff changeset
   194
    // First remove AP that has duplicate SSID.
hgs
parents:
diff changeset
   195
    testContext.connMon_.wlanScanResult_.wlanScanResultList_.removeAt(2);
hgs
parents:
diff changeset
   196
    testContext.connMon_.wlanScanResult_.verifyWlanScanResultList(aps);
hgs
parents:
diff changeset
   197
    QCOMPARE(iaps.count(), 0);
hgs
parents:
diff changeset
   198
    aps.clear();
hgs
parents:
diff changeset
   199
}
hgs
parents:
diff changeset
   200
hgs
parents:
diff changeset
   201
/**
hgs
parents:
diff changeset
   202
 * Test available WLAN APs when scan is triggered by client.
hgs
parents:
diff changeset
   203
 * Include all supported security modes.
hgs
parents:
diff changeset
   204
 */
hgs
parents:
diff changeset
   205
void TestWlanQtUtils::testAvailableWlanSecModes()
hgs
parents:
diff changeset
   206
{
hgs
parents:
diff changeset
   207
    testContext.connMon_.wlanScanResult_.createDefaultWlanScanResultList(9);
hgs
parents:
diff changeset
   208
    testContext.connMon_.wlanScanResult_.wlanScanResultList_[0]->setValue(WlanQtUtilsAp::ConfIdSecurityMode,CMManagerShim::WlanSecModeOpen);
hgs
parents:
diff changeset
   209
    testContext.connMon_.wlanScanResult_.wlanScanResultList_[0]->setValue(WlanQtUtilsAp::ConfIdConnectionMode, CMManagerShim::Adhoc);
hgs
parents:
diff changeset
   210
    testContext.connMon_.wlanScanResult_.wlanScanResultList_[1]->setValue(WlanQtUtilsAp::ConfIdSecurityMode,CMManagerShim::WlanSecModeWep);
hgs
parents:
diff changeset
   211
    testContext.connMon_.wlanScanResult_.wlanScanResultList_[2]->setValue(WlanQtUtilsAp::ConfIdSecurityMode,CMManagerShim::WlanSecMode802_1x);
hgs
parents:
diff changeset
   212
    testContext.connMon_.wlanScanResult_.wlanScanResultList_[3]->setValue(WlanQtUtilsAp::ConfIdSecurityMode,CMManagerShim::WlanSecModeWpa);
hgs
parents:
diff changeset
   213
    testContext.connMon_.wlanScanResult_.wlanScanResultList_[4]->setValue(WlanQtUtilsAp::ConfIdSecurityMode,CMManagerShim::WlanSecModeWpa);
hgs
parents:
diff changeset
   214
    testContext.connMon_.wlanScanResult_.wlanScanResultList_[4]->setValue(WlanQtUtilsAp::ConfIdWpaPskUse,true);
hgs
parents:
diff changeset
   215
    testContext.connMon_.wlanScanResult_.wlanScanResultList_[5]->setValue(WlanQtUtilsAp::ConfIdSecurityMode,CMManagerShim::WlanSecModeWpa2);
hgs
parents:
diff changeset
   216
    testContext.connMon_.wlanScanResult_.wlanScanResultList_[6]->setValue(WlanQtUtilsAp::ConfIdSecurityMode,CMManagerShim::WlanSecModeWpa2);
hgs
parents:
diff changeset
   217
    testContext.connMon_.wlanScanResult_.wlanScanResultList_[6]->setValue(WlanQtUtilsAp::ConfIdWpaPskUse,true);
hgs
parents:
diff changeset
   218
    testContext.connMon_.wlanScanResult_.wlanScanResultList_[7]->setValue(WlanQtUtilsAp::ConfIdSecurityMode,CMManagerShim::WlanSecModeWapi);
hgs
parents:
diff changeset
   219
    testContext.connMon_.wlanScanResult_.wlanScanResultList_[8]->setValue(WlanQtUtilsAp::ConfIdSecurityMode,CMManagerShim::WlanSecModeWapi);
hgs
parents:
diff changeset
   220
    // Let's trick the stub to return WapiPsk by putting WpaPskUse on *
hgs
parents:
diff changeset
   221
    testContext.connMon_.wlanScanResult_.wlanScanResultList_[8]->setValue(WlanQtUtilsAp::ConfIdWpaPskUse,true);
hgs
parents:
diff changeset
   222
hgs
parents:
diff changeset
   223
    // Request a scan to get result signal
hgs
parents:
diff changeset
   224
    wlanQtUtils_->scanWlans();
hgs
parents:
diff changeset
   225
    
hgs
parents:
diff changeset
   226
    // Let active object run and verify signal.
hgs
parents:
diff changeset
   227
    subTestSignalWaitAndTake(signalScanReady_, NULL);
hgs
parents:
diff changeset
   228
hgs
parents:
diff changeset
   229
    // Get and verify the list of available WLAN APs.
hgs
parents:
diff changeset
   230
    QList< QSharedPointer<WlanQtUtilsIap> > iaps;
hgs
parents:
diff changeset
   231
    QList< QSharedPointer<WlanQtUtilsAp> > aps;
hgs
parents:
diff changeset
   232
    wlanQtUtils_->availableWlans(iaps, aps);
hgs
parents:
diff changeset
   233
hgs
parents:
diff changeset
   234
    // Remove the trick *. WapiPsk and Wapi both map to just Wapi
hgs
parents:
diff changeset
   235
    testContext.connMon_.wlanScanResult_.wlanScanResultList_[8]->setValue(WlanQtUtilsAp::ConfIdWpaPskUse,false);
hgs
parents:
diff changeset
   236
    testContext.connMon_.wlanScanResult_.verifyWlanScanResultList(aps);
hgs
parents:
diff changeset
   237
    QCOMPARE(iaps.count(), 0);
hgs
parents:
diff changeset
   238
    aps.clear();
hgs
parents:
diff changeset
   239
}
hgs
parents:
diff changeset
   240
hgs
parents:
diff changeset
   241
/**
hgs
parents:
diff changeset
   242
 * Test available WLAN APs when scan is triggered by client.
hgs
parents:
diff changeset
   243
 * Include some exotic ssids.
hgs
parents:
diff changeset
   244
 */
hgs
parents:
diff changeset
   245
void TestWlanQtUtils::testAvailableWlanSsids()
hgs
parents:
diff changeset
   246
{
hgs
parents:
diff changeset
   247
    testContext.connMon_.wlanScanResult_.createDefaultWlanScanResultList(6);
hgs
parents:
diff changeset
   248
    testContext.connMon_.wlanScanResult_.wlanScanResultList_[1]->setValue(WlanQtUtilsAp::ConfIdSsid, "           ");
hgs
parents:
diff changeset
   249
    testContext.connMon_.wlanScanResult_.wlanScanResultList_[2]->setValue(WlanQtUtilsAp::ConfIdSsid, "    whitespace around ssid  ");
hgs
parents:
diff changeset
   250
    testContext.connMon_.wlanScanResult_.wlanScanResultList_[3]->setValue(WlanQtUtilsAp::ConfIdSsid, QString(QChar()));
hgs
parents:
diff changeset
   251
    testContext.connMon_.wlanScanResult_.wlanScanResultList_[4]->setValue(WlanQtUtilsAp::ConfIdSsid, "maximum length ssid that is 32 c");
hgs
parents:
diff changeset
   252
    testContext.connMon_.wlanScanResult_.wlanScanResultList_[5]->setValue(WlanQtUtilsAp::ConfIdSsid, "A");
hgs
parents:
diff changeset
   253
hgs
parents:
diff changeset
   254
    // Request a scan to get result signal
hgs
parents:
diff changeset
   255
    wlanQtUtils_->scanWlans();
hgs
parents:
diff changeset
   256
    
hgs
parents:
diff changeset
   257
    // Let active object run and verify signal.
hgs
parents:
diff changeset
   258
    subTestSignalWaitAndTake(signalScanReady_, NULL);
hgs
parents:
diff changeset
   259
hgs
parents:
diff changeset
   260
    // Get and verify the list of available WLAN APs.
hgs
parents:
diff changeset
   261
    QList< QSharedPointer<WlanQtUtilsIap> > iaps;
hgs
parents:
diff changeset
   262
    QList< QSharedPointer<WlanQtUtilsAp> > aps;
hgs
parents:
diff changeset
   263
    wlanQtUtils_->availableWlans(iaps, aps);
hgs
parents:
diff changeset
   264
hgs
parents:
diff changeset
   265
    // Empty ssids are removed from results
hgs
parents:
diff changeset
   266
    testContext.connMon_.wlanScanResult_.wlanScanResultList_.removeAt(3);
hgs
parents:
diff changeset
   267
    testContext.connMon_.wlanScanResult_.wlanScanResultList_.removeAt(1);
hgs
parents:
diff changeset
   268
    testContext.connMon_.wlanScanResult_.verifyWlanScanResultList(aps);
hgs
parents:
diff changeset
   269
    QCOMPARE(iaps.count(), 0);
hgs
parents:
diff changeset
   270
    aps.clear();
hgs
parents:
diff changeset
   271
}
hgs
parents:
diff changeset
   272
hgs
parents:
diff changeset
   273
/**
hgs
parents:
diff changeset
   274
 * Test available WLAN APs when there are also WLAN IAPs available.
hgs
parents:
diff changeset
   275
 */
hgs
parents:
diff changeset
   276
void TestWlanQtUtils::testAvailableWlanWithIaps()
hgs
parents:
diff changeset
   277
{
hgs
parents:
diff changeset
   278
    testContext.connMon_.wlanScanResult_.createDefaultWlanScanResultList(7);
hgs
parents:
diff changeset
   279
    testContext.connMon_.wlanScanResult_.wlanScanResultList_[1]->setValue(WlanQtUtilsAp::ConfIdSsid, "WLAN IAP 3");
hgs
parents:
diff changeset
   280
    testContext.connMon_.wlanScanResult_.wlanScanResultList_[1]->setValue(WlanQtUtilsAp::ConfIdSecurityMode,CMManagerShim::WlanSecModeWpa);    
hgs
parents:
diff changeset
   281
    testContext.connMon_.wlanScanResult_.wlanScanResultList_[1]->setValue(WlanQtUtilsAp::ConfIdWpaPskUse,true);    
hgs
parents:
diff changeset
   282
    testContext.connMon_.wlanScanResult_.wlanScanResultList_[5]->setValue(WlanQtUtilsAp::ConfIdSsid, "WLAN IAP 1");
hgs
parents:
diff changeset
   283
    // SSID is found in Internet Snap, but security mode does not match:
hgs
parents:
diff changeset
   284
    testContext.connMon_.wlanScanResult_.wlanScanResultList_[6]->setValue(WlanQtUtilsAp::ConfIdSsid, "WLAN IAP 2");
hgs
parents:
diff changeset
   285
    testContext.connMon_.wlanScanResult_.wlanScanResultList_[6]->setValue(WlanQtUtilsAp::ConfIdSecurityMode,CMManagerShim::WlanSecModeWpa);
hgs
parents:
diff changeset
   286
    
hgs
parents:
diff changeset
   287
    // Request a scan to get result signal
hgs
parents:
diff changeset
   288
    wlanQtUtils_->scanWlans();
hgs
parents:
diff changeset
   289
    
hgs
parents:
diff changeset
   290
    // Let active object run and verify signal.
hgs
parents:
diff changeset
   291
    subTestSignalWaitAndTake(signalScanReady_, NULL);
hgs
parents:
diff changeset
   292
hgs
parents:
diff changeset
   293
    // Get and verify the list of available WLAN APs.
hgs
parents:
diff changeset
   294
    QList< QSharedPointer<WlanQtUtilsIap> > iaps;
hgs
parents:
diff changeset
   295
    QList< QSharedPointer<WlanQtUtilsAp> > aps;
hgs
parents:
diff changeset
   296
    wlanQtUtils_->availableWlans(iaps, aps);
hgs
parents:
diff changeset
   297
hgs
parents:
diff changeset
   298
    // Verify WLAN AP list. First, remove scan results that will not appear
hgs
parents:
diff changeset
   299
    // because they are WLAN IAPs.
hgs
parents:
diff changeset
   300
    testContext.connMon_.wlanScanResult_.wlanScanResultList_.removeAt(5);
hgs
parents:
diff changeset
   301
    testContext.connMon_.wlanScanResult_.wlanScanResultList_.removeAt(1);
hgs
parents:
diff changeset
   302
    testContext.connMon_.wlanScanResult_.verifyWlanScanResultList(aps);
hgs
parents:
diff changeset
   303
hgs
parents:
diff changeset
   304
    // Verify WLAN IAP list
hgs
parents:
diff changeset
   305
    QCOMPARE(iaps.count(), 2);
hgs
parents:
diff changeset
   306
    QCOMPARE(iaps[0]->value(WlanQtUtilsIap::ConfIdIapId).toInt(), 5);
hgs
parents:
diff changeset
   307
    QCOMPARE(iaps[0]->value(WlanQtUtilsIap::ConfIdName).toString(), QString("WLAN IAP 1"));
hgs
parents:
diff changeset
   308
    QCOMPARE(iaps[0]->value(WlanQtUtilsAp::ConfIdSsid).toString(), QString("WLAN IAP 1"));
hgs
parents:
diff changeset
   309
    QCOMPARE(iaps[1]->value(WlanQtUtilsIap::ConfIdIapId).toInt(), 7);
hgs
parents:
diff changeset
   310
    QCOMPARE(iaps[1]->value(WlanQtUtilsIap::ConfIdName).toString(), QString("WLAN IAP 3"));
hgs
parents:
diff changeset
   311
    QCOMPARE(iaps[1]->value(WlanQtUtilsAp::ConfIdSsid).toString(), QString("WLAN IAP 3"));
hgs
parents:
diff changeset
   312
    iaps.clear();
hgs
parents:
diff changeset
   313
    aps.clear();
hgs
parents:
diff changeset
   314
}
hgs
parents:
diff changeset
   315
hgs
parents:
diff changeset
   316
/**
hgs
parents:
diff changeset
   317
 * Test refereshing of WLAN APs when client requests sequential scans.
hgs
parents:
diff changeset
   318
 */
hgs
parents:
diff changeset
   319
void TestWlanQtUtils::testAvailableWlanSequence()
hgs
parents:
diff changeset
   320
{
hgs
parents:
diff changeset
   321
    // **************** Before 1st scan ********************
hgs
parents:
diff changeset
   322
    QList< QSharedPointer<WlanQtUtilsIap> > iaps;
hgs
parents:
diff changeset
   323
    QList< QSharedPointer<WlanQtUtilsAp> > aps;
hgs
parents:
diff changeset
   324
    wlanQtUtils_->availableWlans(iaps, aps);
hgs
parents:
diff changeset
   325
    // Verify we have no results
hgs
parents:
diff changeset
   326
    QCOMPARE(aps.count(), 0);
hgs
parents:
diff changeset
   327
    QCOMPARE(iaps.count(), 0);
hgs
parents:
diff changeset
   328
    
hgs
parents:
diff changeset
   329
    // **************** 1st scan ********************
hgs
parents:
diff changeset
   330
    // 6 APs are required for this scan
hgs
parents:
diff changeset
   331
    testContext.connMon_.wlanScanResult_.createDefaultWlanScanResultList(6);
hgs
parents:
diff changeset
   332
hgs
parents:
diff changeset
   333
    wlanQtUtils_->scanWlans();
hgs
parents:
diff changeset
   334
    subTestSignalWaitAndTake(signalScanReady_, NULL);
hgs
parents:
diff changeset
   335
hgs
parents:
diff changeset
   336
    // Get the results for the 1st scan
hgs
parents:
diff changeset
   337
    wlanQtUtils_->availableWlans(iaps, aps);
hgs
parents:
diff changeset
   338
    // Verify the results for the scan
hgs
parents:
diff changeset
   339
    testContext.connMon_.wlanScanResult_.verifyWlanScanResultList(aps);
hgs
parents:
diff changeset
   340
    QCOMPARE(iaps.count(), 0);
hgs
parents:
diff changeset
   341
    aps.clear();
hgs
parents:
diff changeset
   342
hgs
parents:
diff changeset
   343
    // **************** 2nd scan ********************
hgs
parents:
diff changeset
   344
    // 2 APs are required for this scan
hgs
parents:
diff changeset
   345
    testContext.connMon_.wlanScanResult_.createDefaultWlanScanResultList(2);
hgs
parents:
diff changeset
   346
hgs
parents:
diff changeset
   347
    wlanQtUtils_->scanWlans();
hgs
parents:
diff changeset
   348
    subTestSignalWaitAndTake(signalScanReady_, NULL);
hgs
parents:
diff changeset
   349
hgs
parents:
diff changeset
   350
    // Get the results for the 2nd scan
hgs
parents:
diff changeset
   351
    wlanQtUtils_->availableWlans(iaps, aps);
hgs
parents:
diff changeset
   352
    // Verify the results for the scan
hgs
parents:
diff changeset
   353
    testContext.connMon_.wlanScanResult_.verifyWlanScanResultList(aps);
hgs
parents:
diff changeset
   354
    QCOMPARE(iaps.count(), 0);
hgs
parents:
diff changeset
   355
    aps.clear();
hgs
parents:
diff changeset
   356
hgs
parents:
diff changeset
   357
    // **************** 3rd scan ********************
hgs
parents:
diff changeset
   358
    // 4 APs are required for the 3rd scan
hgs
parents:
diff changeset
   359
    testContext.connMon_.wlanScanResult_.createDefaultWlanScanResultList(4);
hgs
parents:
diff changeset
   360
hgs
parents:
diff changeset
   361
    wlanQtUtils_->scanWlans();
hgs
parents:
diff changeset
   362
    subTestSignalWaitAndTake(signalScanReady_, NULL);
hgs
parents:
diff changeset
   363
    
hgs
parents:
diff changeset
   364
    // Get the results for the 3rd scan
hgs
parents:
diff changeset
   365
    wlanQtUtils_->availableWlans(iaps, aps);
hgs
parents:
diff changeset
   366
    // Verify the results for the scan
hgs
parents:
diff changeset
   367
    testContext.connMon_.wlanScanResult_.verifyWlanScanResultList(aps);
hgs
parents:
diff changeset
   368
    QCOMPARE(iaps.count(), 0);
hgs
parents:
diff changeset
   369
    aps.clear();
hgs
parents:
diff changeset
   370
}
hgs
parents:
diff changeset
   371
hgs
parents:
diff changeset
   372
/**
hgs
parents:
diff changeset
   373
 * This function tests creation of WLAN IAP in a succesful manner.
hgs
parents:
diff changeset
   374
 * - WLAN scan is made because otherwise we cannot verify that IAP creation is successful.
hgs
parents:
diff changeset
   375
 * - Check that there are no available WLAN IAPs.
hgs
parents:
diff changeset
   376
 * - Fetch SNAP list.
hgs
parents:
diff changeset
   377
 * - Create WLAN IAP.
hgs
parents:
diff changeset
   378
 * - Check that WLAN IAP has been created and that this IAP is not in WLAN AP scan results.
hgs
parents:
diff changeset
   379
 */
hgs
parents:
diff changeset
   380
void TestWlanQtUtils::testCreateIapOk()
hgs
parents:
diff changeset
   381
{
hgs
parents:
diff changeset
   382
    testContext.connMon_.wlanScanResult_.createDefaultWlanScanResultList(1);
hgs
parents:
diff changeset
   383
    testContext.connMon_.wlanScanResult_.wlanScanResultList_[0]->setValue(WlanQtUtilsAp::ConfIdSsid, "testCreateIapOk");
hgs
parents:
diff changeset
   384
    testContext.connMon_.wlanScanResult_.wlanScanResultList_[0]->setValue(WlanQtUtilsAp::ConfIdSecurityMode,CMManagerShim::WlanSecModeWpa);
hgs
parents:
diff changeset
   385
    testContext.connMon_.wlanScanResult_.wlanScanResultList_[0]->setValue(WlanQtUtilsAp::ConfIdWpaPskUse,true);
hgs
parents:
diff changeset
   386
hgs
parents:
diff changeset
   387
    // Request a scan to get result signal
hgs
parents:
diff changeset
   388
    wlanQtUtils_->scanWlans();
hgs
parents:
diff changeset
   389
    
hgs
parents:
diff changeset
   390
    // Let active object run and verify signal.
hgs
parents:
diff changeset
   391
    subTestSignalWaitAndTake(signalScanReady_, NULL);
hgs
parents:
diff changeset
   392
hgs
parents:
diff changeset
   393
    // Ensure there are no WLAN IAPs but there is one scan result.
hgs
parents:
diff changeset
   394
    QList< QSharedPointer<WlanQtUtilsIap> > iaps;
hgs
parents:
diff changeset
   395
    QList< QSharedPointer<WlanQtUtilsAp> > aps;
hgs
parents:
diff changeset
   396
    wlanQtUtils_->availableWlans(iaps, aps);
hgs
parents:
diff changeset
   397
hgs
parents:
diff changeset
   398
    QCOMPARE(iaps.count(), 0);
hgs
parents:
diff changeset
   399
    testContext.connMon_.wlanScanResult_.verifyWlanScanResultList(aps);
hgs
parents:
diff changeset
   400
hgs
parents:
diff changeset
   401
    // Execute createIap() function
hgs
parents:
diff changeset
   402
    WlanQtUtilsAp wlanAp;
hgs
parents:
diff changeset
   403
    wlanAp.setValue(WlanQtUtilsAp::ConfIdSsid, "testCreateIapOk");
hgs
parents:
diff changeset
   404
    wlanAp.setValue(WlanQtUtilsAp::ConfIdSignalStrength, 90 );
hgs
parents:
diff changeset
   405
    wlanAp.setValue(WlanQtUtilsAp::ConfIdConnectionMode, CMManagerShim::Infra);
hgs
parents:
diff changeset
   406
    wlanAp.setValue(WlanQtUtilsAp::ConfIdSecurityMode, CMManagerShim::WlanSecModeWpa);
hgs
parents:
diff changeset
   407
    wlanAp.setValue(WlanQtUtilsAp::ConfIdWpaPskUse, true);
hgs
parents:
diff changeset
   408
    wlanAp.setValue(WlanQtUtilsAp::ConfIdWpaPsk, "100euronlounas");
hgs
parents:
diff changeset
   409
    int iapId = wlanQtUtils_->createIap(&wlanAp);
hgs
parents:
diff changeset
   410
    QVERIFY(iapId != WlanQtUtils::IapIdNone);
hgs
parents:
diff changeset
   411
hgs
parents:
diff changeset
   412
    // Verify that created IAP is in the IAP list and AP list is empty.
hgs
parents:
diff changeset
   413
    wlanQtUtils_->availableWlans(iaps, aps);
hgs
parents:
diff changeset
   414
    QCOMPARE(iaps.count(), 1);
hgs
parents:
diff changeset
   415
    QCOMPARE(iaps[0]->value(WlanQtUtilsIap::ConfIdIapId).toInt(), iapId);
hgs
parents:
diff changeset
   416
    QCOMPARE(iaps[0]->value(WlanQtUtilsIap::ConfIdName).toString(), QString("testCreateIapOk"));
hgs
parents:
diff changeset
   417
    QCOMPARE(iaps[0]->value(WlanQtUtilsAp::ConfIdSsid).toString(), QString("testCreateIapOk"));
hgs
parents:
diff changeset
   418
    QCOMPARE(iaps[0]->value(WlanQtUtilsAp::ConfIdSecurityMode).toInt(), (int)(CMManagerShim::WlanSecModeWpa));
hgs
parents:
diff changeset
   419
    QCOMPARE(iaps[0]->value(WlanQtUtilsAp::ConfIdWpaPskUse).toBool(), true);
hgs
parents:
diff changeset
   420
    QCOMPARE(aps.count(), 0);
hgs
parents:
diff changeset
   421
    iaps.clear();
hgs
parents:
diff changeset
   422
}
hgs
parents:
diff changeset
   423
hgs
parents:
diff changeset
   424
/**
hgs
parents:
diff changeset
   425
 * This function tests creation of WLAN IAP in unsuccesful manner.
hgs
parents:
diff changeset
   426
 */
hgs
parents:
diff changeset
   427
void TestWlanQtUtils::testCreateIapErr()
hgs
parents:
diff changeset
   428
{
hgs
parents:
diff changeset
   429
    // Execute createIap() function with invalid parameters
hgs
parents:
diff changeset
   430
    WlanQtUtilsAp wlanAp;
hgs
parents:
diff changeset
   431
    wlanAp.setValue(WlanQtUtilsAp::ConfIdSsid, "testCreateIapErr");
hgs
parents:
diff changeset
   432
    wlanAp.setValue(WlanQtUtilsAp::ConfIdSignalStrength, 90 );
hgs
parents:
diff changeset
   433
    wlanAp.setValue(WlanQtUtilsAp::ConfIdConnectionMode, CMManagerShim::Infra);
hgs
parents:
diff changeset
   434
    wlanAp.setValue(WlanQtUtilsAp::ConfIdWpaPskUse, false);
hgs
parents:
diff changeset
   435
    // Invalid security mode -> exception
hgs
parents:
diff changeset
   436
    wlanAp.setValue(
hgs
parents:
diff changeset
   437
        WlanQtUtilsAp::ConfIdSecurityMode,
hgs
parents:
diff changeset
   438
        CMManager::EWlanSecModeWAPI + 1111);
hgs
parents:
diff changeset
   439
    int iapId = wlanQtUtils_->createIap(&wlanAp);
hgs
parents:
diff changeset
   440
    QVERIFY(iapId == WlanQtUtils::IapIdNone);
hgs
parents:
diff changeset
   441
}
hgs
parents:
diff changeset
   442
hgs
parents:
diff changeset
   443
/**
hgs
parents:
diff changeset
   444
 * This function tests creation of WLAN IAPs with different WEP keys.
hgs
parents:
diff changeset
   445
 */
hgs
parents:
diff changeset
   446
void TestWlanQtUtils::testCreateIapWepKeys()
hgs
parents:
diff changeset
   447
{
hgs
parents:
diff changeset
   448
    // Create the IAPs with different kind of WEP keys
hgs
parents:
diff changeset
   449
    WlanQtUtilsAp wlanAp;
hgs
parents:
diff changeset
   450
    wlanAp.setValue(WlanQtUtilsAp::ConfIdSsid, "testCreateIapWepKeys");
hgs
parents:
diff changeset
   451
    wlanAp.setValue(WlanQtUtilsAp::ConfIdSignalStrength, 90);
hgs
parents:
diff changeset
   452
    wlanAp.setValue(WlanQtUtilsAp::ConfIdConnectionMode, CMManagerShim::Infra);
hgs
parents:
diff changeset
   453
    wlanAp.setValue(WlanQtUtilsAp::ConfIdSecurityMode, CMManagerShim::WlanSecModeWep);
hgs
parents:
diff changeset
   454
    wlanAp.setValue(WlanQtUtilsAp::ConfIdWepDefaultIndex, 1);
hgs
parents:
diff changeset
   455
    // All keys in HEX format
hgs
parents:
diff changeset
   456
    wlanAp.setValue(WlanQtUtilsAp::ConfIdWepKey1, "1234567891");
hgs
parents:
diff changeset
   457
    wlanAp.setValue(WlanQtUtilsAp::ConfIdWepKey2, "1234567891");
hgs
parents:
diff changeset
   458
    wlanAp.setValue(WlanQtUtilsAp::ConfIdWepKey3, "1234567891");
hgs
parents:
diff changeset
   459
    wlanAp.setValue(WlanQtUtilsAp::ConfIdWepKey4, "1234567891");
hgs
parents:
diff changeset
   460
    wlanAp.setValue(WlanQtUtilsAp::ConfIdWpaPskUse, false);
hgs
parents:
diff changeset
   461
hgs
parents:
diff changeset
   462
    int iapId = wlanQtUtils_->createIap(&wlanAp);
hgs
parents:
diff changeset
   463
    QVERIFY(iapId != WlanQtUtils::IapIdNone);
hgs
parents:
diff changeset
   464
    
hgs
parents:
diff changeset
   465
    wlanAp.setValue(WlanQtUtilsAp::ConfIdWepDefaultIndex, 2);
hgs
parents:
diff changeset
   466
    // All keys in ASCII format
hgs
parents:
diff changeset
   467
    wlanAp.setValue(WlanQtUtilsAp::ConfIdWepKey1, "12345");
hgs
parents:
diff changeset
   468
    wlanAp.setValue(WlanQtUtilsAp::ConfIdWepKey2, "12345");
hgs
parents:
diff changeset
   469
    wlanAp.setValue(WlanQtUtilsAp::ConfIdWepKey3, "12345");
hgs
parents:
diff changeset
   470
    wlanAp.setValue(WlanQtUtilsAp::ConfIdWepKey4, "12345");
hgs
parents:
diff changeset
   471
hgs
parents:
diff changeset
   472
    iapId = wlanQtUtils_->createIap(&wlanAp);
hgs
parents:
diff changeset
   473
    QVERIFY(iapId != WlanQtUtils::IapIdNone);
hgs
parents:
diff changeset
   474
hgs
parents:
diff changeset
   475
    wlanAp.setValue(WlanQtUtilsAp::ConfIdWepDefaultIndex, 3);
hgs
parents:
diff changeset
   476
    // Different keys, including a missing one
hgs
parents:
diff changeset
   477
    wlanAp.setValue(WlanQtUtilsAp::ConfIdWepKey1, "");
hgs
parents:
diff changeset
   478
    wlanAp.setValue(WlanQtUtilsAp::ConfIdWepKey2, "12345678911234567892123456");
hgs
parents:
diff changeset
   479
    wlanAp.setValue(WlanQtUtilsAp::ConfIdWepKey3, "12345");
hgs
parents:
diff changeset
   480
    wlanAp.setValue(WlanQtUtilsAp::ConfIdWepKey4, "1234567891123");
hgs
parents:
diff changeset
   481
hgs
parents:
diff changeset
   482
    iapId = wlanQtUtils_->createIap(&wlanAp);
hgs
parents:
diff changeset
   483
    QVERIFY(iapId != WlanQtUtils::IapIdNone);
hgs
parents:
diff changeset
   484
}
hgs
parents:
diff changeset
   485
hgs
parents:
diff changeset
   486
/**
hgs
parents:
diff changeset
   487
 * This function tests updating of WLAN IAP in a succesful manner.
hgs
parents:
diff changeset
   488
 */
hgs
parents:
diff changeset
   489
void TestWlanQtUtils::testUpdateIapOk()
hgs
parents:
diff changeset
   490
{
hgs
parents:
diff changeset
   491
    // Create an IAP that can be updated
hgs
parents:
diff changeset
   492
    WlanQtUtilsAp wlanAp;
hgs
parents:
diff changeset
   493
    wlanAp.setValue(WlanQtUtilsAp::ConfIdSsid, "testUpdateIapOk");
hgs
parents:
diff changeset
   494
    wlanAp.setValue(WlanQtUtilsAp::ConfIdSignalStrength, 90);
hgs
parents:
diff changeset
   495
    wlanAp.setValue(WlanQtUtilsAp::ConfIdConnectionMode, CMManagerShim::Infra);
hgs
parents:
diff changeset
   496
    wlanAp.setValue(WlanQtUtilsAp::ConfIdSecurityMode, CMManagerShim::WlanSecModeOpen);
hgs
parents:
diff changeset
   497
    wlanAp.setValue(WlanQtUtilsAp::ConfIdWpaPskUse, false);
hgs
parents:
diff changeset
   498
    int iapId = wlanQtUtils_->createIap(&wlanAp);
hgs
parents:
diff changeset
   499
hgs
parents:
diff changeset
   500
    // Update the name and verify it changed
hgs
parents:
diff changeset
   501
    wlanAp.setValue(WlanQtUtilsAp::ConfIdSsid, "UPDATED_testUpdateIapOk");
hgs
parents:
diff changeset
   502
hgs
parents:
diff changeset
   503
    bool success = wlanQtUtils_->updateIap(iapId, &wlanAp);
hgs
parents:
diff changeset
   504
    QVERIFY(success == true);
hgs
parents:
diff changeset
   505
    QString name = wlanQtUtils_->iapName(iapId);
hgs
parents:
diff changeset
   506
    QCOMPARE(name, QString("UPDATED_testUpdateIapOk"));
hgs
parents:
diff changeset
   507
}
hgs
parents:
diff changeset
   508
hgs
parents:
diff changeset
   509
/**
hgs
parents:
diff changeset
   510
 * This function tests updating of WLAN IAP in unsuccesful manner.
hgs
parents:
diff changeset
   511
 */
hgs
parents:
diff changeset
   512
void TestWlanQtUtils::testUpdateIapErr()
hgs
parents:
diff changeset
   513
{
hgs
parents:
diff changeset
   514
    // Try to update a non-existing IAP
hgs
parents:
diff changeset
   515
    WlanQtUtilsAp wlanAp;
hgs
parents:
diff changeset
   516
    bool success = wlanQtUtils_->updateIap(200, &wlanAp);
hgs
parents:
diff changeset
   517
    QVERIFY(success == false);
hgs
parents:
diff changeset
   518
}
hgs
parents:
diff changeset
   519
hgs
parents:
diff changeset
   520
/**
hgs
parents:
diff changeset
   521
 * This function tests deletion of WLAN IAP in a succesful manner.
hgs
parents:
diff changeset
   522
 */
hgs
parents:
diff changeset
   523
void TestWlanQtUtils::testDeleteIapOk()
hgs
parents:
diff changeset
   524
{
hgs
parents:
diff changeset
   525
    // Create an IAP that can be deleted
hgs
parents:
diff changeset
   526
    WlanQtUtilsAp wlanAp;
hgs
parents:
diff changeset
   527
    wlanAp.setValue(WlanQtUtilsAp::ConfIdSsid, "testDeleteIapOk");
hgs
parents:
diff changeset
   528
    wlanAp.setValue(WlanQtUtilsAp::ConfIdSignalStrength, 90 );
hgs
parents:
diff changeset
   529
    wlanAp.setValue(WlanQtUtilsAp::ConfIdConnectionMode, CMManagerShim::Infra);
hgs
parents:
diff changeset
   530
    wlanAp.setValue(WlanQtUtilsAp::ConfIdSecurityMode, CMManagerShim::WlanSecModeOpen);
hgs
parents:
diff changeset
   531
    wlanAp.setValue(WlanQtUtilsAp::ConfIdWpaPskUse, false);
hgs
parents:
diff changeset
   532
    int iapId = wlanQtUtils_->createIap(&wlanAp);
hgs
parents:
diff changeset
   533
hgs
parents:
diff changeset
   534
    // Check that IAP now exists
hgs
parents:
diff changeset
   535
    QString name = wlanQtUtils_->iapName(iapId);
hgs
parents:
diff changeset
   536
    QCOMPARE(name, QString("testDeleteIapOk"));
hgs
parents:
diff changeset
   537
    
hgs
parents:
diff changeset
   538
    // Delete it and verify it does not exist anymore
hgs
parents:
diff changeset
   539
    wlanQtUtils_->deleteIap(iapId);
hgs
parents:
diff changeset
   540
    name = wlanQtUtils_->iapName(iapId);
hgs
parents:
diff changeset
   541
    QVERIFY(name.isEmpty());
hgs
parents:
diff changeset
   542
}
hgs
parents:
diff changeset
   543
hgs
parents:
diff changeset
   544
/**
hgs
parents:
diff changeset
   545
 * This function tests deletion of WLAN IAP in unsuccesful manner.
hgs
parents:
diff changeset
   546
 */
hgs
parents:
diff changeset
   547
void TestWlanQtUtils::testDeleteIapErr()
hgs
parents:
diff changeset
   548
{
hgs
parents:
diff changeset
   549
    // Try to delete a non-existing IAP
hgs
parents:
diff changeset
   550
    wlanQtUtils_->deleteIap(200);
hgs
parents:
diff changeset
   551
hgs
parents:
diff changeset
   552
    // No signals or return values to verify
hgs
parents:
diff changeset
   553
}
hgs
parents:
diff changeset
   554
hgs
parents:
diff changeset
   555
/**
hgs
parents:
diff changeset
   556
 * This function tests connecting to IAP in a succesful manner.
hgs
parents:
diff changeset
   557
 */
hgs
parents:
diff changeset
   558
void TestWlanQtUtils::testConnectIapOk()
hgs
parents:
diff changeset
   559
{
hgs
parents:
diff changeset
   560
    testContext.esock_.startRetValue_ = KErrNone;
hgs
parents:
diff changeset
   561
hgs
parents:
diff changeset
   562
    // Esock stub completes connection creation immediately
hgs
parents:
diff changeset
   563
    wlanQtUtils_->connectIap(5);
hgs
parents:
diff changeset
   564
hgs
parents:
diff changeset
   565
    // Connection creation in ConnMon interface
hgs
parents:
diff changeset
   566
    testContext.connMon_.activeConnections_.createDefaultActiveConnList(1, 5);
hgs
parents:
diff changeset
   567
    wlanQtUtils_->d_ptr->mConMonWrapper->d_ptrInfo->EventL(CConnMonEventBase(
hgs
parents:
diff changeset
   568
        EConnMonCreateConnection,
hgs
parents:
diff changeset
   569
        testContext.connMon_.activeConnections_.activeConnList_[0]->connectionId()));
hgs
parents:
diff changeset
   570
hgs
parents:
diff changeset
   571
    // Connection status change in ConnMon interface
hgs
parents:
diff changeset
   572
    wlanQtUtils_->d_ptr->mConMonWrapper->d_ptrInfo->EventL(CConnMonConnectionStatusChange(
hgs
parents:
diff changeset
   573
        testContext.connMon_.activeConnections_.activeConnList_[0]->connectionId(),
hgs
parents:
diff changeset
   574
        0,
hgs
parents:
diff changeset
   575
        KConnectionOpen));
hgs
parents:
diff changeset
   576
    
hgs
parents:
diff changeset
   577
    // Receive signal for connection opening (caused by connectIap, which completed immediately)
hgs
parents:
diff changeset
   578
    QList<QVariant> arguments;
hgs
parents:
diff changeset
   579
    subTestSignalWaitAndTake(signalWlanNetworkOpened_, &arguments); 
hgs
parents:
diff changeset
   580
    QCOMPARE(arguments.at(0).toInt(), 5); 
hgs
parents:
diff changeset
   581
hgs
parents:
diff changeset
   582
    // Connection status change to opened in ConnMon interface. Sub test cases between test
hgs
parents:
diff changeset
   583
    // cases check that no extra signals are sent
hgs
parents:
diff changeset
   584
    wlanQtUtils_->d_ptr->mConMonWrapper->d_ptrInfo->EventL(CConnMonConnectionStatusChange(
hgs
parents:
diff changeset
   585
        testContext.connMon_.activeConnections_.activeConnList_[0]->connectionId(),
hgs
parents:
diff changeset
   586
        0,
hgs
parents:
diff changeset
   587
        KLinkLayerOpen));
hgs
parents:
diff changeset
   588
}
hgs
parents:
diff changeset
   589
hgs
parents:
diff changeset
   590
/**
hgs
parents:
diff changeset
   591
 * This function tests connecting to IAP in unsuccesful manner.
hgs
parents:
diff changeset
   592
 */
hgs
parents:
diff changeset
   593
void TestWlanQtUtils::testConnectIapErr()
hgs
parents:
diff changeset
   594
{
hgs
parents:
diff changeset
   595
    testContext.esock_.startRetValue_ = KErrGeneral;
hgs
parents:
diff changeset
   596
hgs
parents:
diff changeset
   597
    wlanQtUtils_->connectIap(7);
hgs
parents:
diff changeset
   598
hgs
parents:
diff changeset
   599
    testContext.connMon_.activeConnections_.createDefaultActiveConnList(1, 7);
hgs
parents:
diff changeset
   600
    wlanQtUtils_->d_ptr->mConMonWrapper->d_ptrInfo->EventL(CConnMonEventBase(
hgs
parents:
diff changeset
   601
            EConnMonCreateConnection,
hgs
parents:
diff changeset
   602
            testContext.connMon_.activeConnections_.activeConnList_[0]->connectionId()));
hgs
parents:
diff changeset
   603
    wlanQtUtils_->d_ptr->mConMonWrapper->d_ptrInfo->EventL(CConnMonConnectionStatusChange(
hgs
parents:
diff changeset
   604
        testContext.connMon_.activeConnections_.activeConnList_[0]->connectionId(),
hgs
parents:
diff changeset
   605
        0,
hgs
parents:
diff changeset
   606
        KConnectionOpen));
hgs
parents:
diff changeset
   607
    
hgs
parents:
diff changeset
   608
    wlanQtUtils_->d_ptr->mConMonWrapper->d_ptrInfo->EventL(CConnMonEventBase(
hgs
parents:
diff changeset
   609
            EConnMonDeleteConnection,
hgs
parents:
diff changeset
   610
            testContext.connMon_.activeConnections_.activeConnList_[0]->connectionId()));
hgs
parents:
diff changeset
   611
    
hgs
parents:
diff changeset
   612
    QList<QVariant> arguments;
hgs
parents:
diff changeset
   613
    subTestSignalWaitAndTake(signalWlanNetworkClosed_, &arguments); 
hgs
parents:
diff changeset
   614
    QCOMPARE(arguments.at(0).toInt(), 7);
hgs
parents:
diff changeset
   615
    QCOMPARE(arguments.at(1).toInt(), KErrGeneral);
hgs
parents:
diff changeset
   616
}
hgs
parents:
diff changeset
   617
hgs
parents:
diff changeset
   618
// TODO: testDisconnectFail cases are needed when fail branches are
hgs
parents:
diff changeset
   619
// implemented into the connmon wrapper
hgs
parents:
diff changeset
   620
/**
hgs
parents:
diff changeset
   621
 * This function tests IAP disconnecting functionality.
hgs
parents:
diff changeset
   622
 */
hgs
parents:
diff changeset
   623
void TestWlanQtUtils::testDisconnectIapOk()
hgs
parents:
diff changeset
   624
{
hgs
parents:
diff changeset
   625
    // Create and connect an IAP we can then disconnect
hgs
parents:
diff changeset
   626
    WlanQtUtilsAp wlanAp;
hgs
parents:
diff changeset
   627
    wlanAp.setValue(WlanQtUtilsAp::ConfIdSsid, "testDisconnectIapOk");
hgs
parents:
diff changeset
   628
    wlanAp.setValue(WlanQtUtilsAp::ConfIdSignalStrength, 90 );
hgs
parents:
diff changeset
   629
    wlanAp.setValue(WlanQtUtilsAp::ConfIdConnectionMode, CMManagerShim::Infra);
hgs
parents:
diff changeset
   630
    wlanAp.setValue(WlanQtUtilsAp::ConfIdSecurityMode, CMManagerShim::WlanSecModeWpa);
hgs
parents:
diff changeset
   631
    wlanAp.setValue(WlanQtUtilsAp::ConfIdWpaPskUse, false);
hgs
parents:
diff changeset
   632
hgs
parents:
diff changeset
   633
    int iapId = wlanQtUtils_->createIap(&wlanAp);
hgs
parents:
diff changeset
   634
    testContext.esock_.startRetValue_ = KErrNone;
hgs
parents:
diff changeset
   635
    wlanQtUtils_->connectIap(iapId);
hgs
parents:
diff changeset
   636
    QList<QVariant> arguments;
hgs
parents:
diff changeset
   637
    subTestSignalWaitAndTake(signalWlanNetworkOpened_, &arguments); 
hgs
parents:
diff changeset
   638
    QCOMPARE(arguments.at(0).toInt(), iapId); 
hgs
parents:
diff changeset
   639
    
hgs
parents:
diff changeset
   640
    // Make sure there is the newly created connection active and also
hgs
parents:
diff changeset
   641
    // another one to gain coverage
hgs
parents:
diff changeset
   642
    testContext.connMon_.activeConnections_.createDefaultActiveConnList(2, iapId - 1);
hgs
parents:
diff changeset
   643
    // The disconnect function does not have any return values or
hgs
parents:
diff changeset
   644
    // signals related to the disconnection, thus plain
hgs
parents:
diff changeset
   645
    // function call is done for the test.
hgs
parents:
diff changeset
   646
    wlanQtUtils_->disconnectIap(iapId);
hgs
parents:
diff changeset
   647
}
hgs
parents:
diff changeset
   648
hgs
parents:
diff changeset
   649
/**
hgs
parents:
diff changeset
   650
 * This function tests IAP disconnecting functionality when there is no
hgs
parents:
diff changeset
   651
 * IAP to disconnect.
hgs
parents:
diff changeset
   652
 */
hgs
parents:
diff changeset
   653
void TestWlanQtUtils::testDisconnectIapIgnored()
hgs
parents:
diff changeset
   654
{
hgs
parents:
diff changeset
   655
    testContext.connMon_.activeConnections_.createDefaultActiveConnList(1, 150);
hgs
parents:
diff changeset
   656
    wlanQtUtils_->disconnectIap(200);
hgs
parents:
diff changeset
   657
    wlanQtUtils_->disconnectIap(WlanQtUtils::IapIdNone);
hgs
parents:
diff changeset
   658
}
hgs
parents:
diff changeset
   659
hgs
parents:
diff changeset
   660
/**
hgs
parents:
diff changeset
   661
 * This function tests connection status getter.
hgs
parents:
diff changeset
   662
 */
hgs
parents:
diff changeset
   663
void TestWlanQtUtils::testConnectionStatus()
hgs
parents:
diff changeset
   664
{
hgs
parents:
diff changeset
   665
    // Request status when there is no connection
hgs
parents:
diff changeset
   666
    WlanQtUtils::ConnStatus status = wlanQtUtils_->connectionStatus();
hgs
parents:
diff changeset
   667
    QCOMPARE(status, WlanQtUtils::ConnStatusDisconnected);
hgs
parents:
diff changeset
   668
    
hgs
parents:
diff changeset
   669
    // Make a connection and request its status
hgs
parents:
diff changeset
   670
    testContext.connMon_.activeConnections_.createDefaultActiveConnList(1, 5);
hgs
parents:
diff changeset
   671
    // Send event for connection creation.
hgs
parents:
diff changeset
   672
    wlanQtUtils_->d_ptr->mConMonWrapper->d_ptrInfo->EventL(CConnMonEventBase(
hgs
parents:
diff changeset
   673
            EConnMonCreateConnection,
hgs
parents:
diff changeset
   674
            testContext.connMon_.activeConnections_.activeConnList_[0]->connectionId()));
hgs
parents:
diff changeset
   675
    // Send events for connection status change -> connecting
hgs
parents:
diff changeset
   676
    wlanQtUtils_->d_ptr->mConMonWrapper->d_ptrInfo->EventL(CConnMonConnectionStatusChange(
hgs
parents:
diff changeset
   677
        testContext.connMon_.activeConnections_.activeConnList_[0]->connectionId(),
hgs
parents:
diff changeset
   678
        0,
hgs
parents:
diff changeset
   679
        KStartingConnection));
hgs
parents:
diff changeset
   680
hgs
parents:
diff changeset
   681
    // Request status when there is connection in connecting state
hgs
parents:
diff changeset
   682
    status = wlanQtUtils_->connectionStatus();
hgs
parents:
diff changeset
   683
    QCOMPARE(status, WlanQtUtils::ConnStatusConnecting);
hgs
parents:
diff changeset
   684
hgs
parents:
diff changeset
   685
    // Send events for connection status change -> connected
hgs
parents:
diff changeset
   686
    wlanQtUtils_->d_ptr->mConMonWrapper->d_ptrInfo->EventL(CConnMonConnectionStatusChange(
hgs
parents:
diff changeset
   687
        testContext.connMon_.activeConnections_.activeConnList_[0]->connectionId(),
hgs
parents:
diff changeset
   688
        0,
hgs
parents:
diff changeset
   689
        KLinkLayerOpen));
hgs
parents:
diff changeset
   690
hgs
parents:
diff changeset
   691
    QList<QVariant> arguments;
hgs
parents:
diff changeset
   692
    subTestSignalWaitAndTake(signalWlanNetworkOpened_, &arguments);
hgs
parents:
diff changeset
   693
    QCOMPARE(arguments.at(0).toInt(), 5);
hgs
parents:
diff changeset
   694
hgs
parents:
diff changeset
   695
    // Request status when there is connection in connected state
hgs
parents:
diff changeset
   696
    status = wlanQtUtils_->connectionStatus();
hgs
parents:
diff changeset
   697
    QCOMPARE(status, WlanQtUtils::ConnStatusConnected);
hgs
parents:
diff changeset
   698
}
hgs
parents:
diff changeset
   699
hgs
parents:
diff changeset
   700
/**
hgs
parents:
diff changeset
   701
 * This function tests IAP name getter with existing IAP ID.
hgs
parents:
diff changeset
   702
 */
hgs
parents:
diff changeset
   703
void TestWlanQtUtils::testIapNameFound()
hgs
parents:
diff changeset
   704
{
hgs
parents:
diff changeset
   705
    // Create the IAP we want to find with the getter
hgs
parents:
diff changeset
   706
    WlanQtUtilsAp wlanAp;
hgs
parents:
diff changeset
   707
    wlanAp.setValue(WlanQtUtilsAp::ConfIdSsid, "testIapFound");
hgs
parents:
diff changeset
   708
    wlanAp.setValue(WlanQtUtilsAp::ConfIdSignalStrength, 90 );
hgs
parents:
diff changeset
   709
    wlanAp.setValue(WlanQtUtilsAp::ConfIdConnectionMode, CMManagerShim::Infra);
hgs
parents:
diff changeset
   710
    wlanAp.setValue(WlanQtUtilsAp::ConfIdSecurityMode, CMManagerShim::WlanSecModeWpa2);
hgs
parents:
diff changeset
   711
    wlanAp.setValue(WlanQtUtilsAp::ConfIdWpaPskUse, false);
hgs
parents:
diff changeset
   712
hgs
parents:
diff changeset
   713
    int iapId = wlanQtUtils_->createIap(&wlanAp);
hgs
parents:
diff changeset
   714
    
hgs
parents:
diff changeset
   715
    // Execute the function under test and check that we got the correct name
hgs
parents:
diff changeset
   716
    QString name = wlanQtUtils_->iapName(iapId);
hgs
parents:
diff changeset
   717
    QCOMPARE(name, QString("testIapFound"));
hgs
parents:
diff changeset
   718
}
hgs
parents:
diff changeset
   719
hgs
parents:
diff changeset
   720
/**
hgs
parents:
diff changeset
   721
 * This function tests IAP name getter with non-existing IAP ID.
hgs
parents:
diff changeset
   722
 */
hgs
parents:
diff changeset
   723
void TestWlanQtUtils::testIapNameNotFound()
hgs
parents:
diff changeset
   724
{
hgs
parents:
diff changeset
   725
    // Execute the function under test and check that we get no name as result
hgs
parents:
diff changeset
   726
    QString name = wlanQtUtils_->iapName(200); // id in valid range, but not found -> KErrNotFound
hgs
parents:
diff changeset
   727
    QVERIFY(name.isEmpty());
hgs
parents:
diff changeset
   728
hgs
parents:
diff changeset
   729
    name = wlanQtUtils_->iapName(1000); // id not in valid range -> KErrArgument
hgs
parents:
diff changeset
   730
    QVERIFY(name.isEmpty());
hgs
parents:
diff changeset
   731
hgs
parents:
diff changeset
   732
    name = wlanQtUtils_->iapName(3); // id of cellular IAP -> discarded
hgs
parents:
diff changeset
   733
    QVERIFY(name.isEmpty());
hgs
parents:
diff changeset
   734
}
hgs
parents:
diff changeset
   735
hgs
parents:
diff changeset
   736
/**
hgs
parents:
diff changeset
   737
 * This function tests active WLAN IAP getter with existing connection.
hgs
parents:
diff changeset
   738
 */
hgs
parents:
diff changeset
   739
void TestWlanQtUtils::testActiveIapFound()
hgs
parents:
diff changeset
   740
{
hgs
parents:
diff changeset
   741
    // Create the IAP we want to find with the getter
hgs
parents:
diff changeset
   742
    WlanQtUtilsAp wlanAp;
hgs
parents:
diff changeset
   743
    wlanAp.setValue(WlanQtUtilsAp::ConfIdSsid, "testConnectedWlanIdFound");
hgs
parents:
diff changeset
   744
    wlanAp.setValue(WlanQtUtilsAp::ConfIdSignalStrength, 90 );
hgs
parents:
diff changeset
   745
    wlanAp.setValue(WlanQtUtilsAp::ConfIdConnectionMode, CMManagerShim::Infra);
hgs
parents:
diff changeset
   746
    wlanAp.setValue(WlanQtUtilsAp::ConfIdSecurityMode, CMManagerShim::WlanSecModeWpa);
hgs
parents:
diff changeset
   747
    wlanAp.setValue(WlanQtUtilsAp::ConfIdWpaPskUse, false);
hgs
parents:
diff changeset
   748
hgs
parents:
diff changeset
   749
    int iapId = wlanQtUtils_->createIap(&wlanAp);
hgs
parents:
diff changeset
   750
    
hgs
parents:
diff changeset
   751
    testContext.connMon_.activeConnections_.createDefaultActiveConnList(1, iapId);
hgs
parents:
diff changeset
   752
hgs
parents:
diff changeset
   753
    // Send event for connection creation.
hgs
parents:
diff changeset
   754
    wlanQtUtils_->d_ptr->mConMonWrapper->d_ptrInfo->EventL(CConnMonEventBase(
hgs
parents:
diff changeset
   755
            EConnMonCreateConnection,
hgs
parents:
diff changeset
   756
            testContext.connMon_.activeConnections_.activeConnList_[0]->connectionId()));
hgs
parents:
diff changeset
   757
hgs
parents:
diff changeset
   758
    // Send events for connection status change -> opened.
hgs
parents:
diff changeset
   759
    wlanQtUtils_->d_ptr->mConMonWrapper->d_ptrInfo->EventL(CConnMonConnectionStatusChange(
hgs
parents:
diff changeset
   760
        testContext.connMon_.activeConnections_.activeConnList_[0]->connectionId(),
hgs
parents:
diff changeset
   761
        0,
hgs
parents:
diff changeset
   762
        KStartingConnection));
hgs
parents:
diff changeset
   763
    wlanQtUtils_->d_ptr->mConMonWrapper->d_ptrInfo->EventL(CConnMonConnectionStatusChange(
hgs
parents:
diff changeset
   764
        testContext.connMon_.activeConnections_.activeConnList_[0]->connectionId(),
hgs
parents:
diff changeset
   765
        0,
hgs
parents:
diff changeset
   766
        KLinkLayerOpen));
hgs
parents:
diff changeset
   767
hgs
parents:
diff changeset
   768
    QList<QVariant> arguments;
hgs
parents:
diff changeset
   769
    subTestSignalWaitAndTake(signalWlanNetworkOpened_, &arguments);
hgs
parents:
diff changeset
   770
    QCOMPARE(arguments.at(0).toInt(), iapId);
hgs
parents:
diff changeset
   771
        
hgs
parents:
diff changeset
   772
    // Execute the function under test and check that we get valid ID as result
hgs
parents:
diff changeset
   773
    int id = wlanQtUtils_->activeIap();
hgs
parents:
diff changeset
   774
    QCOMPARE(id, iapId);
hgs
parents:
diff changeset
   775
}
hgs
parents:
diff changeset
   776
hgs
parents:
diff changeset
   777
/**
hgs
parents:
diff changeset
   778
 * This function tests active WLAN IAP getter with connection existing already during dll construction.
hgs
parents:
diff changeset
   779
 */
hgs
parents:
diff changeset
   780
void TestWlanQtUtils::testActiveIapFoundConstructor()
hgs
parents:
diff changeset
   781
{
hgs
parents:
diff changeset
   782
    // IAP IDs 4 and 5 exist in default commsdat file, 4 is GPRS, 5 is WLAN
hgs
parents:
diff changeset
   783
    testContext.connMon_.activeConnections_.createDefaultActiveConnList(2, 4);
hgs
parents:
diff changeset
   784
    testContext.connMon_.activeConnections_.activeConnList_[0]->connMonBearerType_ = EBearerGPRS;
hgs
parents:
diff changeset
   785
hgs
parents:
diff changeset
   786
    // Create a new instance in order to test functionality triggered in constructor.
hgs
parents:
diff changeset
   787
    WlanQtUtils *utils = new WlanQtUtils();
hgs
parents:
diff changeset
   788
hgs
parents:
diff changeset
   789
    // Execute the function under test and check that we get valid ID as result
hgs
parents:
diff changeset
   790
    int id = utils->activeIap();
hgs
parents:
diff changeset
   791
    QCOMPARE(id, 5);
hgs
parents:
diff changeset
   792
hgs
parents:
diff changeset
   793
    delete utils;
hgs
parents:
diff changeset
   794
}
hgs
parents:
diff changeset
   795
hgs
parents:
diff changeset
   796
/**
hgs
parents:
diff changeset
   797
 * This function tests active WLAN IAP getter without existing connection.
hgs
parents:
diff changeset
   798
 */
hgs
parents:
diff changeset
   799
void TestWlanQtUtils::testActiveIapNotFound()
hgs
parents:
diff changeset
   800
{
hgs
parents:
diff changeset
   801
    // Execute the function under test and check that we get invalid ID as result
hgs
parents:
diff changeset
   802
    int id = wlanQtUtils_->activeIap();
hgs
parents:
diff changeset
   803
    QCOMPARE(id, WlanQtUtils::IapIdNone);
hgs
parents:
diff changeset
   804
}
hgs
parents:
diff changeset
   805
hgs
parents:
diff changeset
   806
/**
hgs
parents:
diff changeset
   807
 * Test WLAN scan triggering interface.
hgs
parents:
diff changeset
   808
 */
hgs
parents:
diff changeset
   809
void TestWlanQtUtils::testScanWlans()
hgs
parents:
diff changeset
   810
{
hgs
parents:
diff changeset
   811
    // Execute function under test
hgs
parents:
diff changeset
   812
    wlanQtUtils_->scanWlans();
hgs
parents:
diff changeset
   813
hgs
parents:
diff changeset
   814
    // No need to verify scan results here, testAvailableWlan* test cases
hgs
parents:
diff changeset
   815
    // are for that. Just make sure the result signal is received.
hgs
parents:
diff changeset
   816
    subTestSignalWaitAndTake(signalScanReady_, NULL);
hgs
parents:
diff changeset
   817
}
hgs
parents:
diff changeset
   818
hgs
parents:
diff changeset
   819
/**
hgs
parents:
diff changeset
   820
 * Test WLAN scan triggering interface with two consecutive requests.
hgs
parents:
diff changeset
   821
 */
hgs
parents:
diff changeset
   822
void TestWlanQtUtils::testScanWlansIgnored()
hgs
parents:
diff changeset
   823
{
hgs
parents:
diff changeset
   824
    // Do not complete scan request immediately
hgs
parents:
diff changeset
   825
    testContext.connMon_.wlanScanResult_.completeWlanScan_ = false;
hgs
parents:
diff changeset
   826
    
hgs
parents:
diff changeset
   827
    // Execute function under test
hgs
parents:
diff changeset
   828
    wlanQtUtils_->scanWlans();
hgs
parents:
diff changeset
   829
hgs
parents:
diff changeset
   830
    // Execute function under test again -> this one is ignored
hgs
parents:
diff changeset
   831
    wlanQtUtils_->scanWlans();
hgs
parents:
diff changeset
   832
    
hgs
parents:
diff changeset
   833
    // Ongoing scan is cancelled in destructors
hgs
parents:
diff changeset
   834
}
hgs
parents:
diff changeset
   835
hgs
parents:
diff changeset
   836
/**
hgs
parents:
diff changeset
   837
 * Test WLAN scan stopping interface when scan is active.
hgs
parents:
diff changeset
   838
 */
hgs
parents:
diff changeset
   839
void TestWlanQtUtils::testStopWlanScanOk()
hgs
parents:
diff changeset
   840
{
hgs
parents:
diff changeset
   841
    // Do not complete scan request immediately
hgs
parents:
diff changeset
   842
    testContext.connMon_.wlanScanResult_.completeWlanScan_ = false;
hgs
parents:
diff changeset
   843
    // Start a scan
hgs
parents:
diff changeset
   844
    wlanQtUtils_->scanWlans();
hgs
parents:
diff changeset
   845
    // Execute function under test
hgs
parents:
diff changeset
   846
    wlanQtUtils_->stopWlanScan();
hgs
parents:
diff changeset
   847
    
hgs
parents:
diff changeset
   848
    // No return values or signals to verify
hgs
parents:
diff changeset
   849
}
hgs
parents:
diff changeset
   850
hgs
parents:
diff changeset
   851
/**
hgs
parents:
diff changeset
   852
 * Test WLAN scan stopping interface when no scan is ongoing.
hgs
parents:
diff changeset
   853
 */
hgs
parents:
diff changeset
   854
void TestWlanQtUtils::testStopWlanScanIgnored()
hgs
parents:
diff changeset
   855
{
hgs
parents:
diff changeset
   856
    // Execute function under test
hgs
parents:
diff changeset
   857
    wlanQtUtils_->stopWlanScan();
hgs
parents:
diff changeset
   858
    
hgs
parents:
diff changeset
   859
    // No return values or signals to verify
hgs
parents:
diff changeset
   860
}
hgs
parents:
diff changeset
   861
hgs
parents:
diff changeset
   862
/**
hgs
parents:
diff changeset
   863
 * This function tests Wlan network opening signal when network is not opened by the dll.
hgs
parents:
diff changeset
   864
 */
hgs
parents:
diff changeset
   865
void TestWlanQtUtils::testWlanNetworkOpened()
hgs
parents:
diff changeset
   866
{
hgs
parents:
diff changeset
   867
    testContext.connMon_.activeConnections_.createDefaultActiveConnList(1, 5);
hgs
parents:
diff changeset
   868
hgs
parents:
diff changeset
   869
    // Send event for connection creation.
hgs
parents:
diff changeset
   870
    wlanQtUtils_->d_ptr->mConMonWrapper->d_ptrInfo->EventL(CConnMonEventBase(
hgs
parents:
diff changeset
   871
            EConnMonCreateConnection,
hgs
parents:
diff changeset
   872
            testContext.connMon_.activeConnections_.activeConnList_[0]->connectionId()));
hgs
parents:
diff changeset
   873
hgs
parents:
diff changeset
   874
    // Send events for connection status change -> opened.
hgs
parents:
diff changeset
   875
    wlanQtUtils_->d_ptr->mConMonWrapper->d_ptrInfo->EventL(CConnMonConnectionStatusChange(
hgs
parents:
diff changeset
   876
        testContext.connMon_.activeConnections_.activeConnList_[0]->connectionId(),
hgs
parents:
diff changeset
   877
        0,
hgs
parents:
diff changeset
   878
        KConnectionOpen));
hgs
parents:
diff changeset
   879
    wlanQtUtils_->d_ptr->mConMonWrapper->d_ptrInfo->EventL(CConnMonConnectionStatusChange(
hgs
parents:
diff changeset
   880
        testContext.connMon_.activeConnections_.activeConnList_[0]->connectionId(),
hgs
parents:
diff changeset
   881
        0,
hgs
parents:
diff changeset
   882
        KConfigDaemonFinishedRegistration));
hgs
parents:
diff changeset
   883
    wlanQtUtils_->d_ptr->mConMonWrapper->d_ptrInfo->EventL(CConnMonConnectionStatusChange(
hgs
parents:
diff changeset
   884
        testContext.connMon_.activeConnections_.activeConnList_[0]->connectionId(),
hgs
parents:
diff changeset
   885
        0,
hgs
parents:
diff changeset
   886
        KLinkLayerOpen));
hgs
parents:
diff changeset
   887
hgs
parents:
diff changeset
   888
    QList<QVariant> arguments;
hgs
parents:
diff changeset
   889
    subTestSignalWaitAndTake(signalWlanNetworkOpened_, &arguments);
hgs
parents:
diff changeset
   890
    QCOMPARE(arguments.at(0).toInt(), 5);
hgs
parents:
diff changeset
   891
hgs
parents:
diff changeset
   892
    // Send uninteresting event to gain coverage
hgs
parents:
diff changeset
   893
    wlanQtUtils_->d_ptr->mConMonWrapper->d_ptrInfo->EventL(CConnMonEventBase(
hgs
parents:
diff changeset
   894
        EConnMonNetworkStatusChange,
hgs
parents:
diff changeset
   895
        10));
hgs
parents:
diff changeset
   896
}
hgs
parents:
diff changeset
   897
hgs
parents:
diff changeset
   898
/**
hgs
parents:
diff changeset
   899
 * This function tests Wlan network closing signal when network is not closed by the dll.
hgs
parents:
diff changeset
   900
 */
hgs
parents:
diff changeset
   901
void TestWlanQtUtils::testWlanNetworkClosed()
hgs
parents:
diff changeset
   902
{
hgs
parents:
diff changeset
   903
    // First create a connection
hgs
parents:
diff changeset
   904
    testContext.connMon_.activeConnections_.createDefaultActiveConnList(1, 5);
hgs
parents:
diff changeset
   905
hgs
parents:
diff changeset
   906
    // Send event for connection creation.
hgs
parents:
diff changeset
   907
    wlanQtUtils_->d_ptr->mConMonWrapper->d_ptrInfo->EventL(CConnMonEventBase(
hgs
parents:
diff changeset
   908
            EConnMonCreateConnection,
hgs
parents:
diff changeset
   909
            testContext.connMon_.activeConnections_.activeConnList_[0]->connectionId()));
hgs
parents:
diff changeset
   910
hgs
parents:
diff changeset
   911
    // Send events for connection status change -> opened.
hgs
parents:
diff changeset
   912
    wlanQtUtils_->d_ptr->mConMonWrapper->d_ptrInfo->EventL(CConnMonConnectionStatusChange(
hgs
parents:
diff changeset
   913
        testContext.connMon_.activeConnections_.activeConnList_[0]->connectionId(),
hgs
parents:
diff changeset
   914
        0,
hgs
parents:
diff changeset
   915
        KConnectionOpen));
hgs
parents:
diff changeset
   916
    wlanQtUtils_->d_ptr->mConMonWrapper->d_ptrInfo->EventL(CConnMonConnectionStatusChange(
hgs
parents:
diff changeset
   917
        testContext.connMon_.activeConnections_.activeConnList_[0]->connectionId(),
hgs
parents:
diff changeset
   918
        0,
hgs
parents:
diff changeset
   919
        KLinkLayerOpen));
hgs
parents:
diff changeset
   920
hgs
parents:
diff changeset
   921
    QList<QVariant> arguments;
hgs
parents:
diff changeset
   922
    subTestSignalWaitAndTake(signalWlanNetworkOpened_, &arguments);
hgs
parents:
diff changeset
   923
    QCOMPARE(arguments.at(0).toInt(), 5);
hgs
parents:
diff changeset
   924
hgs
parents:
diff changeset
   925
    // Send event for connection status change -> closed.
hgs
parents:
diff changeset
   926
    wlanQtUtils_->d_ptr->mConMonWrapper->d_ptrInfo->EventL(CConnMonConnectionStatusChange(
hgs
parents:
diff changeset
   927
        testContext.connMon_.activeConnections_.activeConnList_[0]->connectionId(),
hgs
parents:
diff changeset
   928
        0,
hgs
parents:
diff changeset
   929
        KLinkLayerClosed));
hgs
parents:
diff changeset
   930
hgs
parents:
diff changeset
   931
    // Send event for connection deletion.
hgs
parents:
diff changeset
   932
    wlanQtUtils_->d_ptr->mConMonWrapper->d_ptrInfo->EventL(CConnMonEventBase(
hgs
parents:
diff changeset
   933
            EConnMonDeleteConnection,
hgs
parents:
diff changeset
   934
            testContext.connMon_.activeConnections_.activeConnList_[0]->connectionId()));
hgs
parents:
diff changeset
   935
hgs
parents:
diff changeset
   936
    subTestSignalWaitAndTake(signalWlanNetworkClosed_, &arguments);
hgs
parents:
diff changeset
   937
    QCOMPARE(arguments.at(0).toInt(), 5);
hgs
parents:
diff changeset
   938
    QCOMPARE(arguments.at(1).toInt(), KErrNone);
hgs
parents:
diff changeset
   939
}
hgs
parents:
diff changeset
   940
hgs
parents:
diff changeset
   941
/**
hgs
parents:
diff changeset
   942
 * This function tests WlanQtUtilsAp copy constructor.
hgs
parents:
diff changeset
   943
 */
hgs
parents:
diff changeset
   944
void TestWlanQtUtils::testApCopyConstructor()
hgs
parents:
diff changeset
   945
{
hgs
parents:
diff changeset
   946
    WlanQtUtilsAp firstAp;
hgs
parents:
diff changeset
   947
    firstAp.setValue(WlanQtUtilsAp::ConfIdSsid, "testApCopyConstructor");
hgs
parents:
diff changeset
   948
    firstAp.setValue(WlanQtUtilsAp::ConfIdSignalStrength, 90 );
hgs
parents:
diff changeset
   949
    firstAp.setValue(WlanQtUtilsAp::ConfIdConnectionMode, CMManagerShim::Infra);
hgs
parents:
diff changeset
   950
    firstAp.setValue(WlanQtUtilsAp::ConfIdSecurityMode, CMManagerShim::WlanSecModeWpa);
hgs
parents:
diff changeset
   951
    firstAp.setValue(WlanQtUtilsAp::ConfIdWpaPskUse, true);    
hgs
parents:
diff changeset
   952
    firstAp.setValue(WlanQtUtilsAp::ConfIdWpaPsk, "100euronlounas");
hgs
parents:
diff changeset
   953
    
hgs
parents:
diff changeset
   954
    // Create the copy AP
hgs
parents:
diff changeset
   955
    WlanQtUtilsAp secondAp(firstAp);
hgs
parents:
diff changeset
   956
    QCOMPARE(secondAp.value(WlanQtUtilsAp::ConfIdSsid).toString(), QString("testApCopyConstructor"));
hgs
parents:
diff changeset
   957
    QCOMPARE(secondAp.value(WlanQtUtilsAp::ConfIdSecurityMode).toInt(), (int)(CMManagerShim::WlanSecModeWpa));
hgs
parents:
diff changeset
   958
    QCOMPARE(secondAp.value(WlanQtUtilsAp::ConfIdWpaPskUse).toBool(), true);
hgs
parents:
diff changeset
   959
    QCOMPARE(secondAp.value(WlanQtUtilsAp::ConfIdSignalStrength).toInt(), 90);
hgs
parents:
diff changeset
   960
    QCOMPARE(secondAp.value(WlanQtUtilsAp::ConfIdConnectionMode).toInt(), (int)(CMManagerShim::Infra));
hgs
parents:
diff changeset
   961
    QCOMPARE(secondAp.value(WlanQtUtilsAp::ConfIdWpaPsk).toString(), QString("100euronlounas"));
hgs
parents:
diff changeset
   962
}
hgs
parents:
diff changeset
   963
hgs
parents:
diff changeset
   964
/**
hgs
parents:
diff changeset
   965
 * This function tests ICT when connection test passes.
hgs
parents:
diff changeset
   966
 */
hgs
parents:
diff changeset
   967
void TestWlanQtUtils::testConnectionTestOk()
hgs
parents:
diff changeset
   968
{
hgs
parents:
diff changeset
   969
    // Create new IAP to test
hgs
parents:
diff changeset
   970
    WlanQtUtilsAp wlanAp;
hgs
parents:
diff changeset
   971
    wlanAp.setValue(WlanQtUtilsAp::ConfIdSsid, "testConnectionTestOk");
hgs
parents:
diff changeset
   972
    wlanAp.setValue(WlanQtUtilsAp::ConfIdSignalStrength, 90 );
hgs
parents:
diff changeset
   973
    wlanAp.setValue(WlanQtUtilsAp::ConfIdConnectionMode, CMManagerShim::Infra);
hgs
parents:
diff changeset
   974
    wlanAp.setValue(WlanQtUtilsAp::ConfIdSecurityMode, CMManagerShim::WlanSecModeOpen);
hgs
parents:
diff changeset
   975
    wlanAp.setValue(WlanQtUtilsAp::ConfIdWpaPskUse, false);
hgs
parents:
diff changeset
   976
    int iapId = wlanQtUtils_->createIap(&wlanAp);
hgs
parents:
diff changeset
   977
    QVERIFY(iapId != WlanQtUtils::IapIdNone);
hgs
parents:
diff changeset
   978
hgs
parents:
diff changeset
   979
    testContext.esock_.startRetValue_ = KErrNone;
hgs
parents:
diff changeset
   980
hgs
parents:
diff changeset
   981
    // Esock stub completes connection creation immediately
hgs
parents:
diff changeset
   982
    wlanQtUtils_->connectIap(iapId, true);
hgs
parents:
diff changeset
   983
hgs
parents:
diff changeset
   984
    // Connection creation in ConnMon interface
hgs
parents:
diff changeset
   985
    testContext.connMon_.activeConnections_.createDefaultActiveConnList(1, iapId);
hgs
parents:
diff changeset
   986
    wlanQtUtils_->d_ptr->mConMonWrapper->d_ptrInfo->EventL(CConnMonEventBase(
hgs
parents:
diff changeset
   987
            EConnMonCreateConnection,
hgs
parents:
diff changeset
   988
            testContext.connMon_.activeConnections_.activeConnList_[0]->connectionId()));
hgs
parents:
diff changeset
   989
hgs
parents:
diff changeset
   990
    // Connection status change in ConnMon interface
hgs
parents:
diff changeset
   991
    wlanQtUtils_->d_ptr->mConMonWrapper->d_ptrInfo->EventL(CConnMonConnectionStatusChange(
hgs
parents:
diff changeset
   992
        testContext.connMon_.activeConnections_.activeConnList_[0]->connectionId(),
hgs
parents:
diff changeset
   993
        0,
hgs
parents:
diff changeset
   994
        KConnectionOpen));
hgs
parents:
diff changeset
   995
    
hgs
parents:
diff changeset
   996
    // Receive signal for connection opening (caused by connectIap, which completed immediately)
hgs
parents:
diff changeset
   997
    QList<QVariant> arguments;
hgs
parents:
diff changeset
   998
    subTestSignalWaitAndTake(signalWlanNetworkOpened_, &arguments); 
hgs
parents:
diff changeset
   999
    QCOMPARE(arguments.at(0).toInt(), iapId); 
hgs
parents:
diff changeset
  1000
hgs
parents:
diff changeset
  1001
    // Connection status change to opened in ConnMon interface. Sub test cases between test
hgs
parents:
diff changeset
  1002
    // cases check that no extra signals are sent
hgs
parents:
diff changeset
  1003
    wlanQtUtils_->d_ptr->mConMonWrapper->d_ptrInfo->EventL(CConnMonConnectionStatusChange(
hgs
parents:
diff changeset
  1004
        testContext.connMon_.activeConnections_.activeConnList_[0]->connectionId(),
hgs
parents:
diff changeset
  1005
        0,
hgs
parents:
diff changeset
  1006
        KLinkLayerOpen));
hgs
parents:
diff changeset
  1007
hgs
parents:
diff changeset
  1008
    // Connection test automatically started at this point. Call result function explicitly
hgs
parents:
diff changeset
  1009
    // No interface exists that we could check that the IAP is moved to Internet SNAP correctly
hgs
parents:
diff changeset
  1010
    TBuf<5> string;
hgs
parents:
diff changeset
  1011
    wlanQtUtils_->d_ptr->mConnTestWrapper->d_ptr_->ConnectivityObserver(EConnectionOk, string);
hgs
parents:
diff changeset
  1012
hgs
parents:
diff changeset
  1013
    subTestSignalWaitAndTake(signalIctResult_, &arguments); 
hgs
parents:
diff changeset
  1014
    QCOMPARE(arguments.at(0).toInt(), iapId); 
hgs
parents:
diff changeset
  1015
    QCOMPARE(arguments.at(1).toBool(), true);
hgs
parents:
diff changeset
  1016
}
hgs
parents:
diff changeset
  1017
hgs
parents:
diff changeset
  1018
/**
hgs
parents:
diff changeset
  1019
 * This function tests ICT when connection test fails.
hgs
parents:
diff changeset
  1020
 */
hgs
parents:
diff changeset
  1021
void TestWlanQtUtils::testConnectionTestErr()
hgs
parents:
diff changeset
  1022
{
hgs
parents:
diff changeset
  1023
    // Create and connect an IAP and request ICT to be run
hgs
parents:
diff changeset
  1024
    WlanQtUtilsAp wlanAp;
hgs
parents:
diff changeset
  1025
    wlanAp.setValue(WlanQtUtilsAp::ConfIdSsid, "testConnectionTestErr");
hgs
parents:
diff changeset
  1026
    wlanAp.setValue(WlanQtUtilsAp::ConfIdSignalStrength, 90 );
hgs
parents:
diff changeset
  1027
    wlanAp.setValue(WlanQtUtilsAp::ConfIdConnectionMode, CMManagerShim::Infra);
hgs
parents:
diff changeset
  1028
    wlanAp.setValue(WlanQtUtilsAp::ConfIdSecurityMode, CMManagerShim::WlanSecModeWpa);
hgs
parents:
diff changeset
  1029
    wlanAp.setValue(WlanQtUtilsAp::ConfIdWpaPskUse, false);
hgs
parents:
diff changeset
  1030
    
hgs
parents:
diff changeset
  1031
    int iapId = wlanQtUtils_->createIap(&wlanAp);
hgs
parents:
diff changeset
  1032
    wlanQtUtils_->connectIap(iapId, true);
hgs
parents:
diff changeset
  1033
hgs
parents:
diff changeset
  1034
    testContext.connMon_.activeConnections_.createDefaultActiveConnList(1, iapId);
hgs
parents:
diff changeset
  1035
    wlanQtUtils_->d_ptr->mConMonWrapper->d_ptrInfo->EventL(CConnMonEventBase(
hgs
parents:
diff changeset
  1036
            EConnMonCreateConnection,
hgs
parents:
diff changeset
  1037
            testContext.connMon_.activeConnections_.activeConnList_[0]->connectionId()));
hgs
parents:
diff changeset
  1038
    wlanQtUtils_->d_ptr->mConMonWrapper->d_ptrInfo->EventL(CConnMonConnectionStatusChange(
hgs
parents:
diff changeset
  1039
        testContext.connMon_.activeConnections_.activeConnList_[0]->connectionId(),
hgs
parents:
diff changeset
  1040
        0,
hgs
parents:
diff changeset
  1041
        KConnectionOpen));
hgs
parents:
diff changeset
  1042
    QList<QVariant> arguments;
hgs
parents:
diff changeset
  1043
    subTestSignalWaitAndTake(signalWlanNetworkOpened_, &arguments); 
hgs
parents:
diff changeset
  1044
    QCOMPARE(arguments.at(0).toInt(), iapId); 
hgs
parents:
diff changeset
  1045
hgs
parents:
diff changeset
  1046
    wlanQtUtils_->d_ptr->mConMonWrapper->d_ptrInfo->EventL(CConnMonConnectionStatusChange(
hgs
parents:
diff changeset
  1047
        testContext.connMon_.activeConnections_.activeConnList_[0]->connectionId(),
hgs
parents:
diff changeset
  1048
        0,
hgs
parents:
diff changeset
  1049
        KLinkLayerOpen));
hgs
parents:
diff changeset
  1050
hgs
parents:
diff changeset
  1051
    // Connection test automatically started at this point. Call result function explicitly
hgs
parents:
diff changeset
  1052
    // No interface exists that we could check that IAP is not moved to another SNAP
hgs
parents:
diff changeset
  1053
    TBuf<5> string;
hgs
parents:
diff changeset
  1054
    wlanQtUtils_->d_ptr->mConnTestWrapper->d_ptr_->ConnectivityObserver(EHttpAuthenticationNeeded, string);
hgs
parents:
diff changeset
  1055
hgs
parents:
diff changeset
  1056
    subTestSignalWaitAndTake(signalIctResult_, &arguments); 
hgs
parents:
diff changeset
  1057
    QCOMPARE(arguments.at(0).toInt(), iapId); 
hgs
parents:
diff changeset
  1058
    QCOMPARE(arguments.at(1).toBool(), false);
hgs
parents:
diff changeset
  1059
}
hgs
parents:
diff changeset
  1060
hgs
parents:
diff changeset
  1061
/**
hgs
parents:
diff changeset
  1062
 * This function tests that Gprs connection events are ignored.
hgs
parents:
diff changeset
  1063
 */
hgs
parents:
diff changeset
  1064
void TestWlanQtUtils::testConnMonEventGprs()
hgs
parents:
diff changeset
  1065
{
hgs
parents:
diff changeset
  1066
    // First create a connection
hgs
parents:
diff changeset
  1067
    testContext.connMon_.activeConnections_.createDefaultActiveConnList(1, 4);
hgs
parents:
diff changeset
  1068
    testContext.connMon_.activeConnections_.activeConnList_[0]->connMonBearerType_ = EBearerGPRS;
hgs
parents:
diff changeset
  1069
    
hgs
parents:
diff changeset
  1070
    // Send event for connection creation.
hgs
parents:
diff changeset
  1071
    wlanQtUtils_->d_ptr->mConMonWrapper->d_ptrInfo->EventL(CConnMonEventBase(
hgs
parents:
diff changeset
  1072
            EConnMonCreateConnection,
hgs
parents:
diff changeset
  1073
            testContext.connMon_.activeConnections_.activeConnList_[0]->connectionId()));
hgs
parents:
diff changeset
  1074
hgs
parents:
diff changeset
  1075
    // Send events for connection status change -> opened.
hgs
parents:
diff changeset
  1076
    wlanQtUtils_->d_ptr->mConMonWrapper->d_ptrInfo->EventL(CConnMonConnectionStatusChange(
hgs
parents:
diff changeset
  1077
        testContext.connMon_.activeConnections_.activeConnList_[0]->connectionId(),
hgs
parents:
diff changeset
  1078
        0,
hgs
parents:
diff changeset
  1079
        KConnectionOpen));
hgs
parents:
diff changeset
  1080
    wlanQtUtils_->d_ptr->mConMonWrapper->d_ptrInfo->EventL(CConnMonConnectionStatusChange(
hgs
parents:
diff changeset
  1081
        testContext.connMon_.activeConnections_.activeConnList_[0]->connectionId(),
hgs
parents:
diff changeset
  1082
        0,
hgs
parents:
diff changeset
  1083
        KLinkLayerOpen));
hgs
parents:
diff changeset
  1084
hgs
parents:
diff changeset
  1085
    // Send event for connection status change -> closed.
hgs
parents:
diff changeset
  1086
    wlanQtUtils_->d_ptr->mConMonWrapper->d_ptrInfo->EventL(CConnMonConnectionStatusChange(
hgs
parents:
diff changeset
  1087
        testContext.connMon_.activeConnections_.activeConnList_[0]->connectionId(),
hgs
parents:
diff changeset
  1088
        0,
hgs
parents:
diff changeset
  1089
        KLinkLayerClosed));
hgs
parents:
diff changeset
  1090
hgs
parents:
diff changeset
  1091
    // Send event for connection deletion.
hgs
parents:
diff changeset
  1092
    wlanQtUtils_->d_ptr->mConMonWrapper->d_ptrInfo->EventL(CConnMonEventBase(
hgs
parents:
diff changeset
  1093
            EConnMonDeleteConnection,
hgs
parents:
diff changeset
  1094
            testContext.connMon_.activeConnections_.activeConnList_[0]->connectionId()));
hgs
parents:
diff changeset
  1095
}
hgs
parents:
diff changeset
  1096
hgs
parents:
diff changeset
  1097
/**
hgs
parents:
diff changeset
  1098
 * This function tests ConnMon event handling with connection existing already during dll construction.
hgs
parents:
diff changeset
  1099
 */
hgs
parents:
diff changeset
  1100
void TestWlanQtUtils::testConnMonEventCreatedBeforeConstructor()
hgs
parents:
diff changeset
  1101
{
hgs
parents:
diff changeset
  1102
    // IAP ID 5 exists in default commsdat file
hgs
parents:
diff changeset
  1103
    testContext.connMon_.activeConnections_.createDefaultActiveConnList(1, 5);
hgs
parents:
diff changeset
  1104
hgs
parents:
diff changeset
  1105
    // Create a new instance in order to test functionality triggered in constructor.
hgs
parents:
diff changeset
  1106
    WlanQtUtils *utils = new WlanQtUtils();
hgs
parents:
diff changeset
  1107
hgs
parents:
diff changeset
  1108
    QSignalSpy *signalWlanNetworkOpened = new QSignalSpy(utils, SIGNAL(wlanNetworkOpened(int)));
hgs
parents:
diff changeset
  1109
    QVERIFY(signalWlanNetworkOpened->isValid() == true);
hgs
parents:
diff changeset
  1110
    QSignalSpy *signalWlanNetworkClosed = new QSignalSpy(utils, SIGNAL(wlanNetworkClosed(int, int)));
hgs
parents:
diff changeset
  1111
    QVERIFY(signalWlanNetworkClosed->isValid() == true);
hgs
parents:
diff changeset
  1112
    
hgs
parents:
diff changeset
  1113
    // Send events for connection status change -> opened.
hgs
parents:
diff changeset
  1114
    utils->d_ptr->mConMonWrapper->d_ptrInfo->EventL(CConnMonConnectionStatusChange(
hgs
parents:
diff changeset
  1115
        testContext.connMon_.activeConnections_.activeConnList_[0]->connectionId(),
hgs
parents:
diff changeset
  1116
        0,
hgs
parents:
diff changeset
  1117
        KConnectionOpen));
hgs
parents:
diff changeset
  1118
    utils->d_ptr->mConMonWrapper->d_ptrInfo->EventL(CConnMonConnectionStatusChange(
hgs
parents:
diff changeset
  1119
        testContext.connMon_.activeConnections_.activeConnList_[0]->connectionId(),
hgs
parents:
diff changeset
  1120
        0,
hgs
parents:
diff changeset
  1121
        KLinkLayerOpen));
hgs
parents:
diff changeset
  1122
hgs
parents:
diff changeset
  1123
    QList<QVariant> arguments;
hgs
parents:
diff changeset
  1124
    subTestSignalWaitAndTake(signalWlanNetworkOpened, &arguments);
hgs
parents:
diff changeset
  1125
    QCOMPARE(arguments.at(0).toInt(), 5);
hgs
parents:
diff changeset
  1126
hgs
parents:
diff changeset
  1127
    // Send event for connection status change -> closed.
hgs
parents:
diff changeset
  1128
    utils->d_ptr->mConMonWrapper->d_ptrInfo->EventL(CConnMonConnectionStatusChange(
hgs
parents:
diff changeset
  1129
        testContext.connMon_.activeConnections_.activeConnList_[0]->connectionId(),
hgs
parents:
diff changeset
  1130
        0,
hgs
parents:
diff changeset
  1131
        KLinkLayerClosed));
hgs
parents:
diff changeset
  1132
hgs
parents:
diff changeset
  1133
    // Send event for connection deletion.
hgs
parents:
diff changeset
  1134
    utils->d_ptr->mConMonWrapper->d_ptrInfo->EventL(CConnMonEventBase(
hgs
parents:
diff changeset
  1135
            EConnMonDeleteConnection,
hgs
parents:
diff changeset
  1136
            testContext.connMon_.activeConnections_.activeConnList_[0]->connectionId()));
hgs
parents:
diff changeset
  1137
hgs
parents:
diff changeset
  1138
    subTestSignalWaitAndTake(signalWlanNetworkClosed, &arguments);
hgs
parents:
diff changeset
  1139
    QCOMPARE(arguments.at(0).toInt(), 5);
hgs
parents:
diff changeset
  1140
    QCOMPARE(arguments.at(1).toInt(), KErrNone);
hgs
parents:
diff changeset
  1141
    
hgs
parents:
diff changeset
  1142
    delete signalWlanNetworkOpened;
hgs
parents:
diff changeset
  1143
    delete signalWlanNetworkClosed;
hgs
parents:
diff changeset
  1144
    delete utils;
hgs
parents:
diff changeset
  1145
}
hgs
parents:
diff changeset
  1146
hgs
parents:
diff changeset
  1147
// ---------------------------------------------------------
hgs
parents:
diff changeset
  1148
// SUB TEST CASES
hgs
parents:
diff changeset
  1149
// ---------------------------------------------------------
hgs
parents:
diff changeset
  1150
hgs
parents:
diff changeset
  1151
/**
hgs
parents:
diff changeset
  1152
 * This function waits for active objects to get time to run, takes the arguments of the
hgs
parents:
diff changeset
  1153
 * first signal and returns them from the given signal spy.
hgs
parents:
diff changeset
  1154
 * This function also verifies that the number of signals is 1.
hgs
parents:
diff changeset
  1155
 * 
hgs
parents:
diff changeset
  1156
 * @param[in] spy Signal spy.
hgs
parents:
diff changeset
  1157
 * @param[out] arguments Arguments of the first signal in the given signal spy. NULL if arguments not needed.
hgs
parents:
diff changeset
  1158
 */
hgs
parents:
diff changeset
  1159
void TestWlanQtUtils::subTestSignalWaitAndTake(QSignalSpy* spy, QList<QVariant>* arguments)
hgs
parents:
diff changeset
  1160
{
hgs
parents:
diff changeset
  1161
    QTest::qWait(1);
hgs
parents:
diff changeset
  1162
    QCOMPARE(spy->count(), 1);
hgs
parents:
diff changeset
  1163
    QList<QVariant> arguments_tmp = spy->takeFirst();
hgs
parents:
diff changeset
  1164
    if (arguments != NULL) {
hgs
parents:
diff changeset
  1165
        *arguments = arguments_tmp;
hgs
parents:
diff changeset
  1166
    }
hgs
parents:
diff changeset
  1167
}
hgs
parents:
diff changeset
  1168
hgs
parents:
diff changeset
  1169
/**
hgs
parents:
diff changeset
  1170
 * This function loads given CommsDat file, replacing current one.
hgs
parents:
diff changeset
  1171
 * If CommsDat file doesn't exist, it can be re-created by commanding WST script.
hgs
parents:
diff changeset
  1172
 * Using help switch is a quick way:
hgs
parents:
diff changeset
  1173
 *     run_wst HELP
hgs
parents:
diff changeset
  1174
 * 
hgs
parents:
diff changeset
  1175
 * @param newCommsdatFilename Filename of the new CommsDat to be loaded. 
hgs
parents:
diff changeset
  1176
 */
hgs
parents:
diff changeset
  1177
void TestWlanQtUtils::subTestLoadCommsDatFile(QString newCommsdatFilename)
hgs
parents:
diff changeset
  1178
{
hgs
parents:
diff changeset
  1179
    // EPOC's CommsDat filename   
hgs
parents:
diff changeset
  1180
    const QString epocCommsdatFilename("cccccc00.cre");
hgs
parents:
diff changeset
  1181
    // EPOC's directory for CommsDat file
hgs
parents:
diff changeset
  1182
    const QString commsdatDir("c:\\private\\10202be9\\persists\\");
hgs
parents:
diff changeset
  1183
    // Created backup directory under EPOC for CommsDat files
hgs
parents:
diff changeset
  1184
    const QString storeDir("c:\\private\\10202be9\\persists\\backup\\");
hgs
parents:
diff changeset
  1185
    QString nameOld = commsdatDir + epocCommsdatFilename;
hgs
parents:
diff changeset
  1186
    QString nameDefault = storeDir + newCommsdatFilename;
hgs
parents:
diff changeset
  1187
hgs
parents:
diff changeset
  1188
    // First remove the old CommsDat file.
hgs
parents:
diff changeset
  1189
    Q_ASSERT(QFile::remove(nameOld) == TRUE);
hgs
parents:
diff changeset
  1190
    
hgs
parents:
diff changeset
  1191
    // Copy the stored default CommsDat file.
hgs
parents:
diff changeset
  1192
    Q_ASSERT(QFile::copy(nameDefault, nameOld) == TRUE);
hgs
parents:
diff changeset
  1193
}
hgs
parents:
diff changeset
  1194
hgs
parents:
diff changeset
  1195
/**
hgs
parents:
diff changeset
  1196
 * 
hgs
parents:
diff changeset
  1197
 */
hgs
parents:
diff changeset
  1198
void TestWlanQtUtils::subTestNewWlanQtUtils()
hgs
parents:
diff changeset
  1199
{
hgs
parents:
diff changeset
  1200
    if (wlanQtUtils_ != NULL) {
hgs
parents:
diff changeset
  1201
        delete wlanQtUtils_;
hgs
parents:
diff changeset
  1202
    }
hgs
parents:
diff changeset
  1203
    wlanQtUtils_ = new WlanQtUtils();
hgs
parents:
diff changeset
  1204
hgs
parents:
diff changeset
  1205
    if (signalScanReady_ != NULL) {
hgs
parents:
diff changeset
  1206
        delete signalScanReady_;
hgs
parents:
diff changeset
  1207
    }
hgs
parents:
diff changeset
  1208
    signalScanReady_ = new QSignalSpy(wlanQtUtils_, SIGNAL(wlanScanReady()));
hgs
parents:
diff changeset
  1209
    QVERIFY(signalScanReady_->isValid() == true);
hgs
parents:
diff changeset
  1210
hgs
parents:
diff changeset
  1211
    if (signalWlanNetworkOpened_ != NULL) {
hgs
parents:
diff changeset
  1212
        delete signalWlanNetworkOpened_;
hgs
parents:
diff changeset
  1213
    }
hgs
parents:
diff changeset
  1214
    signalWlanNetworkOpened_ = new QSignalSpy(wlanQtUtils_, SIGNAL(wlanNetworkOpened(int)));
hgs
parents:
diff changeset
  1215
    QVERIFY(signalWlanNetworkOpened_->isValid() == true);
hgs
parents:
diff changeset
  1216
    
hgs
parents:
diff changeset
  1217
    if (signalWlanNetworkClosed_ != NULL) {
hgs
parents:
diff changeset
  1218
        delete signalWlanNetworkClosed_;
hgs
parents:
diff changeset
  1219
    }
hgs
parents:
diff changeset
  1220
    signalWlanNetworkClosed_ = new QSignalSpy(wlanQtUtils_, SIGNAL(wlanNetworkClosed(int, int)));
hgs
parents:
diff changeset
  1221
    QVERIFY(signalWlanNetworkClosed_->isValid() == true);
hgs
parents:
diff changeset
  1222
    
hgs
parents:
diff changeset
  1223
    if (signalIctResult_ != NULL) {
hgs
parents:
diff changeset
  1224
        delete signalIctResult_;
hgs
parents:
diff changeset
  1225
    }
hgs
parents:
diff changeset
  1226
    signalIctResult_ = new QSignalSpy(wlanQtUtils_, SIGNAL(ictResult(int, bool)));
hgs
parents:
diff changeset
  1227
    QVERIFY(signalIctResult_->isValid() == true);
hgs
parents:
diff changeset
  1228
}