1*6777b538SAndroid Build Coastguard Worker // Copyright 2011 The Chromium Authors 2*6777b538SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be 3*6777b538SAndroid Build Coastguard Worker // found in the LICENSE file. 4*6777b538SAndroid Build Coastguard Worker 5*6777b538SAndroid Build Coastguard Worker #ifndef NET_TEST_NET_TEST_SUITE_H_ 6*6777b538SAndroid Build Coastguard Worker #define NET_TEST_NET_TEST_SUITE_H_ 7*6777b538SAndroid Build Coastguard Worker 8*6777b538SAndroid Build Coastguard Worker #include <memory> 9*6777b538SAndroid Build Coastguard Worker 10*6777b538SAndroid Build Coastguard Worker #include "base/memory/scoped_refptr.h" 11*6777b538SAndroid Build Coastguard Worker #include "base/test/test_suite.h" 12*6777b538SAndroid Build Coastguard Worker #include "build/build_config.h" 13*6777b538SAndroid Build Coastguard Worker #include "net/dns/mock_host_resolver.h" 14*6777b538SAndroid Build Coastguard Worker 15*6777b538SAndroid Build Coastguard Worker namespace net { 16*6777b538SAndroid Build Coastguard Worker class NetworkChangeNotifier; 17*6777b538SAndroid Build Coastguard Worker } 18*6777b538SAndroid Build Coastguard Worker 19*6777b538SAndroid Build Coastguard Worker class NetTestSuite : public base::TestSuite { 20*6777b538SAndroid Build Coastguard Worker public: 21*6777b538SAndroid Build Coastguard Worker NetTestSuite(int argc, char** argv); 22*6777b538SAndroid Build Coastguard Worker ~NetTestSuite() override; 23*6777b538SAndroid Build Coastguard Worker 24*6777b538SAndroid Build Coastguard Worker void Initialize() override; 25*6777b538SAndroid Build Coastguard Worker 26*6777b538SAndroid Build Coastguard Worker void Shutdown() override; 27*6777b538SAndroid Build Coastguard Worker 28*6777b538SAndroid Build Coastguard Worker protected: 29*6777b538SAndroid Build Coastguard Worker // Called from within Initialize(), but separate so that derived classes 30*6777b538SAndroid Build Coastguard Worker // can initialize the NetTestSuite instance only and not 31*6777b538SAndroid Build Coastguard Worker // TestSuite::Initialize(). TestSuite::Initialize() performs some global 32*6777b538SAndroid Build Coastguard Worker // initialization that can only be done once. 33*6777b538SAndroid Build Coastguard Worker void InitializeTestThread(); 34*6777b538SAndroid Build Coastguard Worker 35*6777b538SAndroid Build Coastguard Worker // Same as above, except it does not create a mock 36*6777b538SAndroid Build Coastguard Worker // NetworkChangeNotifier. Use this if your test needs to create and 37*6777b538SAndroid Build Coastguard Worker // manage its own mock NetworkChangeNotifier, or if your test uses 38*6777b538SAndroid Build Coastguard Worker // the production NetworkChangeNotifier. 39*6777b538SAndroid Build Coastguard Worker void InitializeTestThreadNoNetworkChangeNotifier(); 40*6777b538SAndroid Build Coastguard Worker 41*6777b538SAndroid Build Coastguard Worker private: 42*6777b538SAndroid Build Coastguard Worker std::unique_ptr<net::NetworkChangeNotifier> network_change_notifier_; 43*6777b538SAndroid Build Coastguard Worker scoped_refptr<net::RuleBasedHostResolverProc> host_resolver_proc_; 44*6777b538SAndroid Build Coastguard Worker net::ScopedDefaultHostResolverProc scoped_host_resolver_proc_; 45*6777b538SAndroid Build Coastguard Worker }; 46*6777b538SAndroid Build Coastguard Worker 47*6777b538SAndroid Build Coastguard Worker #endif // NET_TEST_NET_TEST_SUITE_H_ 48