Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(761)

Unified Diff: content/browser/devtools/devtools_http_handler_unittest.cc

Issue 693603003: [DevTools] Split DevToolsHttpHandler into two classes (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@shell
Patch Set: Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/browser/devtools/devtools_http_handler_unittest.cc
diff --git a/content/browser/devtools/devtools_http_handler_unittest.cc b/content/browser/devtools/devtools_http_handler_unittest.cc
index 28630ead75a01f241747114e12c84babfc5c9da9..a9bc79a8ac6f28b2a8b844f2a828a4dd0f0b8929 100644
--- a/content/browser/devtools/devtools_http_handler_unittest.cc
+++ b/content/browser/devtools/devtools_http_handler_unittest.cc
@@ -11,6 +11,7 @@
#include "content/public/browser/devtools_http_handler.h"
#include "content/public/browser/devtools_http_handler_delegate.h"
#include "content/public/browser/devtools_target.h"
+#include "content/public/test/test_utils.h"
#include "net/base/ip_endpoint.h"
#include "net/base/net_errors.h"
#include "net/socket/server_socket.h"
@@ -51,6 +52,10 @@ class DummyServerSocket : public net::ServerSocket {
}
};
+void QuitFromHandlerThread(const base::Closure& quit_closure) {
+ BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, quit_closure);
+}
+
class DummyServerSocketFactory
: public DevToolsHttpHandler::ServerSocketFactory {
public:
@@ -65,10 +70,10 @@ class DummyServerSocketFactory
BrowserThread::UI, FROM_HERE, quit_closure_2_);
}
- private:
+ protected:
scoped_ptr<net::ServerSocket> Create() const override {
- BrowserThread::PostTask(
- BrowserThread::UI, FROM_HERE, quit_closure_1_);
+ base::MessageLoopProxy::current()->PostTask(FROM_HERE,
+ base::Bind(&QuitFromHandlerThread, quit_closure_1_));
return scoped_ptr<net::ServerSocket>(new DummyServerSocket());
}
@@ -76,6 +81,21 @@ class DummyServerSocketFactory
base::Closure quit_closure_2_;
};
+class FailingServerSocketFactory : public DummyServerSocketFactory {
+ public:
+ FailingServerSocketFactory(const base::Closure& quit_closure_1,
+ const base::Closure& quit_closure_2)
+ : DummyServerSocketFactory(quit_closure_1, quit_closure_2) {
+ }
+
+ private:
+ scoped_ptr<net::ServerSocket> Create() const override {
+ base::MessageLoopProxy::current()->PostTask(FROM_HERE,
+ base::Bind(&QuitFromHandlerThread, quit_closure_1_));
+ return nullptr;
+ }
+};
+
class DummyDelegate : public DevToolsHttpHandlerDelegate {
public:
std::string GetDiscoveryPageHTML() override { return std::string(); }
@@ -118,7 +138,25 @@ TEST_F(DevToolsHttpHandlerTest, TestStartStop) {
scoped_ptr<DevToolsHttpHandler::ServerSocketFactory> factory(
new DummyServerSocketFactory(run_loop.QuitClosure(),
run_loop_2.QuitClosure()));
- content::DevToolsHttpHandler* devtools_http_handler_ =
+ content::DevToolsHttpHandler* devtools_http_handler =
+ content::DevToolsHttpHandler::Start(factory.Pass(),
+ std::string(),
+ new DummyDelegate(),
+ base::FilePath());
+ // Our dummy socket factory will post a quit message once the server will
+ // become ready.
+ run_loop.Run();
+ devtools_http_handler->Stop();
+ // Make sure the handler actually stops.
+ run_loop_2.Run();
+}
+
+TEST_F(DevToolsHttpHandlerTest, TestServerSocketFailed) {
+ base::RunLoop run_loop, run_loop_2;
+ scoped_ptr<DevToolsHttpHandler::ServerSocketFactory> factory(
+ new FailingServerSocketFactory(run_loop.QuitClosure(),
+ run_loop_2.QuitClosure()));
+ content::DevToolsHttpHandler* devtools_http_handler =
content::DevToolsHttpHandler::Start(factory.Pass(),
std::string(),
new DummyDelegate(),
@@ -126,11 +164,16 @@ TEST_F(DevToolsHttpHandlerTest, TestStartStop) {
// Our dummy socket factory will post a quit message once the server will
// become ready.
run_loop.Run();
- devtools_http_handler_->Stop();
+ for (int i = 0; i < 5; i++) {
+ RunAllPendingInMessageLoop(BrowserThread::UI);
+ RunAllPendingInMessageLoop(BrowserThread::FILE);
+ }
+ devtools_http_handler->Stop();
// Make sure the handler actually stops.
run_loop_2.Run();
}
+
TEST_F(DevToolsHttpHandlerTest, TestDevToolsActivePort) {
base::RunLoop run_loop, run_loop_2;
base::ScopedTempDir temp_dir;
@@ -138,7 +181,7 @@ TEST_F(DevToolsHttpHandlerTest, TestDevToolsActivePort) {
scoped_ptr<DevToolsHttpHandler::ServerSocketFactory> factory(
new DummyServerSocketFactory(run_loop.QuitClosure(),
run_loop_2.QuitClosure()));
- content::DevToolsHttpHandler* devtools_http_handler_ =
+ content::DevToolsHttpHandler* devtools_http_handler =
content::DevToolsHttpHandler::Start(factory.Pass(),
std::string(),
new DummyDelegate(),
@@ -146,7 +189,7 @@ TEST_F(DevToolsHttpHandlerTest, TestDevToolsActivePort) {
// Our dummy socket factory will post a quit message once the server will
// become ready.
run_loop.Run();
- devtools_http_handler_->Stop();
+ devtools_http_handler->Stop();
// Make sure the handler actually stops.
run_loop_2.Run();

Powered by Google App Engine
This is Rietveld 408576698