diff options
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(); |