Enable Enterprise enrollment on desktop builds.
[chromium-blink-merge.git] / chrome / browser / extensions / api / dns / mock_host_resolver_creator.cc
blob5111c3ef061db5e68480541447d1c2ce56887dc1
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "chrome/browser/extensions/api/dns/mock_host_resolver_creator.h"
7 #include "chrome/test/base/in_process_browser_test.h"
8 #include "content/public/browser/browser_thread.h"
9 #include "net/dns/mock_host_resolver.h"
11 using content::BrowserThread;
13 namespace extensions {
15 const std::string MockHostResolverCreator::kHostname = "www.sowbug.com";
16 const std::string MockHostResolverCreator::kAddress = "9.8.7.6";
18 MockHostResolverCreator::MockHostResolverCreator()
19 : resolver_event_(true, false),
20 mock_host_resolver_(NULL) {
23 MockHostResolverCreator::~MockHostResolverCreator() {
26 net::MockHostResolver* MockHostResolverCreator::CreateMockHostResolver() {
27 DCHECK(!mock_host_resolver_);
28 DCHECK_CURRENTLY_ON(BrowserThread::UI);
30 bool result = BrowserThread::PostTask(
31 BrowserThread::IO, FROM_HERE,
32 base::Bind(&MockHostResolverCreator::CreateMockHostResolverOnIOThread,
33 this));
34 DCHECK(result);
36 base::TimeDelta max_time = base::TimeDelta::FromSeconds(5);
37 resolver_event_.TimedWait(max_time);
39 return mock_host_resolver_;
42 void MockHostResolverCreator::CreateMockHostResolverOnIOThread() {
43 mock_host_resolver_ = new net::MockHostResolver();
44 mock_host_resolver_->rules()->AddRule(kHostname, kAddress);
45 mock_host_resolver_->rules()->AddSimulatedFailure("this.hostname.is.bogus");
46 resolver_event_.Signal();
49 void MockHostResolverCreator::DeleteMockHostResolver() {
50 DCHECK_CURRENTLY_ON(BrowserThread::UI);
51 if (!mock_host_resolver_)
52 return;
53 resolver_event_.Reset();
54 bool result = BrowserThread::PostTask(
55 BrowserThread::IO, FROM_HERE,
56 base::Bind(&MockHostResolverCreator::DeleteMockHostResolverOnIOThread,
57 this));
58 DCHECK(result);
60 base::TimeDelta max_time = base::TimeDelta::FromSeconds(5);
61 ASSERT_TRUE(resolver_event_.TimedWait(max_time));
64 void MockHostResolverCreator::DeleteMockHostResolverOnIOThread() {
65 delete(mock_host_resolver_);
66 mock_host_resolver_ = NULL;
67 resolver_event_.Signal();
70 } // namespace extensions