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

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, 2 months 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
« no previous file with comments | « content/browser/devtools/devtools_http_handler_impl.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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..05e78f4fdd692920adb4b192154a1e757605ef60 100644
--- a/content/browser/devtools/devtools_http_handler_unittest.cc
+++ b/content/browser/devtools/devtools_http_handler_unittest.cc
@@ -51,6 +51,20 @@ class DummyServerSocket : public net::ServerSocket {
}
};
+void NoOp() {
+}
+
+void QuitFromUI(const base::Closure& quit_closure) {
+ BrowserThread::PostTaskAndReply(BrowserThread::FILE, FROM_HERE,
+ base::Bind(&NoOp),
+ quit_closure);
+}
+
+void QuitFromHandlerThread(const base::Closure& quit_closure) {
+ BrowserThread::PostTask(BrowserThread::UI, FROM_HERE,
+ base::Bind(&QuitFromUI, quit_closure));
+}
+
class DummyServerSocketFactory
: public DevToolsHttpHandler::ServerSocketFactory {
public:
@@ -65,10 +79,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 +90,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,
dgozman 2014/11/06 14:46:22 Can we use RunAllPendingInMessageLoop for all the
vkuzkokov 2014/11/06 15:46:06 Done.
+ base::Bind(&QuitFromHandlerThread, quit_closure_1_));
+ return nullptr;
+ }
+};
+
class DummyDelegate : public DevToolsHttpHandlerDelegate {
public:
std::string GetDiscoveryPageHTML() override { return std::string(); }
@@ -118,7 +147,7 @@ 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(),
@@ -126,11 +155,30 @@ 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();
+ 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(),
+ 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, TestDevToolsActivePort) {
base::RunLoop run_loop, run_loop_2;
base::ScopedTempDir temp_dir;
@@ -138,7 +186,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 +194,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();
« no previous file with comments | « content/browser/devtools/devtools_http_handler_impl.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698