summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMårten Nordheim <marten.nordheim@qt.io>2021-10-21 12:18:41 +0200
committerMårten Nordheim <marten.nordheim@qt.io>2021-10-22 09:40:45 +0200
commit5f8e9c194e06b7a886cb69b24a37b62ab23c79a8 (patch)
tree62038b1b8090874f1c3d4c6e9d8adca4a797251e
parenta43dd9a6b1b1218a4c39943ba349416265ab8c68 (diff)
QNI: Add supportedFeatures getter
Which just returns all the supported features Change-Id: I8c3996b00a6ebb114bdbc9db3085a0e27fc8fa79 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
-rw-r--r--src/network/kernel/qnetworkinformation.cpp10
-rw-r--r--src/network/kernel/qnetworkinformation.h1
-rw-r--r--tests/auto/network/kernel/qnetworkinformation/tst_qnetworkinformation.cpp22
-rw-r--r--tests/manual/qnetworkinformation/tst_qnetworkinformation.cpp1
4 files changed, 32 insertions, 2 deletions
diff --git a/src/network/kernel/qnetworkinformation.cpp b/src/network/kernel/qnetworkinformation.cpp
index fabce63979..79375dee81 100644
--- a/src/network/kernel/qnetworkinformation.cpp
+++ b/src/network/kernel/qnetworkinformation.cpp
@@ -594,6 +594,16 @@ bool QNetworkInformation::supports(Features features) const
}
/*!
+ \since 6.3
+
+ Returns all the supported features of the current backend.
+*/
+QNetworkInformation::Features QNetworkInformation::supportedFeatures() const
+{
+ return d_func()->backend->featuresSupported();
+}
+
+/*!
Attempts to load a backend whose name matches \a backend
(case insensitively).
diff --git a/src/network/kernel/qnetworkinformation.h b/src/network/kernel/qnetworkinformation.h
index 776a063d27..febf5bbc8f 100644
--- a/src/network/kernel/qnetworkinformation.h
+++ b/src/network/kernel/qnetworkinformation.h
@@ -94,6 +94,7 @@ public:
QString backendName() const;
bool supports(Features features) const;
+ Features supportedFeatures() const;
static bool load(QStringView backend);
static bool load(Features features);
diff --git a/tests/auto/network/kernel/qnetworkinformation/tst_qnetworkinformation.cpp b/tests/auto/network/kernel/qnetworkinformation/tst_qnetworkinformation.cpp
index 16f1465668..b78983ae40 100644
--- a/tests/auto/network/kernel/qnetworkinformation/tst_qnetworkinformation.cpp
+++ b/tests/auto/network/kernel/qnetworkinformation/tst_qnetworkinformation.cpp
@@ -39,6 +39,7 @@ class tst_QNetworkInformation : public QObject
Q_OBJECT
private slots:
void initTestCase();
+ void supportedFeatures();
void reachability();
void behindCaptivePortal();
void transportMedium();
@@ -89,8 +90,9 @@ public:
static QNetworkInformation::Features featuresSupportedStatic()
{
- return { QNetworkInformation::Feature::Reachability,
- QNetworkInformation::Feature::CaptivePortal };
+ return { QNetworkInformation::Feature::Reachability
+ | QNetworkInformation::Feature::CaptivePortal
+ | QNetworkInformation::Feature::TransportMedium };
}
private:
@@ -138,6 +140,22 @@ void tst_QNetworkInformation::cleanupTestCase()
QVERIFY(!backends.contains(u"mock"));
}
+void tst_QNetworkInformation::supportedFeatures()
+{
+ auto info = QNetworkInformation::instance();
+
+ auto allFeatures = QNetworkInformation::Features(
+ QNetworkInformation::Feature::CaptivePortal | QNetworkInformation::Feature::Reachability
+ | QNetworkInformation::Feature::TransportMedium);
+
+ QCOMPARE(info->supportedFeatures(), allFeatures);
+
+ QVERIFY(info->supports(allFeatures));
+ QVERIFY(info->supports(QNetworkInformation::Feature::CaptivePortal));
+ QVERIFY(info->supports(QNetworkInformation::Feature::Reachability));
+ QVERIFY(info->supports(QNetworkInformation::Feature::TransportMedium));
+}
+
void tst_QNetworkInformation::reachability()
{
auto info = QNetworkInformation::instance();
diff --git a/tests/manual/qnetworkinformation/tst_qnetworkinformation.cpp b/tests/manual/qnetworkinformation/tst_qnetworkinformation.cpp
index ec6ce99de4..e38ff7494f 100644
--- a/tests/manual/qnetworkinformation/tst_qnetworkinformation.cpp
+++ b/tests/manual/qnetworkinformation/tst_qnetworkinformation.cpp
@@ -55,6 +55,7 @@ int main(int argc, char **argv)
}
QNetworkInformation *info = QNetworkInformation::instance();
qDebug() << "Backend loaded:" << info->backendName();
+ qDebug() << "Supports:" << info->supportedFeatures();
qDebug() << "Now you can make changes to the current network connection. Qt should see the "
"changes and notify about it.";
QObject::connect(info, &QNetworkInformation::reachabilityChanged,