net_test_suite.cc revision cedac228d2dd51db4b79ea1e72c7f249408ee061
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. 4 5#include "net/test/net_test_suite.h" 6 7#include "base/message_loop/message_loop.h" 8#include "net/base/network_change_notifier.h" 9#include "net/http/http_stream_factory.h" 10#include "net/spdy/spdy_session.h" 11#include "testing/gtest/include/gtest/gtest.h" 12 13#if defined(USE_NSS) || defined(OS_IOS) 14#include "net/ocsp/nss_ocsp.h" 15#endif 16 17class StaticReset : public ::testing::EmptyTestEventListener { 18 virtual void OnTestStart(const ::testing::TestInfo& test_info) OVERRIDE { 19 net::HttpStreamFactory::ResetStaticSettingsToInit(); 20 } 21}; 22 23NetTestSuite::NetTestSuite(int argc, char** argv) 24 : TestSuite(argc, argv) { 25} 26 27NetTestSuite::NetTestSuite(int argc, char** argv, 28 bool create_at_exit_manager) 29 : TestSuite(argc, argv, create_at_exit_manager) { 30} 31 32NetTestSuite::~NetTestSuite() {} 33 34void NetTestSuite::Initialize() { 35 TestSuite::Initialize(); 36 ::testing::UnitTest::GetInstance()->listeners().Append(new StaticReset()); 37 InitializeTestThread(); 38} 39 40void NetTestSuite::Shutdown() { 41#if defined(USE_NSS) || defined(OS_IOS) 42 net::ShutdownNSSHttpIO(); 43#endif 44 45 // We want to destroy this here before the TestSuite continues to tear down 46 // the environment. 47 message_loop_.reset(); 48 49 TestSuite::Shutdown(); 50} 51 52void NetTestSuite::InitializeTestThread() { 53 network_change_notifier_.reset(net::NetworkChangeNotifier::CreateMock()); 54 55 InitializeTestThreadNoNetworkChangeNotifier(); 56} 57 58void NetTestSuite::InitializeTestThreadNoNetworkChangeNotifier() { 59 host_resolver_proc_ = new net::RuleBasedHostResolverProc(NULL); 60 scoped_host_resolver_proc_.Init(host_resolver_proc_.get()); 61 // In case any attempts are made to resolve host names, force them all to 62 // be mapped to localhost. This prevents DNS queries from being sent in 63 // the process of running these unit tests. 64 host_resolver_proc_->AddRule("*", "127.0.0.1"); 65 66 message_loop_.reset(new base::MessageLoopForIO()); 67} 68