--- a/wlanutilities/wlanqtutilities/tsrc/testwlanqtutils.cpp Tue Aug 31 16:18:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1575 +0,0 @@
-/*
-* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-* This is the source file for testing Wlan Qt Utilities library.
-*/
-
-#include <QApplication>
-#include <QtCore>
-#include <QTest>
-#include <QSignalSpy>
-#include <QSharedPointer>
-#include <rconnmon.h>
-#include <nifvar.h>
-#include <cmmanagerdefines_shim.h>
-
-#include "wlanqtutilsap.h"
-#include "wlanqtutilsiap.h"
-#include "wlanqtutils.h"
-#include "wlanqtutils_p.h"
-#include "wlanqtutilsconmonwrapper.h"
-#include "wlanqtutilsconmonwrapperinfo_symbian.h"
-#include "testwlanqtutils.h"
-#include "wlanqtutilstestcontext.h"
-
-WlanQtUtilsTestContext testContext;
-
-const QString TestWlanQtUtils::commsDatDefault_ = "default.cre";
-
-// ---------------------------------------------------------
-// FRAMEWORK FUNCTIONS
-// ---------------------------------------------------------
-
-/**
- * Test main function. Runs all test cases.
- */
-int main(int argc, char *argv[])
-{
- QApplication app(argc, argv);
-
- char *pass[3];
- pass[0] = argv[0];
- pass[1] = "-o";
- pass[2] = "c:\\data\\wlanqtutils_qtest_log.txt";
-
- TestWlanQtUtils tc;
- int res = QTest::qExec(&tc, 3, pass);
-
- return res;
-}
-
-/**
- * This function will be called before the first test function is executed.
- */
-void TestWlanQtUtils::initTestCase()
-{
- wlanQtUtils_ = NULL;
- mSignalScanReady = NULL;
- mSignalScanApReady = NULL;
- mSignalScanDirectReady = NULL;
- signalWlanNetworkOpened_ = NULL;
- signalWlanNetworkClosed_ = NULL;
- signalIctResult_ = NULL;
-
- //If Active scheduler exists then don't install a new one as it will cause panic
- if (CActiveScheduler::Current() == NULL) {
- CActiveScheduler *scheduler = new CActiveScheduler();
- CActiveScheduler::Install(scheduler);
- }
-}
-
-/**
- * This function will be called after the last test function was executed.
- */
-void TestWlanQtUtils::cleanupTestCase()
-{
- // CommsDat file is initialized.
- subTestLoadCommsDatFile(commsDatDefault_);
-}
-
-/**
- * This function will be called before each test function is executed.
- */
-void TestWlanQtUtils::init()
-{
- // CommsDat file is initialized.
- subTestLoadCommsDatFile(commsDatDefault_);
-
- testContext.initialize();
-
- QVERIFY(wlanQtUtils_ == NULL);
- QVERIFY(mSignalScanReady == NULL);
- QVERIFY(mSignalScanApReady == NULL);
- QVERIFY(mSignalScanDirectReady == NULL);
- QVERIFY(signalWlanNetworkOpened_ == NULL);
- QVERIFY(signalWlanNetworkClosed_ == NULL);
- QVERIFY(signalIctResult_ == NULL);
- subTestNewWlanQtUtils();
-}
-
-/**
- * This function will be called after each test function is executed.
- */
-void TestWlanQtUtils::cleanup()
-{
- delete wlanQtUtils_;
- wlanQtUtils_ = NULL;
-
- QCOMPARE(mSignalScanReady->count(), 0);
- delete mSignalScanReady;
- mSignalScanReady = NULL;
-
- QCOMPARE(mSignalScanApReady->count(), 0);
- delete mSignalScanApReady;
- mSignalScanApReady = NULL;
-
- QCOMPARE(mSignalScanDirectReady->count(), 0);
- delete mSignalScanDirectReady;
- mSignalScanDirectReady = NULL;
-
- QCOMPARE(signalWlanNetworkOpened_->count(), 0);
- delete signalWlanNetworkOpened_;
- signalWlanNetworkOpened_ = NULL;
-
- QCOMPARE(signalWlanNetworkClosed_->count(), 0);
- delete signalWlanNetworkClosed_;
- signalWlanNetworkClosed_ = NULL;
-
- QCOMPARE(signalIctResult_->count(), 0);
- delete signalIctResult_;
- signalIctResult_ = NULL;
-}
-
-// ---------------------------------------------------------
-// TEST CASES
-// ---------------------------------------------------------
-
-/**
- * Test available WLAN APs when scan is triggered by client.
- */
-void TestWlanQtUtils::testAvailableWlan()
-{
- testContext.mScan.createDefaultWlanScanApResultList(4);
-
- // Request a scan to get result signal
- wlanQtUtils_->scanWlans();
-
- // Let active object run and verify signal.
- subTestScanResultSignal(mSignalScanReady, WlanQtUtils::ScanStatusOk);
-
- // Get and verify the list of available WLAN APs.
- QList< QSharedPointer<WlanQtUtilsIap> > iaps;
- QList< QSharedPointer<WlanQtUtilsAp> > aps;
- wlanQtUtils_->availableWlans(iaps, aps);
-
- testContext.mScan.verifyWlanScanApResultList(aps);
- QCOMPARE(iaps.count(), 0);
- aps.clear();
-}
-
-/**
- * Test available WLAN APs when scan is triggered by client.
- * Two scan results have the same SSID and the latter one of those will be removed.
- * Two scan results have the same SSID but different security mode
- * Two scan results have the same SSID and security mode but different WpaPsk value
- * and both are included in the results.
- * Two scan results have the same SSID but different connection mode
- */
-void TestWlanQtUtils::testAvailableWlanDuplicates()
-{
- testContext.mScan.createDefaultWlanScanApResultList(11);
- testContext.mScan.mWlanScanApResultList[0]->setValue(WlanQtUtilsAp::ConfIdSsid, "Same SSID");
- testContext.mScan.mWlanScanApResultList[2]->setValue(WlanQtUtilsAp::ConfIdSsid, "Same SSID");
- testContext.mScan.mWlanScanApResultList[5]->setValue(WlanQtUtilsAp::ConfIdSsid, "Same SSID, different SecMode");
- testContext.mScan.mWlanScanApResultList[5]->setValue(WlanQtUtilsAp::ConfIdSecurityMode,CMManagerShim::WlanSecModeWpa);
- testContext.mScan.mWlanScanApResultList[6]->setValue(WlanQtUtilsAp::ConfIdSsid, "Same SSID, different SecMode");
- testContext.mScan.mWlanScanApResultList[6]->setValue(WlanQtUtilsAp::ConfIdSecurityMode,CMManagerShim::WlanSecModeOpen);
- testContext.mScan.mWlanScanApResultList[7]->setValue(WlanQtUtilsAp::ConfIdSsid, "Same SSID & SecMode diff Psk");
- testContext.mScan.mWlanScanApResultList[7]->setValue(WlanQtUtilsAp::ConfIdSecurityMode,CMManagerShim::WlanSecModeWpa2);
- testContext.mScan.mWlanScanApResultList[9]->setValue(WlanQtUtilsAp::ConfIdSsid, "Same SSID & SecMode diff Psk");
- testContext.mScan.mWlanScanApResultList[9]->setValue(WlanQtUtilsAp::ConfIdSecurityMode,CMManagerShim::WlanSecModeWpa2);
- testContext.mScan.mWlanScanApResultList[9]->setValue(WlanQtUtilsAp::ConfIdWpaPskUse,true);
- testContext.mScan.mWlanScanApResultList[10]->setValue(WlanQtUtilsAp::ConfIdSsid, "Same SSID");
- testContext.mScan.mWlanScanApResultList[10]->setValue(WlanQtUtilsAp::ConfIdConnectionMode, CMManagerShim::Adhoc);
-
- // Request a scan to get result signal
- wlanQtUtils_->scanWlans();
-
- // Let active object run and verify signal.
- subTestScanResultSignal(mSignalScanReady, WlanQtUtils::ScanStatusOk);
-
- // Get and verify the list of available WLAN APs.
- QList< QSharedPointer<WlanQtUtilsIap> > iaps;
- QList< QSharedPointer<WlanQtUtilsAp> > aps;
- wlanQtUtils_->availableWlans(iaps, aps);
-
- // First remove AP that has duplicate SSID.
- testContext.mScan.mWlanScanApResultList.removeAt(2);
- testContext.mScan.verifyWlanScanApResultList(aps);
- QCOMPARE(iaps.count(), 0);
- aps.clear();
-}
-
-/**
- * Test available WLAN APs when scan is triggered by client.
- * Include all supported security modes.
- */
-void TestWlanQtUtils::testAvailableWlanSecModes()
-{
- testContext.mScan.createDefaultWlanScanApResultList(11);
- testContext.mScan.mWlanScanApResultList[0]->setValue(WlanQtUtilsAp::ConfIdSecurityMode, CMManagerShim::WlanSecModeOpen);
- testContext.mScan.mWlanScanApResultList[0]->setValue(WlanQtUtilsAp::ConfIdConnectionMode, CMManagerShim::Adhoc);
- testContext.mScan.mWlanScanApResultList[1]->setValue(WlanQtUtilsAp::ConfIdSecurityMode, CMManagerShim::WlanSecModeWep);
- testContext.mScan.mWlanScanApResultList[2]->setValue(WlanQtUtilsAp::ConfIdSecurityMode, CMManagerShim::WlanSecModeWep);
- testContext.mScan.mWlanScanApResultList[3]->setValue(WlanQtUtilsAp::ConfIdSecurityMode, CMManagerShim::WlanSecMode802_1x);
- testContext.mScan.mWlanScanApResultList[4]->setValue(WlanQtUtilsAp::ConfIdSecurityMode, CMManagerShim::WlanSecModeWpa);
- testContext.mScan.mWlanScanApResultList[5]->setValue(WlanQtUtilsAp::ConfIdSecurityMode, CMManagerShim::WlanSecModeWpa);
- testContext.mScan.mWlanScanApResultList[5]->setValue(WlanQtUtilsAp::ConfIdWpaPskUse, true);
- testContext.mScan.mWlanScanApResultList[6]->setValue(WlanQtUtilsAp::ConfIdSecurityMode, CMManagerShim::WlanSecModeWpa2);
- testContext.mScan.mWlanScanApResultList[7]->setValue(WlanQtUtilsAp::ConfIdSecurityMode, CMManagerShim::WlanSecModeWpa2);
- testContext.mScan.mWlanScanApResultList[7]->setValue(WlanQtUtilsAp::ConfIdWpaPskUse, true);
- testContext.mScan.mWlanScanApResultList[8]->setValue(WlanQtUtilsAp::ConfIdSecurityMode, CMManagerShim::WlanSecModeWapi);
- testContext.mScan.mWlanScanApResultList[9]->setValue(WlanQtUtilsAp::ConfIdSecurityMode, CMManagerShim::WlanSecModeWapi);
- // Let's trick the stub to return WapiPsk by putting WpaPskUse on *
- testContext.mScan.mWlanScanApResultList[9]->setValue(WlanQtUtilsAp::ConfIdWpaPskUse, true);
- testContext.mScan.mWlanScanApResultList[10]->setValue(WlanQtUtilsAp::ConfIdSecurityMode, CMManagerShim::WlanSecModeWpa2);
- testContext.mScan.mWlanScanApResultList[10]->setValue(WlanQtUtilsAp::ConfIdWpaPskUse, true);
- testContext.mScan.mWlanScanApResultList[10]->setValue(WlanQtUtilsAp::ConfIdWpsSupported, true);
-
- // Request a scan to get result signal
- wlanQtUtils_->scanWlans();
-
- // Let active object run and verify signal.
- subTestScanResultSignal(mSignalScanReady, WlanQtUtils::ScanStatusOk);
-
- // Get and verify the list of available WLAN APs.
- QList< QSharedPointer<WlanQtUtilsIap> > iaps;
- QList< QSharedPointer<WlanQtUtilsAp> > aps;
- wlanQtUtils_->availableWlans(iaps, aps);
-
- // Remove the trick *. WapiPsk and Wapi both map to just Wapi
- testContext.mScan.mWlanScanApResultList[9]->setValue(WlanQtUtilsAp::ConfIdWpaPskUse,false);
- testContext.mScan.verifyWlanScanApResultList(aps);
- QCOMPARE(iaps.count(), 0);
- aps.clear();
-}
-
-/**
- * Test available WLAN APs when scan is triggered by client.
- * Include some exotic ssids.
- */
-void TestWlanQtUtils::testAvailableWlanSsids()
-{
- testContext.mScan.createDefaultWlanScanApResultList(6);
- testContext.mScan.mWlanScanApResultList[1]->setValue(WlanQtUtilsAp::ConfIdSsid, " ");
- testContext.mScan.mWlanScanApResultList[2]->setValue(WlanQtUtilsAp::ConfIdSsid, " whitespace around ssid ");
- testContext.mScan.mWlanScanApResultList[3]->setValue(WlanQtUtilsAp::ConfIdSsid, QString(QChar()));
- testContext.mScan.mWlanScanApResultList[4]->setValue(WlanQtUtilsAp::ConfIdSsid, "maximum length ssid that is 32 c");
- testContext.mScan.mWlanScanApResultList[5]->setValue(WlanQtUtilsAp::ConfIdSsid, "A");
-
- // Request a scan to get result signal
- wlanQtUtils_->scanWlans();
-
- // Let active object run and verify signal.
- subTestScanResultSignal(mSignalScanReady, WlanQtUtils::ScanStatusOk);
-
- // Get and verify the list of available WLAN APs.
- QList< QSharedPointer<WlanQtUtilsIap> > iaps;
- QList< QSharedPointer<WlanQtUtilsAp> > aps;
- wlanQtUtils_->availableWlans(iaps, aps);
-
- // Empty ssids are removed from results
- testContext.mScan.mWlanScanApResultList.removeAt(3);
- testContext.mScan.mWlanScanApResultList.removeAt(1);
- testContext.mScan.verifyWlanScanApResultList(aps);
- QCOMPARE(iaps.count(), 0);
-}
-
-/**
- * Test available WLAN APs when there are also WLAN IAPs available.
- */
-void TestWlanQtUtils::testAvailableWlanWithIaps()
-{
- // Form WLAN IAP scan result list
- testContext.mScan.createDefaultWlanScanIapResultList(3);
- testContext.mScan.mWlanScanIapResultList.removeAt(1);
- testContext.mScan.mWlanScanIapResultList[0]->setValue(WlanQtUtilsIap::ConfIdIapId, 5);
- testContext.mScan.mWlanScanIapResultList[1]->setValue(WlanQtUtilsIap::ConfIdIapId, 7);
-
- // Form WLAN AP scan result list
- testContext.mScan.createDefaultWlanScanApResultList(7);
- testContext.mScan.mWlanScanApResultList[1]->setValue(WlanQtUtilsAp::ConfIdSsid, "WLAN IAP 3");
- testContext.mScan.mWlanScanApResultList[1]->setValue(WlanQtUtilsAp::ConfIdSecurityMode,CMManagerShim::WlanSecModeWpa);
- testContext.mScan.mWlanScanApResultList[1]->setValue(WlanQtUtilsAp::ConfIdWpaPskUse,true);
- testContext.mScan.mWlanScanApResultList[5]->setValue(WlanQtUtilsAp::ConfIdSsid, "WLAN IAP 1");
- // SSID is found in Internet Snap, but security mode does not match:
- testContext.mScan.mWlanScanApResultList[6]->setValue(WlanQtUtilsAp::ConfIdSsid, "WLAN IAP 2");
- testContext.mScan.mWlanScanApResultList[6]->setValue(WlanQtUtilsAp::ConfIdSecurityMode,CMManagerShim::WlanSecModeWpa);
-
- // Request a scan to get result signal
- wlanQtUtils_->scanWlans();
-
- // Let active object run and verify signal.
- subTestScanResultSignal(mSignalScanReady, WlanQtUtils::ScanStatusOk);
-
- // Get and verify the list of available WLAN APs.
- QList< QSharedPointer<WlanQtUtilsIap> > iaps;
- QList< QSharedPointer<WlanQtUtilsAp> > aps;
- wlanQtUtils_->availableWlans(iaps, aps);
-
- // Verify WLAN IAP list
- testContext.mScan.verifyWlanScanIapResultList(iaps);
-
- // Verify WLAN AP list. First, remove scan results that will not appear
- // because they are WLAN IAPs.
- testContext.mScan.mWlanScanApResultList.removeAt(5);
- testContext.mScan.mWlanScanApResultList.removeAt(1);
- testContext.mScan.verifyWlanScanApResultList(aps);
-
- iaps.clear();
- aps.clear();
-}
-
-/**
- * Test refereshing of WLAN APs when client requests sequential scans.
- */
-void TestWlanQtUtils::testAvailableWlanSequence()
-{
- // **************** Before 1st scan ********************
- QList< QSharedPointer<WlanQtUtilsIap> > iaps;
- QList< QSharedPointer<WlanQtUtilsAp> > aps;
- wlanQtUtils_->availableWlans(iaps, aps);
- // Verify we have no results
- QCOMPARE(aps.count(), 0);
- QCOMPARE(iaps.count(), 0);
-
- // **************** 1st scan ********************
- // 6 APs are required for this scan
- testContext.mScan.createDefaultWlanScanApResultList(6);
-
- wlanQtUtils_->scanWlans();
- subTestScanResultSignal(mSignalScanReady, WlanQtUtils::ScanStatusOk);
-
- // Get the results for the 1st scan
- wlanQtUtils_->availableWlans(iaps, aps);
- // Verify the results for the scan
- testContext.mScan.verifyWlanScanApResultList(aps);
- QCOMPARE(iaps.count(), 0);
- aps.clear();
-
- // **************** 2nd scan ********************
- // 2 APs are required for this scan
- testContext.mScan.createDefaultWlanScanApResultList(2);
-
- wlanQtUtils_->scanWlans();
- subTestScanResultSignal(mSignalScanReady, WlanQtUtils::ScanStatusOk);
-
- // Get the results for the 2nd scan
- wlanQtUtils_->availableWlans(iaps, aps);
- // Verify the results for the scan
- testContext.mScan.verifyWlanScanApResultList(aps);
- QCOMPARE(iaps.count(), 0);
- aps.clear();
-
- // **************** 3rd scan ********************
- // 4 APs are required for the 3rd scan
- testContext.mScan.createDefaultWlanScanApResultList(4);
-
- wlanQtUtils_->scanWlans();
- subTestScanResultSignal(mSignalScanReady, WlanQtUtils::ScanStatusOk);
-
- // Get the results for the 3rd scan
- wlanQtUtils_->availableWlans(iaps, aps);
- // Verify the results for the scan
- testContext.mScan.verifyWlanScanApResultList(aps);
- QCOMPARE(iaps.count(), 0);
- aps.clear();
-}
-
-/**
- * Test availability scan that finds nothing.
- */
-void TestWlanQtUtils::testAvailableWlanScanEmpty()
-{
- // Form result list
- testContext.mScan.createDefaultWlanScanApResultList(0);
-
- // Request a direct scan to get result signal
- wlanQtUtils_->scanWlans();
-
- // Let active object run and verify signal.
- subTestScanResultSignal(mSignalScanReady, WlanQtUtils::ScanStatusOk);
-
- // Get and verify the list of available WLAN APs.
- QList< QSharedPointer<WlanQtUtilsIap> > iaps;
- QList< QSharedPointer<WlanQtUtilsAp> > aps;
- wlanQtUtils_->availableWlans(iaps, aps);
- testContext.mScan.verifyWlanScanApResultList(aps);
- QCOMPARE(iaps.count(), 0);
-}
-
-/**
- * Test WLAN availability scan failure.
- */
-void TestWlanQtUtils::testAvailableWlanScanError()
-{
- // Set the scan to fail
- testContext.mScan.mApScanRetValue = KErrGeneral;
-
- // Start the scan
- wlanQtUtils_->scanWlans();
-
- // Catch & check the scan result signal
- subTestScanResultSignal(mSignalScanReady, WlanQtUtils::ScanStatusError);
-}
-
-/**
- * Test available WLAN APs when scan is triggered by client.
- */
-void TestWlanQtUtils::testAvailableWlanAps()
-{
- testContext.mScan.createDefaultWlanScanApResultList(4);
-
- // Request a scan to get result signal
- wlanQtUtils_->scanWlanAps();
-
- // Let active object run and verify signal.
- subTestScanResultSignal(mSignalScanApReady, WlanQtUtils::ScanStatusOk);
-
- // Get and verify the list of available WLAN APs.
- QList< QSharedPointer<WlanQtUtilsAp> > aps;
- wlanQtUtils_->availableWlanAps(aps);
-
- testContext.mScan.verifyWlanScanApResultList(aps);
- aps.clear();
-}
-
-/**
- * Test a direct scan that finds nothing.
- */
-void TestWlanQtUtils::testAvailableWlanApsScanEmpty()
-{
- // Form result list
- testContext.mScan.createDefaultWlanScanApResultList(0);
-
- // Request a direct scan to get result signal
- wlanQtUtils_->scanWlanAps();
-
- // Let active object run and verify signal.
- subTestScanResultSignal(mSignalScanApReady, WlanQtUtils::ScanStatusOk);
-
- // Get and verify the list of available WLAN APs.
- QList< QSharedPointer<WlanQtUtilsAp> > aps;
- wlanQtUtils_->availableWlanAps(aps);
- testContext.mScan.verifyWlanScanApResultList(aps);
-}
-
-/**
- * Test cancellation of WLAN AP scan.
- */
-void TestWlanQtUtils::testStopWlanApScan()
-{
- // Do not complete scan request immediately
- testContext.mScan.mCompleteWlanApScan = false;
-
- // Start the scan
- wlanQtUtils_->scanWlanAps();
- // Cancel the scan
- wlanQtUtils_->stopWlanScan();
-
- // Catch & check the scan result signal
- subTestScanResultSignal(mSignalScanApReady, WlanQtUtils::ScanStatusCancelled);
-}
-
-/**
- * Test WLAN AP scan failure.
- */
-void TestWlanQtUtils::testWlanApScanError()
-{
- // Set the scan to fail
- testContext.mScan.mApScanRetValue = KErrGeneral;
-
- // Start the scan
- wlanQtUtils_->scanWlanAps();
-
- // Catch & check the scan result signal
- subTestScanResultSignal(mSignalScanApReady, WlanQtUtils::ScanStatusError);
-}
-
-/**
- * Test WLAN AP scan with special characters.
- */
-void TestWlanQtUtils::testAvailableWlanApsSpecialChars()
-{
- testContext.mScan.createDefaultWlanScanApResultList(3);
- // Set SSID's to include special characters
- testContext.mScan.mWlanScanApResultList[0]->setValue(
- WlanQtUtilsAp::ConfIdSsid,
- "\x57\x41\x50\x49\xBD\xA7\xA4\xE4\xF6");
- testContext.mScan.mWlanScanApResultList[1]->setValue(
- WlanQtUtilsAp::ConfIdSsid,
- "\x01\x02\x03\xAB\x43\x52\x41\x50\xBB\xA7\xA4\xFE\xFF");
- testContext.mScan.mWlanScanApResultList[2]->setValue(
- WlanQtUtilsAp::ConfIdSsid,
- "12345678901234567890123456789012"); // Maximum SSID length of 32 bytes
-
- // Request a scan to get result signal
- wlanQtUtils_->scanWlanAps();
-
- // Let active object run and verify signal.
- subTestScanResultSignal(mSignalScanApReady, WlanQtUtils::ScanStatusOk);
-
- // Get and verify the list of available WLAN APs.
- QList< QSharedPointer<WlanQtUtilsAp> > aps;
- wlanQtUtils_->availableWlanAps(aps);
-
- testContext.mScan.verifyWlanScanApResultList(aps);
- aps.clear();
-}
-
-/**
- * Test a basic direct scan.
- */
-void TestWlanQtUtils::testDirectScanBasic()
-{
- // Form result list
- testContext.mScan.createDefaultWlanScanApResultList(2);
- testContext.mScan.mWlanScanApResultList[0]->setValue(WlanQtUtilsAp::ConfIdSsid, "testssid");
- testContext.mScan.mWlanScanApResultList[0]->setValue(WlanQtUtilsAp::ConfIdSecurityMode, CMManagerShim::WlanSecModeOpen);
- testContext.mScan.mWlanScanApResultList[1]->setValue(WlanQtUtilsAp::ConfIdSsid, "testssid");
- testContext.mScan.mWlanScanApResultList[1]->setValue(WlanQtUtilsAp::ConfIdBssid, "654321");
- testContext.mScan.mWlanScanApResultList[1]->setValue(WlanQtUtilsAp::ConfIdSecurityMode, CMManagerShim::WlanSecModeWpa);
-
- // Request a direct scan to get result signal
- wlanQtUtils_->scanWlanDirect(QString("testssid"));
-
- // Let active object run and verify signal.
- subTestScanResultSignal(mSignalScanDirectReady, WlanQtUtils::ScanStatusOk);
-
- // Get and verify the list of available WLAN APs.
- QList< QSharedPointer<WlanQtUtilsAp> > aps;
- wlanQtUtils_->availableWlanAps(aps);
-
- testContext.mScan.verifyWlanScanApResultList(aps);
- aps.clear();
-}
-
-/**
- * Test a direct scan that finds nothing.
- */
-void TestWlanQtUtils::testDirectScanEmpty()
-{
- // Form result list
- testContext.mScan.createDefaultWlanScanApResultList(0);
-
- // Request a direct scan to get result signal
- wlanQtUtils_->scanWlanDirect(QString("notavailable"));
-
- // Let active object run and verify signal.
- subTestScanResultSignal(mSignalScanDirectReady, WlanQtUtils::ScanStatusOk);
-
- // Get and verify the list of available WLAN APs.
- QList< QSharedPointer<WlanQtUtilsAp> > aps;
- wlanQtUtils_->availableWlanAps(aps);
- testContext.mScan.verifyWlanScanApResultList(aps);
-}
-
-/**
- * Test cancellation of direct scan.
- */
-void TestWlanQtUtils::testDirectScanStop()
-{
- // Do not complete scan request immediately
- testContext.mScan.mCompleteWlanApScan = false;
-
- // Start the scan
- wlanQtUtils_->scanWlanDirect(QString("testssid"));
- // Cancel the scan
- wlanQtUtils_->stopWlanScan();
-
- // Catch & check the scan result signal
- subTestScanResultSignal(mSignalScanDirectReady, WlanQtUtils::ScanStatusCancelled);
-}
-
-/**
- * Test direct scan failure.
- */
-void TestWlanQtUtils::testDirectScanError()
-{
- // Set the scan to fail
- testContext.mScan.mApScanRetValue = KErrGeneral;
-
- // Start the scan
- wlanQtUtils_->scanWlanDirect(QString("boundtofail"));
-
- // Catch & check the scan result signal
- subTestScanResultSignal(mSignalScanDirectReady, WlanQtUtils::ScanStatusError);
-}
-
-/**
- * This function tests creation of WLAN IAP in a succesful manner.
- * - WLAN scan is made because otherwise we cannot verify that IAP creation is successful.
- * - Check that there are no available WLAN IAPs.
- * - Fetch SNAP list.
- * - Create WLAN IAP.
- * - Check that WLAN IAP has been created and that this IAP is not in WLAN AP scan results.
- */
-void TestWlanQtUtils::testCreateIapOk()
-{
- // Form WLAN AP scan result list
- testContext.mScan.createDefaultWlanScanApResultList(1);
- testContext.mScan.mWlanScanApResultList[0]->setValue(WlanQtUtilsAp::ConfIdSsid, "testCreateIapOk");
- testContext.mScan.mWlanScanApResultList[0]->setValue(WlanQtUtilsAp::ConfIdSecurityMode,CMManagerShim::WlanSecModeWpa);
- testContext.mScan.mWlanScanApResultList[0]->setValue(WlanQtUtilsAp::ConfIdWpaPskUse,true);
-
- // Form WLAN IAP scan result list
- testContext.mScan.createDefaultWlanScanIapResultList(0);
-
- // Request a scan to get result signal
- wlanQtUtils_->scanWlans();
-
- // Let active object run and verify signal.
- subTestScanResultSignal(mSignalScanReady, WlanQtUtils::ScanStatusOk);
-
- // Ensure there are no WLAN IAPs but there is one scan result.
- QList< QSharedPointer<WlanQtUtilsIap> > iaps;
- QList< QSharedPointer<WlanQtUtilsAp> > aps;
- wlanQtUtils_->availableWlans(iaps, aps);
-
- QCOMPARE(iaps.count(), 0);
- testContext.mScan.verifyWlanScanApResultList(aps);
-
- // Execute createIap() function
- QScopedPointer<WlanQtUtilsAp> wlanAp(subTestNewAp());
- wlanAp->setValue(WlanQtUtilsAp::ConfIdSsid, "testCreateIapOk");
- wlanAp->setValue(WlanQtUtilsAp::ConfIdSecurityMode, CMManagerShim::WlanSecModeWpa);
- wlanAp->setValue(WlanQtUtilsAp::ConfIdWpaPskUse, true);
- wlanAp->setValue(WlanQtUtilsAp::ConfIdWpaPsk, "100euronlounas");
- int iapId = wlanQtUtils_->createIap(wlanAp.data());
- QVERIFY(iapId != WlanQtUtils::IapIdNone);
-
- // Form WLAN IAP scan result list
- testContext.mScan.createDefaultWlanScanIapResultList(1);
- testContext.mScan.mWlanScanIapResultList[0]->setValue(WlanQtUtilsIap::ConfIdIapId, iapId);
- testContext.mScan.mWlanScanIapResultList[0]->setValue(WlanQtUtilsIap::ConfIdName, QString("testCreateIapOk"));
- testContext.mScan.mWlanScanIapResultList[0]->setValue(WlanQtUtilsIap::ConfIdSsid, QString("testCreateIapOk"));
- testContext.mScan.mWlanScanIapResultList[0]->setValue(WlanQtUtilsIap::ConfIdSecurityMode, (int)(CMManagerShim::WlanSecModeWpa));
- testContext.mScan.mWlanScanIapResultList[0]->setValue(WlanQtUtilsIap::ConfIdWpaPskUse, true);
-
- // Re-execute the scan so that scan lists get updated due to the IAP creation
- wlanQtUtils_->scanWlans();
- subTestScanResultSignal(mSignalScanReady, WlanQtUtils::ScanStatusOk);
-
- // Verify that created IAP is in the IAP list and AP list is empty.
- wlanQtUtils_->availableWlans(iaps, aps);
- testContext.mScan.verifyWlanScanIapResultList(iaps);
- QCOMPARE(aps.count(), 0);
-}
-
-/**
- * This function tests creation of WLAN IAP in unsuccesful manner.
- */
-void TestWlanQtUtils::testCreateIapErr()
-{
- // Execute createIap() function with invalid parameters
- QScopedPointer<WlanQtUtilsAp> wlanAp(subTestNewAp());
- wlanAp->setValue(WlanQtUtilsAp::ConfIdSsid, "testCreateIapErr");
- wlanAp->setValue(WlanQtUtilsAp::ConfIdWpaPskUse, false);
- // Invalid security mode -> exception
- wlanAp->setValue(
- WlanQtUtilsAp::ConfIdSecurityMode,
- CMManager::EWlanSecModeWAPI + 1111);
- int iapId = wlanQtUtils_->createIap(wlanAp.data());
- QVERIFY(iapId == WlanQtUtils::IapIdNone);
-}
-
-/**
- * This function tests creation of WLAN IAPs with different WEP keys.
- */
-void TestWlanQtUtils::testCreateIapWepKeys()
-{
- // Create the IAPs with different kind of WEP keys
- QScopedPointer<WlanQtUtilsAp> wlanAp(subTestNewAp());
- wlanAp->setValue(WlanQtUtilsAp::ConfIdSsid, "testCreateIapWepKeys");
- wlanAp->setValue(WlanQtUtilsAp::ConfIdSecurityMode, CMManagerShim::WlanSecModeWep);
- wlanAp->setValue(WlanQtUtilsAp::ConfIdWepDefaultIndex, CMManagerShim::WepKeyIndex2);
- // All keys in HEX format
- wlanAp->setValue(WlanQtUtilsAp::ConfIdWepKey1, "1234567891");
- wlanAp->setValue(WlanQtUtilsAp::ConfIdWepKey2, "1234567891");
- wlanAp->setValue(WlanQtUtilsAp::ConfIdWepKey3, "1234567891");
- wlanAp->setValue(WlanQtUtilsAp::ConfIdWepKey4, "1234567891");
-
- int iapId = wlanQtUtils_->createIap(wlanAp.data());
- QVERIFY(iapId != WlanQtUtils::IapIdNone);
-
- wlanAp->setValue(WlanQtUtilsAp::ConfIdWepDefaultIndex, CMManagerShim::WepKeyIndex3);
- // All keys in ASCII format
- wlanAp->setValue(WlanQtUtilsAp::ConfIdWepKey1, "12345");
- wlanAp->setValue(WlanQtUtilsAp::ConfIdWepKey2, "12345");
- wlanAp->setValue(WlanQtUtilsAp::ConfIdWepKey3, "12345");
- wlanAp->setValue(WlanQtUtilsAp::ConfIdWepKey4, "12345");
-
- iapId = wlanQtUtils_->createIap(wlanAp.data());
- QVERIFY(iapId != WlanQtUtils::IapIdNone);
-
- wlanAp->setValue(WlanQtUtilsAp::ConfIdWepDefaultIndex, CMManagerShim::WepKeyIndex4);
- // Different keys, including a missing one
- wlanAp->setValue(WlanQtUtilsAp::ConfIdWepKey1, "");
- wlanAp->setValue(WlanQtUtilsAp::ConfIdWepKey2, "12345678911234567892123456");
- wlanAp->setValue(WlanQtUtilsAp::ConfIdWepKey3, "12345");
- wlanAp->setValue(WlanQtUtilsAp::ConfIdWepKey4, "1234567891123");
-
- iapId = wlanQtUtils_->createIap(wlanAp.data());
- QVERIFY(iapId != WlanQtUtils::IapIdNone);
-}
-
-/**
- * This function tests updating of WLAN IAP in a succesful manner.
- */
-void TestWlanQtUtils::testUpdateIapOk()
-{
- // Create an IAP that can be updated
- QScopedPointer<WlanQtUtilsAp> wlanAp(subTestNewAp());
- wlanAp->setValue(WlanQtUtilsAp::ConfIdSsid, "testUpdateIapOk");
- int iapId = wlanQtUtils_->createIap(wlanAp.data());
-
- // Update the name and verify it changed
- wlanAp->setValue(WlanQtUtilsAp::ConfIdSsid, "UPDATED_testUpdateIapOk");
-
- bool success = wlanQtUtils_->updateIap(iapId, wlanAp.data());
- QVERIFY(success == true);
- QString name = wlanQtUtils_->iapName(iapId);
- QCOMPARE(name, QString("UPDATED_testUpdateIapOk"));
-}
-
-/**
- * This function tests updating of WLAN IAP in unsuccesful manner.
- */
-void TestWlanQtUtils::testUpdateIapErr()
-{
- // Try to update a non-existing IAP
- WlanQtUtilsAp wlanAp;
- bool success = wlanQtUtils_->updateIap(200, &wlanAp);
- QVERIFY(success == false);
-}
-
-/**
- * This function tests deletion of WLAN IAP in a succesful manner.
- */
-void TestWlanQtUtils::testDeleteIapOk()
-{
- // Create an IAP that can be deleted
- QScopedPointer<WlanQtUtilsAp> wlanAp(subTestNewAp());
- wlanAp->setValue(WlanQtUtilsAp::ConfIdSsid, "testDeleteIapOk");
- int iapId = wlanQtUtils_->createIap(wlanAp.data());
-
- // Check that IAP now exists
- QString name = wlanQtUtils_->iapName(iapId);
- QCOMPARE(name, QString("testDeleteIapOk"));
-
- // Delete it and verify it does not exist anymore
- wlanQtUtils_->deleteIap(iapId);
- name = wlanQtUtils_->iapName(iapId);
- QVERIFY(name.isEmpty());
-}
-
-/**
- * This function tests deletion of WLAN IAP in unsuccesful manner.
- */
-void TestWlanQtUtils::testDeleteIapErr()
-{
- // Try to delete a non-existing IAP
- wlanQtUtils_->deleteIap(200);
-
- // No signals or return values to verify
-}
-
-/**
- * This function tests connecting to IAP in a succesful manner.
- */
-void TestWlanQtUtils::testConnectIapOk()
-{
- testContext.esock_.startRetValue_ = KErrNone;
-
- // Esock stub completes connection creation immediately
- wlanQtUtils_->connectIap(5);
-
- // Connection creation in ConnMon interface
- testContext.connMon_.activeConnections_.createDefaultActiveConnList(1, 5);
- wlanQtUtils_->d_ptr->mConMonWrapper->d_ptrInfo->EventL(CConnMonEventBase(
- EConnMonCreateConnection,
- testContext.connMon_.activeConnections_.activeConnList_[0]->connectionId()));
-
- // Connection status change in ConnMon interface
- wlanQtUtils_->d_ptr->mConMonWrapper->d_ptrInfo->EventL(CConnMonConnectionStatusChange(
- testContext.connMon_.activeConnections_.activeConnList_[0]->connectionId(),
- 0,
- KConnectionOpen));
-
- // Receive signal for connection opening (caused by connectIap, which completed immediately)
- QList<QVariant> arguments;
- subTestSignalWaitAndTake(signalWlanNetworkOpened_, &arguments);
- QCOMPARE(arguments.at(0).toInt(), 5);
-
- // Connection status change to opened in ConnMon interface. Sub test cases between test
- // cases check that no extra signals are sent
- wlanQtUtils_->d_ptr->mConMonWrapper->d_ptrInfo->EventL(CConnMonConnectionStatusChange(
- testContext.connMon_.activeConnections_.activeConnList_[0]->connectionId(),
- 0,
- KLinkLayerOpen));
-}
-
-/**
- * This function tests connecting to IAP in unsuccesful manner.
- */
-void TestWlanQtUtils::testConnectIapErr()
-{
- testContext.esock_.startRetValue_ = KErrGeneral;
-
- wlanQtUtils_->connectIap(7);
-
- testContext.connMon_.activeConnections_.createDefaultActiveConnList(1, 7);
- wlanQtUtils_->d_ptr->mConMonWrapper->d_ptrInfo->EventL(CConnMonEventBase(
- EConnMonCreateConnection,
- testContext.connMon_.activeConnections_.activeConnList_[0]->connectionId()));
- wlanQtUtils_->d_ptr->mConMonWrapper->d_ptrInfo->EventL(CConnMonConnectionStatusChange(
- testContext.connMon_.activeConnections_.activeConnList_[0]->connectionId(),
- 0,
- KConnectionOpen));
-
- wlanQtUtils_->d_ptr->mConMonWrapper->d_ptrInfo->EventL(CConnMonEventBase(
- EConnMonDeleteConnection,
- testContext.connMon_.activeConnections_.activeConnList_[0]->connectionId()));
-
- QList<QVariant> arguments;
- subTestSignalWaitAndTake(signalWlanNetworkClosed_, &arguments);
- QCOMPARE(arguments.at(0).toInt(), 7);
- QCOMPARE(arguments.at(1).toInt(), KErrGeneral);
-}
-
-// TODO: testDisconnectFail cases are needed when fail branches are
-// implemented into the connmon wrapper
-/**
- * This function tests IAP disconnecting functionality.
- */
-void TestWlanQtUtils::testDisconnectIapOk()
-{
- // Create and connect an IAP we can then disconnect
- QScopedPointer<WlanQtUtilsAp> wlanAp(subTestNewAp());
- wlanAp->setValue(WlanQtUtilsAp::ConfIdSsid, "testDisconnectIapOk");
- wlanAp->setValue(WlanQtUtilsAp::ConfIdSecurityMode, CMManagerShim::WlanSecModeWpa);
-
- int iapId = wlanQtUtils_->createIap(wlanAp.data());
- testContext.esock_.startRetValue_ = KErrNone;
- wlanQtUtils_->connectIap(iapId);
- QList<QVariant> arguments;
- subTestSignalWaitAndTake(signalWlanNetworkOpened_, &arguments);
- QCOMPARE(arguments.at(0).toInt(), iapId);
-
- // Make sure there is the newly created connection active and also
- // another one to gain coverage
- testContext.connMon_.activeConnections_.createDefaultActiveConnList(2, iapId - 1);
- // The disconnect function does not have any return values or
- // signals related to the disconnection, thus plain
- // function call is done for the test.
- wlanQtUtils_->disconnectIap(iapId);
-}
-
-/**
- * This function tests IAP disconnecting functionality when there is no
- * IAP to disconnect.
- */
-void TestWlanQtUtils::testDisconnectIapIgnored()
-{
- testContext.connMon_.activeConnections_.createDefaultActiveConnList(1, 150);
- wlanQtUtils_->disconnectIap(200);
- wlanQtUtils_->disconnectIap(WlanQtUtils::IapIdNone);
-}
-
-/**
- * This function tests connection status getter.
- */
-void TestWlanQtUtils::testConnectionStatus()
-{
- // Request status when there is no connection
- WlanQtUtils::ConnStatus status = wlanQtUtils_->connectionStatus();
- QCOMPARE(status, WlanQtUtils::ConnStatusDisconnected);
-
- // Make a connection and request its status
- testContext.connMon_.activeConnections_.createDefaultActiveConnList(1, 5);
- // Send event for connection creation.
- wlanQtUtils_->d_ptr->mConMonWrapper->d_ptrInfo->EventL(CConnMonEventBase(
- EConnMonCreateConnection,
- testContext.connMon_.activeConnections_.activeConnList_[0]->connectionId()));
- // Send events for connection status change -> connecting
- wlanQtUtils_->d_ptr->mConMonWrapper->d_ptrInfo->EventL(CConnMonConnectionStatusChange(
- testContext.connMon_.activeConnections_.activeConnList_[0]->connectionId(),
- 0,
- KStartingConnection));
-
- // Request status when there is connection in connecting state
- status = wlanQtUtils_->connectionStatus();
- QCOMPARE(status, WlanQtUtils::ConnStatusConnecting);
-
- // Send events for connection status change -> connected
- wlanQtUtils_->d_ptr->mConMonWrapper->d_ptrInfo->EventL(CConnMonConnectionStatusChange(
- testContext.connMon_.activeConnections_.activeConnList_[0]->connectionId(),
- 0,
- KLinkLayerOpen));
-
- QList<QVariant> arguments;
- subTestSignalWaitAndTake(signalWlanNetworkOpened_, &arguments);
- QCOMPARE(arguments.at(0).toInt(), 5);
-
- // Request status when there is connection in connected state
- status = wlanQtUtils_->connectionStatus();
- QCOMPARE(status, WlanQtUtils::ConnStatusConnected);
-}
-
-/**
- * This function tests IAP name getter with existing IAP ID.
- */
-void TestWlanQtUtils::testIapNameFound()
-{
- // Create the IAP we want to find with the getter
- QScopedPointer<WlanQtUtilsAp> wlanAp(subTestNewAp());
- wlanAp->setValue(WlanQtUtilsAp::ConfIdSsid, "testIapFound");
- wlanAp->setValue(WlanQtUtilsAp::ConfIdSecurityMode, CMManagerShim::WlanSecModeWpa2);
-
- int iapId = wlanQtUtils_->createIap(wlanAp.data());
-
- // Execute the function under test and check that we got the correct name
- QString name = wlanQtUtils_->iapName(iapId);
- QCOMPARE(name, QString("testIapFound"));
-}
-
-/**
- * This function tests IAP name getter with non-existing IAP ID.
- */
-void TestWlanQtUtils::testIapNameNotFound()
-{
- // Execute the function under test and check that we get no name as result
- QString name = wlanQtUtils_->iapName(200); // id in valid range, but not found -> KErrNotFound
- QVERIFY(name.isEmpty());
-
- name = wlanQtUtils_->iapName(1000); // id not in valid range -> KErrArgument
- QVERIFY(name.isEmpty());
-
- name = wlanQtUtils_->iapName(3); // id of cellular IAP -> discarded
- QVERIFY(name.isEmpty());
-}
-
-/**
- * This function tests active WLAN IAP getter with existing connection.
- */
-void TestWlanQtUtils::testActiveIapFound()
-{
- // Create the IAP we want to find with the getter
- QScopedPointer<WlanQtUtilsAp> wlanAp(subTestNewAp());
- wlanAp->setValue(WlanQtUtilsAp::ConfIdSsid, "testConnectedWlanIdFound");
- wlanAp->setValue(WlanQtUtilsAp::ConfIdSecurityMode, CMManagerShim::WlanSecModeWpa);
-
- int iapId = wlanQtUtils_->createIap(wlanAp.data());
-
- testContext.connMon_.activeConnections_.createDefaultActiveConnList(1, iapId);
-
- // Send event for connection creation.
- wlanQtUtils_->d_ptr->mConMonWrapper->d_ptrInfo->EventL(CConnMonEventBase(
- EConnMonCreateConnection,
- testContext.connMon_.activeConnections_.activeConnList_[0]->connectionId()));
-
- // Send events for connection status change -> opened.
- wlanQtUtils_->d_ptr->mConMonWrapper->d_ptrInfo->EventL(CConnMonConnectionStatusChange(
- testContext.connMon_.activeConnections_.activeConnList_[0]->connectionId(),
- 0,
- KStartingConnection));
- wlanQtUtils_->d_ptr->mConMonWrapper->d_ptrInfo->EventL(CConnMonConnectionStatusChange(
- testContext.connMon_.activeConnections_.activeConnList_[0]->connectionId(),
- 0,
- KLinkLayerOpen));
-
- QList<QVariant> arguments;
- subTestSignalWaitAndTake(signalWlanNetworkOpened_, &arguments);
- QCOMPARE(arguments.at(0).toInt(), iapId);
-
- // Execute the function under test and check that we get valid ID as result
- int id = wlanQtUtils_->activeIap();
- QCOMPARE(id, iapId);
-}
-
-/**
- * This function tests active WLAN IAP getter with connection existing already during dll construction.
- */
-void TestWlanQtUtils::testActiveIapFoundConstructor()
-{
- // IAP IDs 4 and 5 exist in default commsdat file, 4 is GPRS, 5 is WLAN
- testContext.connMon_.activeConnections_.createDefaultActiveConnList(2, 4);
- testContext.connMon_.activeConnections_.activeConnList_[0]->connMonBearerType_ = EBearerGPRS;
-
- // Create a new instance in order to test functionality triggered in constructor.
- WlanQtUtils *utils = new WlanQtUtils();
-
- // Execute the function under test and check that we get valid ID as result
- int id = utils->activeIap();
- QCOMPARE(id, 5);
-
- delete utils;
-}
-
-/**
- * This function tests active WLAN IAP getter without existing connection.
- */
-void TestWlanQtUtils::testActiveIapNotFound()
-{
- // Execute the function under test and check that we get invalid ID as result
- int id = wlanQtUtils_->activeIap();
- QCOMPARE(id, WlanQtUtils::IapIdNone);
-}
-
-/**
- * Test WLAN scan triggering interface.
- */
-void TestWlanQtUtils::testScanWlans()
-{
- // Execute function under test
- wlanQtUtils_->scanWlans();
-
- // No need to verify scan results here, testAvailableWlan* test cases
- // are for that. Just make sure the result signal is received.
- subTestScanResultSignal(mSignalScanReady, WlanQtUtils::ScanStatusOk);
-}
-
-/**
- * Test WLAN scan result ignoring & deletion during an ongoing request.
- */
-void TestWlanQtUtils::testScanWlansIgnored()
-{
- // Do not complete scan request immediately
- testContext.mScan.mCompleteWlanApScan = false;
-
- // Execute function under test
- wlanQtUtils_->scanWlans();
-
- // Ongoing scan is cancelled in destructors
-}
-
-/**
- * Test WLAN scan stopping interface when scan is active.
- */
-void TestWlanQtUtils::testStopWlanScanOk()
-{
- // Do not complete scan request immediately
- testContext.mScan.mCompleteWlanApScan = false;
- // Start a scan
- wlanQtUtils_->scanWlans();
- // Execute function under test
- wlanQtUtils_->stopWlanScan();
-
- // Catch & check the scan result signal
- subTestScanResultSignal(mSignalScanReady, WlanQtUtils::ScanStatusCancelled);
-}
-
-/**
- * Test WLAN scan stopping interface when no scan is ongoing.
- */
-void TestWlanQtUtils::testStopWlanScanIgnored()
-{
- // Stop without having an active scan
- wlanQtUtils_->stopWlanScan();
-
- // No return values or signals to verify
-}
-
-/**
- * This function tests Wlan network opening signal when network is not opened by the dll.
- */
-void TestWlanQtUtils::testWlanNetworkOpened()
-{
- testContext.connMon_.activeConnections_.createDefaultActiveConnList(1, 5);
-
- // Send event for connection creation.
- wlanQtUtils_->d_ptr->mConMonWrapper->d_ptrInfo->EventL(CConnMonEventBase(
- EConnMonCreateConnection,
- testContext.connMon_.activeConnections_.activeConnList_[0]->connectionId()));
-
- // Send events for connection status change -> opened.
- wlanQtUtils_->d_ptr->mConMonWrapper->d_ptrInfo->EventL(CConnMonConnectionStatusChange(
- testContext.connMon_.activeConnections_.activeConnList_[0]->connectionId(),
- 0,
- KConnectionOpen));
- wlanQtUtils_->d_ptr->mConMonWrapper->d_ptrInfo->EventL(CConnMonConnectionStatusChange(
- testContext.connMon_.activeConnections_.activeConnList_[0]->connectionId(),
- 0,
- KConfigDaemonFinishedRegistration));
- wlanQtUtils_->d_ptr->mConMonWrapper->d_ptrInfo->EventL(CConnMonConnectionStatusChange(
- testContext.connMon_.activeConnections_.activeConnList_[0]->connectionId(),
- 0,
- KLinkLayerOpen));
-
- QList<QVariant> arguments;
- subTestSignalWaitAndTake(signalWlanNetworkOpened_, &arguments);
- QCOMPARE(arguments.at(0).toInt(), 5);
-
- // Send uninteresting event to gain coverage
- wlanQtUtils_->d_ptr->mConMonWrapper->d_ptrInfo->EventL(CConnMonEventBase(
- EConnMonNetworkStatusChange,
- 10));
-}
-
-/**
- * This function tests Wlan network closing signal when network is not closed by the dll.
- */
-void TestWlanQtUtils::testWlanNetworkClosed()
-{
- // First create a connection
- testContext.connMon_.activeConnections_.createDefaultActiveConnList(1, 5);
-
- // Send event for connection creation.
- wlanQtUtils_->d_ptr->mConMonWrapper->d_ptrInfo->EventL(CConnMonEventBase(
- EConnMonCreateConnection,
- testContext.connMon_.activeConnections_.activeConnList_[0]->connectionId()));
-
- // Send events for connection status change -> opened.
- wlanQtUtils_->d_ptr->mConMonWrapper->d_ptrInfo->EventL(CConnMonConnectionStatusChange(
- testContext.connMon_.activeConnections_.activeConnList_[0]->connectionId(),
- 0,
- KConnectionOpen));
- wlanQtUtils_->d_ptr->mConMonWrapper->d_ptrInfo->EventL(CConnMonConnectionStatusChange(
- testContext.connMon_.activeConnections_.activeConnList_[0]->connectionId(),
- 0,
- KLinkLayerOpen));
-
- QList<QVariant> arguments;
- subTestSignalWaitAndTake(signalWlanNetworkOpened_, &arguments);
- QCOMPARE(arguments.at(0).toInt(), 5);
-
- // Send event for connection status change -> closed.
- wlanQtUtils_->d_ptr->mConMonWrapper->d_ptrInfo->EventL(CConnMonConnectionStatusChange(
- testContext.connMon_.activeConnections_.activeConnList_[0]->connectionId(),
- 0,
- KLinkLayerClosed));
-
- // Send event for connection deletion.
- wlanQtUtils_->d_ptr->mConMonWrapper->d_ptrInfo->EventL(CConnMonEventBase(
- EConnMonDeleteConnection,
- testContext.connMon_.activeConnections_.activeConnList_[0]->connectionId()));
-
- subTestSignalWaitAndTake(signalWlanNetworkClosed_, &arguments);
- QCOMPARE(arguments.at(0).toInt(), 5);
- QCOMPARE(arguments.at(1).toInt(), KErrNone);
-}
-
-/**
- * This function tests WlanQtUtilsAp copy constructor.
- */
-void TestWlanQtUtils::testApCopyConstructor()
-{
- WlanQtUtilsAp firstAp;
- firstAp.setValue(WlanQtUtilsAp::ConfIdSsid, "testApCopyConstructor");
- firstAp.setValue(WlanQtUtilsAp::ConfIdSignalStrength, 90);
- firstAp.setValue(WlanQtUtilsAp::ConfIdConnectionMode, CMManagerShim::Infra);
- firstAp.setValue(WlanQtUtilsAp::ConfIdSecurityMode, CMManagerShim::WlanSecModeWpa);
- firstAp.setValue(WlanQtUtilsAp::ConfIdWpaPskUse, true);
- firstAp.setValue(WlanQtUtilsAp::ConfIdWpaPsk, "100euronlounas");
-
- // Create the copy AP
- WlanQtUtilsAp secondAp(firstAp);
- QCOMPARE(secondAp.value(WlanQtUtilsAp::ConfIdSsid).toString(), QString("testApCopyConstructor"));
- QCOMPARE(secondAp.value(WlanQtUtilsAp::ConfIdSecurityMode).toInt(), (int)(CMManagerShim::WlanSecModeWpa));
- QCOMPARE(secondAp.value(WlanQtUtilsAp::ConfIdWpaPskUse).toBool(), true);
- QCOMPARE(secondAp.value(WlanQtUtilsAp::ConfIdSignalStrength).toInt(), 90);
- QCOMPARE(secondAp.value(WlanQtUtilsAp::ConfIdConnectionMode).toInt(), (int)(CMManagerShim::Infra));
- QCOMPARE(secondAp.value(WlanQtUtilsAp::ConfIdWpaPsk).toString(), QString("100euronlounas"));
-}
-
-/**
- * This function tests ICT when connection test passes.
- */
-void TestWlanQtUtils::testConnectionTestOk()
-{
- // Create new IAP to test
- QScopedPointer<WlanQtUtilsAp> wlanAp(subTestNewAp());
- wlanAp->setValue(WlanQtUtilsAp::ConfIdSsid, "testConnectionTestOk");
- int iapId = wlanQtUtils_->createIap(wlanAp.data());
- QVERIFY(iapId != WlanQtUtils::IapIdNone);
-
- testContext.esock_.startRetValue_ = KErrNone;
-
- // Esock stub completes connection creation immediately
- wlanQtUtils_->connectIap(iapId, true);
-
- // Connection creation in ConnMon interface
- testContext.connMon_.activeConnections_.createDefaultActiveConnList(1, iapId);
- wlanQtUtils_->d_ptr->mConMonWrapper->d_ptrInfo->EventL(CConnMonEventBase(
- EConnMonCreateConnection,
- testContext.connMon_.activeConnections_.activeConnList_[0]->connectionId()));
-
- // Connection status change in ConnMon interface
- wlanQtUtils_->d_ptr->mConMonWrapper->d_ptrInfo->EventL(CConnMonConnectionStatusChange(
- testContext.connMon_.activeConnections_.activeConnList_[0]->connectionId(),
- 0,
- KConnectionOpen));
-
- // Receive signal for connection opening (caused by connectIap, which completed immediately)
- QList<QVariant> arguments;
- subTestSignalWaitAndTake(signalWlanNetworkOpened_, &arguments);
- QCOMPARE(arguments.at(0).toInt(), iapId);
-
- // Connection status change to opened in ConnMon interface. Sub test cases between test
- // cases check that no extra signals are sent
- wlanQtUtils_->d_ptr->mConMonWrapper->d_ptrInfo->EventL(CConnMonConnectionStatusChange(
- testContext.connMon_.activeConnections_.activeConnList_[0]->connectionId(),
- 0,
- KLinkLayerOpen));
-
- // Connection test automatically started at this point. Call result function explicitly
- // No interface exists that we could check that the IAP is moved to Internet SNAP correctly
- wlanQtUtils_->d_ptr->updateIctResult(IctsWlanLoginInterface::IctsPassed);
-
- subTestSignalWaitAndTake(signalIctResult_, &arguments);
- QCOMPARE(arguments.at(0).toInt(), iapId);
- QCOMPARE(arguments.at(1).toInt(), (int)WlanQtUtils::IctPassed);
-}
-
-/**
- * This function tests ICT when connection test fails.
- */
-void TestWlanQtUtils::testConnectionTestErr()
-{
- // Create and connect an IAP and request ICT to be run
- QScopedPointer<WlanQtUtilsAp> wlanAp(subTestNewAp());
- wlanAp->setValue(WlanQtUtilsAp::ConfIdSsid, "testConnectionTestErr1");
- wlanAp->setValue(WlanQtUtilsAp::ConfIdSecurityMode, CMManagerShim::WlanSecModeWpa);
-
- int iapId = wlanQtUtils_->createIap(wlanAp.data());
- wlanQtUtils_->connectIap(iapId, true);
-
- testContext.connMon_.activeConnections_.createDefaultActiveConnList(1, iapId);
- wlanQtUtils_->d_ptr->mConMonWrapper->d_ptrInfo->EventL(CConnMonEventBase(
- EConnMonCreateConnection,
- testContext.connMon_.activeConnections_.activeConnList_[0]->connectionId()));
- wlanQtUtils_->d_ptr->mConMonWrapper->d_ptrInfo->EventL(CConnMonConnectionStatusChange(
- testContext.connMon_.activeConnections_.activeConnList_[0]->connectionId(),
- 0,
- KConnectionOpen));
- QList<QVariant> arguments;
- subTestSignalWaitAndTake(signalWlanNetworkOpened_, &arguments);
- QCOMPARE(arguments.at(0).toInt(), iapId);
-
- wlanQtUtils_->d_ptr->mConMonWrapper->d_ptrInfo->EventL(CConnMonConnectionStatusChange(
- testContext.connMon_.activeConnections_.activeConnList_[0]->connectionId(),
- 0,
- KLinkLayerOpen));
-
- // Connection test automatically started at this point. Call result function explicitly
- // No interface exists that we could check that IAP is not moved to another SNAP
- wlanQtUtils_->d_ptr->updateIctResult(IctsWlanLoginInterface::IctsFailed);
-
- subTestSignalWaitAndTake(signalIctResult_, &arguments);
- QCOMPARE(arguments.at(0).toInt(), iapId);
- QCOMPARE(arguments.at(1).toInt(), (int)WlanQtUtils::IctFailed);
-
- // Repeat with cancel status
- // Send event for connection status change -> closed.
- wlanQtUtils_->d_ptr->mConMonWrapper->d_ptrInfo->EventL(CConnMonConnectionStatusChange(
- testContext.connMon_.activeConnections_.activeConnList_[0]->connectionId(),
- 0,
- KLinkLayerClosed));
-
- // Send event for connection deletion.
- wlanQtUtils_->d_ptr->mConMonWrapper->d_ptrInfo->EventL(CConnMonEventBase(
- EConnMonDeleteConnection,
- testContext.connMon_.activeConnections_.activeConnList_[0]->connectionId()));
-
- subTestSignalWaitAndTake(signalWlanNetworkClosed_, &arguments);
- QCOMPARE(arguments.at(0).toInt(), iapId);
- QCOMPARE(arguments.at(1).toInt(), KErrNone);
-
- wlanAp->setValue(WlanQtUtilsAp::ConfIdSsid, "testConnectionTestErr2");
-
- iapId = wlanQtUtils_->createIap(wlanAp.data());
- wlanQtUtils_->connectIap(iapId, true);
-
- testContext.connMon_.activeConnections_.createDefaultActiveConnList(1, iapId);
- wlanQtUtils_->d_ptr->mConMonWrapper->d_ptrInfo->EventL(CConnMonEventBase(
- EConnMonCreateConnection,
- testContext.connMon_.activeConnections_.activeConnList_[0]->connectionId()));
- wlanQtUtils_->d_ptr->mConMonWrapper->d_ptrInfo->EventL(CConnMonConnectionStatusChange(
- testContext.connMon_.activeConnections_.activeConnList_[0]->connectionId(),
- 0,
- KConnectionOpen));
- subTestSignalWaitAndTake(signalWlanNetworkOpened_, &arguments);
- QCOMPARE(arguments.at(0).toInt(), iapId);
-
- wlanQtUtils_->d_ptr->mConMonWrapper->d_ptrInfo->EventL(CConnMonConnectionStatusChange(
- testContext.connMon_.activeConnections_.activeConnList_[0]->connectionId(),
- 0,
- KLinkLayerOpen));
-
- // Connection test automatically started at this point. Call result function explicitly
- // No interface exists that we could check that IAP is not moved to another SNAP
- wlanQtUtils_->d_ptr->updateIctResult(IctsWlanLoginInterface::IctsCanceled);
-
- subTestSignalWaitAndTake(signalIctResult_, &arguments);
- QCOMPARE(arguments.at(0).toInt(), iapId);
- QCOMPARE(arguments.at(1).toInt(), (int)WlanQtUtils::IctCancelled);
-}
-
-/**
- * This function tests ICT when connection test passes in hotspot case.
- */
-void TestWlanQtUtils::testConnectionTestHotspot()
-{
- // Create new IAP to test
- QScopedPointer<WlanQtUtilsAp> wlanAp(subTestNewAp());
- wlanAp->setValue(WlanQtUtilsAp::ConfIdSsid, "testConnectionTestHotspot");
- int iapId = wlanQtUtils_->createIap(wlanAp.data());
- QVERIFY(iapId != WlanQtUtils::IapIdNone);
-
- testContext.esock_.startRetValue_ = KErrNone;
-
- // Esock stub completes connection creation immediately
- wlanQtUtils_->connectIap(iapId, true);
-
- // Connection creation in ConnMon interface
- testContext.connMon_.activeConnections_.createDefaultActiveConnList(1, iapId);
- wlanQtUtils_->d_ptr->mConMonWrapper->d_ptrInfo->EventL(CConnMonEventBase(
- EConnMonCreateConnection,
- testContext.connMon_.activeConnections_.activeConnList_[0]->connectionId()));
-
- // Connection status change in ConnMon interface
- wlanQtUtils_->d_ptr->mConMonWrapper->d_ptrInfo->EventL(CConnMonConnectionStatusChange(
- testContext.connMon_.activeConnections_.activeConnList_[0]->connectionId(),
- 0,
- KConnectionOpen));
-
- // Receive signal for connection opening (caused by connectIap, which completed immediately)
- QList<QVariant> arguments;
- subTestSignalWaitAndTake(signalWlanNetworkOpened_, &arguments);
- QCOMPARE(arguments.at(0).toInt(), iapId);
-
- // Connection status change to opened in ConnMon interface. Sub test cases between test
- // cases check that no extra signals are sent
- wlanQtUtils_->d_ptr->mConMonWrapper->d_ptrInfo->EventL(CConnMonConnectionStatusChange(
- testContext.connMon_.activeConnections_.activeConnList_[0]->connectionId(),
- 0,
- KLinkLayerOpen));
-
- // Connection test automatically started at this point.
- // Call hotspot case slot explicitly
- wlanQtUtils_->d_ptr->updateIctHotspotCase();
-
- // Call result function explicitly
- // No interface exists that we could check that the IAP is not moved to another SNAP
- wlanQtUtils_->d_ptr->updateIctResult(IctsWlanLoginInterface::IctsHotspotPassed);
-
- subTestSignalWaitAndTake(signalIctResult_, &arguments);
- QCOMPARE(arguments.at(0).toInt(), iapId);
- QCOMPARE(arguments.at(1).toInt(), (int)WlanQtUtils::IctHotspotPassed);
-}
-
-/**
- * This function tests that Gprs connection events are ignored.
- */
-void TestWlanQtUtils::testConnMonEventGprs()
-{
- // First create a connection
- testContext.connMon_.activeConnections_.createDefaultActiveConnList(1, 4);
- testContext.connMon_.activeConnections_.activeConnList_[0]->connMonBearerType_ = EBearerGPRS;
-
- // Send event for connection creation.
- wlanQtUtils_->d_ptr->mConMonWrapper->d_ptrInfo->EventL(CConnMonEventBase(
- EConnMonCreateConnection,
- testContext.connMon_.activeConnections_.activeConnList_[0]->connectionId()));
-
- // Send events for connection status change -> opened.
- wlanQtUtils_->d_ptr->mConMonWrapper->d_ptrInfo->EventL(CConnMonConnectionStatusChange(
- testContext.connMon_.activeConnections_.activeConnList_[0]->connectionId(),
- 0,
- KConnectionOpen));
- wlanQtUtils_->d_ptr->mConMonWrapper->d_ptrInfo->EventL(CConnMonConnectionStatusChange(
- testContext.connMon_.activeConnections_.activeConnList_[0]->connectionId(),
- 0,
- KLinkLayerOpen));
-
- // Send event for connection status change -> closed.
- wlanQtUtils_->d_ptr->mConMonWrapper->d_ptrInfo->EventL(CConnMonConnectionStatusChange(
- testContext.connMon_.activeConnections_.activeConnList_[0]->connectionId(),
- 0,
- KLinkLayerClosed));
-
- // Send event for connection deletion.
- wlanQtUtils_->d_ptr->mConMonWrapper->d_ptrInfo->EventL(CConnMonEventBase(
- EConnMonDeleteConnection,
- testContext.connMon_.activeConnections_.activeConnList_[0]->connectionId()));
-}
-
-/**
- * This function tests ConnMon event handling with connection existing already during dll construction.
- */
-void TestWlanQtUtils::testConnMonEventCreatedBeforeConstructor()
-{
- // IAP ID 5 exists in default commsdat file
- testContext.connMon_.activeConnections_.createDefaultActiveConnList(1, 5);
-
- // Create a new instance in order to test functionality triggered in constructor.
- WlanQtUtils *utils = new WlanQtUtils();
-
- QSignalSpy *signalWlanNetworkOpened = new QSignalSpy(utils, SIGNAL(wlanNetworkOpened(int)));
- QVERIFY(signalWlanNetworkOpened->isValid() == true);
- QSignalSpy *signalWlanNetworkClosed = new QSignalSpy(utils, SIGNAL(wlanNetworkClosed(int, int)));
- QVERIFY(signalWlanNetworkClosed->isValid() == true);
-
- // Send events for connection status change -> opened.
- utils->d_ptr->mConMonWrapper->d_ptrInfo->EventL(CConnMonConnectionStatusChange(
- testContext.connMon_.activeConnections_.activeConnList_[0]->connectionId(),
- 0,
- KConnectionOpen));
- utils->d_ptr->mConMonWrapper->d_ptrInfo->EventL(CConnMonConnectionStatusChange(
- testContext.connMon_.activeConnections_.activeConnList_[0]->connectionId(),
- 0,
- KLinkLayerOpen));
-
- QList<QVariant> arguments;
- subTestSignalWaitAndTake(signalWlanNetworkOpened, &arguments);
- QCOMPARE(arguments.at(0).toInt(), 5);
-
- // Send event for connection status change -> closed.
- utils->d_ptr->mConMonWrapper->d_ptrInfo->EventL(CConnMonConnectionStatusChange(
- testContext.connMon_.activeConnections_.activeConnList_[0]->connectionId(),
- 0,
- KLinkLayerClosed));
-
- // Send event for connection deletion.
- utils->d_ptr->mConMonWrapper->d_ptrInfo->EventL(CConnMonEventBase(
- EConnMonDeleteConnection,
- testContext.connMon_.activeConnections_.activeConnList_[0]->connectionId()));
-
- subTestSignalWaitAndTake(signalWlanNetworkClosed, &arguments);
- QCOMPARE(arguments.at(0).toInt(), 5);
- QCOMPARE(arguments.at(1).toInt(), KErrNone);
-
- delete signalWlanNetworkOpened;
- delete signalWlanNetworkClosed;
- delete utils;
-}
-
-// ---------------------------------------------------------
-// SUB TEST CASES
-// ---------------------------------------------------------
-
-/**
- * This function waits for active objects to get time to run, takes the arguments of the
- * first signal and returns them from the given signal spy.
- * This function also verifies that the number of signals is 1.
- *
- * @param[in] spy Signal spy.
- * @param[out] arguments Arguments of the first signal in the given signal spy. NULL if arguments not needed.
- */
-void TestWlanQtUtils::subTestSignalWaitAndTake(QSignalSpy* spy, QList<QVariant>* arguments)
-{
- QTest::qWait(1);
- QCOMPARE(spy->count(), 1);
- QList<QVariant> arguments_tmp = spy->takeFirst();
- if (arguments != NULL) {
- *arguments = arguments_tmp;
- }
-}
-
-/**
- * Test case for catching and verifying the scan result signal.
- *
- * @param [in] status Scan result status.
- */
-void TestWlanQtUtils::subTestScanResultSignal(QSignalSpy* spy, int status)
-{
- QList<QVariant> arguments;
- subTestSignalWaitAndTake(spy, &arguments);
- QCOMPARE(arguments.length(), 1);
- QCOMPARE(arguments.at(0).toInt(), status);
-}
-
-/**
- * This function loads given CommsDat file, replacing current one.
- * If CommsDat file doesn't exist, it can be re-created by commanding WST script.
- * Using help switch is a quick way:
- * run_wst HELP
- *
- * @param newCommsdatFilename Filename of the new CommsDat to be loaded.
- */
-void TestWlanQtUtils::subTestLoadCommsDatFile(QString newCommsdatFilename)
-{
- // EPOC's CommsDat filename
- const QString epocCommsdatFilename("cccccc00.cre");
- // EPOC's directory for CommsDat file
- const QString commsdatDir("c:\\private\\10202be9\\persists\\");
- // Created backup directory under EPOC for CommsDat files
- const QString storeDir("c:\\private\\10202be9\\persists\\backup\\");
- QString nameOld = commsdatDir + epocCommsdatFilename;
- QString nameDefault = storeDir + newCommsdatFilename;
-
- // First remove the old CommsDat file.
- Q_ASSERT(QFile::remove(nameOld) == TRUE);
-
- // Copy the stored default CommsDat file.
- Q_ASSERT(QFile::copy(nameDefault, nameOld) == TRUE);
-}
-
-/**
- *
- */
-void TestWlanQtUtils::subTestNewWlanQtUtils()
-{
- delete wlanQtUtils_;
- wlanQtUtils_ = new WlanQtUtils();
-
- delete mSignalScanReady;
- mSignalScanReady = new QSignalSpy(wlanQtUtils_, SIGNAL(wlanScanReady(int)));
- QVERIFY(mSignalScanReady->isValid() == true);
-
- delete mSignalScanApReady;
- mSignalScanApReady = new QSignalSpy(wlanQtUtils_, SIGNAL(wlanScanApReady(int)));
- QVERIFY(mSignalScanApReady->isValid() == true);
-
- delete mSignalScanDirectReady;
- mSignalScanDirectReady = new QSignalSpy(wlanQtUtils_, SIGNAL(wlanScanDirectReady(int)));
- QVERIFY(mSignalScanDirectReady->isValid() == true);
-
- delete signalWlanNetworkOpened_;
- signalWlanNetworkOpened_ = new QSignalSpy(wlanQtUtils_, SIGNAL(wlanNetworkOpened(int)));
- QVERIFY(signalWlanNetworkOpened_->isValid() == true);
-
- delete signalWlanNetworkClosed_;
- signalWlanNetworkClosed_ = new QSignalSpy(wlanQtUtils_, SIGNAL(wlanNetworkClosed(int, int)));
- QVERIFY(signalWlanNetworkClosed_->isValid() == true);
-
- delete signalIctResult_;
- signalIctResult_ = new QSignalSpy(wlanQtUtils_, SIGNAL(ictResult(int, int)));
- QVERIFY(signalIctResult_->isValid() == true);
-}
-
-/**
- * Create a new AP and fill it with default values.
- */
-WlanQtUtilsAp *TestWlanQtUtils::subTestNewAp()
-{
- WlanQtUtilsAp *ap = new WlanQtUtilsAp;
-
- // Set default values
- ap->setValue(WlanQtUtilsAp::ConfIdSsid, QString());
- ap->setValue(WlanQtUtilsAp::ConfIdSignalStrength, 90);
- ap->setValue(WlanQtUtilsAp::ConfIdConnectionMode, CMManagerShim::Infra);
- ap->setValue(WlanQtUtilsAp::ConfIdSecurityMode, CMManagerShim::WlanSecModeOpen);
- ap->setValue(WlanQtUtilsAp::ConfIdWpaPskUse, false);
- ap->setValue(WlanQtUtilsAp::ConfIdWpaPsk, QString());
- ap->setValue(WlanQtUtilsAp::ConfIdWepKey1, QString());
- ap->setValue(WlanQtUtilsAp::ConfIdWepKey2, QString());
- ap->setValue(WlanQtUtilsAp::ConfIdWepKey3, QString());
- ap->setValue(WlanQtUtilsAp::ConfIdWepKey4, QString());
- ap->setValue(WlanQtUtilsAp::ConfIdWepDefaultIndex, CMManagerShim::WepKeyIndex1);
- ap->setValue(WlanQtUtilsAp::ConfIdHidden, false);
- ap->setValue(WlanQtUtilsAp::ConfIdWlanScanSSID, false);
-
- return ap;
-}