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

Unified Diff: chrome/browser/extensions/api/socket/socket_apitest.cc

Issue 10537017: Allow hostnames in socket.connect(). (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Patch Set 1 Created 8 years, 6 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
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());

Powered by Google App Engine
This is Rietveld 408576698