Add QDebug support for QNetworkRequestFactory

Task-number: QTBUG-114705
Change-Id: If3e9d67ee310192debf58771e365f6035d4b2da6
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
This commit is contained in:
Juha Vuolle 2023-08-09 16:11:01 +03:00
parent 669a48e5ae
commit 6420e8b895
3 changed files with 42 additions and 0 deletions

View File

@ -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

View File

@ -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;
};

View File

@ -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();