summaryrefslogtreecommitdiffstats
path: root/tests/auto/network/access/qnetworkreply
diff options
context:
space:
mode:
authorEric Lemanissier <eric.lemanissier@gmail.com>2014-09-01 19:57:51 +0200
committerGiuseppe D'Angelo <giuseppe.dangelo@kdab.com>2014-09-09 22:26:27 +0200
commit3e804976687ce3dbe424ae5dfa47bba0a6280ce1 (patch)
tree7b0d7948d071e709ed5f820f75a9d431f80ca55c /tests/auto/network/access/qnetworkreply
parent529a31c967a202458abd126d378a2f690c2ec256 (diff)
Preventing caching of null authenticator
In some cases, e.g. when bad credentials are provided in an ftp URI, QNetworkAccessAuthenticationManager::cacheCredentials is called with a null authenticator. This authenticator should not be cached, because it is useless, and leads to inconsistencies in the use of the cache Task-number: QTBUG-40622 Change-Id: If2a0a422b915f268648f5eef1d68601446123371 Reviewed-by: Peter Hartmann <phartmann@blackberry.com>
Diffstat (limited to 'tests/auto/network/access/qnetworkreply')
-rw-r--r--tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp b/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp
index 9988db74c7..70c118b681 100644
--- a/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp
+++ b/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp
@@ -219,6 +219,7 @@ private Q_SLOTS:
void putToFile();
void putToFtp_data();
void putToFtp();
+ void putToFtpWithInvalidCredentials(); // QTBUG-40622
void putToHttp_data();
void putToHttp();
void putToHttpSynchronous_data();
@@ -2075,6 +2076,28 @@ void tst_QNetworkReply::putToFtp()
QObject::disconnect(r, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop()));
}
+void tst_QNetworkReply::putToFtpWithInvalidCredentials()
+{
+ QUrl url("ftp://" + QtNetworkSettings::serverName());
+ url.setPath(QString("/qtest/upload/qnetworkaccess-putToFtp-%1-%2")
+ .arg(QTest::currentDataTag())
+ .arg(uniqueExtension));
+ url.setUserName("invalidUser");
+ url.setPassword("InvalidPassword");
+ QNetworkRequest req(url);
+ QNetworkReplyPtr r;
+
+ for (int i = 0; i < 2; i++)
+ {
+ runSimpleRequest(QNetworkAccessManager::PutOperation, req, r, QByteArray());
+
+ QVERIFY(r->isFinished());
+ QCOMPARE(r->url(), url);
+ QCOMPARE(r->error(), QNetworkReply::AuthenticationRequiredError);
+ r->close();
+ }
+}
+
void tst_QNetworkReply::putToHttp_data()
{
putToFile_data();