File indexing completed on 2025-01-12 06:44:58
0001 /* 0002 SPDX-FileCopyrightText: 2014 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 "managertest.h" 0008 0009 #include "manager.h" 0010 #include "wireddevice.h" 0011 0012 #include "fakenetwork/wireddevice.h" 0013 0014 #include <QSignalSpy> 0015 #include <QTest> 0016 0017 void ManagerTest::initTestCase() 0018 { 0019 fakeNetwork = new FakeNetwork(); 0020 } 0021 0022 void ManagerTest::testDevices() 0023 { 0024 WiredDevice *device = new WiredDevice(); 0025 /* Device properties */ 0026 device->setAutoconnect(true); 0027 device->setCapabilities(3); 0028 device->setDeviceType(1); 0029 device->setDriver(QLatin1String("e1000e")); 0030 device->setDriverVersion(QLatin1String("2.3.2-k")); 0031 device->setFirmwareMissing(false); 0032 device->setInterfaceFlags(NetworkManager::Device::Interfaceflag::Up); 0033 device->setFirmwareVersion(QLatin1String("0.13-3")); 0034 device->setInterface(QLatin1String("em1")); 0035 device->setManaged(true); 0036 device->setUdi(QLatin1String("/sys/devices/pci0000:00/0000:00:19.0/net/em1")); 0037 0038 /* Wired device properties */ 0039 device->setCarrier(true); 0040 device->setHwAddress(QLatin1String("F0:DE:F1:FB:30:C1")); 0041 device->setPermanentHwAddress(QLatin1String("F0:DE:F1:FB:30:C1")); 0042 0043 QSignalSpy addDeviceSpy(NetworkManager::notifier(), SIGNAL(deviceAdded(QString))); 0044 connect(NetworkManager::notifier(), &NetworkManager::Notifier::deviceAdded, this, &ManagerTest::testDeviceAdded); 0045 fakeNetwork->addDevice(device); 0046 QVERIFY(addDeviceSpy.wait()); 0047 QCOMPARE(NetworkManager::networkInterfaces().count(), 1); 0048 QCOMPARE(NetworkManager::networkInterfaces().first()->uni(), addDeviceSpy.at(0).at(0).toString()); 0049 const QString addedDevicePath = NetworkManager::networkInterfaces().first()->uni(); 0050 0051 QSignalSpy removeDeviceSpy(NetworkManager::notifier(), SIGNAL(deviceRemoved(QString))); 0052 fakeNetwork->removeDevice(device); 0053 QVERIFY(removeDeviceSpy.wait()); 0054 QVERIFY(NetworkManager::networkInterfaces().isEmpty()); 0055 QCOMPARE(removeDeviceSpy.at(0).at(0).toString(), addedDevicePath); 0056 0057 addDeviceSpy.clear(); 0058 0059 fakeNetwork->addDevice(device); 0060 QVERIFY(addDeviceSpy.wait()); 0061 QCOMPARE(NetworkManager::networkInterfaces().count(), 1); 0062 QCOMPARE(NetworkManager::networkInterfaces().first()->uni(), addDeviceSpy.at(0).at(0).toString()); 0063 0064 addDeviceSpy.clear(); 0065 removeDeviceSpy.clear(); 0066 0067 fakeNetwork->unregisterService(); 0068 QTRY_COMPARE(removeDeviceSpy.count(), 1); 0069 0070 fakeNetwork->registerService(); 0071 QTRY_COMPARE(addDeviceSpy.count(), 1); 0072 0073 // Make sure deviceAdded is emitted only once 0074 addDeviceSpy.wait(100); 0075 QCOMPARE(addDeviceSpy.count(), 1); 0076 0077 delete device; 0078 } 0079 0080 void ManagerTest::testDeviceAdded(const QString &dev) 0081 { 0082 NetworkManager::Device::Ptr device = NetworkManager::findNetworkInterface(dev); 0083 0084 QCOMPARE(device->autoconnect(), true); 0085 QCOMPARE(device->capabilities(), 3); 0086 QCOMPARE(device->type(), NetworkManager::Device::Ethernet); 0087 QCOMPARE(device->driver(), QLatin1String("e1000e")); 0088 QCOMPARE(device->driverVersion(), QLatin1String("2.3.2-k")); 0089 QCOMPARE(device->firmwareMissing(), false); 0090 QCOMPARE(device->firmwareVersion(), QLatin1String("0.13-3")); 0091 QCOMPARE(device->interfaceName(), QLatin1String("em1")); 0092 QCOMPARE(device->interfaceFlags(), NetworkManager::Device::Interfaceflag::Up); 0093 QCOMPARE(device->managed(), true); 0094 QCOMPARE(device->udi(), QLatin1String("/sys/devices/pci0000:00/0000:00:19.0/net/em1")); 0095 0096 NetworkManager::WiredDevice::Ptr wiredDevice = device.objectCast<NetworkManager::WiredDevice>(); 0097 0098 QCOMPARE(wiredDevice->carrier(), true); 0099 QCOMPARE(wiredDevice->hardwareAddress(), QLatin1String("F0:DE:F1:FB:30:C1")); 0100 QCOMPARE(wiredDevice->permanentHardwareAddress(), QLatin1String("F0:DE:F1:FB:30:C1")); 0101 } 0102 0103 void ManagerTest::testManager() 0104 { 0105 QCOMPARE(NetworkManager::connectivity(), NetworkManager::NoConnectivity); 0106 // QCOMPARE(NetworkManager::status(), NetworkManager::Disconnected); 0107 QCOMPARE(NetworkManager::version(), QLatin1String("0.9.10.0")); 0108 0109 QSignalSpy wirelessEnabledChanged(NetworkManager::notifier(), SIGNAL(wirelessEnabledChanged(bool))); 0110 QCOMPARE(NetworkManager::isWirelessEnabled(), true); 0111 fakeNetwork->setWirelessEnabled(false); 0112 QVERIFY(wirelessEnabledChanged.wait()); 0113 QCOMPARE(wirelessEnabledChanged.count(), 1); 0114 QVERIFY(wirelessEnabledChanged.at(0).at(0).toBool() == false); 0115 QCOMPARE(NetworkManager::isWirelessEnabled(), false); 0116 0117 QSignalSpy wirelessHwEnabledChanged(NetworkManager::notifier(), SIGNAL(wirelessHardwareEnabledChanged(bool))); 0118 QCOMPARE(NetworkManager::isWirelessHardwareEnabled(), true); 0119 fakeNetwork->setWirelessHardwareEnabled(false); 0120 QVERIFY(wirelessHwEnabledChanged.wait()); 0121 QCOMPARE(wirelessHwEnabledChanged.count(), 1); 0122 QVERIFY(wirelessHwEnabledChanged.at(0).at(0).toBool() == false); 0123 QCOMPARE(NetworkManager::isWirelessHardwareEnabled(), false); 0124 0125 QSignalSpy wimaxEnabledChanged(NetworkManager::notifier(), SIGNAL(wimaxEnabledChanged(bool))); 0126 QCOMPARE(NetworkManager::isWimaxEnabled(), true); 0127 fakeNetwork->setWimaxEnabled(false); 0128 QVERIFY(wimaxEnabledChanged.wait()); 0129 QCOMPARE(wimaxEnabledChanged.count(), 1); 0130 QVERIFY(wimaxEnabledChanged.at(0).at(0).toBool() == false); 0131 QCOMPARE(NetworkManager::isWimaxEnabled(), false); 0132 0133 QSignalSpy wimaxHwEnabledChanged(NetworkManager::notifier(), SIGNAL(wimaxHardwareEnabledChanged(bool))); 0134 QCOMPARE(NetworkManager::isWimaxHardwareEnabled(), true); 0135 fakeNetwork->setWimaxHardwareEnabled(false); 0136 QVERIFY(wimaxHwEnabledChanged.wait()); 0137 QCOMPARE(wimaxHwEnabledChanged.count(), 1); 0138 QVERIFY(wimaxHwEnabledChanged.at(0).at(0).toBool() == false); 0139 QCOMPARE(NetworkManager::isWimaxHardwareEnabled(), false); 0140 0141 QSignalSpy wwanEnabledChanged(NetworkManager::notifier(), SIGNAL(wwanEnabledChanged(bool))); 0142 QCOMPARE(NetworkManager::isWwanEnabled(), true); 0143 fakeNetwork->setWwanEnabled(false); 0144 QVERIFY(wwanEnabledChanged.wait()); 0145 QCOMPARE(wwanEnabledChanged.count(), 1); 0146 QVERIFY(wwanEnabledChanged.at(0).at(0).toBool() == false); 0147 QCOMPARE(NetworkManager::isWwanEnabled(), false); 0148 0149 // We make it here, so we can set all values back for futher testing 0150 fakeNetwork->setWirelessEnabled(true); 0151 fakeNetwork->setWirelessHardwareEnabled(true); 0152 fakeNetwork->setWimaxEnabled(true); 0153 fakeNetwork->setWimaxHardwareEnabled(true); 0154 fakeNetwork->setWwanEnabled(true); 0155 } 0156 0157 QTEST_MAIN(ManagerTest) 0158 0159 #include "moc_managertest.cpp"