Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(49)

Side by Side Diff: chrome/test/in_process_browser_test.cc

Issue 115896: Making the browser tests work on Unix (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 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/in_process_browser_test.h" 5 #include "chrome/test/in_process_browser_test.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/file_path.h" 8 #include "base/file_path.h"
9 #include "base/file_util.h" 9 #include "base/file_util.h"
10 #include "base/path_service.h" 10 #include "base/path_service.h"
11 #include "chrome/browser/browser.h" 11 #include "chrome/browser/browser.h"
12 #include "chrome/browser/browser_process.h" 12 #include "chrome/browser/browser_process.h"
13 #include "chrome/browser/browser_shutdown.h" 13 #include "chrome/browser/browser_shutdown.h"
14 #include "chrome/browser/browser_window.h"
14 #include "chrome/browser/profile.h" 15 #include "chrome/browser/profile.h"
15 #include "chrome/browser/profile_manager.h" 16 #include "chrome/browser/profile_manager.h"
16 #include "chrome/browser/renderer_host/render_process_host.h" 17 #include "chrome/browser/renderer_host/render_process_host.h"
18 #if defined(OS_WIN)
17 #include "chrome/browser/views/frame/browser_view.h" 19 #include "chrome/browser/views/frame/browser_view.h"
20 #endif
18 #include "chrome/common/chrome_constants.h" 21 #include "chrome/common/chrome_constants.h"
19 #include "chrome/common/chrome_paths.h" 22 #include "chrome/common/chrome_paths.h"
20 #include "chrome/common/chrome_switches.h" 23 #include "chrome/common/chrome_switches.h"
21 #include "chrome/common/main_function_params.h" 24 #include "chrome/common/main_function_params.h"
22 #include "chrome/test/testing_browser_process.h" 25 #include "chrome/test/testing_browser_process.h"
23 #include "chrome/test/ui_test_utils.h" 26 #include "chrome/test/ui_test_utils.h"
24 #include "net/base/host_resolver_unittest.h" 27 #include "net/base/host_resolver_unittest.h"
25 #include "sandbox/src/sandbox_factory.h"
26 #include "sandbox/src/dep.h" 28 #include "sandbox/src/dep.h"
27 29
28 extern int BrowserMain(const MainFunctionParams&); 30 extern int BrowserMain(const MainFunctionParams&);
29 31
30 const wchar_t kUnitTestShowWindows[] = L"show-windows"; 32 const wchar_t kUnitTestShowWindows[] = L"show-windows";
31 33
32 namespace { 34 namespace {
33 35
34 bool DieFileDie(const std::wstring& file, bool recurse) { 36 bool DieFileDie(const std::wstring& file, bool recurse) {
35 if (!file_util::PathExists(file)) 37 if (!file_util::PathExists(file))
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
71 // Don't delete the resources when BrowserMain returns. Many ui classes 73 // Don't delete the resources when BrowserMain returns. Many ui classes
72 // cache SkBitmaps in a static field so that if we delete the resource 74 // cache SkBitmaps in a static field so that if we delete the resource
73 // bundle we'll crash. 75 // bundle we'll crash.
74 browser_shutdown::delete_resources_on_shutdown = false; 76 browser_shutdown::delete_resources_on_shutdown = false;
75 77
76 CommandLine* command_line = CommandLine::ForCurrentProcessMutable(); 78 CommandLine* command_line = CommandLine::ForCurrentProcessMutable();
77 original_command_line_.reset(new CommandLine(*command_line)); 79 original_command_line_.reset(new CommandLine(*command_line));
78 80
79 SetUpCommandLine(command_line); 81 SetUpCommandLine(command_line);
80 82
83 #if defined(OS_WIN)
81 // Hide windows on show. 84 // Hide windows on show.
82 if (!command_line->HasSwitch(kUnitTestShowWindows) && !show_window_) 85 if (!command_line->HasSwitch(kUnitTestShowWindows) && !show_window_)
83 BrowserView::SetShowState(SW_HIDE); 86 BrowserView::SetShowState(SW_HIDE);
87 #endif
84 88
85 if (dom_automation_enabled_) 89 if (dom_automation_enabled_)
86 command_line->AppendSwitch(switches::kDomAutomationController); 90 command_line->AppendSwitch(switches::kDomAutomationController);
87 91
88 if (single_process_) 92 if (single_process_)
89 command_line->AppendSwitch(switches::kSingleProcess); 93 command_line->AppendSwitch(switches::kSingleProcess);
90 94
91 command_line->AppendSwitchWithValue(switches::kUserDataDir, user_data_dir); 95 command_line->AppendSwitchWithValue(switches::kUserDataDir, user_data_dir);
92 96
93 // For some reason the sandbox wasn't happy running in test mode. These 97 // For some reason the sandbox wasn't happy running in test mode. These
(...skipping 10 matching lines...) Expand all
104 // otherwise they'll try to use unit_test.exe. 108 // otherwise they'll try to use unit_test.exe.
105 std::wstring subprocess_path; 109 std::wstring subprocess_path;
106 PathService::Get(base::FILE_EXE, &subprocess_path); 110 PathService::Get(base::FILE_EXE, &subprocess_path);
107 FilePath fp_subprocess_path = FilePath::FromWStringHack(subprocess_path); 111 FilePath fp_subprocess_path = FilePath::FromWStringHack(subprocess_path);
108 subprocess_path = fp_subprocess_path.DirName().ToWStringHack(); 112 subprocess_path = fp_subprocess_path.DirName().ToWStringHack();
109 file_util::AppendToPath(&subprocess_path, 113 file_util::AppendToPath(&subprocess_path,
110 chrome::kBrowserProcessExecutablePath); 114 chrome::kBrowserProcessExecutablePath);
111 command_line->AppendSwitchWithValue(switches::kBrowserSubprocessPath, 115 command_line->AppendSwitchWithValue(switches::kBrowserSubprocessPath,
112 subprocess_path); 116 subprocess_path);
113 117
114 sandbox::SandboxInterfaceInfo sandbox_info = {0};
115 SandboxInitWrapper sandbox_wrapper; 118 SandboxInitWrapper sandbox_wrapper;
116 MainFunctionParams params(*command_line, sandbox_wrapper, NULL); 119 MainFunctionParams params(*command_line, sandbox_wrapper, NULL);
117 params.ui_task = 120 params.ui_task =
118 NewRunnableMethod(this, &InProcessBrowserTest::RunTestOnMainThreadLoop); 121 NewRunnableMethod(this, &InProcessBrowserTest::RunTestOnMainThreadLoop);
119 122
120 scoped_refptr<net::RuleBasedHostMapper> host_mapper( 123 scoped_refptr<net::RuleBasedHostMapper> host_mapper(
121 new net::RuleBasedHostMapper()); 124 new net::RuleBasedHostMapper());
122 ConfigureHostMapper(host_mapper.get()); 125 ConfigureHostMapper(host_mapper.get());
123 net::ScopedHostMapper scoped_host_mapper(host_mapper.get()); 126 net::ScopedHostMapper scoped_host_mapper(host_mapper.get());
124 BrowserMain(params); 127 BrowserMain(params);
125 } 128 }
126 129
127 void InProcessBrowserTest::TearDown() { 130 void InProcessBrowserTest::TearDown() {
128 // Reinstall testing browser process. 131 // Reinstall testing browser process.
129 delete g_browser_process; 132 delete g_browser_process;
130 g_browser_process = new TestingBrowserProcess(); 133 g_browser_process = new TestingBrowserProcess();
131 134
132 browser_shutdown::delete_resources_on_shutdown = true; 135 browser_shutdown::delete_resources_on_shutdown = true;
133 136
137 #if defined(WIN)
134 BrowserView::SetShowState(-1); 138 BrowserView::SetShowState(-1);
139 #endif
135 140
136 *CommandLine::ForCurrentProcessMutable() = *original_command_line_; 141 *CommandLine::ForCurrentProcessMutable() = *original_command_line_;
137 RenderProcessHost::set_run_renderer_in_process(original_single_process_); 142 RenderProcessHost::set_run_renderer_in_process(original_single_process_);
138 } 143 }
139 144
140 void InProcessBrowserTest::Observe(NotificationType type, 145 void InProcessBrowserTest::Observe(NotificationType type,
141 const NotificationSource& source, 146 const NotificationSource& source,
142 const NotificationDetails& details) { 147 const NotificationDetails& details) {
143 if (type == NotificationType::BROWSER_CLOSED) { 148 if (type == NotificationType::BROWSER_CLOSED) {
144 DCHECK(Source<Browser>(source).ptr() == browser_); 149 DCHECK(Source<Browser>(source).ptr() == browser_);
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
212 MessageLoopForUI::current()->Quit(); 217 MessageLoopForUI::current()->Quit();
213 } 218 }
214 219
215 void InProcessBrowserTest::ConfigureHostMapper( 220 void InProcessBrowserTest::ConfigureHostMapper(
216 net::RuleBasedHostMapper* host_mapper) { 221 net::RuleBasedHostMapper* host_mapper) {
217 host_mapper->AllowDirectLookup("*.google.com"); 222 host_mapper->AllowDirectLookup("*.google.com");
218 // See http://en.wikipedia.org/wiki/Web_Proxy_Autodiscovery_Protocol 223 // See http://en.wikipedia.org/wiki/Web_Proxy_Autodiscovery_Protocol
219 // We don't want the test code to use it. 224 // We don't want the test code to use it.
220 host_mapper->AddSimulatedFailure("wpad"); 225 host_mapper->AddSimulatedFailure("wpad");
221 } 226 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698