diff options
author | Shane Kearns <shane.kearns@accenture.com> | 2011-12-22 14:08:17 +0000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2011-12-22 16:10:33 +0100 |
commit | 4954f71648aa7f74a4cb8b1dd26470b5da44459e (patch) | |
tree | 063794adfe824e7003a8c52735c8dad57ccd10fc /tests | |
parent | ee0a997bcd8d00f0515d037c964d77ecfdd3159f (diff) |
Fix http authentication to a different realm on the same server
This is a regression caused by the NTLMv2 authentication patch.
I have manually tested NTLMv2 authentication against MS IIS and reverting
these two lines does not break it.
Task-number: QT-5209
Change-Id: I64159cbe468e1a7f834f8726fd0c9d4ab4c54b38
Reviewed-by: Peter Hartmann <peter.hartmann@nokia.com>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp b/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp index cc520a620a..dc1dd4ab68 100644 --- a/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp +++ b/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp @@ -382,6 +382,7 @@ private Q_SLOTS: void httpUserAgent(); void authenticationCacheAfterCancel_data(); void authenticationCacheAfterCancel(); + void authenticationWithDifferentRealm(); void synchronousAuthenticationCache(); // NOTE: This test must be last! @@ -6212,6 +6213,38 @@ void tst_QNetworkReply::authenticationCacheAfterCancel() } +void tst_QNetworkReply::authenticationWithDifferentRealm() +{ + AuthenticationCacheHelper helper; + QNetworkAccessManager manager; +#ifndef QT_NO_OPENSSL + connect(&manager, SIGNAL(sslErrors(QNetworkReply*,QList<QSslError>)), + SLOT(sslErrors(QNetworkReply*,QList<QSslError>))); +#endif + connect(&manager, SIGNAL(proxyAuthenticationRequired(const QNetworkProxy &, QAuthenticator *)), &helper, SLOT(proxyAuthenticationRequired(const QNetworkProxy &, QAuthenticator *))); + connect(&manager, SIGNAL(authenticationRequired(QNetworkReply*,QAuthenticator*)), &helper, SLOT(authenticationRequired(QNetworkReply*,QAuthenticator*))); + + helper.httpUserName = "httptest"; + helper.httpPassword = "httptest"; + + QNetworkRequest request(QUrl("http://" + QtNetworkSettings::serverName() + "/qtest/rfcs-auth/rfc3252.txt")); + QNetworkReply* reply = manager.get(request); + connect(reply, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop()), Qt::QueuedConnection); + QTestEventLoop::instance().enterLoop(10); + QVERIFY(!QTestEventLoop::instance().timeout()); + QCOMPARE(reply->error(), QNetworkReply::NoError); + + helper.httpUserName = "httptest"; + helper.httpPassword = "httptest"; + + request.setUrl(QUrl("http://" + QtNetworkSettings::serverName() + "/qtest/auth-digest/")); + reply = manager.get(request); + connect(reply, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop()), Qt::QueuedConnection); + QTestEventLoop::instance().enterLoop(10); + QVERIFY(!QTestEventLoop::instance().timeout()); + QCOMPARE(reply->error(), QNetworkReply::NoError); +} + class QtBug13431Helper : public QObject { Q_OBJECT public: |