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

Unified Diff: chrome/browser/extensions/api/dns/dns_apitest.cc

Issue 10537017: Allow hostnames in socket.connect(). (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: mihaip's comments + clang fix. 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/dns/dns_apitest.cc
diff --git a/chrome/browser/extensions/api/dns/dns_apitest.cc b/chrome/browser/extensions/api/dns/dns_apitest.cc
index b3746dc82a620ffa43f6087e7702b597ce645b2b..f499390174cbc7517443abd69028c8142a424c47 100644
--- a/chrome/browser/extensions/api/dns/dns_apitest.cc
+++ b/chrome/browser/extensions/api/dns/dns_apitest.cc
@@ -2,18 +2,17 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
+#include "base/memory/ref_counted.h"
#include "base/memory/scoped_ptr.h"
-#include "base/synchronization/waitable_event.h"
#include "chrome/browser/extensions/api/dns/dns_api.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/extension_apitest.h"
#include "chrome/browser/extensions/extension_function_test_utils.h"
-#include "content/public/browser/browser_thread.h"
-#include "net/base/host_resolver.h"
#include "net/base/mock_host_resolver.h"
#include "net/base/net_errors.h"
#include "net/base/net_util.h"
-using content::BrowserThread;
using extension_function_test_utils::CreateEmptyExtension;
using extension_function_test_utils::RunFunctionAndReturnResult;
@@ -21,65 +20,19 @@ namespace {
class DnsApiTest : public PlatformAppApiTest {
public:
- static const std::string kHostname;
- static const std::string kAddress;
-
DnsApiTest() : resolver_event_(true, false),
- mock_host_resolver_(NULL) {
- }
-
- virtual void SetUpOnMainThread() OVERRIDE {
- CreateMockHostResolverOnIOThread();
- extensions::DnsResolveFunction::set_host_resolver_for_testing(
- get_mock_host_resolver());
- }
-
- virtual void CleanUpOnMainThread() OVERRIDE {
- if (mock_host_resolver_) {
- extensions::DnsResolveFunction::set_host_resolver_for_testing(NULL);
- DeleteMockHostResolverOnIOThread();
- }
- }
-
- void CreateMockHostResolverOnIOThread() {
- bool result = BrowserThread::PostTask(
- BrowserThread::IO, FROM_HERE,
- base::Bind(&DnsApiTest::FinishMockHostResolverCreation, this));
- DCHECK(result);
-
- base::TimeDelta max_time = base::TimeDelta::FromSeconds(5);
- ASSERT_TRUE(resolver_event_.TimedWait(max_time));
-
- }
-
- void FinishMockHostResolverCreation() {
- mock_host_resolver_ = new net::MockHostResolver();
- get_mock_host_resolver()->rules()->AddRule(kHostname, kAddress);
- get_mock_host_resolver()->rules()->AddSimulatedFailure(
- "this.hostname.is.bogus");
- resolver_event_.Signal();
- }
-
- void DeleteMockHostResolverOnIOThread() {
- if (!mock_host_resolver_)
- return;
- resolver_event_.Reset();
- bool result = BrowserThread::PostTask(
- BrowserThread::IO, FROM_HERE,
- base::Bind(&DnsApiTest::FinishMockHostResolverDeletion, this));
- DCHECK(result);
-
- base::TimeDelta max_time = base::TimeDelta::FromSeconds(5);
- ASSERT_TRUE(resolver_event_.TimedWait(max_time));
+ resolver_creator_(new extensions::MockHostResolverCreator()) {
}
- void FinishMockHostResolverDeletion() {
- delete(mock_host_resolver_);
- resolver_event_.Signal();
+ void SetUpOnMainThread() OVERRIDE {
+ extensions::HostResolverWrapper::GetInstance()->SetHostResolverForTesting(
+ resolver_creator_->CreateMockHostResolver());
}
- net::MockHostResolver* get_mock_host_resolver() {
- return mock_host_resolver_;
+ void CleanUpOnMainThread() OVERRIDE {
+ extensions::HostResolverWrapper::GetInstance()->
+ SetHostResolverForTesting(NULL);
+ resolver_creator_->DeleteMockHostResolver();
}
private:
@@ -88,12 +41,8 @@ class DnsApiTest : public PlatformAppApiTest {
// 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.
- //
- // Plain pointer because we have to manage lifetime manually.
- net::MockHostResolver* mock_host_resolver_;
+ scoped_refptr<extensions::MockHostResolverCreator> resolver_creator_;
};
-const std::string DnsApiTest::kHostname = "www.sowbug.org";
-const std::string DnsApiTest::kAddress = "9.8.7.6";
} // namespace
@@ -128,7 +77,7 @@ IN_PROC_BROWSER_TEST_F(DnsApiTest, DnsResolveHostname) {
resolve_function->set_has_callback(true);
std::string function_arguments("[\"");
- function_arguments += DnsApiTest::kHostname;
+ function_arguments += extensions::MockHostResolverCreator::kHostname;
function_arguments += "\"]";
scoped_ptr<base::Value> result(
RunFunctionAndReturnResult(resolve_function.get(),
@@ -142,7 +91,7 @@ IN_PROC_BROWSER_TEST_F(DnsApiTest, DnsResolveHostname) {
std::string address;
EXPECT_TRUE(value->GetString("address", &address));
- EXPECT_EQ(DnsApiTest::kAddress, address);
+ EXPECT_EQ(extensions::MockHostResolverCreator::kAddress, address);
}
IN_PROC_BROWSER_TEST_F(DnsApiTest, DnsExtension) {
« no previous file with comments | « chrome/browser/extensions/api/dns/dns_api.cc ('k') | chrome/browser/extensions/api/dns/host_resolver_wrapper.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698