diff options
author | tommi@chromium.org <tommi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-08-26 00:17:22 +0000 |
---|---|---|
committer | tommi@chromium.org <tommi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-08-26 00:17:22 +0000 |
commit | cd37033213c76352afb197bebcdfa2252115ea69 (patch) | |
tree | 4f5c4fa4bdf4b7ee6de251e6524be7330809a1be /net/base/net_test_suite.h | |
parent | cbd5fd5ead41910dce8a20ec53ce1195548440d5 (diff) | |
download | chromium_src-cd37033213c76352afb197bebcdfa2252115ea69.zip chromium_src-cd37033213c76352afb197bebcdfa2252115ea69.tar.gz chromium_src-cd37033213c76352afb197bebcdfa2252115ea69.tar.bz2 |
Moving NetTestSuite to a header file for reuse.
I'm also factoring initialization of the NetTestSuite instance to a separate method so that per NetTestSuite instance initialization can be done separate of TestSuite::Initialize() (which does global initialization).
Review URL: http://codereview.chromium.org/174438
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@24379 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/base/net_test_suite.h')
-rw-r--r-- | net/base/net_test_suite.h | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/net/base/net_test_suite.h b/net/base/net_test_suite.h new file mode 100644 index 0000000..17e94c4 --- /dev/null +++ b/net/base/net_test_suite.h @@ -0,0 +1,52 @@ +// Copyright (c) 2009 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef NET_BASE_NET_TEST_SUITE_H_ +#define NET_BASE_NET_TEST_SUITE_H_ + +#include "base/message_loop.h" +#include "base/ref_counted.h" +#include "base/test_suite.h" +#include "net/base/mock_host_resolver.h" + +class NetTestSuite : public TestSuite { + public: + NetTestSuite(int argc, char** argv) : TestSuite(argc, argv) { + } + + virtual void Initialize() { + TestSuite::Initialize(); + InitializeTestThread(); + } + + // Called from within Initialize(), but separate so that derived classes + // can initialize the NetTestSuite instance only and not + // TestSuite::Initialize(). TestSuite::Initialize() performs some global + // initialization that can only be done once. + void InitializeTestThread() { + host_resolver_proc_ = new net::RuleBasedHostResolverProc(NULL); + scoped_host_resolver_proc_.Init(host_resolver_proc_.get()); + // In case any attempts are made to resolve host names, force them all to + // be mapped to localhost. This prevents DNS queries from being sent in + // the process of running these unit tests. + host_resolver_proc_->AddRule("*", "127.0.0.1"); + + message_loop_.reset(new MessageLoopForIO()); + } + + virtual void Shutdown() { + // We want to destroy this here before the TestSuite continues to tear down + // the environment. + message_loop_.reset(); + + TestSuite::Shutdown(); + } + + private: + scoped_ptr<MessageLoop> message_loop_; + scoped_refptr<net::RuleBasedHostResolverProc> host_resolver_proc_; + net::ScopedDefaultHostResolverProc scoped_host_resolver_proc_; +}; + +#endif // NET_BASE_NET_TEST_SUITE_H_ |