wlanutilities/wlanwizard/tsrc/stubs/eapqtconfig_stub.cpp
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Tue, 31 Aug 2010 16:18:40 +0300
branchRCL_3
changeset 24 63be7eb3fc78
permissions -rw-r--r--
Revision: 201029 Kit: 201035

/*
 * 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: 
 *   STUB: EAPWIZARD: EAP method QT configuration
 *
 */

/*
 * %version: 4 %
 */

#include "eapqtconfig.h"
#include <eapqtpluginhandle.h>
#include "eapqtcertificateinfo.h"
#include <QDebug>

//----------------------------------------------------------------------------
//              EapQtConfig                
//----------------------------------------------------------------------------

EapQtConfig::EapQtConfig()
{
}

EapQtConfig::EapQtConfig(const EapQtConfig &other)
{
    mSettings = other.mSettings;
}

EapQtConfig::~EapQtConfig()
{
    // scoped pointer deleted automatically
}

QVariant EapQtConfig::value(const SettingsId id) const
{
    // check for valid range, otherwise memory is consumed for no reason
    if(id >= SettingsIdLast) {
        qDebug("ERROR: EapQtConfig::value - invalid id!");
        return QVariant::Invalid;
    }
    return mSettings[id];
}

void EapQtConfig::setValue(const SettingsId id, const QVariant &newValue)
{
    // check for valid range, otherwise memory is consumed for no reason
    if(id < SettingsIdLast) {
        mSettings[id] = newValue;
    } else {
        qDebug("ERROR: EapQtConfig::setValue - invalid id!");
    }
    return;
}

void EapQtConfig::clear() {
    mSettings.clear();
    return;
}

bool EapQtConfig::operator==(const EapQtConfig & rhs ) const
{
    bool ret = true;
    if (mSettings.size() != rhs.mSettings.size()) {
        qWarning("EapQtConfig::operator==(): size: expect %d, actual %d ",
            mSettings.size(),
            rhs.mSettings.size() );
        ret = false;
    }
    QHashIterator<int, QVariant> i(mSettings);
    
    while (i.hasNext()) {
        i.next();
        if (!rhs.mSettings.contains(i.key())){
            qWarning("EapQtConfig::operator==(): key not found: %d", i.key());
            ret = false;
            
        }
        if (i.key() == EapQtConfig::InnerType) {
            QList<QVariant> list1(mSettings[i.key()].toList());
            QList<QVariant> list2(rhs.mSettings[i.key()].toList());
            
            if (list1.length() != 1 || list1.length() != list2.length()){
                qWarning("Invalid length in EapQtConfig::InnerType");
                ret = false;
            } else {
                EapQtPluginHandle handle1 = list1.at(0).value<EapQtPluginHandle> ();
                EapQtPluginHandle handle2 = list2.at(0).value<EapQtPluginHandle> ();
                if (handle1.pluginId() != handle2.pluginId()){
                    qWarning("Outer: %d", handle1.pluginId());
                    qWarning("Outer: %d", handle2.pluginId());
                    ret = false;
                }
            }
        }
        else if (i.key() == EapQtConfig::OuterType) {
            EapQtPluginHandle handle = mSettings[i.key()].value<EapQtPluginHandle> ();
            EapQtPluginHandle handle2 = rhs.mSettings[i.key()].value<EapQtPluginHandle> ();
            if (handle.pluginId() != handle2.pluginId()){
                qWarning("Outer: %d", handle.pluginId());
                qWarning("Outer: %d", handle2.pluginId());
                ret = false;
            }
        }
        else if (i.key() == EapQtConfig::AuthorityCertificate ||
                 i.key() == EapQtConfig::UserCertificate) {
            QList<QVariant> list1(mSettings[i.key()].toList());
            QList<QVariant> list2(rhs.mSettings[i.key()].toList());
            
            if (list1.length() != 1 || list1.length() != list2.length()) {
                qWarning("Invalid length Certs %d", i.key());
                ret = false;
            } else {
                EapQtCertificateInfo cert1 = list1.at(0).value<EapQtCertificateInfo>();
                EapQtCertificateInfo cert2 = list2.at(0).value<EapQtCertificateInfo>();
                
                if (!(cert1 == cert2)) {
                    ret = false;
                    qWarning("Invalid certs %d", i.key());
                }
            }
        }
        else {
            if (i.value() != rhs.mSettings[i.key()]){
                qWarning("EapQtConfig::operator==(): values does not match %d", i.key());
                qDebug() << "Expect: " << i.value();
                qDebug() << "Actual: " << rhs.mSettings[i.key()];
                ret = false;
            }
        }
    }
    return ret;
}