4
0
mirror of https://github.com/QuasarApp/qthttpserver.git synced 2025-05-11 17:09:44 +00:00

Refactor QAbstractHttpServer::servers()

Change-Id: I11e7100dd5f25d6c02bef28f4c53ce3acc257390
Reviewed-by: Jesus Fernandez <Jesus.Fernandez@qt.io>
This commit is contained in:
Tasuku Suzuki 2018-10-20 15:35:55 +09:00
parent c20d230bf2
commit 7df45b8ea6
2 changed files with 19 additions and 9 deletions
src/httpserver
tests/auto/qabstracthttpserver

@ -221,15 +221,7 @@ void QAbstractHttpServer::bind(QTcpServer *server)
*/
QVector<QTcpServer *> QAbstractHttpServer::servers() const
{
auto c = children();
QVector<QTcpServer *> result;
result.reserve(c.size());
for (auto i = c.constBegin(); i != c.constEnd(); ++i) {
if ((*i)->inherits("QTcpServer"))
result.append(static_cast<QTcpServer*>(*i));
}
result.squeeze();
return result;
return findChildren<QTcpServer *>().toVector();
}
#if defined(QT_WEBSOCKETS_LIB)

@ -68,6 +68,7 @@ private slots:
void request();
void checkListenWarns();
void websocket();
void servers();
};
void tst_QAbstractHttpServer::request_data()
@ -153,6 +154,23 @@ void tst_QAbstractHttpServer::websocket()
delete server.nextPendingWebSocketConnection();
}
void tst_QAbstractHttpServer::servers()
{
struct HttpServer : QAbstractHttpServer
{
bool handleRequest(const QHttpServerRequest &, QTcpSocket *) override { return true; }
} server;
auto tcpServer = new QTcpServer;
tcpServer->listen();
server.bind(tcpServer);
auto tcpServer2 = new QTcpServer;
tcpServer2->listen();
server.bind(tcpServer2);
QTRY_COMPARE(server.servers().count(), 2);
QTRY_COMPARE(server.servers().first(), tcpServer);
QTRY_COMPARE(server.servers().last(), tcpServer2);
}
QT_END_NAMESPACE
QTEST_MAIN(tst_QAbstractHttpServer)