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 "base/memory/ref_counted.h"
6 #include "chrome/browser/extensions/extension_apitest.h"
7 #include "extensions/browser/api/dns/host_resolver_wrapper.h"
8 #include "extensions/browser/api/dns/mock_host_resolver_creator.h"
9 #include "net/dns/mock_host_resolver.h"
11 class DnsApiTest : public ExtensionApiTest {
13 DnsApiTest() : resolver_creator_(new extensions::MockHostResolverCreator()) {}
16 virtual void SetUpOnMainThread() OVERRIDE {
17 ExtensionApiTest::SetUpOnMainThread();
18 extensions::HostResolverWrapper::GetInstance()->SetHostResolverForTesting(
19 resolver_creator_->CreateMockHostResolver());
22 virtual void TearDownOnMainThread() OVERRIDE {
23 extensions::HostResolverWrapper::GetInstance()->
24 SetHostResolverForTesting(NULL);
25 resolver_creator_->DeleteMockHostResolver();
26 ExtensionApiTest::TearDownOnMainThread();
29 // The MockHostResolver asserts that it's used on the same thread on which
30 // it's created, which is actually a stronger rule than its real counterpart.
31 // But that's fine; it's good practice.
32 scoped_refptr<extensions::MockHostResolverCreator> resolver_creator_;
35 IN_PROC_BROWSER_TEST_F(DnsApiTest, DnsExtension) {
36 ASSERT_TRUE(RunExtensionTest("dns/api")) << message_;