summaryrefslogtreecommitdiffstats
path: root/tests/manual/qnetworkaccessmanager/qget/qget.h
diff options
context:
space:
mode:
authorShane Kearns <ext-shane.2.kearns@nokia.com>2012-03-22 16:24:17 +0000
committerQt by Nokia <qt-info@nokia.com>2012-04-02 16:56:48 +0200
commitb08f74f08939be310a79b5efcb5721e35c5deb21 (patch)
tree3e0458052b2c9c67c33627e86afd84eb89f14ab7 /tests/manual/qnetworkaccessmanager/qget/qget.h
parent565da6030fc2396d8d00baa65196cfc1f5d63f27 (diff)
Add support for PUT & POST to qget test
Due to some bugs that are not reproducable with a normal HTTP GET This patch also adds the option to process multiple URLs serially (using application level queuing) rather than the default parallel (using QNetworkAccessManager queuing on 6 TCP connections) & renames the authentication command line options to match wget. Change-Id: I10915feb3bba23abbd7a72f9844c03f347f9bff5 Reviewed-by: Richard J. Moore <rich@kde.org> Reviewed-by: Martin Petersson <Martin.Petersson@nokia.com>
Diffstat (limited to 'tests/manual/qnetworkaccessmanager/qget/qget.h')
-rw-r--r--tests/manual/qnetworkaccessmanager/qget/qget.h77
1 files changed, 51 insertions, 26 deletions
diff --git a/tests/manual/qnetworkaccessmanager/qget/qget.h b/tests/manual/qnetworkaccessmanager/qget/qget.h
index 40d75a3903..bad4f5e4d2 100644
--- a/tests/manual/qnetworkaccessmanager/qget/qget.h
+++ b/tests/manual/qnetworkaccessmanager/qget/qget.h
@@ -46,25 +46,50 @@
#include <QNetworkReply>
#include <QFile>
-class DownloadItem : public QObject
+class TransferItem : public QObject
{
Q_OBJECT
public:
- DownloadItem(QNetworkReply* r, QNetworkAccessManager& nam);
- ~DownloadItem();
+ enum Method {Get,Put,Post};
+ TransferItem(const QNetworkRequest &r, const QString &u, const QString &p, QNetworkAccessManager &n, Method m);
+ void start();
+signals:
+ void downloadFinished(TransferItem *self);
+public slots:
+ void progress(qint64,qint64);
+public:
+ Method method;
+ QNetworkRequest request;
+ QNetworkReply *reply;
+ QNetworkAccessManager &nam;
+ QFile *inputFile;
+ QFile *outputFile;
+ QList<QUrl> redirects;
+ QString user;
+ QString password;
+};
- QNetworkReply* networkReply() { return reply; }
+class DownloadItem : public TransferItem
+{
+ Q_OBJECT
+public:
+ DownloadItem(const QNetworkRequest &r, const QString &user, const QString &password, QNetworkAccessManager &nam);
+ ~DownloadItem();
-signals:
- void downloadFinished(DownloadItem *self);
private slots:
void readyRead();
void finished();
private:
- QNetworkAccessManager& nam;
- QNetworkReply* reply;
- QFile file;
- QList<QUrl> redirects;
+};
+
+class UploadItem : public TransferItem
+{
+ Q_OBJECT
+public:
+ UploadItem(const QNetworkRequest &r, const QString &user, const QString &password, QNetworkAccessManager &nam, QFile *f, TransferItem::Method method);
+ ~UploadItem();
+private slots:
+ void finished();
};
class DownloadManager : public QObject
@@ -73,31 +98,31 @@ class DownloadManager : public QObject
public:
DownloadManager();
~DownloadManager();
- void get(const QUrl& url);
- void setProxy(const QNetworkProxy& proxy) { nam.setProxy(proxy); }
- void setHttpUser(const QString& user) { httpUser = user; }
- void setHttpPassword(const QString& password) { httpPassword = password; }
- void setProxyUser(const QString& user) { proxyUser = user; }
- void setProxyPassword(const QString& password) { proxyPassword = password; }
+ void get(const QUrl &url, const QString &user, const QString &password);
+ void upload(const QUrl &url, const QString &user, const QString &password, const QString &filename, const QString &contentType, TransferItem::Method method);
+ void setProxy(const QNetworkProxy &proxy) { nam.setProxy(proxy); }
+ void setProxyUser(const QString &user) { proxyUser = user; }
+ void setProxyPassword(const QString &password) { proxyPassword = password; }
+ enum QueueMode { Parallel, Serial };
+ void setQueueMode(QueueMode mode);
public slots:
void checkForAllDone();
private slots:
- void finished(QNetworkReply* reply);
- void authenticationRequired(QNetworkReply* reply, QAuthenticator* authenticator);
- void proxyAuthenticationRequired(const QNetworkProxy& proxy, QAuthenticator* authenticator);
-#ifndef QT_NO_SSL
- void sslErrors(QNetworkReply* reply, const QList<QSslError>& errors);
-#endif
- void downloadFinished(DownloadItem *item);
+ void finished(QNetworkReply *reply);
+ void authenticationRequired(QNetworkReply *reply, QAuthenticator *authenticator);
+ void proxyAuthenticationRequired(const QNetworkProxy &proxy, QAuthenticator *authenticator);
+ void sslErrors(QNetworkReply *reply, const QList<QSslError> &errors);
+ void downloadFinished(TransferItem *item);
private:
+ TransferItem *findTransfer(QNetworkReply *reply);
+
QNetworkAccessManager nam;
- QList<DownloadItem*> downloads;
- QString httpUser;
- QString httpPassword;
+ QList<TransferItem*> transfers;
QString proxyUser;
QString proxyPassword;
+ QueueMode queueMode;
};
#endif // QGET_H