summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTasuku Suzuki <tasuku.suzuki@qt.io>2018-10-20 15:35:55 +0900
committerTasuku Suzuki <tasuku.suzuki@qt.io>2018-10-22 01:26:44 +0000
commit7df45b8ea6fa7e4ba1ae80ad061dcdc52572a74b (patch)
tree3283290fca0b9f08779bf1bb4f86a17c01f5fe25
parentc20d230bf20510a73b3f557e3f910fb4ffbca370 (diff)
Refactor QAbstractHttpServer::servers()
Change-Id: I11e7100dd5f25d6c02bef28f4c53ce3acc257390 Reviewed-by: Jesus Fernandez <Jesus.Fernandez@qt.io>
-rw-r--r--src/httpserver/qabstracthttpserver.cpp10
-rw-r--r--tests/auto/qabstracthttpserver/tst_qabstracthttpserver.cpp18
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)