File indexing completed on 2024-04-28 05:19:53
0001 /* 0002 * SPDX-FileCopyrightText: 2018 Daniel Vrátil <dvratil@kde.org> 0003 * 0004 * SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 0005 */ 0006 0007 #pragma once 0008 0009 #include <QByteArray> 0010 #include <QList> 0011 #include <QNetworkAccessManager> 0012 #include <QUrl> 0013 0014 class FakeNetworkAccessManager : public QNetworkAccessManager 0015 { 0016 Q_OBJECT 0017 public: 0018 class Scenario 0019 { 0020 public: 0021 Scenario() 0022 { 0023 } 0024 0025 Scenario(const QUrl &requestUrl, 0026 QNetworkAccessManager::Operation method, 0027 const QByteArray &requestData, 0028 int responseCode, 0029 const QByteArray &responseData, 0030 bool needsAuth = true) 0031 : requestUrl(requestUrl) 0032 , requestMethod(method) 0033 , requestData(requestData) 0034 , responseCode(responseCode) 0035 , responseData(responseData) 0036 , needsAuth(needsAuth) 0037 { 0038 } 0039 0040 QUrl requestUrl; 0041 QNetworkAccessManager::Operation requestMethod; 0042 QList<QPair<QByteArray, QByteArray>> requestHeaders; 0043 QByteArray requestData; 0044 int responseCode = -1; 0045 QList<QPair<QByteArray, QByteArray>> responseHeaders; 0046 QByteArray responseData; 0047 bool needsAuth = true; 0048 }; 0049 0050 explicit FakeNetworkAccessManager(QObject *parent = nullptr); 0051 0052 protected: 0053 QNetworkReply *createRequest(Operation op, const QNetworkRequest &originalReq, QIODevice *outgoingData) override; 0054 0055 private: 0056 QList<Scenario> mScenarios; 0057 };