summaryrefslogtreecommitdiffstats
path: root/tests/auto/network/access/qnetworkdiskcache
diff options
context:
space:
mode:
authorJeongmin Kim <jm86.kim@lge.com>2014-09-24 18:51:21 +0900
committerJeongmin Kim <jm86.kim@lge.com>2014-10-22 09:20:10 +0200
commit1ff6c575ce57c84324e4be4919cac65e09b96025 (patch)
treee827a9e43631917250efef82298cf60e724ee9c5 /tests/auto/network/access/qnetworkdiskcache
parentb5bbfad0a4e11a5db7ed04caf4dba43bcee7ae8d (diff)
QNetworkDiskCache: Fix QNetworkDiskCache don't handle to set CookieHeader.
QNetworkDiskCache don't handle to set CookieHeader. so All Set-Cookie's value is invalid. The root of cause is that metaDataChanged() don't work because of no slot for it. Add the slot for it and renamed to _q_metaDataChanged. Task-number: QTBUG-41514 Change-Id: I5cec017e59a1de69c6e89c0bc7209a73dcdc11da Reviewed-by: Jeongmin Kim <jm86.kim@lge.com> Reviewed-by: Jung Dong-Heon <clamp03@gmail.com> Reviewed-by: Peter Hartmann <phartmann@blackberry.com>
Diffstat (limited to 'tests/auto/network/access/qnetworkdiskcache')
-rw-r--r--tests/auto/network/access/qnetworkdiskcache/tst_qnetworkdiskcache.cpp39
1 files changed, 38 insertions, 1 deletions
diff --git a/tests/auto/network/access/qnetworkdiskcache/tst_qnetworkdiskcache.cpp b/tests/auto/network/access/qnetworkdiskcache/tst_qnetworkdiskcache.cpp
index a6d75390c3..a2f1668ef5 100644
--- a/tests/auto/network/access/qnetworkdiskcache/tst_qnetworkdiskcache.cpp
+++ b/tests/auto/network/access/qnetworkdiskcache/tst_qnetworkdiskcache.cpp
@@ -55,6 +55,7 @@ public slots:
void init();
void cleanup();
void accessAfterRemoveReadyReadSlot();
+ void setCookieHeaderMetaDataChangedSlot();
private slots:
void qnetworkdiskcache_data();
@@ -68,6 +69,7 @@ private slots:
void metaData();
void remove();
void accessAfterRemove(); // QTBUG-17400
+ void setCookieHeader(); // QTBUG-41514
void setCacheDirectory_data();
void setCacheDirectory();
void updateMetaData();
@@ -86,8 +88,9 @@ private slots:
private:
QTemporaryDir tempDir;
- QUrl url; // used by accessAfterRemove()
+ QUrl url; // used by accessAfterRemove(), setCookieHeader()
QNetworkDiskCache *diskCache; // used by accessAfterRemove()
+ QNetworkAccessManager *manager; // used by setCookieHeader()
};
// FIXME same as in tst_qnetworkreply.cpp .. could be unified
@@ -403,6 +406,40 @@ void tst_QNetworkDiskCache::accessAfterRemoveReadyReadSlot()
diskCache->remove(url); // this used to cause a crash later on
}
+void tst_QNetworkDiskCache::setCookieHeader() // QTBUG-41514
+{
+ SubQNetworkDiskCache *cache = new SubQNetworkDiskCache();
+ url = QUrl("http://www.foo.com/cookieTest.html");
+ QNetworkCacheMetaData metaData;
+ metaData.setUrl(url);
+
+ QNetworkCacheMetaData::RawHeaderList headers;
+ headers.append(QNetworkCacheMetaData::RawHeader("Set-Cookie", "aaa=bbb"));
+ metaData.setRawHeaders(headers);
+ metaData.setSaveToDisk(true);
+ cache->setupWithOne(tempDir.path(), url, metaData);
+
+ manager = new QNetworkAccessManager();
+ manager->setCache(cache);
+
+ QNetworkRequest request(url);
+ QNetworkReply *reply = manager->get(request);
+ connect(reply, SIGNAL(metaDataChanged()), this, SLOT(setCookieHeaderMetaDataChangedSlot()));
+ connect(reply, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop()));
+
+ QTestEventLoop::instance().enterLoop(5);
+ QVERIFY(!QTestEventLoop::instance().timeout());
+
+ reply->deleteLater();
+ manager->deleteLater();
+}
+
+void tst_QNetworkDiskCache::setCookieHeaderMetaDataChangedSlot()
+{
+ QList<QNetworkCookie> actualCookieJar = manager->cookieJar()->cookiesForUrl(url);
+ QVERIFY(!actualCookieJar.empty());
+}
+
void tst_QNetworkDiskCache::setCacheDirectory_data()
{
QTest::addColumn<QString>("cacheDir");