summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/network/access/qnetworkrequestfactory.cpp30
-rw-r--r--src/network/access/qnetworkrequestfactory.h5
-rw-r--r--tests/auto/network/access/qnetworkrequestfactory/tst_qnetworkrequestfactory.cpp7
3 files changed, 42 insertions, 0 deletions
diff --git a/src/network/access/qnetworkrequestfactory.cpp b/src/network/access/qnetworkrequestfactory.cpp
index e97fe1c68b..2e136c4334 100644
--- a/src/network/access/qnetworkrequestfactory.cpp
+++ b/src/network/access/qnetworkrequestfactory.cpp
@@ -522,4 +522,34 @@ bool QNetworkRequestFactoryPrivate::equals(
queryParameters == other.queryParameters;
}
+#ifndef QT_NO_DEBUG_STREAM
+/*!
+ \fn QDebug QNetworkRequestFactory::operator<<(QDebug debug,
+ const QNetworkRequestFactory &factory)
+
+ Writes \a factory into \a debug stream.
+
+ \sa {Debugging Techniques}
+*/
+QDebug operator<<(QDebug debug, const QNetworkRequestFactory &factory)
+{
+ const QDebugStateSaver saver(debug);
+ debug.resetFormat().nospace();
+
+ debug << "QNetworkRequestFactory(baseUrl = " << factory.baseUrl()
+ << ", headers = " << factory.headers()
+ << ", queryParameters = " << factory.queryParameters().queryItems()
+ << ", bearerToken = " << (factory.bearerToken().isEmpty() ? "(empty)" : "(is set)")
+ << ", transferTimeout = " << factory.transferTimeout()
+#if QT_CONFIG(ssl)
+ << ", SSL configuration"
+ << (factory.sslConfiguration().isNull() ? " is not set (default)" : " is set")
+#else
+ << ", no SSL support"
+#endif
+ << ")";
+ return debug;
+}
+#endif // QT_NO_DEBUG_STREAM
+
QT_END_NAMESPACE
diff --git a/src/network/access/qnetworkrequestfactory.h b/src/network/access/qnetworkrequestfactory.h
index b84fa0a39b..0c08ce42a6 100644
--- a/src/network/access/qnetworkrequestfactory.h
+++ b/src/network/access/qnetworkrequestfactory.h
@@ -16,6 +16,7 @@
QT_BEGIN_NAMESPACE
+class QDebug;
#if QT_CONFIG(ssl)
class QSslConfiguration;
#endif
@@ -70,6 +71,10 @@ private:
const QNetworkRequestFactory &rhs) noexcept;
Q_DECLARE_EQUALITY_COMPARABLE(QNetworkRequestFactory)
+#ifndef QT_NO_DEBUG_STREAM
+ friend Q_NETWORK_EXPORT QDebug operator<<(QDebug debug, const QNetworkRequestFactory &reply);
+#endif
+
QExplicitlySharedDataPointer<QNetworkRequestFactoryPrivate> d;
};
diff --git a/tests/auto/network/access/qnetworkrequestfactory/tst_qnetworkrequestfactory.cpp b/tests/auto/network/access/qnetworkrequestfactory/tst_qnetworkrequestfactory.cpp
index 332c09cdf9..3f251053f5 100644
--- a/tests/auto/network/access/qnetworkrequestfactory/tst_qnetworkrequestfactory.cpp
+++ b/tests/auto/network/access/qnetworkrequestfactory/tst_qnetworkrequestfactory.cpp
@@ -257,6 +257,13 @@ void tst_QNetworkRequestFactory::bearerToken()
QVERIFY(request.hasRawHeader(authHeader));
QCOMPARE(request.rawHeader(authHeader), "Bearer "_ba + bearerToken1);
+ // Verify that bearerToken is not in debug output
+ QString debugOutput;
+ QDebug debug(&debugOutput);
+ debug << factory;
+ QVERIFY(debugOutput.contains("bearerToken = (is set)"));
+ QVERIFY(!debugOutput.contains(bearerToken1));
+
factory.setBearerToken(bearerToken2);
QCOMPARE(factory.bearerToken(), bearerToken2);
request = factory.request();