Move everything into the QHttpEngine namespace.

This commit is contained in:
Nathan Osman
2017-07-07 21:56:09 -07:00
parent 6fea4fbd61
commit 61d219721e
60 changed files with 295 additions and 136 deletions

View File

@@ -72,22 +72,22 @@ void TestQFilesystemHandler::testRequests_data()
QTest::newRow("nonexistent resource")
<< "nonexistent"
<< static_cast<int>(Socket::NotFound)
<< static_cast<int>(QHttpEngine::Socket::NotFound)
<< QByteArray();
QTest::newRow("outside document root")
<< "../outside"
<< static_cast<int>(Socket::NotFound)
<< static_cast<int>(QHttpEngine::Socket::NotFound)
<< QByteArray();
QTest::newRow("inside document root")
<< "inside"
<< static_cast<int>(Socket::OK)
<< static_cast<int>(QHttpEngine::Socket::OK)
<< Data;
QTest::newRow("directory listing")
<< ""
<< static_cast<int>(Socket::OK)
<< static_cast<int>(QHttpEngine::Socket::OK)
<< QByteArray();
}
@@ -97,13 +97,13 @@ void TestQFilesystemHandler::testRequests()
QFETCH(int, statusCode);
QFETCH(QByteArray, data);
FilesystemHandler handler(QDir(dir.path()).absoluteFilePath("root"));
QHttpEngine::FilesystemHandler handler(QDir(dir.path()).absoluteFilePath("root"));
QSocketPair pair;
QTRY_VERIFY(pair.isConnected());
QSimpleHttpClient client(pair.client());
Socket socket(pair.server(), &pair);
QHttpEngine::Socket socket(pair.server(), &pair);
handler.route(&socket, path);
@@ -124,37 +124,37 @@ void TestQFilesystemHandler::testRangeRequests_data()
QTest::newRow("full file")
<< "inside" << ""
<< static_cast<int>(Socket::OK)
<< static_cast<int>(QHttpEngine::Socket::OK)
<< ""
<< Data;
QTest::newRow("range 0-2")
<< "inside" << "0-2"
<< static_cast<int>(Socket::PartialContent)
<< static_cast<int>(QHttpEngine::Socket::PartialContent)
<< "bytes 0-2/4"
<< Data.mid(0, 3);
QTest::newRow("range 1-2")
<< "inside" << "1-2"
<< static_cast<int>(Socket::PartialContent)
<< static_cast<int>(QHttpEngine::Socket::PartialContent)
<< "bytes 1-2/4"
<< Data.mid(1, 2);
QTest::newRow("skip first 1 byte")
<< "inside" << "1-"
<< static_cast<int>(Socket::PartialContent)
<< static_cast<int>(QHttpEngine::Socket::PartialContent)
<< "bytes 1-3/4"
<< Data.mid(1);
QTest::newRow("last 2 bytes")
<< "inside" << "-2"
<< static_cast<int>(Socket::PartialContent)
<< static_cast<int>(QHttpEngine::Socket::PartialContent)
<< "bytes 2-3/4"
<< Data.mid(2);
QTest::newRow("bad range request")
<< "inside" << "abcd"
<< static_cast<int>(Socket::OK)
<< static_cast<int>(QHttpEngine::Socket::OK)
<< ""
<< Data;
}
@@ -167,16 +167,16 @@ void TestQFilesystemHandler::testRangeRequests()
QFETCH(QString, contentRange);
QFETCH(QByteArray, data);
FilesystemHandler handler(QDir(dir.path()).absoluteFilePath("root"));
QHttpEngine::FilesystemHandler handler(QDir(dir.path()).absoluteFilePath("root"));
QSocketPair pair;
QTRY_VERIFY(pair.isConnected());
QSimpleHttpClient client(pair.client());
Socket socket(pair.server(), &pair);
QHttpEngine::Socket socket(pair.server(), &pair);
if (!range.isEmpty()) {
Socket::HeaderMap inHeaders;
QHttpEngine::Socket::HeaderMap inHeaders;
inHeaders.insert("Range", QByteArray("bytes=") + range.toUtf8());
client.sendHeaders("GET", path.toUtf8(), inHeaders);
QTRY_VERIFY(socket.isHeadersParsed());

View File

@@ -49,7 +49,7 @@ private Q_SLOTS:
private:
BasicAuthMiddleware auth;
QHttpEngine::BasicAuthMiddleware auth;
};
void TestQHttpBasicAuth::initTestCase()
@@ -68,19 +68,19 @@ void TestQHttpBasicAuth::testProcess_data()
<< false
<< QString()
<< QString()
<< static_cast<int>(Socket::Unauthorized);
<< static_cast<int>(QHttpEngine::Socket::Unauthorized);
QTest::newRow("invalid credentials")
<< true
<< Username
<< QString()
<< static_cast<int>(Socket::Unauthorized);
<< static_cast<int>(QHttpEngine::Socket::Unauthorized);
QTest::newRow("valid credentials")
<< true
<< Username
<< Password
<< static_cast<int>(Socket::NotFound);
<< static_cast<int>(QHttpEngine::Socket::NotFound);
}
void TestQHttpBasicAuth::testProcess()
@@ -94,9 +94,9 @@ void TestQHttpBasicAuth::testProcess()
QTRY_VERIFY(pair.isConnected());
QSimpleHttpClient client(pair.client());
Socket socket(pair.server(), &pair);
QHttpEngine::Socket socket(pair.server(), &pair);
Socket::HeaderMap headers;
QHttpEngine::Socket::HeaderMap headers;
if (header) {
headers.insert(
@@ -108,7 +108,7 @@ void TestQHttpBasicAuth::testProcess()
client.sendHeaders("GET", "/", headers);
QTRY_VERIFY(socket.isHeadersParsed());
Handler handler;
QHttpEngine::Handler handler;
handler.addMiddleware(&auth);
handler.route(&socket, "/");

View File

@@ -29,13 +29,13 @@
#include "common/qsimplehttpclient.h"
#include "common/qsocketpair.h"
class DummyHandler : public Handler
class DummyHandler : public QHttpEngine::Handler
{
Q_OBJECT
public:
virtual void process(Socket *socket, const QString &path) {
virtual void process(QHttpEngine::Socket *socket, const QString &path) {
mPathRemainder = path;
socket->writeHeaders();
socket->close();
@@ -69,20 +69,20 @@ void TestQHttpHandler::testRedirect_data()
<< QRegExp("\\w+")
<< QString("/two")
<< QByteArray("one")
<< static_cast<int>(Socket::Found)
<< static_cast<int>(QHttpEngine::Socket::Found)
<< QByteArray("/two");
QTest::newRow("no match")
<< QRegExp("\\d+")
<< QString("")
<< QByteArray("test")
<< static_cast<int>(Socket::NotFound);
<< static_cast<int>(QHttpEngine::Socket::NotFound);
QTest::newRow("captured texts")
<< QRegExp("(\\d+)")
<< QString("/path/%1")
<< QByteArray("123")
<< static_cast<int>(Socket::Found)
<< static_cast<int>(QHttpEngine::Socket::Found)
<< QByteArray("/path/123");
}
@@ -97,18 +97,18 @@ void TestQHttpHandler::testRedirect()
QTRY_VERIFY(pair.isConnected());
QSimpleHttpClient client(pair.client());
Socket socket(pair.server(), &pair);
QHttpEngine::Socket socket(pair.server(), &pair);
client.sendHeaders("GET", path);
QTRY_VERIFY(socket.isHeadersParsed());
Handler handler;
QHttpEngine::Handler handler;
handler.addRedirect(pattern, destination);
handler.route(&socket, socket.path());
QTRY_COMPARE(client.statusCode(), statusCode);
if (statusCode == Socket::Found) {
if (statusCode == QHttpEngine::Socket::Found) {
QFETCH(QByteArray, location);
QCOMPARE(client.headers().value("Location"), location);
}
@@ -125,19 +125,19 @@ void TestQHttpHandler::testSubHandler_data()
<< QRegExp("\\w+")
<< QByteArray("test")
<< QString("")
<< static_cast<int>(Socket::OK);
<< static_cast<int>(QHttpEngine::Socket::OK);
QTest::newRow("no match")
<< QRegExp("\\d+")
<< QByteArray("test")
<< QString("")
<< static_cast<int>(Socket::NotFound);
<< static_cast<int>(QHttpEngine::Socket::NotFound);
QTest::newRow("path")
<< QRegExp("one/")
<< QByteArray("one/two")
<< QString("two")
<< static_cast<int>(Socket::OK);
<< static_cast<int>(QHttpEngine::Socket::OK);
}
void TestQHttpHandler::testSubHandler()
@@ -151,13 +151,13 @@ void TestQHttpHandler::testSubHandler()
QTRY_VERIFY(pair.isConnected());
QSimpleHttpClient client(pair.client());
Socket socket(pair.server(), &pair);
QHttpEngine::Socket socket(pair.server(), &pair);
client.sendHeaders("GET", path);
QTRY_VERIFY(socket.isHeadersParsed());
DummyHandler subHandler;
Handler handler;
QHttpEngine::Handler handler;
handler.addSubHandler(pattern, &subHandler);
handler.route(&socket, socket.path());

View File

@@ -29,15 +29,15 @@
#include "common/qsimplehttpclient.h"
#include "common/qsocketpair.h"
class DummyMiddleware : public Middleware
class DummyMiddleware : public QHttpEngine::Middleware
{
Q_OBJECT
public:
virtual bool process(Socket *socket)
virtual bool process(QHttpEngine::Socket *socket)
{
socket->writeError(Socket::Forbidden);
socket->writeError(QHttpEngine::Socket::Forbidden);
return false;
}
};
@@ -57,17 +57,17 @@ void TestQHttpMiddleware::testProcess()
QTRY_VERIFY(pair.isConnected());
QSimpleHttpClient client(pair.client());
Socket socket(pair.server(), &pair);
QHttpEngine::Socket socket(pair.server(), &pair);
client.sendHeaders("GET", "/");
QTRY_VERIFY(socket.isHeadersParsed());
DummyMiddleware middleware;
Handler handler;
QHttpEngine::Handler handler;
handler.addMiddleware(&middleware);
handler.route(&socket, "/");
QTRY_COMPARE(client.statusCode(), static_cast<int>(Socket::Forbidden));
QTRY_COMPARE(client.statusCode(), static_cast<int>(QHttpEngine::Socket::Forbidden));
}
QTEST_MAIN(TestQHttpMiddleware)

View File

@@ -30,15 +30,15 @@
typedef QList<QByteArray> QByteArrayList;
Q_DECLARE_METATYPE(Socket::Method)
Q_DECLARE_METATYPE(Socket::QueryStringMap)
Q_DECLARE_METATYPE(Socket::HeaderMap)
Q_DECLARE_METATYPE(QHttpEngine::Socket::Method)
Q_DECLARE_METATYPE(QHttpEngine::Socket::QueryStringMap)
Q_DECLARE_METATYPE(QHttpEngine::Socket::HeaderMap)
const IByteArray Key1 = "a";
const QHttpEngine::IByteArray Key1 = "a";
const QByteArray Value1 = "b";
const QByteArray Line1 = Key1 + ": " + Value1;
const IByteArray Key2 = "c";
const QHttpEngine::IByteArray Key2 = "c";
const QByteArray Value2 = "d";
const QByteArray Line2 = Key2 + ": " + Value2;
@@ -72,7 +72,7 @@ private Q_SLOTS:
private:
Socket::HeaderMap headers;
QHttpEngine::Socket::HeaderMap headers;
};
TestQHttpParser::TestQHttpParser()
@@ -127,7 +127,7 @@ void TestQHttpParser::testSplit()
QFETCH(QByteArrayList, parts);
QByteArrayList outParts;
Parser::split(data, delim, maxSplit, outParts);
QHttpEngine::Parser::split(data, delim, maxSplit, outParts);
QCOMPARE(outParts, parts);
}
@@ -136,29 +136,29 @@ void TestQHttpParser::testParsePath_data()
{
QTest::addColumn<QByteArray>("rawPath");
QTest::addColumn<QString>("path");
QTest::addColumn<Socket::QueryStringMap>("map");
QTest::addColumn<QHttpEngine::Socket::QueryStringMap>("map");
QTest::newRow("no query string")
<< QByteArray("/path")
<< QString("/path")
<< Socket::QueryStringMap();
<< QHttpEngine::Socket::QueryStringMap();
QTest::newRow("single parameter")
<< QByteArray("/path?a=b")
<< QString("/path")
<< Socket::QueryStringMap{{"a", "b"}};
<< QHttpEngine::Socket::QueryStringMap{{"a", "b"}};
}
void TestQHttpParser::testParsePath()
{
QFETCH(QByteArray, rawPath);
QFETCH(QString, path);
QFETCH(Socket::QueryStringMap, map);
QFETCH(QHttpEngine::Socket::QueryStringMap, map);
QString outPath;
Socket::QueryStringMap outMap;
QHttpEngine::Socket::QueryStringMap outMap;
QVERIFY(Parser::parsePath(rawPath, outPath, outMap));
QVERIFY(QHttpEngine::Parser::parsePath(rawPath, outPath, outMap));
QCOMPARE(path, outPath);
QCOMPARE(map, outMap);
@@ -168,7 +168,7 @@ void TestQHttpParser::testParseHeaderList_data()
{
QTest::addColumn<bool>("success");
QTest::addColumn<QByteArrayList>("lines");
QTest::addColumn<Socket::HeaderMap>("headers");
QTest::addColumn<QHttpEngine::Socket::HeaderMap>("headers");
QTest::newRow("empty line")
<< false
@@ -185,11 +185,11 @@ void TestQHttpParser::testParseHeaderList()
QFETCH(bool, success);
QFETCH(QByteArrayList, lines);
Socket::HeaderMap outHeaders;
QCOMPARE(Parser::parseHeaderList(lines, outHeaders), success);
QHttpEngine::Socket::HeaderMap outHeaders;
QCOMPARE(QHttpEngine::Parser::parseHeaderList(lines, outHeaders), success);
if (success) {
QFETCH(Socket::HeaderMap, headers);
QFETCH(QHttpEngine::Socket::HeaderMap, headers);
QCOMPARE(outHeaders, headers);
}
}
@@ -216,9 +216,9 @@ void TestQHttpParser::testParseHeaders()
QFETCH(QByteArray, data);
QByteArrayList outParts;
Socket::HeaderMap outHeaders;
QHttpEngine::Socket::HeaderMap outHeaders;
QCOMPARE(Parser::parseHeaders(data, outParts, outHeaders), success);
QCOMPARE(QHttpEngine::Parser::parseHeaders(data, outParts, outHeaders), success);
if (success) {
QFETCH(QByteArrayList, parts);
@@ -230,7 +230,7 @@ void TestQHttpParser::testParseRequestHeaders_data()
{
QTest::addColumn<bool>("success");
QTest::addColumn<QByteArray>("data");
QTest::addColumn<Socket::Method>("method");
QTest::addColumn<QHttpEngine::Socket::Method>("method");
QTest::addColumn<QByteArray>("path");
QTest::newRow("bad HTTP version")
@@ -240,7 +240,7 @@ void TestQHttpParser::testParseRequestHeaders_data()
QTest::newRow("GET request")
<< true
<< QByteArray("GET / HTTP/1.0")
<< Socket::GET
<< QHttpEngine::Socket::GET
<< QByteArray("/");
}
@@ -249,14 +249,14 @@ void TestQHttpParser::testParseRequestHeaders()
QFETCH(bool, success);
QFETCH(QByteArray, data);
Socket::Method outMethod;
QHttpEngine::Socket::Method outMethod;
QByteArray outPath;
Socket::HeaderMap outHeaders;
QHttpEngine::Socket::HeaderMap outHeaders;
QCOMPARE(Parser::parseRequestHeaders(data, outMethod, outPath, outHeaders), success);
QCOMPARE(QHttpEngine::Parser::parseRequestHeaders(data, outMethod, outPath, outHeaders), success);
if (success) {
QFETCH(Socket::Method, method);
QFETCH(QHttpEngine::Socket::Method, method);
QFETCH(QByteArray, path);
QCOMPARE(method, outMethod);
@@ -289,9 +289,9 @@ void TestQHttpParser::testParseResponseHeaders()
int outStatusCode;
QByteArray outStatusReason;
Socket::HeaderMap outHeaders;
QHttpEngine::Socket::HeaderMap outHeaders;
QCOMPARE(Parser::parseResponseHeaders(data, outStatusCode, outStatusReason, outHeaders), success);
QCOMPARE(QHttpEngine::Parser::parseResponseHeaders(data, outStatusCode, outStatusReason, outHeaders), success);
if (success) {
QFETCH(int, statusCode);

View File

@@ -58,15 +58,15 @@ TestQHttpRange::TestQHttpRange()
void TestQHttpRange::testDefaultConstructor()
{
Range range;
QHttpEngine::Range range;
QCOMPARE(range.isValid(), false);
}
void TestQHttpRange::testAssignmentOperator()
{
Range range;
Range otherRange(100, 200, -1);
QHttpEngine::Range range;
QHttpEngine::Range otherRange(100, 200, -1);
range = otherRange;
@@ -110,7 +110,7 @@ void TestQHttpRange::testFromToLength()
QFETCH(int, to);
QFETCH(int, length);
Range range(inFrom, inTo, inDataSize);
QHttpEngine::Range range(inFrom, inTo, inDataSize);
QCOMPARE(range.from(), from);
QCOMPARE(range.to(), to);
@@ -162,7 +162,7 @@ void TestQHttpRange::testIsValid()
QFETCH(int, dataSize);
QFETCH(bool, valid);
Range range(from, to, dataSize);
QHttpEngine::Range range(from, to, dataSize);
QCOMPARE(range.isValid(), valid);
}
@@ -235,7 +235,7 @@ void TestQHttpRange::testParseFromString()
QFETCH(int, dataSize);
QFETCH(bool, valid);
Range range(data, dataSize);
QHttpEngine::Range range(data, dataSize);
QCOMPARE(range.isValid(), valid);
@@ -281,7 +281,7 @@ void TestQHttpRange::testContentRange()
QFETCH(int, dataSize);
QFETCH(QString, contentRange);
Range range(from, to, dataSize);
QHttpEngine::Range range(from, to, dataSize);
QCOMPARE(range.contentRange(), contentRange);
}

View File

@@ -37,7 +37,7 @@
#include "common/qsimplehttpclient.h"
class TestHandler : public Handler
class TestHandler : public QHttpEngine::Handler
{
Q_OBJECT
@@ -45,12 +45,12 @@ public:
TestHandler() : mSocket(0) {}
virtual void process(Socket *socket, const QString &path) {
virtual void process(QHttpEngine::Socket *socket, const QString &path) {
mSocket = socket;
mPath = path;
}
Socket *mSocket;
QHttpEngine::Socket *mSocket;
QString mPath;
};
@@ -70,7 +70,7 @@ private Q_SLOTS:
void TestQHttpServer::testServer()
{
TestHandler handler;
Server server(&handler);
QHttpEngine::Server server(&handler);
QVERIFY(server.listen(QHostAddress::LocalHost));
@@ -102,7 +102,7 @@ void TestQHttpServer::testSsl()
config.setPrivateKey(key);
config.setLocalCertificateChain(certs);
Server server;
QHttpEngine::Server server;
server.setSslConfiguration(config);
QVERIFY(server.listen(QHostAddress::LocalHost));

View File

@@ -32,7 +32,7 @@
#include "common/qsimplehttpclient.h"
#include "common/qsocketpair.h"
Q_DECLARE_METATYPE(Socket::QueryStringMap)
Q_DECLARE_METATYPE(QHttpEngine::Socket::QueryStringMap)
// Utility macro (avoids duplication) that creates a pair of connected
// sockets, a QSimpleHttpClient for the client and a QHttpSocket for the
@@ -41,7 +41,7 @@ Q_DECLARE_METATYPE(Socket::QueryStringMap)
QSocketPair pair; \
QTRY_VERIFY(pair.isConnected()); \
QSimpleHttpClient client(pair.client()); \
Socket server(pair.server())
QHttpEngine::Socket server(pair.server())
const QByteArray Method = "POST";
const QByteArray Path = "/test";
@@ -67,7 +67,7 @@ private Q_SLOTS:
private:
Socket::HeaderMap headers;
QHttpEngine::Socket::HeaderMap headers;
};
TestQHttpSocket::TestQHttpSocket()
@@ -82,7 +82,7 @@ void TestQHttpSocket::testProperties()
client.sendHeaders(Method, Path, headers);
QTRY_COMPARE(server.method(), Socket::POST);
QTRY_COMPARE(server.method(), QHttpEngine::Socket::POST);
QCOMPARE(server.rawPath(), Path);
QCOMPARE(server.headers(), headers);
@@ -120,7 +120,7 @@ void TestQHttpSocket::testRedirect()
server.writeRedirect(Path, true);
QTRY_COMPARE(client.statusCode(), static_cast<int>(Socket::MovedPermanently));
QTRY_COMPARE(client.statusCode(), static_cast<int>(QHttpEngine::Socket::MovedPermanently));
QCOMPARE(client.headers().value("Location"), Path);
QTRY_COMPARE(disconnectedSpy.count(), 1);
}
@@ -170,7 +170,7 @@ void TestQHttpSocket::testJson()
QJsonObject object{{"a", "b"}, {"c", 123}};
QByteArray data = QJsonDocument(object).toJson();
client.sendHeaders(Method, Path, Socket::HeaderMap{
client.sendHeaders(Method, Path, QHttpEngine::Socket::HeaderMap{
{"Content-Length", QByteArray::number(data.length())},
{"Content-Type", "application/json"}
});

View File

@@ -31,8 +31,8 @@ const char *Value2 = "TEST";
// Helpful macros to cut down on the amount of duplicated code
#define TEST_OPERATOR(tn,t,on,o,v) void test##tn##on() \
{ \
QCOMPARE(IByteArray(Value1) o static_cast<t>(Value2), v); \
QCOMPARE(static_cast<t>(Value1) o IByteArray(Value1), v); \
QCOMPARE(QHttpEngine::IByteArray(Value1) o static_cast<t>(Value2), v); \
QCOMPARE(static_cast<t>(Value1) o QHttpEngine::IByteArray(Value1), v); \
}
#define TEST_TYPE(tn,t) \
TEST_OPERATOR(tn, t, Equals, ==, true) \
@@ -50,7 +50,7 @@ private Q_SLOTS:
TEST_TYPE(ConstChar, const char *)
TEST_TYPE(QByteArray, QByteArray)
TEST_TYPE(IByteArray, IByteArray)
TEST_TYPE(IByteArray, QHttpEngine::IByteArray)
TEST_TYPE(QString, QString)
void testContains();
@@ -58,7 +58,7 @@ private Q_SLOTS:
void TestQIByteArray::testContains()
{
IByteArray v(Value1);
QHttpEngine::IByteArray v(Value1);
QVERIFY(v.contains('t'));
QVERIFY(v.contains(Value2));

View File

@@ -55,7 +55,7 @@ void TestQIODeviceCopier::testQBuffer()
QByteArray destData;
QBuffer dest(&destData);
QIODeviceCopier copier(&src, &dest);
QHttpEngine::QIODeviceCopier copier(&src, &dest);
copier.setBufferSize(2);
QSignalSpy errorSpy(&copier, SIGNAL(error(QString)));
@@ -76,7 +76,7 @@ void TestQIODeviceCopier::testQTcpSocket()
QByteArray destData;
QBuffer dest(&destData);
QIODeviceCopier copier(pair.server(), &dest);
QHttpEngine::QIODeviceCopier copier(pair.server(), &dest);
copier.setBufferSize(2);
QSignalSpy errorSpy(&copier, SIGNAL(error(QString)));
@@ -100,7 +100,7 @@ void TestQIODeviceCopier::testStop()
QByteArray destData;
QBuffer dest(&destData);
QIODeviceCopier copier(pair.server(), &dest);
QHttpEngine::QIODeviceCopier copier(pair.server(), &dest);
copier.start();
@@ -141,7 +141,7 @@ void TestQIODeviceCopier::testRange()
QByteArray destData;
QBuffer dest(&destData);
QIODeviceCopier copier(&src, &dest);
QHttpEngine::QIODeviceCopier copier(&src, &dest);
copier.setBufferSize(bufferSize);
copier.setRange(from, to);

View File

@@ -51,9 +51,9 @@ void TestQLocalAuth::testAuth()
QTRY_VERIFY(pair.isConnected());
QSimpleHttpClient client(pair.client());
Socket socket(pair.server(), &pair);
QHttpEngine::Socket socket(pair.server(), &pair);
LocalAuthMiddleware localAuth;
QHttpEngine::LocalAuthMiddleware localAuth;
localAuth.setData(QVariantMap{
{CustomName, CustomData}
});
@@ -67,7 +67,7 @@ void TestQLocalAuth::testAuth()
QVERIFY(data.contains("token"));
QCOMPARE(data.value(CustomName).toByteArray(), CustomData);
client.sendHeaders("GET", "/", Socket::HeaderMap{
client.sendHeaders("GET", "/", QHttpEngine::Socket::HeaderMap{
{HeaderName, data.value("token").toByteArray()}
});
QTRY_VERIFY(socket.isHeadersParsed());

View File

@@ -46,7 +46,7 @@ void TestQLocalFile::initTestCase()
void TestQLocalFile::testOpen()
{
LocalFile file;
QHttpEngine::LocalFile file;
QVERIFY(file.open());
QVERIFY(file.remove());
}

View File

@@ -37,8 +37,8 @@ public Q_SLOTS:
void wrongArgumentCount() {}
void wrongArgumentType(int) {}
void valid(Socket *socket) {
socket->writeError(Socket::OK);
void valid(QHttpEngine::Socket *socket) {
socket->writeError(QHttpEngine::Socket::OK);
}
};
@@ -60,19 +60,19 @@ void TestQObjectHandler::testOldConnection_data()
QTest::newRow("invalid slot")
<< QByteArray(SLOT(invalid()))
<< static_cast<int>(Socket::InternalServerError);
<< static_cast<int>(QHttpEngine::Socket::InternalServerError);
QTest::newRow("wrong argument count")
<< QByteArray(SLOT(wrongArgumentCount()))
<< static_cast<int>(Socket::InternalServerError);
<< static_cast<int>(QHttpEngine::Socket::InternalServerError);
QTest::newRow("wrong argument type")
<< QByteArray(SLOT(wrongArgumentType(int)))
<< static_cast<int>(Socket::InternalServerError);
<< static_cast<int>(QHttpEngine::Socket::InternalServerError);
QTest::newRow("valid")
<< QByteArray(SLOT(valid(Socket*)))
<< static_cast<int>(Socket::OK);
<< static_cast<int>(QHttpEngine::Socket::OK);
}
void TestQObjectHandler::testOldConnection()
@@ -80,7 +80,7 @@ void TestQObjectHandler::testOldConnection()
QFETCH(QByteArray, slot);
QFETCH(int, statusCode);
QObjectHandler handler;
QHttpEngine::QObjectHandler handler;
DummyAPI api;
handler.registerMethod("test", &api, slot.constData());
@@ -89,7 +89,7 @@ void TestQObjectHandler::testOldConnection()
QTRY_VERIFY(pair.isConnected());
QSimpleHttpClient client(pair.client());
Socket socket(pair.server(), &pair);
QHttpEngine::Socket socket(pair.server(), &pair);
client.sendHeaders("GET", "test");
QTRY_VERIFY(socket.isHeadersParsed());
@@ -100,18 +100,18 @@ void TestQObjectHandler::testOldConnection()
void TestQObjectHandler::testNewConnection()
{
QObjectHandler handler;
QHttpEngine::QObjectHandler handler;
DummyAPI api;
// Connect to object slot
handler.registerMethod("0", &api, &DummyAPI::valid);
// Connect to functor
handler.registerMethod("1", [](Socket *socket) {
socket->writeError(Socket::OK);
handler.registerMethod("1", [](QHttpEngine::Socket *socket) {
socket->writeError(QHttpEngine::Socket::OK);
});
handler.registerMethod("2", &api, [](Socket *socket) {
socket->writeError(Socket::OK);
handler.registerMethod("2", &api, [](QHttpEngine::Socket *socket) {
socket->writeError(QHttpEngine::Socket::OK);
});
for (int i = 0; i < 3; ++i) {
@@ -119,13 +119,13 @@ void TestQObjectHandler::testNewConnection()
QTRY_VERIFY(pair.isConnected());
QSimpleHttpClient client(pair.client());
Socket socket(pair.server(), &pair);
QHttpEngine::Socket socket(pair.server(), &pair);
client.sendHeaders("GET", QByteArray::number(i));
QTRY_VERIFY(socket.isHeadersParsed());
handler.route(&socket, socket.path());
QTRY_COMPARE(client.statusCode(), static_cast<int>(Socket::OK));
QTRY_COMPARE(client.statusCode(), static_cast<int>(QHttpEngine::Socket::OK));
}
}

View File

@@ -47,27 +47,27 @@ private Q_SLOTS:
void TestQProxyHandler::testDataPassthrough()
{
// Create the upstream handler (simple echo)
QObjectHandler upstreamHandler;
upstreamHandler.registerMethod(Path, [](Socket *socket) {
QHttpEngine::QObjectHandler upstreamHandler;
upstreamHandler.registerMethod(Path, [](QHttpEngine::Socket *socket) {
socket->write(socket->readAll());
socket->close();
}, true);
// Create the upstream server and begin listening
Server upstreamServer(&upstreamHandler);
QHttpEngine::Server upstreamServer(&upstreamHandler);
QVERIFY(upstreamServer.listen(QHostAddress::LocalHost));
// Create the proxy handler
ProxyHandler handler(upstreamServer.serverAddress(), upstreamServer.serverPort());
QHttpEngine::ProxyHandler handler(upstreamServer.serverAddress(), upstreamServer.serverPort());
QSocketPair pair;
QTRY_VERIFY(pair.isConnected());
QSimpleHttpClient client(pair.client());
Socket socket(pair.server());
QHttpEngine::Socket socket(pair.server());
// Send the headers and wait for them to be parsed
Socket::HeaderMap headers{
QHttpEngine::Socket::HeaderMap headers{
{"Content-Length", QByteArray::number(Data.length())}
};
client.sendHeaders("POST", QString("/%1").arg(Path).toUtf8(), headers);

View File

@@ -33,7 +33,7 @@ QSimpleHttpClient::QSimpleHttpClient(QTcpSocket *socket)
onReadyRead();
}
void QSimpleHttpClient::sendHeaders(const QByteArray &method, const QByteArray &path, const Socket::HeaderMap &headers)
void QSimpleHttpClient::sendHeaders(const QByteArray &method, const QByteArray &path, const QHttpEngine::Socket::HeaderMap &headers)
{
QByteArray data = method + " " + path + " HTTP/1.0\r\n";
for (auto i = headers.constBegin(); i != headers.constEnd(); ++i) {
@@ -59,7 +59,7 @@ void QSimpleHttpClient::onReadyRead()
// Parse the headers if the double CRLF sequence was found
int index = mBuffer.indexOf("\r\n\r\n");
if (index != -1) {
Parser::parseResponseHeaders(mBuffer.left(index), mStatusCode, mStatusReason, mHeaders);
QHttpEngine::Parser::parseResponseHeaders(mBuffer.left(index), mStatusCode, mStatusReason, mHeaders);
mHeadersParsed = true;
mData.append(mBuffer.mid(index + 4));

View File

@@ -45,7 +45,7 @@ public:
QSimpleHttpClient(QTcpSocket *socket);
void sendHeaders(const QByteArray &method, const QByteArray &path, const Socket::HeaderMap &headers=Socket::HeaderMap());
void sendHeaders(const QByteArray &method, const QByteArray &path, const QHttpEngine::Socket::HeaderMap &headers = QHttpEngine::Socket::HeaderMap());
void sendData(const QByteArray &data);
int statusCode() const {
@@ -56,7 +56,7 @@ public:
return mStatusReason;
}
Socket::HeaderMap headers() const {
QHttpEngine::Socket::HeaderMap headers() const {
return mHeaders;
}
@@ -79,7 +79,7 @@ private:
int mStatusCode;
QByteArray mStatusReason;
Socket::HeaderMap mHeaders;
QHttpEngine::Socket::HeaderMap mHeaders;
QByteArray mData;
};