Test your websites with this simple GUI based scripted webtester. Generate simple testscripts directly from surfng on the webpage, enhance them with your commands, with variables, loops, checks, … and finally run automated web tests.
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
240 lines
9.3 KiB
240 lines
9.3 KiB
/*! @file |
|
|
|
@id $Id$ |
|
*/ |
|
// 1 2 3 4 5 6 7 8 |
|
// 45678901234567890123456789012345678901234567890123456789012345678901234567890 |
|
#ifndef __NETWORKACCESS_MANAGER_HXX__ |
|
#define __NETWORKACCESS_MANAGER_HXX__ |
|
|
|
#include <QNetworkAccessManager> |
|
#include <QNetworkReply> |
|
#include <QNetworkConfiguration> |
|
#include <QNetworkProxy> |
|
|
|
class NetworkAccessManager: public QNetworkAccessManager { |
|
Q_OBJECT; |
|
public: |
|
NetworkAccessManager(QObject* parent = 0): QNetworkAccessManager(parent) { |
|
//log(__PRETTY_FUNCTION__); |
|
connect(this, |
|
SIGNAL(authenticationRequired(QNetworkReply*, QAuthenticator*)), |
|
SLOT(authenticationRequiredLog(QNetworkReply*, QAuthenticator*))); |
|
connect(this, |
|
SIGNAL(encrypted(QNetworkReply*)), |
|
SLOT(encryptedLog(QNetworkReply*))); |
|
connect(this, |
|
SIGNAL(finished(QNetworkReply*)), |
|
SLOT(finishedLog(QNetworkReply*))); |
|
connect(this, |
|
SIGNAL(networkAccessibleChanged |
|
(QNetworkAccessManager::NetworkAccessibility)), |
|
SLOT(networkAccessibleChangedLog |
|
(QNetworkAccessManager::NetworkAccessibility))); |
|
connect(this, |
|
SIGNAL(proxyAuthenticationRequired(const QNetworkProxy&, |
|
QAuthenticator*)), |
|
SLOT(proxyAuthenticationRequiredLog(const QNetworkProxy&, |
|
QAuthenticator*))); |
|
connect(this, |
|
SIGNAL(sslErrors(QNetworkReply*, const QList<QSslError>&)), |
|
SLOT(sslErrorsLog(QNetworkReply*, const QList<QSslError>&))); |
|
} |
|
virtual ~NetworkAccessManager() { |
|
//log(__PRETTY_FUNCTION__); |
|
} |
|
QNetworkConfiguration activeConfiguration() const { |
|
//log(__PRETTY_FUNCTION__); |
|
return QNetworkAccessManager::activeConfiguration(); |
|
} |
|
QAbstractNetworkCache* cache() const { |
|
//log(__PRETTY_FUNCTION__); |
|
return QNetworkAccessManager::cache(); |
|
} |
|
void clearAccessCache() { |
|
//log(__PRETTY_FUNCTION__); |
|
return QNetworkAccessManager::clearAccessCache(); |
|
} |
|
QNetworkConfiguration configuration() const { |
|
//log(__PRETTY_FUNCTION__); |
|
return QNetworkAccessManager::configuration(); |
|
} |
|
void connectToHost(const QString& hostName, quint16 port = 80) { |
|
//log(__PRETTY_FUNCTION__); |
|
QNetworkAccessManager::connectToHost(hostName, port); |
|
} |
|
void connectToHostEncrypted(const QString& hostName, quint16 port = 443, |
|
const QSslConfiguration& sslConfiguration |
|
= QSslConfiguration::defaultConfiguration()) { |
|
//log(__PRETTY_FUNCTION__); |
|
QNetworkAccessManager::connectToHostEncrypted(hostName, port, |
|
sslConfiguration); |
|
} |
|
QNetworkCookieJar* cookieJar() const { |
|
//log(__PRETTY_FUNCTION__); |
|
return QNetworkAccessManager::cookieJar(); |
|
} |
|
QNetworkReply* deleteResource(const QNetworkRequest & request) { |
|
//log(__PRETTY_FUNCTION__); |
|
return QNetworkAccessManager::deleteResource(request); |
|
} |
|
QNetworkReply* get(const QNetworkRequest& request) { |
|
//log(__PRETTY_FUNCTION__); |
|
return QNetworkAccessManager::get(request); |
|
} |
|
QNetworkReply* head(const QNetworkRequest& request) { |
|
//log(__PRETTY_FUNCTION__); |
|
return QNetworkAccessManager::head(request); |
|
} |
|
NetworkAccessibility networkAccessible() const { |
|
//log(__PRETTY_FUNCTION__); |
|
return QNetworkAccessManager::networkAccessible(); |
|
} |
|
QNetworkReply* post(const QNetworkRequest & request, QIODevice * data) { |
|
//log(__PRETTY_FUNCTION__); |
|
return QNetworkAccessManager::post(request, data); |
|
} |
|
QNetworkReply* post(const QNetworkRequest& request, |
|
const QByteArray& data) { |
|
//log(__PRETTY_FUNCTION__); |
|
return QNetworkAccessManager::post(request, data); |
|
} |
|
QNetworkReply* post(const QNetworkRequest& request, |
|
QHttpMultiPart* multiPart) { |
|
//log(__PRETTY_FUNCTION__); |
|
return QNetworkAccessManager::post(request, multiPart); |
|
} |
|
QNetworkProxy proxy() const { |
|
//log(__PRETTY_FUNCTION__); |
|
return QNetworkAccessManager::proxy(); |
|
} |
|
QNetworkProxyFactory* proxyFactory() const { |
|
//log(__PRETTY_FUNCTION__); |
|
return QNetworkAccessManager::proxyFactory(); |
|
} |
|
QNetworkReply* put(const QNetworkRequest& request, QIODevice* data) { |
|
//log(__PRETTY_FUNCTION__); |
|
return QNetworkAccessManager::put(request, data); |
|
} |
|
QNetworkReply* put(const QNetworkRequest& request, |
|
QHttpMultiPart* multiPart) { |
|
//log(__PRETTY_FUNCTION__); |
|
return QNetworkAccessManager::put(request, multiPart); |
|
} |
|
QNetworkReply* put(const QNetworkRequest& request, const QByteArray& data) { |
|
//log(__PRETTY_FUNCTION__); |
|
return QNetworkAccessManager::put(request, data); |
|
} |
|
QNetworkReply* sendCustomRequest(const QNetworkRequest& request, |
|
const QByteArray& verb, |
|
QIODevice* data = 0) { |
|
//log(__PRETTY_FUNCTION__); |
|
return QNetworkAccessManager::sendCustomRequest(request, verb, data); |
|
} |
|
void setCache(QAbstractNetworkCache* cache) { |
|
//log(__PRETTY_FUNCTION__); |
|
return QNetworkAccessManager::setCache(cache); |
|
} |
|
void setConfiguration(const QNetworkConfiguration& config) { |
|
//log(__PRETTY_FUNCTION__); |
|
return QNetworkAccessManager::setConfiguration(config); |
|
} |
|
void setCookieJar(QNetworkCookieJar* cookieJar) { |
|
//log(__PRETTY_FUNCTION__); |
|
return QNetworkAccessManager::setCookieJar(cookieJar); |
|
} |
|
void setNetworkAccessible(NetworkAccessibility accessible) { |
|
//log(__PRETTY_FUNCTION__); |
|
return QNetworkAccessManager::setNetworkAccessible(accessible); |
|
} |
|
void setProxy(const QNetworkProxy& proxy) { |
|
//log(__PRETTY_FUNCTION__); |
|
return QNetworkAccessManager::setProxy(proxy); |
|
} |
|
void setProxyFactory(QNetworkProxyFactory* factory) { |
|
//log(__PRETTY_FUNCTION__); |
|
return QNetworkAccessManager::setProxyFactory(factory); |
|
} |
|
QStringList supportedSchemes() const { |
|
//log(__PRETTY_FUNCTION__); |
|
return QNetworkAccessManager::supportedSchemes(); |
|
} |
|
Q_SIGNALS: |
|
void authenticationRequired(QNetworkReply*, QAuthenticator*); |
|
void encrypted(QNetworkReply*); |
|
void finished(QNetworkReply*); |
|
void networkAccessibleChanged(QNetworkAccessManager::NetworkAccessibility); |
|
void proxyAuthenticationRequired(const QNetworkProxy&, QAuthenticator*); |
|
void sslErrors(QNetworkReply*, const QList<QSslError>&); |
|
void log(QString) const; |
|
protected: |
|
virtual QNetworkReply* createRequest(Operation op, |
|
const QNetworkRequest& req, |
|
QIODevice* outgoingData = 0) { |
|
//log(__PRETTY_FUNCTION__); |
|
switch (op) { |
|
case QNetworkAccessManager::HeadOperation: break; |
|
case QNetworkAccessManager::GetOperation: break; |
|
case QNetworkAccessManager::PutOperation: break; |
|
case QNetworkAccessManager::PostOperation: break; |
|
case QNetworkAccessManager::DeleteOperation: break; |
|
case QNetworkAccessManager::CustomOperation: break; |
|
case QNetworkAccessManager::UnknownOperation: break; |
|
} |
|
QNetworkReply* reply |
|
(QNetworkAccessManager::createRequest(op, req, outgoingData)); |
|
connect(reply, SIGNAL(encrypted()), SLOT(encryptedLog())); |
|
connect(reply, SIGNAL(error(QNetworkReply::NetworkError)), |
|
SLOT(errorLog(QNetworkReply::NetworkError))); |
|
connect(reply, SIGNAL(finished()), SLOT(finishedLog())); |
|
connect(reply, SIGNAL(sslErrors(const QList<QSslError>&)), |
|
SLOT(sslErrorsLog(const QList<QSslError>&))); |
|
return reply; |
|
} |
|
protected Q_SLOTS: |
|
QStringList supportedSchemesImplementation() const { |
|
//log(__PRETTY_FUNCTION__); |
|
return QNetworkAccessManager::supportedSchemesImplementation(); |
|
} |
|
private Q_SLOTS: |
|
void errorLog(QNetworkReply::NetworkError) { |
|
log("**** Network Error: " |
|
+ dynamic_cast<QNetworkReply*>(sender())->errorString()); |
|
} |
|
void authenticationRequiredLog(QNetworkReply*, QAuthenticator*) { |
|
//log(__PRETTY_FUNCTION__); |
|
} |
|
void encryptedLog() { |
|
//log(__PRETTY_FUNCTION__); |
|
} |
|
void encryptedLog(QNetworkReply*) { |
|
//log(__PRETTY_FUNCTION__); |
|
} |
|
void finishedLog() { |
|
//log(__PRETTY_FUNCTION__); |
|
} |
|
void finishedLog(QNetworkReply*) { |
|
//log(__PRETTY_FUNCTION__); |
|
} |
|
void networkAccessibleChangedLog |
|
(QNetworkAccessManager::NetworkAccessibility) { |
|
//log(__PRETTY_FUNCTION__); |
|
} |
|
void proxyAuthenticationRequiredLog(const QNetworkProxy&, QAuthenticator*) { |
|
//log(__PRETTY_FUNCTION__); |
|
} |
|
void sslErrorsLog(const QList<QSslError>& errors) { |
|
Q_FOREACH(const QSslError& error, errors) { |
|
log("**** SSL-Error: "+error.errorString()); |
|
} |
|
QNetworkReply* reply(dynamic_cast<QNetworkReply*>(QObject::sender())); |
|
log("#### Ignoring SSL Errors 1"); |
|
reply->ignoreSslErrors(); |
|
} |
|
void sslErrorsLog(QNetworkReply* reply, const QList<QSslError>&) { |
|
log("#### Ignoring SSL Errors 2"); |
|
reply->ignoreSslErrors(); |
|
} |
|
}; |
|
|
|
#endif
|
|
|