File indexing completed on 2024-04-28 15:59:44
0001 /* 0002 SPDX-FileCopyrightText: 2023 Volker Krause <vkrause@kde.org> 0003 SPDX-License-Identifier: LGPL-2.0-or-later 0004 */ 0005 0006 #include "mocknetworkaccessmanager.h" 0007 0008 #include <QNetworkReply> 0009 0010 class MockNetworkReply : public QNetworkReply 0011 { 0012 Q_OBJECT 0013 public: 0014 explicit MockNetworkReply(const QNetworkAccessManager::Operation op, const QNetworkRequest &request, QObject *parent); 0015 0016 qint64 bytesAvailable() const override; 0017 void abort() override; 0018 0019 protected: 0020 qint64 readData(char *data, qint64 maxSize) override; 0021 }; 0022 0023 MockNetworkReply::MockNetworkReply(const QNetworkAccessManager::Operation op, const QNetworkRequest &request, QObject *parent) 0024 : QNetworkReply(parent) 0025 { 0026 setRequest(request); 0027 setOpenMode(QIODevice::ReadOnly); 0028 setUrl(request.url()); 0029 setOperation(op); 0030 setError(NoError, QString()); 0031 0032 if (!request.sslConfiguration().isNull()) { 0033 setSslConfiguration(request.sslConfiguration()); 0034 } 0035 0036 // TODO actually provide a result 0037 setError(QNetworkReply::QNetworkReply::NetworkSessionFailedError, QLatin1String("providing replies not implemented yet")); 0038 setFinished(true); 0039 QMetaObject::invokeMethod(this, &QNetworkReply::finished, Qt::QueuedConnection); 0040 } 0041 0042 qint64 MockNetworkReply::bytesAvailable() const 0043 { 0044 return 0; 0045 } 0046 0047 void MockNetworkReply::abort() 0048 { 0049 } 0050 0051 qint64 MockNetworkReply::readData([[maybe_unused]] char *data, [[maybe_unused]] qint64 maxSize) 0052 { 0053 return 0; 0054 } 0055 0056 QNetworkReply* MockNetworkAccessManager::createRequest(QNetworkAccessManager::Operation op, const QNetworkRequest &originalReq, QIODevice *outgoingData) 0057 { 0058 Request r{op, originalReq, outgoingData ? outgoingData->readAll() : QByteArray()}; 0059 requests.push_back(std::move(r)); 0060 return new MockNetworkReply(op, originalReq, this); 0061 } 0062 0063 #include "mocknetworkaccessmanager.moc"