File indexing completed on 2024-12-01 03:44:48

0001 /*
0002     SPDX-FileCopyrightText: 2012-2013 Jan Grulich <jgrulich@redhat.com>
0003 
0004     SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
0005 */
0006 
0007 #include "wirelesssecuritysettingtest.h"
0008 
0009 #include <libnm/NetworkManager.h>
0010 
0011 #include "settings/wirelesssecuritysetting.h"
0012 
0013 #include <QTest>
0014 
0015 #if !NM_CHECK_VERSION(1, 10, 0)
0016 #define NM_SETTING_WIRELESS_SECURITY_PMF "pmf"
0017 #endif
0018 
0019 void WirelessSecuritySettingTest::testSetting_data()
0020 {
0021     QTest::addColumn<QString>("keyMgmt");
0022     QTest::addColumn<quint32>("wepTxKeyidx");
0023     QTest::addColumn<QString>("authAlg");
0024     QTest::addColumn<QStringList>("proto");
0025     QTest::addColumn<QStringList>("pairwise");
0026     QTest::addColumn<QStringList>("group");
0027     QTest::addColumn<QString>("leapUsername");
0028     QTest::addColumn<QString>("wepKey0");
0029     QTest::addColumn<QString>("wepKey1");
0030     QTest::addColumn<QString>("wepKey2");
0031     QTest::addColumn<QString>("wepKey3");
0032     QTest::addColumn<quint32>("wepKeyFlags");
0033     QTest::addColumn<quint32>("wepKeyType");
0034     QTest::addColumn<QString>("psk");
0035     QTest::addColumn<quint32>("pskFlags");
0036     QTest::addColumn<QString>("leapPassword");
0037     QTest::addColumn<quint32>("leapPasswordFlags");
0038     QTest::addColumn<quint32>("pmf");
0039 
0040     QStringList proto;
0041     proto << "wpa";
0042     proto << "rsn";
0043 
0044     QStringList pairwise;
0045     pairwise << "wep40";
0046     pairwise << "ccmp";
0047 
0048     QStringList group;
0049     group << "wep104";
0050     group << "tkip";
0051 
0052     QTest::newRow("setting1") << QString("none") // keyMgmt
0053                               << (quint32)1 // wepTxKeyIdx
0054                               << QString("open") // authAlg
0055                               << proto // proto
0056                               << pairwise // pairwise
0057                               << group // group
0058                               << QString("login") // leapUsername
0059                               << QString("abcde") // wepKey0
0060                               << QString("fghij") // wepKey1
0061                               << QString("klmno") // wepKey2
0062                               << QString("pqrst") // wepKey3
0063                               << (quint32)1 // wepKeyFlags
0064                               << (quint32)1 // wepKeyType
0065                               << QString("12345678") // psk
0066                               << (quint32)2 // pskFlags
0067                               << QString("leappass") // leapPassword
0068                               << (quint32)4 // leapPasswordFlags
0069                               << (quint32)3; // pmf
0070 }
0071 
0072 void WirelessSecuritySettingTest::testSetting()
0073 {
0074     QFETCH(QString, keyMgmt);
0075     QFETCH(quint32, wepTxKeyidx);
0076     QFETCH(QString, authAlg);
0077     QFETCH(QStringList, proto);
0078     QFETCH(QStringList, pairwise);
0079     QFETCH(QStringList, group);
0080     QFETCH(QString, leapUsername);
0081     QFETCH(QString, wepKey0);
0082     QFETCH(QString, wepKey1);
0083     QFETCH(QString, wepKey2);
0084     QFETCH(QString, wepKey3);
0085     QFETCH(quint32, wepKeyFlags);
0086     QFETCH(quint32, wepKeyType);
0087     QFETCH(QString, psk);
0088     QFETCH(quint32, pskFlags);
0089     QFETCH(QString, leapPassword);
0090     QFETCH(quint32, leapPasswordFlags);
0091     QFETCH(quint32, pmf);
0092 
0093     QVariantMap map;
0094 
0095     map.insert(QLatin1String(NM_SETTING_WIRELESS_SECURITY_KEY_MGMT), keyMgmt);
0096     map.insert(QLatin1String(NM_SETTING_WIRELESS_SECURITY_WEP_TX_KEYIDX), wepTxKeyidx);
0097     map.insert(QLatin1String(NM_SETTING_WIRELESS_SECURITY_AUTH_ALG), authAlg);
0098     map.insert(QLatin1String(NM_SETTING_WIRELESS_SECURITY_PROTO), proto);
0099     map.insert(QLatin1String(NM_SETTING_WIRELESS_SECURITY_PAIRWISE), pairwise);
0100     map.insert(QLatin1String(NM_SETTING_WIRELESS_SECURITY_GROUP), group);
0101     map.insert(QLatin1String(NM_SETTING_WIRELESS_SECURITY_LEAP_USERNAME), leapUsername);
0102     map.insert(QLatin1String(NM_SETTING_WIRELESS_SECURITY_WEP_KEY0), wepKey0);
0103     map.insert(QLatin1String(NM_SETTING_WIRELESS_SECURITY_WEP_KEY1), wepKey1);
0104     map.insert(QLatin1String(NM_SETTING_WIRELESS_SECURITY_WEP_KEY2), wepKey2);
0105     map.insert(QLatin1String(NM_SETTING_WIRELESS_SECURITY_WEP_KEY3), wepKey3);
0106     map.insert(QLatin1String(NM_SETTING_WIRELESS_SECURITY_WEP_KEY_FLAGS), wepKeyFlags);
0107     map.insert(QLatin1String(NM_SETTING_WIRELESS_SECURITY_WEP_KEY_TYPE), wepKeyType);
0108     map.insert(QLatin1String(NM_SETTING_WIRELESS_SECURITY_PSK), psk);
0109     map.insert(QLatin1String(NM_SETTING_WIRELESS_SECURITY_PSK_FLAGS), pskFlags);
0110     map.insert(QLatin1String(NM_SETTING_WIRELESS_SECURITY_LEAP_PASSWORD), leapPassword);
0111     map.insert(QLatin1String(NM_SETTING_WIRELESS_SECURITY_LEAP_PASSWORD_FLAGS), leapPasswordFlags);
0112     map.insert(QLatin1String(NM_SETTING_WIRELESS_SECURITY_PMF), pmf);
0113 
0114     NetworkManager::WirelessSecuritySetting setting;
0115     setting.fromMap(map);
0116 
0117     QVariantMap map1 = setting.toMap();
0118 
0119     // Will fail if set some default values, because they are skipped in toMap() method
0120     QVariantMap::const_iterator it = map.constBegin();
0121     while (it != map.constEnd()) {
0122         QCOMPARE(it.value(), map1.value(it.key()));
0123         ++it;
0124     }
0125 }
0126 
0127 QTEST_MAIN(WirelessSecuritySettingTest)
0128 
0129 #include "moc_wirelesssecuritysettingtest.cpp"