diff options
author | Tasuku Suzuki <tasuku.suzuki@qt.io> | 2018-10-20 15:35:55 +0900 |
---|---|---|
committer | Tasuku Suzuki <tasuku.suzuki@qt.io> | 2018-10-22 01:26:44 +0000 |
commit | 7df45b8ea6fa7e4ba1ae80ad061dcdc52572a74b (patch) | |
tree | 3283290fca0b9f08779bf1bb4f86a17c01f5fe25 | |
parent | c20d230bf20510a73b3f557e3f910fb4ffbca370 (diff) |
Refactor QAbstractHttpServer::servers()
Change-Id: I11e7100dd5f25d6c02bef28f4c53ce3acc257390
Reviewed-by: Jesus Fernandez <Jesus.Fernandez@qt.io>
-rw-r--r-- | src/httpserver/qabstracthttpserver.cpp | 10 | ||||
-rw-r--r-- | tests/auto/qabstracthttpserver/tst_qabstracthttpserver.cpp | 18 |
2 files changed, 19 insertions, 9 deletions
diff --git a/src/httpserver/qabstracthttpserver.cpp b/src/httpserver/qabstracthttpserver.cpp index 7a3ea58..6953cd9 100644 --- a/src/httpserver/qabstracthttpserver.cpp +++ b/src/httpserver/qabstracthttpserver.cpp @@ -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) diff --git a/tests/auto/qabstracthttpserver/tst_qabstracthttpserver.cpp b/tests/auto/qabstracthttpserver/tst_qabstracthttpserver.cpp index 62dfd52..40448b9 100644 --- a/tests/auto/qabstracthttpserver/tst_qabstracthttpserver.cpp +++ b/tests/auto/qabstracthttpserver/tst_qabstracthttpserver.cpp @@ -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) |