| 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 77e93614c3cade9421c9cc1ea94aecbac8159aa1..88710924c2a5856916619796c4ccacab9b0415e1 100644
|
| --- a/content/browser/devtools/devtools_http_handler_unittest.cc
|
| +++ b/content/browser/devtools/devtools_http_handler_unittest.cc
|
| @@ -2,18 +2,27 @@
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| +#include "base/file_util.h"
|
| +#include "base/files/scoped_temp_dir.h"
|
| #include "base/message_loop/message_loop.h"
|
| #include "base/run_loop.h"
|
| +#include "base/strings/string_number_conversions.h"
|
| #include "content/browser/browser_thread_impl.h"
|
| #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 "net/base/ip_endpoint.h"
|
| +#include "net/base/net_errors.h"
|
| #include "net/socket/stream_listen_socket.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
|
|
| namespace content {
|
| namespace {
|
|
|
| +const int kDummyPort = 4321;
|
| +const base::FilePath::CharType kDevToolsActivePortFileName[] =
|
| + FILE_PATH_LITERAL("DevToolsActivePort");
|
| +
|
| using net::StreamListenSocket;
|
|
|
| class DummyListenSocket : public StreamListenSocket,
|
| @@ -32,6 +41,12 @@ class DummyListenSocket : public StreamListenSocket,
|
| protected:
|
| virtual ~DummyListenSocket() {}
|
| virtual void Accept() OVERRIDE {}
|
| + virtual int GetLocalAddress(net::IPEndPoint* address) OVERRIDE {
|
| + net::IPAddressNumber number;
|
| + EXPECT_TRUE(net::ParseIPLiteralToNumber("127.0.0.1", &number));
|
| + *address = net::IPEndPoint(number, kDummyPort);
|
| + return net::OK;
|
| + }
|
| };
|
|
|
| class DummyListenSocketFactory : public net::StreamListenSocketFactory {
|
| @@ -116,4 +131,34 @@ TEST_F(DevToolsHttpHandlerTest, TestStartStop) {
|
| run_loop_2.Run();
|
| }
|
|
|
| +TEST_F(DevToolsHttpHandlerTest, TestDevToolsActivePort) {
|
| + base::RunLoop run_loop, run_loop_2;
|
| + base::ScopedTempDir temp_dir;
|
| + EXPECT_TRUE(temp_dir.CreateUniqueTempDir());
|
| + content::DevToolsHttpHandler* devtools_http_handler_ =
|
| + content::DevToolsHttpHandler::Start(
|
| + new DummyListenSocketFactory(run_loop.QuitClosure(),
|
| + run_loop_2.QuitClosure()),
|
| + std::string(),
|
| + new DummyDelegate(),
|
| + temp_dir.path());
|
| + // 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();
|
| +
|
| + // Now make sure the DevToolsActivePort was written into the
|
| + // temporary directory and its contents are as expected.
|
| + base::FilePath active_port_file = temp_dir.path().Append(
|
| + kDevToolsActivePortFileName);
|
| + EXPECT_TRUE(base::PathExists(active_port_file));
|
| + std::string file_contents;
|
| + EXPECT_TRUE(base::ReadFileToString(active_port_file, &file_contents));
|
| + int port = 0;
|
| + EXPECT_TRUE(base::StringToInt(file_contents, &port));
|
| + EXPECT_EQ(kDummyPort, port);
|
| +}
|
| +
|
| } // namespace content
|
|
|