diff options
author | Mårten Nordheim <marten.nordheim@qt.io> | 2021-05-21 16:36:57 +0200 |
---|---|---|
committer | Mårten Nordheim <marten.nordheim@qt.io> | 2021-05-31 17:25:22 +0200 |
commit | da955aadf5d5189b4f8de3eb2ed1b2f2f129cb28 (patch) | |
tree | b18fa8e5b1ca49971b9e3e97be4d263cdea8a67d /tests/auto/network | |
parent | 69982182a394618d4f121d2938d7d76196fe78f6 (diff) |
QNetworkInformation: Behind captive portal
This patch adds the API, with no supporting backends
Task-number: QTBUG-93848
Change-Id: I50454717f928819e1b990df91872675e842f9987
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Diffstat (limited to 'tests/auto/network')
-rw-r--r-- | tests/auto/network/kernel/qnetworkinformation/tst_qnetworkinformation.cpp | 37 |
1 files changed, 36 insertions, 1 deletions
diff --git a/tests/auto/network/kernel/qnetworkinformation/tst_qnetworkinformation.cpp b/tests/auto/network/kernel/qnetworkinformation/tst_qnetworkinformation.cpp index 09fa65273d..188355d373 100644 --- a/tests/auto/network/kernel/qnetworkinformation/tst_qnetworkinformation.cpp +++ b/tests/auto/network/kernel/qnetworkinformation/tst_qnetworkinformation.cpp @@ -40,6 +40,7 @@ class tst_QNetworkInformation : public QObject private slots: void initTestCase(); void reachability(); + void behindCaptivePortal(); void cleanupTestCase(); private: @@ -56,6 +57,7 @@ public: Q_ASSERT(!instance); instance = this; setReachability(QNetworkInformation::Reachability::Online); + setNewBehindCaptivePortal(QNetworkInformation::TriState::False); } ~MockBackend() { instance = nullptr; } @@ -72,9 +74,16 @@ public: instance->setReachability(value); } + static void setNewBehindCaptivePortal(QNetworkInformation::TriState value) + { + Q_ASSERT(instance); + instance->setBehindCaptivePortal(value); + } + static QNetworkInformation::Features featuresSupportedStatic() { - return { QNetworkInformation::Feature::Reachability }; + return { QNetworkInformation::Feature::Reachability, + QNetworkInformation::Feature::CaptivePortal }; } private: @@ -152,5 +161,31 @@ void tst_QNetworkInformation::reachability() QCOMPARE(boundIsOnline, QNetworkInformation::Reachability::Site); } +void tst_QNetworkInformation::behindCaptivePortal() +{ + auto info = QNetworkInformation::instance(); + QNetworkInformation::TriState behindPortal = QNetworkInformation::TriState::Unknown; + bool signalEmitted = false; + + connect(info, &QNetworkInformation::behindCaptivePortalChanged, this, + [&, info](QNetworkInformation::TriState state) { + signalEmitted = true; + QCOMPARE(state, info->behindCaptivePortal()); + behindPortal = info->behindCaptivePortal(); + }); + QCOMPARE(info->behindCaptivePortal(), QNetworkInformation::TriState::False); + MockBackend::setNewBehindCaptivePortal(QNetworkInformation::TriState::True); + QCoreApplication::processEvents(); + QVERIFY(signalEmitted); + QCOMPARE(info->behindCaptivePortal(), QNetworkInformation::TriState::True); + QCOMPARE(behindPortal, QNetworkInformation::TriState::True); + + // Set the same value again, signal should not be emitted again + signalEmitted = false; + MockBackend::setNewBehindCaptivePortal(QNetworkInformation::TriState::True); + QCoreApplication::processEvents(); + QVERIFY(!signalEmitted); +} + QTEST_MAIN(tst_QNetworkInformation); #include "tst_qnetworkinformation.moc" |