Index: net/test/embedded_test_server/simple_connection_listener.cc |
diff --git a/net/test/embedded_test_server/simple_connection_listener.cc b/net/test/embedded_test_server/simple_connection_listener.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..7cbe4dc1862c4e7b22b3230b29a702047e04f367 |
--- /dev/null |
+++ b/net/test/embedded_test_server/simple_connection_listener.cc |
@@ -0,0 +1,41 @@ |
+// Copyright 2017 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "net/test/embedded_test_server/simple_connection_listener.h" |
+ |
+#include "base/location.h" |
+#include "base/sequenced_task_runner.h" |
+#include "base/threading/thread_task_runner_handle.h" |
+#include "testing/gtest/include/gtest/gtest.h" |
+ |
+namespace net { |
+namespace test_server { |
+ |
+SimpleConnectionListener::SimpleConnectionListener( |
+ int expected_connections, |
+ AllowAdditionalConnections allow_additional_connections) |
+ : expected_connections_(expected_connections), |
+ allow_additional_connections_(allow_additional_connections), |
+ run_loop_task_runner_(base::ThreadTaskRunnerHandle::Get()) {} |
+ |
+SimpleConnectionListener::~SimpleConnectionListener() {} |
+ |
+void SimpleConnectionListener::AcceptedSocket(const StreamSocket& socket) { |
+ ++seen_connections_; |
+ if (allow_additional_connections_ != ALLOW_ADDITIONAL_CONNECTIONS) |
+ EXPECT_LE(seen_connections_, expected_connections_); |
+ if (seen_connections_ == expected_connections_) |
+ run_loop_task_runner_->PostTask(FROM_HERE, run_loop_.QuitClosure()); |
+} |
+ |
+void SimpleConnectionListener::ReadFromSocket(const StreamSocket& socket, |
+ int rv) {} |
+ |
+void SimpleConnectionListener::WaitForConnections() { |
+ EXPECT_TRUE(run_loop_task_runner_->RunsTasksOnCurrentThread()); |
+ run_loop_.Run(); |
+} |
+ |
+} // namespace test_server |
+} // namespace net |