--- a/cmmanager/connection_settings_shim/tsrc/ut/testcmmgrshim.cpp Tue Aug 31 15:35:44 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1163 +0,0 @@
-/*
-* Copyright (c) 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:
-* CM Application Settings UI unit testing.
-*/
-
-#include <QList>
-#include <QString>
-
-#include <HbApplication>
-#include <HbMainWindow>
-#include <HbView>
-#include <HbLabel>
-
-#include <QtTest/QtTest>
-
-#include "cmdestination_shim.h"
-#include "cmconnectionmethod_shim.h"
-
-#include "testcmmgrshim.h"
-
-// -----------------------------------------------------------------------------
-// STATIC TEST DATA
-// -----------------------------------------------------------------------------
-
-// -----------------------------------------------------------------------------
-// TEST MACROES
-// -----------------------------------------------------------------------------
-
-// Test macro for verifying an exception throwing code block
-#define TEST_CATCH_AND_VERIFY(code, error) \
- { \
- int error_code; \
- QT_TRYCATCH_ERROR(error_code, code); \
- QCOMPARE(error_code, error); \
- }
-
-// -----------------------------------------------------------------------------
-// FRAMEWORK FUNCTIONS
-// -----------------------------------------------------------------------------
-
-/**
- * Test main function. Runs all test cases.
- */
-int main(int argc, char *argv[])
-{
- Q_UNUSED(argc);
-
- char *pass[3];
- pass[0] = argv[0];
- pass[1] = "-o";
- pass[2] = "c:\\data\\TestCmMgrShim.txt";
-
- TestCmMgrShim tc;
- int res = QTest::qExec(&tc, 3, pass);
-
- return res;
-}
-
-/**
- * This function is be called before the first test case is executed.
- */
-void TestCmMgrShim::initTestCase()
-{
-}
-
-/**
- * This function is be called after the last test case was executed.
- */
-void TestCmMgrShim::cleanupTestCase()
-{
-}
-
-/**
- * This function is be called before each test case is executed.
- */
-void TestCmMgrShim::init()
-{
- // Initialize the CmManagerShim object
- mCmManagerShim = new CmManagerShim;
-}
-
-/**
- * This function is be called after each test case is executed.
- */
-void TestCmMgrShim::cleanup()
-{
- // There should be no destinations
- QList<uint> destinations;
- mCmManagerShim->allDestinations(destinations);
- int destinationCount = destinations.count();
-
- // Delete the destinations if there were any
- deleteDestinations();
-
- // There should be no connection methods
- QList<uint> connMethods;
- mCmManagerShim->connectionMethod(connMethods, false);
- int connMethodCount = connMethods.count();
-
- // Delete the connection methods if there were any
- deleteConnectionMethods();
-
- // Validate after the deletions are done
- QCOMPARE(destinationCount, 0);
- QCOMPARE(connMethodCount, 0);
-
- delete mCmManagerShim;
-}
-
-// -----------------------------------------------------------------------------
-// TEST CASES
-// -----------------------------------------------------------------------------
-
-/**
- * Test case for testing initial state.
- * -Reads AND DELETES all destinations and connection methods.
- * -Verifies that there are no destinations and connection methods.
- */
-void TestCmMgrShim::tcResetSettings()
-{
- // Read all destinations
- QList<uint> destinations;
- mCmManagerShim->allDestinations(destinations);
-
- // Delete the destinations
- for (int i=0; i < destinations.count(); i++) {
- CmDestinationShim *dest = mCmManagerShim->destination(destinations[i]);
- dest->deleteDestination();
-
- // Update should leave
- TEST_CATCH_AND_VERIFY(
- dest->update(),
- KErrBadHandle);
-
- delete dest;
- }
-
- // Check that there no longer are any destinations
- mCmManagerShim->allDestinations(destinations);
- QCOMPARE(destinations.count(), 0);
-
- // Read all connection methods
- QList<uint> connMethods;
- mCmManagerShim->connectionMethod(connMethods, false);
-
- // Remove possible uncategorized connection methods
- for (int i=0; i < connMethods.count(); i++){
- CmConnectionMethodShim *cm =
- mCmManagerShim->connectionMethod(connMethods[i]);
- QVERIFY(cm != NULL);
- bool ok = cm->deleteConnectionMethod();
- QVERIFY(ok == true);
- cm->update();
- delete cm;
- }
-
- // Check that tere is no longer any connection methods
- mCmManagerShim->connectionMethod(connMethods, false);
- QCOMPARE(connMethods.count(), 0);
-
- // Try reading a Connection Method with an erroneous ID
- TEST_CATCH_AND_VERIFY(
- mCmManagerShim->connectionMethod(0),
- KErrArgument);
-
- // Try reading a non-existent Connection Method
- TEST_CATCH_AND_VERIFY(
- mCmManagerShim->connectionMethod(1),
- KErrNotFound);
-}
-
-/**
- * Test case for testing basic legacy WLAN connection method handling.
- * -Creates a legacy WLAN connection method (i.e. does not belong to
- * any destination).
- * -Deletes the connection method.
- */
-void TestCmMgrShim::tcLegacyConnMethodWlan()
-{
- // Create the connection method
- CmConnectionMethodShim *cm = mCmManagerShim->createConnectionMethod(
- CMManagerShim::BearerTypeWlan);
- QVERIFY(cm != NULL);
-
- // Update to CommsDat
- cm->update();
-
- // Check bearer type
- int bearer = cm->getIntAttribute(CMManagerShim::CmBearerType);
- QCOMPARE(bearer, (int)CMManagerShim::BearerTypeWlan);
-
- // Check ID
- int id = cm->getIntAttribute(CMManagerShim::CmId);
- QCOMPARE(id, 1);
-
- // Delete the connection method reference
- delete cm;
-
- // Refetch the connection method
- cm = mCmManagerShim->connectionMethod(id);
- QVERIFY(cm != NULL);
-
- // Delete the connection method
- cm->deleteConnectionMethod();
-
- // Check that double deletion throws an exception
- TEST_CATCH_AND_VERIFY(
- cm->deleteConnectionMethod(),
- KErrBadHandle);
-
- delete cm;
-}
-
-/**
- * Test case for testing basic legacy GPRS connection method handling.
- * -Creates a legacy GPRS connection method (i.e. does not belong to
- * any destination).
- * -Deletes the connection method.
- */
-void TestCmMgrShim::tcLegacyConnMethodGprs()
-{
- // Create the connection method
- CmConnectionMethodShim *cm = mCmManagerShim->createConnectionMethod(
- CMManagerShim::BearerTypePacketData);
- QVERIFY(cm != NULL);
-
- // Update to CommsDat
- cm->update();
-
- // Check ID
- int id = cm->getIntAttribute(CMManagerShim::CmId);
- QCOMPARE(id, 1);
-
- // Check bearer type
- int bearer = cm->getIntAttribute(CMManagerShim::CmBearerType);
- QCOMPARE(bearer, (int)CMManagerShim::BearerTypePacketData);
-
- // Delete the connection method reference
- delete cm;
-
- // Refetch the connection method
- cm = mCmManagerShim->connectionMethod(id);
- QVERIFY(cm != NULL);
-
- // Delete the connection method
- cm->deleteConnectionMethod();
- delete cm;
-}
-
-/**
- * Basic error case testing for CmManagerShim.
- * All test call should throw an exception since they are invalid.
- */
-void TestCmMgrShim::tcCmManagerBasicFails()
-{
- // Try creating a destination with an invalid name
- CmDestinationShim *dest = 0;
- TEST_CATCH_AND_VERIFY(
- dest = mCmManagerShim->createDestination(QString("")),
- KErrArgument);
- QVERIFY(dest == NULL);
-
- // Try creating a connection method with an invalid bearer type
- CmConnectionMethodShim *cm = 0;
- TEST_CATCH_AND_VERIFY(
- cm = mCmManagerShim->createConnectionMethod(0),
- KErrArgument);
- QVERIFY(cm == NULL);
-
- // Try fetching a connection method with an invalid ID
- cm = 0;
- TEST_CATCH_AND_VERIFY(
- cm = mCmManagerShim->connectionMethod(42),
- KErrNotFound);
- QVERIFY(cm == NULL);
-
- // Try fetching a destination with an invalid ID
- dest = 0;
- TEST_CATCH_AND_VERIFY(
- dest = mCmManagerShim->destination(42),
- KErrArgument);
- QVERIFY(dest == NULL);
-}
-
-/**
- * Test case for testing basic destination handling
- * -Create a destination
- * -Validate the default destination content
- * -Delete the destination
- */
-void TestCmMgrShim::tcBasicDestination()
-{
- // Create a new destination
- CmDestinationShim *dest;
- dest = mCmManagerShim->createDestination("TestDestination");
- QVERIFY(dest != NULL);
-
- // Update to CommsDat
- dest->update();
-
- // Check the name
- QString name(dest->name());
- QCOMPARE(name, QString("TestDestination"));
-
- // Check ID
- uint destinationId = dest->id();
- QVERIFY(destinationId >= 4000);
-
- // Check protection level default value
- CMManagerShim::CmmProtectionLevel prot = dest->protectionLevel();
- QCOMPARE(prot, CMManagerShim::ProtLevel0);
-
- // Check hidden flag default value
- bool isHidden = dest->isHidden();
- QCOMPARE(isHidden, false);
-
- // Check destination content
- int connMethodCount = dest->connectionMethodCount();
- QCOMPARE(connMethodCount, 0);
-
- // Delete the destination
- dest->deleteDestination();
-
- // Check that double deletion throws an exception
- TEST_CATCH_AND_VERIFY(
- dest->deleteDestination(),
- KErrBadHandle);
-
- delete dest;
-}
-
-/**
- * Test case for testing basic modifications for a destination.
- * -Create a destination
- * -Add a GPRS connection method to it.
- * -Add a WLAN connection method to it.
- * -Delete the GPRS connection method.
- * -Delete the Destination (and thus also the WLAN connection method).
- */
-void TestCmMgrShim::tcDestinationModify()
-{
- // Create a new destination
- CmDestinationShim *dest;
- dest = mCmManagerShim->createDestination("TestDestination");
- QVERIFY(dest != NULL);
- uint destId = dest->id();
- QVERIFY(destId >= 4000);
-
- // Check destination initial content
- int connMethodCount = dest->connectionMethodCount();
- QCOMPARE(connMethodCount, 0);
-
- // Create a GPRS connection method
- CmConnectionMethodShim *cm = mCmManagerShim->createConnectionMethod(
- CMManagerShim::BearerTypePacketData);
- QVERIFY(cm != NULL);
-
- // Update to CommsDat
- cm->update();
-
- // Add the connection method to the destination
- int index = dest->addConnectionMethod(cm);
- QCOMPARE(index, 0);
-
- // Update to CommsDat
- dest->update();
-
- // Create a WLAN connection method
- CmConnectionMethodShim *cmWlan = mCmManagerShim->createConnectionMethod(
- CMManagerShim::BearerTypeWlan);
- QVERIFY(cmWlan != NULL);
-
- // Update to CommsDat
- cmWlan->update();
-
- // Add the connection method to the destination
- index = dest->addConnectionMethod(cmWlan);
- QCOMPARE(index, 0);
-
- // Update to CommsDat
- dest->update();
-
- // Delete the WLAN connection method reference
- delete cmWlan;
- cmWlan = 0;
-
- // Delete the GPRS connection method
- dest->deleteConnectionMethod(cm);
- delete cm;
- cm = 0;
-
- // Update to CommsDat
- dest->update();
-
- // Verify the delete
- connMethodCount = dest->connectionMethodCount();
- QCOMPARE(connMethodCount, 1);
-
- // Delete the whole destination including the remaining WLAN conn method.
- dest->deleteDestination();
- delete dest;
-
- // Check that the destination is gone
- dest = NULL;
- TEST_CATCH_AND_VERIFY(
- dest = mCmManagerShim->destination(destId),
- KErrNotFound);
- QCOMPARE(dest, (CmDestinationShim *)0);
-}
-
-/**
- * Test case for adding and reading boolean attribute for a connection method.
- * -Creates a legacy WLAN connection method (i.e. does not belong to
- * any destination).
- * -Sets a boolean attribute.
- * -Gets the boolean attribute.
- * -Deletes the connection method.
- */
-void TestCmMgrShim::tcConnMethodSetBoolAttribute()
-{
- // Create the connection method
- CmConnectionMethodShim *cm = mCmManagerShim->createConnectionMethod(
- CMManagerShim::BearerTypeWlan);
- QVERIFY(cm != NULL);
-
- // Update to CommsDat
- cm->update();
-
- // Set bool attribute value
- cm->setBoolAttribute(CMManagerShim::CmProxyUsageEnabled, true);
-
- // Update to CommsDat
- cm->update();
-
- // Get bool attribute value
- bool testBool = false;
- testBool = cm->getBoolAttribute(CMManagerShim::CmProxyUsageEnabled);
- QCOMPARE(testBool, true);
-
- // Delete the connection method
- cm->deleteConnectionMethod();
- delete cm;
-}
-
-/**
- * Test case for adding and reading integer attribute for a connection method.
- * -Creates a legacy WLAN connection method (i.e. does not belong to
- * any destination).
- * -Sets an int attribute.
- * -Gets the int attribute.
- * -Deletes the connection method.
- */
-void TestCmMgrShim::tcConnMethodSetIntAttribute()
-{
- // Create the connection method
- CmConnectionMethodShim *cm = mCmManagerShim->createConnectionMethod(
- CMManagerShim::BearerTypeWlan);
- QVERIFY(cm != NULL);
-
- // Update to CommsDat
- cm->update();
-
- // Set int attribute value
- uint testInt = 99;
- cm->setIntAttribute(CMManagerShim::CmProxyPortNumber, testInt);
-
- // Update to CommsDat
- cm->update();
-
- // Get int attribute value
- uint resultInt = cm->getIntAttribute(CMManagerShim::CmProxyPortNumber);
- QCOMPARE(resultInt, testInt);
-
- // Delete the connection method
- cm->deleteConnectionMethod();
- delete cm;
-}
-
-/**
- * Test case for adding and reading string attributes for a connection method.
- * -Creates a legacy WLAN connection method (i.e. does not belong to
- * any destination).
- * -Sets a string attribute.
- * -Gets the string attribute.
- * -Deletes the connection method.
- */
-void TestCmMgrShim::tcConnMethodSetStringAttribute()
-{
- // Create the connection method
- CmConnectionMethodShim *cm = mCmManagerShim->createConnectionMethod(
- CMManagerShim::BearerTypeWlan);
- QVERIFY(cm != NULL);
-
- // Update to CommsDat
- cm->update();
-
- // Set string attribute value
- QString testString("TestProxyServerName");
- cm->setStringAttribute(CMManagerShim::CmProxyServerName, testString);
-
- // Set string8 attribute value
- QString testString2("key12");
- cm->setString8Attribute(CMManagerShim::WlanWepKey1InAscii, testString2);
-
- // Update to CommsDat
- cm->update();
-
- // Check string attribute value
- QString resultString = cm->getStringAttribute(CMManagerShim::CmProxyServerName);
- QCOMPARE(resultString, testString);
-
- // Check string8 attribute value
- resultString = cm->getString8Attribute(CMManagerShim::WlanWepKey1InAscii);
- QCOMPARE(resultString, testString2);
-
- // Delete the connection method
- cm->deleteConnectionMethod();
- delete cm;
-}
-
-/**
- * Test case for testing attribute reads using a wrong attribute type.
- * All test reads in this case should fail to an exception.
- */
-void TestCmMgrShim::tcConnMethodWrongTypeAttributeRead()
-{
- // Create the connection method
- CmConnectionMethodShim *cm = mCmManagerShim->createConnectionMethod(
- CMManagerShim::BearerTypeWlan);
- QVERIFY(cm != NULL);
-
- // Update to CommsDat
- cm->update();
-
- // Try reading name erroneously as an int attribute
- uint intResult = 0;
- TEST_CATCH_AND_VERIFY(
- intResult = cm->getIntAttribute(CMManagerShim::CmName),
- KErrNotSupported);
- QCOMPARE(intResult, (uint)0);
-
- // Try reading name erroneously as a bool attribute
- bool boolResult = false;
- TEST_CATCH_AND_VERIFY(
- boolResult = cm->getBoolAttribute(CMManagerShim::CmName),
- KErrNotSupported);
- QCOMPARE(boolResult, false);
-
- // Try reading ID erroneously as a string attribute
- QString stringResult;
- TEST_CATCH_AND_VERIFY(
- stringResult = cm->getStringAttribute(CMManagerShim::CmId),
- KErrNotSupported);
- QCOMPARE(stringResult, QString(""));
-
- // Try reading ID erroneously as a string 8 attribute
- stringResult = "";
- TEST_CATCH_AND_VERIFY(
- stringResult = cm->getString8Attribute(CMManagerShim::CmId),
- KErrNotSupported);
- QCOMPARE(stringResult, QString(""));
-
- // Delete the connection method
- cm->deleteConnectionMethod();
- delete cm;
-}
-
-/**
- * Test case for testing attribute reads using a wrong attribute type.
- * All test reads in this case should fail to an exception.
- */
-void TestCmMgrShim::tcConnMethodWrongTypeAttributeWrite()
-{
- // Create the connection method
- CmConnectionMethodShim *cm = mCmManagerShim->createConnectionMethod(
- CMManagerShim::BearerTypeWlan);
- QVERIFY(cm != NULL);
-
- // Update to CommsDat
- cm->update();
-
- // Try writing name erroneously as an int attribute
- TEST_CATCH_AND_VERIFY(
- cm->setIntAttribute(CMManagerShim::CmName, 0),
- KErrNotSupported);
-
- // Try writing name erroneously as a bool attribute
- TEST_CATCH_AND_VERIFY(
- cm->setBoolAttribute(CMManagerShim::CmName, false),
- KErrNotSupported);
-
- // Try writing ID erroneously as a string attribute
- TEST_CATCH_AND_VERIFY(
- cm->setStringAttribute(CMManagerShim::CmId, QString("dada")),
- KErrNotSupported);
-
- // Try reading ID erroneously as a string 8 attribute
- TEST_CATCH_AND_VERIFY(
- cm->setString8Attribute(CMManagerShim::CmId, QString("dada")),
- KErrNotSupported);
-
- // Delete the connection method
- cm->deleteConnectionMethod();
- delete cm;
-}
-
-/**
- * Test case for testing connection method refreshing.
- * -Create a connection method
- * -Read the name of the connection method
- * -Change the name, but don't update CommsDat
- * -Refsesh connection method
- * -Check that the name is the original one
- * -Delete the connection method
- */
-void TestCmMgrShim::tcConnectionMethodRefresh()
-{
- // Create the connection method
- CmConnectionMethodShim *cm = mCmManagerShim->createConnectionMethod(
- CMManagerShim::BearerTypeWlan);
- QVERIFY(cm != NULL);
-
- // Update to CommsDat
- cm->update();
-
- // Check ID
- int id = cm->getIntAttribute(CMManagerShim::CmId);
- QCOMPARE(id, 1);
-
- // Check the default name
- QString name = cm->getStringAttribute(CMManagerShim::CmName);
- QVERIFY(name != QString(""));
-
- // Change name
- cm->setStringAttribute(CMManagerShim::CmName, "WlanBlaaBlaa");
- // Do not update CommsDat
-
- // Check the changed name
- QString newName = cm->getStringAttribute(CMManagerShim::CmName);
- QCOMPARE(newName, QString("WlanBlaaBlaa"));
-
- // Refresh connection method
- cm->refresh();
-
- // Delete the connection method reference
- delete cm;
-
- // Refetch the connection method
- cm = mCmManagerShim->connectionMethod(id);
- QVERIFY(cm != NULL);
-
- // Check that the bearer name in database is the original one
- newName = cm->getStringAttribute(CMManagerShim::CmName);
- QCOMPARE(newName, name);
-
- // Delete the connection method
- cm->deleteConnectionMethod();
- delete cm;
-}
-
-/**
- * Test case for testing reading destination's connection methods.
- * -Create a destination
- * -Add a GPRS connection method to it.
- * -Add a WLAN connection method to it.
- * -Read number of connection methods.
- * -Read connection method by index.
- * -Read connection method by unknown index.
- * -Read connection method by id.
- * -Read connection method by unknown id.
- * -Delete the Destination (and connection methods).
- */
-void TestCmMgrShim::tcDestinationReadConnectionMethods()
-{
- // Create a new destination
- CmDestinationShim *dest;
- dest = mCmManagerShim->createDestination("TestDestination");
- QVERIFY(dest != NULL);
- uint destId = dest->id();
- QVERIFY(destId >= 4000);
-
- // Check destination initial content
- int connMethodCount = dest->connectionMethodCount();
- QCOMPARE(connMethodCount, 0);
-
- // Create a GPRS connection method
- CmConnectionMethodShim *cmGprs = mCmManagerShim->createConnectionMethod(
- CMManagerShim::BearerTypePacketData);
- QVERIFY(cmGprs != NULL);
- // Update to CommsDat
- cmGprs->update();
-
- // Add the connection method to the destination
- int index = dest->addConnectionMethod(cmGprs);
- QCOMPARE(index, 0);
- // Update to CommsDat
- dest->update();
-
- delete cmGprs;
- cmGprs = 0;
-
- // Create a WLAN connection method
- CmConnectionMethodShim *cmWlan = mCmManagerShim->createConnectionMethod(
- CMManagerShim::BearerTypeWlan);
- QVERIFY(cmWlan != NULL);
- // Update to CommsDat
- cmWlan->update();
-
- // Add the connection method to the destination
- index = dest->addConnectionMethod(cmWlan);
- QCOMPARE(index, 0);
- // Update to CommsDat
- dest->update();
-
-
- // Check number of destination's connection methods
- connMethodCount = dest->connectionMethodCount();
- QCOMPARE(connMethodCount, 2);
-
- // Read connection method by index.
- CmConnectionMethodShim *cm = dest->connectionMethod(1);
- QVERIFY(cm != NULL);
-
- // Try to read connection method by unknown index.
- TEST_CATCH_AND_VERIFY(
- dest->connectionMethod(2),
- KErrArgument);
-
- // Read connection method by id.
- uint id = cmWlan->getIntAttribute(CMManagerShim::CmId);
- cm = dest->connectionMethodByID(id);
- QVERIFY(cm != NULL);
-
- delete cmWlan;
- cmWlan = 0;
-
- delete cm;
- cm = 0;
-
- // Try to read connection method by unknown id.
- TEST_CATCH_AND_VERIFY(
- dest->connectionMethodByID(100),
- KErrNotFound);
-
- // Delete the destination (and connection methods).
- dest->deleteDestination();
- delete dest;
-}
-
-/**
- * Test case for testing removing connection method from single destination.
- * -Create 2 destinations
- * -Add a WLAN connection method to both.
- * -Remove the WLAN connection method from the first destination.
- * -Remove the WLAN connection method from the other destination.
- * -Delete the Destinations.
- * -Delete connection method.
- */
-void TestCmMgrShim::tcDestinationRemoveConnectionMethod()
-{
- // Create a new destination
- CmDestinationShim *dest1;
- dest1 = mCmManagerShim->createDestination("TestDestination1");
- QVERIFY(dest1 != NULL);
- uint destId1 = dest1->id();
- QVERIFY(destId1 >= 4000);
-
- // Create another destination
- CmDestinationShim *dest2;
- dest2 = mCmManagerShim->createDestination("TestDestination2");
- QVERIFY(dest2 != NULL);
- uint destId2 = dest2->id();
- QVERIFY(destId2 >= 4000);
-
- // Check destinations initial content
- int connMethodCount = dest1->connectionMethodCount();
- QCOMPARE(connMethodCount, 0);
- connMethodCount = dest2->connectionMethodCount();
- QCOMPARE(connMethodCount, 0);
-
- // Create a WLAN connection method
- CmConnectionMethodShim *cmWlan = mCmManagerShim->createConnectionMethod(
- CMManagerShim::BearerTypeWlan);
- QVERIFY(cmWlan != NULL);
- // Update to CommsDat
- cmWlan->update();
-
- uint cmWlanId = cmWlan->getIntAttribute(CMManagerShim::CmId);
- QCOMPARE(cmWlanId, (uint)1);
-
- // Add the connection method to the destination 1
- int index = dest1->addConnectionMethod(cmWlan);
- QCOMPARE(index, 0);
- // Update to CommsDat
- dest1->update();
-
- // Add the connection method to the destination 2
- index = dest2->addConnectionMethod(cmWlan);
- QCOMPARE(index, 0);
- // Update to CommsDat
- dest2->update();
-
- // Remove the WLAN connection method from destination 1
- dest1->removeConnectionMethod(cmWlan);
- // Update to CommsDat
- dest1->update();
-
- // Verify the delete
- connMethodCount = dest1->connectionMethodCount();
- QCOMPARE(connMethodCount, 0);
-
- // Check that WLAN connection method still exists for destination 2
- connMethodCount = dest2->connectionMethodCount();
- QCOMPARE(connMethodCount, 1);
-
- // Remove the WLAN connection method from destination 2
- dest2->removeConnectionMethod(cmWlan);
- // Update to CommsDat
- dest2->update();
-
- // Verify the delete
- connMethodCount = dest2->connectionMethodCount();
- QCOMPARE(connMethodCount, 0);
-
- // Delete destinations
- dest1->deleteDestination();
- delete dest1;
- dest2->deleteDestination();
- delete dest2;
-
- // Check that WLAN connection method still exists
- delete cmWlan;
- cmWlan = mCmManagerShim->connectionMethod(cmWlanId);
- QVERIFY(cmWlan != NULL);
-
- // Remove WLAN connection method.
- cmWlan->deleteConnectionMethod();
- delete cmWlan;
-}
-
-/**
- * Test case for testing destination's cm priority reading and changing.
- * -Create a destination
- * -Add a GPRS connection method to it.
- * -Add a WLAN connection method to it.
- * -Read priority values of the connection methods
- * -Change the priority values
- * -Read the changed priority values
- * -Try to change the priority value to unsupported value
- * -Delete the destination (and connection methods)
- */
-void TestCmMgrShim::tcDestinationPriority()
-{
- // Create a new destination
- CmDestinationShim *dest;
- dest = mCmManagerShim->createDestination("TestDestination");
- QVERIFY(dest != NULL);
- uint destId = dest->id();
- QVERIFY(destId >= 4000);
-
- // Create a GPRS connection method
- CmConnectionMethodShim *cmGprs = mCmManagerShim->createConnectionMethod(
- CMManagerShim::BearerTypePacketData);
- QVERIFY(cmGprs != NULL);
- // Update to CommsDat
- cmGprs->update();
-
- // Add the connection method to the destination
- int index = dest->addConnectionMethod(cmGprs);
- QCOMPARE(index, 0);
- // Update to CommsDat
- dest->update();
-
- // Create a WLAN connection method
- CmConnectionMethodShim *cmWlan = mCmManagerShim->createConnectionMethod(
- CMManagerShim::BearerTypeWlan);
- QVERIFY(cmWlan != NULL);
- // Update to CommsDat
- cmWlan->update();
-
- // Add the connection method to the destination
- index = dest->addConnectionMethod(cmWlan);
- QCOMPARE(index, 0);
- // Update to CommsDat
- dest->update();
-
- // Get the priority of connection methods
- int priority = dest->priority(cmWlan);
- QCOMPARE(priority, 1);
- priority = dest->priority(cmGprs);
- QCOMPARE(priority, 2);
-
- // Modify the priority of GPRS connection method
- dest->modifyPriority(cmGprs, 0);
- dest->modifyPriority(cmWlan, 1);
- // Update to CommsDat
- dest->update();
-
- // Check the priorities
- priority = dest->priority(cmGprs);
- QCOMPARE(priority, 1);
- priority = dest->priority(cmWlan);
- QCOMPARE(priority, 2);
-
- // Try to modify the priority to forbidden value
- TEST_CATCH_AND_VERIFY(
- dest->modifyPriority(cmGprs, 2),
- KErrArgument);
-
- // Delete the whole destination including the remaining WLAN conn method.
- dest->deleteDestination();
-
- delete dest;
- delete cmGprs;
- delete cmWlan;
-}
-
-/**
- * Test case for testing miscellaneous methods for destination.
- * -Create a destination
- * -Change the name of the destination
- * -Check if the destination is hidden
- * -Check if destination is "internet" with metadata.
- * -Delete the destination
- */
-void TestCmMgrShim::tcDestinationMisc()
-{
- // Create a new destination
- CmDestinationShim *dest;
- dest = mCmManagerShim->createDestination("TestDestination");
- QVERIFY(dest != NULL);
- uint destId = dest->id();
- QVERIFY(destId >= 4000);
-
- // Change the name of the destination
- dest->setName("NewName");
- // Update to CommsDat
- dest->update();
-
- // Check the name
- QString name(dest->name());
- QCOMPARE(name, QString("NewName"));
-
- // Check if destination is hidden
- bool hidden = dest->isHidden();
- QCOMPARE(hidden, false);
-
- // Check "internet" metadata field
- uint metadata = dest->metadata(CMManagerShim::SnapMetadataInternet);
- QCOMPARE(metadata, (uint)false);
-
- // Delete the destination
- dest->deleteDestination();
- delete dest;
-}
-
-/**
- * Test case for testing destination refreshing method.
- * -Create a destination
- * -Add a GPRS connection method, but don't update CommsDat
- * -Change the name of the destination, but don't update CommsDat
- * -Refresh destination
- * -Check that the changes are not valid anymore
- * -Delete the destination
- * -Delete the connection method
- */
-void TestCmMgrShim::tcDestinationRefresh()
-{
- // Create a new destination
- CmDestinationShim *dest;
- dest = mCmManagerShim->createDestination("TestDestination");
- QVERIFY(dest != NULL);
- uint destId = dest->id();
- QVERIFY(destId >= 4000);
- dest->update();
-
- // Create a GPRS connection method
- CmConnectionMethodShim *cmGprs = mCmManagerShim->createConnectionMethod(
- CMManagerShim::BearerTypePacketData);
- QVERIFY(cmGprs != NULL);
- // Update to CommsDat
- cmGprs->update();
-
- // Add the connection method to the destination
- int index = dest->addConnectionMethod(cmGprs);
- QCOMPARE(index, 0);
- // Don't update CommsDat
-
- // Change the name of the destination
- dest->setName("NewName");
- // Don't update to CommsDat
-
- // Refresh destination
- dest->refresh();
-
- // Delete the destination reference
- delete dest;
-
- // Refetch the destination
- dest = mCmManagerShim->destination(destId);
- QVERIFY(dest != NULL);
-
- // Check the name that it is the original one
- QString name(dest->name());
- QCOMPARE(name, QString("TestDestination"));
-
- // Check destination content
- int connMethodCount = dest->connectionMethodCount();
- QCOMPARE(connMethodCount, 0);
-
- // Delete the destination
- dest->deleteDestination();
- delete dest;
-
- // Delete connection method
- bool ok = cmGprs->deleteConnectionMethod();
- delete cmGprs;
- QCOMPARE(ok, true);
-}
-
-/**
- * Test case for testing data reads using a invalid input data.
- * All test reads in this case should fail to an exception.
- */
-void TestCmMgrShim::tcDestinationInvalidParams()
-{
- // Create a new destination
- CmDestinationShim *dest;
- dest = mCmManagerShim->createDestination("TestDestination");
- QVERIFY(dest != NULL);
-
- // Update to CommsDat
- dest->update();
-
- // Try reading with an invalid connection method index
- CmConnectionMethodShim *cm = 0;
- TEST_CATCH_AND_VERIFY(
- dest->connectionMethod(42),
- KErrArgument);
- QVERIFY(cm == 0);
-
- // Try reading with an invalid connection method ID
- cm = 0;
- TEST_CATCH_AND_VERIFY(
- dest->connectionMethodByID(42),
- KErrNotFound);
- QVERIFY(cm == 0);
-
- // Delete the destination
- dest->deleteDestination();
- delete dest;
-}
-
-/**
- * Test case for setting and getting icon from CM Manager
- * -Creates a legacy WLAN connection method (i.e. does not belong to
- * any destination).
- * -Sets & Gets Icon
- * -Creates destination
- * -Sets & Gets Icon
- * -Deletes the connection method.
- */
-void TestCmMgrShim::tcIconOperations()
-{
- // Create the connection method
- CmConnectionMethodShim *cm = mCmManagerShim->createConnectionMethod(
- CMManagerShim::BearerTypeWlan);
- QVERIFY(cm != NULL);
-
- // Update to CommsDat
- cm->update();
-
- // Create a new destination
- CmDestinationShim *dest;
- dest = mCmManagerShim->createDestination("TestDestination");
- QVERIFY(dest != NULL);
-
- // Update to CommsDat
- dest->update();
-
- // Set icon
- QString testString("TestIconName");
- cm->setIcon(testString);
-
- // Update to CommsDat
- cm->update();
-
- // Set icon
- dest->setIcon(testString);
-
- // Update to CommsDat
- dest->update();
-
- // Check icon
- QString resultString = cm->getIcon();
- QCOMPARE(resultString, testString);
-
- // Check destination icon
- QString resultDestString = dest->getIcon();
- QCOMPARE(resultDestString, testString);
-
- // Delete the connection method
- cm->deleteConnectionMethod();
- delete cm;
-
- // Delete the destination
- dest->deleteDestination();
- delete dest;
-}
-
-// -----------------------------------------------------------------------------
-// SUB TEST CASES
-// -----------------------------------------------------------------------------
-
-/**
- * Case for deleting all destinations.
- */
-void TestCmMgrShim::deleteDestinations()
-{
- // Read all destinations
- QList<uint> destinations;
- mCmManagerShim->allDestinations(destinations);
-
- // Delete the destinations
- for (int i=0; i < destinations.count(); i++) {
- CmDestinationShim *dest = mCmManagerShim->destination(destinations[i]);
- dest->deleteDestination();
- delete dest;
- }
-}
-
-/**
- * Case for deleting all connection methods.
- */
-void TestCmMgrShim::deleteConnectionMethods()
-{
- // Read all connection methods
- QList<uint> connMethods;
- mCmManagerShim->connectionMethod(connMethods, false);
-
- // Remove all connection methods
- for (int i=0; i < connMethods.count(); i++){
- CmConnectionMethodShim *cm =
- mCmManagerShim->connectionMethod(connMethods[i]);
- QVERIFY(cm != NULL);
- bool ok = cm->deleteConnectionMethod();
- QVERIFY(ok == true);
- cm->update();
- delete cm;
- }
-}