Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/test/base/chrome_test_suite.h" | 5 #include "chrome/test/base/chrome_test_suite.h" |
| 6 | 6 |
| 7 #if defined(OS_CHROMEOS) | 7 #if defined(OS_CHROMEOS) |
| 8 #include <stdio.h> | 8 #include <stdio.h> |
| 9 #include <unistd.h> | 9 #include <unistd.h> |
| 10 #endif | 10 #endif |
| (...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 86 | 86 |
| 87 class ChromeTestSuiteInitializer : public testing::EmptyTestEventListener { | 87 class ChromeTestSuiteInitializer : public testing::EmptyTestEventListener { |
| 88 public: | 88 public: |
| 89 ChromeTestSuiteInitializer() { | 89 ChromeTestSuiteInitializer() { |
| 90 } | 90 } |
| 91 | 91 |
| 92 virtual void OnTestStart(const testing::TestInfo& test_info) OVERRIDE { | 92 virtual void OnTestStart(const testing::TestInfo& test_info) OVERRIDE { |
| 93 DCHECK(!g_browser_process); | 93 DCHECK(!g_browser_process); |
| 94 g_browser_process = new TestingBrowserProcess; | 94 g_browser_process = new TestingBrowserProcess; |
| 95 | 95 |
| 96 SetUpContentClients(); | |
| 97 SetUpExtensionsClients(); | |
| 98 } | |
| 99 | |
| 100 virtual void OnTestEnd(const testing::TestInfo& test_info) OVERRIDE { | |
| 101 TearDownExtensionsClients(); | |
| 102 TearDownContentClients(); | |
|
James Cook
2013/11/01 20:53:12
This teardown has no significant side effects, so
| |
| 103 | |
| 104 if (g_browser_process) { | |
| 105 BrowserProcess* browser_process = g_browser_process; | |
| 106 // g_browser_process must be NULL during its own destruction. | |
| 107 g_browser_process = NULL; | |
| 108 delete browser_process; | |
| 109 } | |
| 110 } | |
| 111 | |
| 112 private: | |
| 113 void SetUpContentClients() { | |
| 96 content_client_.reset(new chrome::ChromeContentClient); | 114 content_client_.reset(new chrome::ChromeContentClient); |
| 97 content::SetContentClient(content_client_.get()); | 115 content::SetContentClient(content_client_.get()); |
| 98 // TODO(ios): Bring this back once ChromeContentBrowserClient is building. | 116 // TODO(ios): Bring this back once ChromeContentBrowserClient is building. |
| 99 #if !defined(OS_IOS) | 117 #if !defined(OS_IOS) |
| 100 browser_content_client_.reset(new chrome::ChromeContentBrowserClient()); | 118 browser_content_client_.reset(new chrome::ChromeContentBrowserClient()); |
| 101 content::SetBrowserClientForTesting(browser_content_client_.get()); | 119 content::SetBrowserClientForTesting(browser_content_client_.get()); |
| 102 utility_content_client_.reset(new chrome::ChromeContentUtilityClient()); | 120 utility_content_client_.reset(new chrome::ChromeContentUtilityClient()); |
| 103 content::SetUtilityClientForTesting(utility_content_client_.get()); | 121 content::SetUtilityClientForTesting(utility_content_client_.get()); |
| 104 #endif | 122 #endif |
| 105 } | 123 } |
| 106 | 124 |
| 107 virtual void OnTestEnd(const testing::TestInfo& test_info) OVERRIDE { | 125 void TearDownContentClients() { |
| 108 if (g_browser_process) { | |
| 109 BrowserProcess* browser_process = g_browser_process; | |
| 110 // g_browser_process must be NULL during its own destruction. | |
| 111 g_browser_process = NULL; | |
| 112 delete browser_process; | |
| 113 } | |
| 114 | |
| 115 // TODO(ios): Bring this back once ChromeContentBrowserClient is building. | 126 // TODO(ios): Bring this back once ChromeContentBrowserClient is building. |
| 116 #if !defined(OS_IOS) | 127 #if !defined(OS_IOS) |
| 117 browser_content_client_.reset(); | 128 browser_content_client_.reset(); |
| 118 utility_content_client_.reset(); | 129 utility_content_client_.reset(); |
| 119 #endif | 130 #endif |
| 120 content_client_.reset(); | 131 content_client_.reset(); |
| 121 content::SetContentClient(NULL); | 132 content::SetContentClient(NULL); |
| 122 } | 133 } |
| 123 | 134 |
| 124 private: | 135 void SetUpExtensionsClients() { |
| 136 #if defined(ENABLE_EXTENSIONS) | |
| 137 extensions_browser_client_.reset( | |
| 138 new extensions::ChromeExtensionsBrowserClient); | |
| 139 extensions::ExtensionsBrowserClient::Set(extensions_browser_client_.get()); | |
|
James Cook
2013/11/01 20:53:12
This must be done after content is initialized bec
| |
| 140 #endif | |
| 141 } | |
| 142 | |
| 143 void TearDownExtensionsClients() { | |
| 144 #if defined(ENABLE_EXTENSIONS) | |
| 145 extensions_browser_client_.reset(); | |
| 146 extensions::ExtensionsBrowserClient::Set(NULL); | |
| 147 #endif | |
| 148 } | |
| 149 | |
| 150 // Client implementations for the content module. | |
| 125 scoped_ptr<chrome::ChromeContentClient> content_client_; | 151 scoped_ptr<chrome::ChromeContentClient> content_client_; |
| 126 // TODO(ios): Bring this back once ChromeContentBrowserClient is building. | 152 // TODO(ios): Bring this back once ChromeContentBrowserClient is building. |
| 127 #if !defined(OS_IOS) | 153 #if !defined(OS_IOS) |
| 128 scoped_ptr<chrome::ChromeContentBrowserClient> browser_content_client_; | 154 scoped_ptr<chrome::ChromeContentBrowserClient> browser_content_client_; |
| 129 scoped_ptr<chrome::ChromeContentUtilityClient> utility_content_client_; | 155 scoped_ptr<chrome::ChromeContentUtilityClient> utility_content_client_; |
| 130 #endif | 156 #endif |
| 131 | 157 |
| 158 // Client implementations for the extensions module. | |
| 159 scoped_ptr<extensions::ChromeExtensionsBrowserClient> | |
| 160 extensions_browser_client_; | |
| 161 | |
| 132 DISALLOW_COPY_AND_ASSIGN(ChromeTestSuiteInitializer); | 162 DISALLOW_COPY_AND_ASSIGN(ChromeTestSuiteInitializer); |
| 133 }; | 163 }; |
| 134 | 164 |
| 135 } // namespace | 165 } // namespace |
| 136 | 166 |
| 137 ChromeTestSuite::ChromeTestSuite(int argc, char** argv) | 167 ChromeTestSuite::ChromeTestSuite(int argc, char** argv) |
| 138 : content::ContentTestSuiteBase(argc, argv) { | 168 : content::ContentTestSuiteBase(argc, argv) { |
| 139 } | 169 } |
| 140 | 170 |
| 141 ChromeTestSuite::~ChromeTestSuite() { | 171 ChromeTestSuite::~ChromeTestSuite() { |
| (...skipping 23 matching lines...) Expand all Loading... | |
| 165 if (!browser_dir_.empty()) { | 195 if (!browser_dir_.empty()) { |
| 166 PathService::Override(base::DIR_EXE, browser_dir_); | 196 PathService::Override(base::DIR_EXE, browser_dir_); |
| 167 PathService::Override(base::DIR_MODULE, browser_dir_); | 197 PathService::Override(base::DIR_MODULE, browser_dir_); |
| 168 } | 198 } |
| 169 | 199 |
| 170 #if !defined(OS_IOS) | 200 #if !defined(OS_IOS) |
| 171 extensions::RegisterPathProvider(); | 201 extensions::RegisterPathProvider(); |
| 172 | 202 |
| 173 extensions::ExtensionsClient::Set( | 203 extensions::ExtensionsClient::Set( |
| 174 extensions::ChromeExtensionsClient::GetInstance()); | 204 extensions::ChromeExtensionsClient::GetInstance()); |
| 175 extensions::ExtensionsBrowserClient::Set( | |
| 176 extensions::ChromeExtensionsBrowserClient::GetInstance()); | |
| 177 | 205 |
| 178 // Only want to do this for unit tests. | 206 // Only want to do this for unit tests. |
| 179 if (!content::GetCurrentTestLauncherDelegate()) { | 207 if (!content::GetCurrentTestLauncherDelegate()) { |
| 180 // For browser tests, this won't create the right object since | 208 // For browser tests, this won't create the right object since |
| 181 // TestChromeWebUIControllerFactory is used. That's created and | 209 // TestChromeWebUIControllerFactory is used. That's created and |
| 182 // registered in ChromeBrowserMainParts as in normal startup. | 210 // registered in ChromeBrowserMainParts as in normal startup. |
| 183 content::WebUIControllerFactory::RegisterFactory( | 211 content::WebUIControllerFactory::RegisterFactory( |
| 184 ChromeWebUIControllerFactory::GetInstance()); | 212 ChromeWebUIControllerFactory::GetInstance()); |
| 185 } | 213 } |
| 186 #endif | 214 #endif |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 238 #if defined(OS_MACOSX) && !defined(OS_IOS) | 266 #if defined(OS_MACOSX) && !defined(OS_IOS) |
| 239 base::mac::SetOverrideFrameworkBundle(NULL); | 267 base::mac::SetOverrideFrameworkBundle(NULL); |
| 240 #endif | 268 #endif |
| 241 | 269 |
| 242 base::StatsTable::set_current(NULL); | 270 base::StatsTable::set_current(NULL); |
| 243 stats_table_.reset(); | 271 stats_table_.reset(); |
| 244 RemoveSharedMemoryFile(stats_filename_); | 272 RemoveSharedMemoryFile(stats_filename_); |
| 245 | 273 |
| 246 base::TestSuite::Shutdown(); | 274 base::TestSuite::Shutdown(); |
| 247 } | 275 } |
| OLD | NEW |