summaryrefslogtreecommitdiffstats
path: root/tests/auto/network
diff options
context:
space:
mode:
authorMårten Nordheim <marten.nordheim@qt.io>2021-05-21 16:36:57 +0200
committerMårten Nordheim <marten.nordheim@qt.io>2021-05-31 17:25:22 +0200
commitda955aadf5d5189b4f8de3eb2ed1b2f2f129cb28 (patch)
treeb18fa8e5b1ca49971b9e3e97be4d263cdea8a67d /tests/auto/network
parent69982182a394618d4f121d2938d7d76196fe78f6 (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.cpp37
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"