| Index: chrome/browser/extensions/api/socket/socket_apitest.cc
|
| diff --git a/chrome/browser/extensions/api/socket/socket_apitest.cc b/chrome/browser/extensions/api/socket/socket_apitest.cc
|
| index 4143b3a4b6c235032682071778b76e17d3ff9cc3..335ce01b2a95aa1b0b3ae8fa8ff986f04dee371d 100644
|
| --- a/chrome/browser/extensions/api/socket/socket_apitest.cc
|
| +++ b/chrome/browser/extensions/api/socket/socket_apitest.cc
|
| @@ -4,6 +4,8 @@
|
|
|
| #include "base/memory/ref_counted.h"
|
| #include "base/stringprintf.h"
|
| +#include "chrome/browser/extensions/api/dns/host_resolver_wrapper.h"
|
| +#include "chrome/browser/extensions/api/dns/mock_host_resolver_creator.h"
|
| #include "chrome/browser/extensions/api/socket/socket_api.h"
|
| #include "chrome/browser/extensions/extension_apitest.h"
|
| #include "chrome/browser/extensions/extension_function_test_utils.h"
|
| @@ -12,6 +14,7 @@
|
| #include "chrome/browser/ui/browser.h"
|
| #include "chrome/test/base/in_process_browser_test.h"
|
| #include "chrome/test/base/ui_test_utils.h"
|
| +#include "net/base/mock_host_resolver.h"
|
| #include "net/test/test_server.h"
|
|
|
| using extensions::Extension;
|
| @@ -25,12 +28,36 @@ const int kPort = 8888;
|
|
|
| class SocketApiTest : public PlatformAppApiTest {
|
| public:
|
| + SocketApiTest() : resolver_event_(true, false),
|
| + resolver_creator_(
|
| + new extensions::MockHostResolverCreator()) {
|
| + }
|
| +
|
| + void SetUpOnMainThread() OVERRIDE {
|
| + extensions::HostResolverWrapper::GetInstance()->SetHostResolverForTesting(
|
| + resolver_creator_->CreateMockHostResolver());
|
| + }
|
| +
|
| + void CleanUpOnMainThread() OVERRIDE {
|
| + extensions::HostResolverWrapper::GetInstance()->
|
| + SetHostResolverForTesting(NULL);
|
| + resolver_creator_->DeleteMockHostResolver();
|
| + }
|
| +
|
| static std::string GenerateCreateFunctionArgs(const std::string& protocol,
|
| const std::string& address,
|
| int port) {
|
| return base::StringPrintf("[\"%s\", \"%s\", %d]", protocol.c_str(),
|
| address.c_str(), port);
|
| }
|
| +
|
| + private:
|
| + base::WaitableEvent resolver_event_;
|
| +
|
| + // The MockHostResolver asserts that it's used on the same thread on which
|
| + // it's created, which is actually a stronger rule than its real counterpart.
|
| + // But that's fine; it's good practice.
|
| + scoped_refptr<extensions::MockHostResolverCreator> resolver_creator_;
|
| };
|
|
|
| } // namespace
|
| @@ -124,6 +151,9 @@ IN_PROC_BROWSER_TEST_F(SocketApiTest, SocketTCPExtension) {
|
| int port = host_port_pair.port();
|
| ASSERT_TRUE(port > 0);
|
|
|
| + // Test that connect() is properly resolving hostnames.
|
| + host_port_pair.set_host("lOcAlHoSt");
|
| +
|
| ResultCatcher catcher;
|
| catcher.RestrictToProfile(browser()->profile());
|
|
|
|
|