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/in_process_browser_test.h" | 5 #include "chrome/test/base/in_process_browser_test.h" |
6 | 6 |
7 #include "base/auto_reset.h" | 7 #include "base/auto_reset.h" |
8 #include "base/bind.h" | 8 #include "base/bind.h" |
9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
10 #include "base/debug/stack_trace.h" | 10 #include "base/debug/stack_trace.h" |
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
71 // Before we run the browser, we have to hack the path to the exe to match | 71 // Before we run the browser, we have to hack the path to the exe to match |
72 // what it would be if Chrome was running, because it is used to fork renderer | 72 // what it would be if Chrome was running, because it is used to fork renderer |
73 // processes, on Linux at least (failure to do so will cause a browser_test to | 73 // processes, on Linux at least (failure to do so will cause a browser_test to |
74 // be run instead of a renderer). | 74 // be run instead of a renderer). |
75 FilePath chrome_path; | 75 FilePath chrome_path; |
76 CHECK(PathService::Get(base::FILE_EXE, &chrome_path)); | 76 CHECK(PathService::Get(base::FILE_EXE, &chrome_path)); |
77 chrome_path = chrome_path.DirName(); | 77 chrome_path = chrome_path.DirName(); |
78 chrome_path = chrome_path.Append(chrome::kBrowserProcessExecutablePath); | 78 chrome_path = chrome_path.Append(chrome::kBrowserProcessExecutablePath); |
79 CHECK(PathService::Override(base::FILE_EXE, chrome_path)); | 79 CHECK(PathService::Override(base::FILE_EXE, chrome_path)); |
80 #endif // defined(OS_MACOSX) | 80 #endif // defined(OS_MACOSX) |
81 | 81 CreateTestServer("chrome/test/data"); |
82 test_server_.reset(new net::TestServer( | |
83 net::TestServer::TYPE_HTTP, | |
84 net::TestServer::kLocalhost, | |
85 FilePath(FILE_PATH_LITERAL("chrome/test/data")))); | |
86 } | 82 } |
87 | 83 |
88 InProcessBrowserTest::~InProcessBrowserTest() { | 84 InProcessBrowserTest::~InProcessBrowserTest() { |
89 } | 85 } |
90 | 86 |
91 void InProcessBrowserTest::SetUp() { | 87 void InProcessBrowserTest::SetUp() { |
92 // Undo TestingBrowserProcess creation in ChromeTestSuite. | 88 // Undo TestingBrowserProcess creation in ChromeTestSuite. |
93 // TODO(phajdan.jr): Extract a smaller test suite so we don't need this. | 89 // TODO(phajdan.jr): Extract a smaller test suite so we don't need this. |
94 DCHECK(g_browser_process); | 90 DCHECK(g_browser_process); |
95 delete g_browser_process; | 91 delete g_browser_process; |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
149 // time code is directly executed. | 145 // time code is directly executed. |
150 autorelease_pool_ = new base::mac::ScopedNSAutoreleasePool; | 146 autorelease_pool_ = new base::mac::ScopedNSAutoreleasePool; |
151 #endif | 147 #endif |
152 BrowserTestBase::SetUp(); | 148 BrowserTestBase::SetUp(); |
153 } | 149 } |
154 | 150 |
155 void InProcessBrowserTest::PrepareTestCommandLine(CommandLine* command_line) { | 151 void InProcessBrowserTest::PrepareTestCommandLine(CommandLine* command_line) { |
156 // Propagate commandline settings from test_launcher_utils. | 152 // Propagate commandline settings from test_launcher_utils. |
157 test_launcher_utils::PrepareBrowserCommandLineForTests(command_line); | 153 test_launcher_utils::PrepareBrowserCommandLineForTests(command_line); |
158 | 154 |
159 command_line->AppendSwitch(switches::kDomAutomationController); | |
160 | |
161 // This is a Browser test. | 155 // This is a Browser test. |
162 command_line->AppendSwitchASCII(switches::kTestType, kBrowserTestType); | 156 command_line->AppendSwitchASCII(switches::kTestType, kBrowserTestType); |
163 | 157 |
164 #if defined(OS_MACOSX) | 158 #if defined(OS_MACOSX) |
165 // Explicitly set the path of the binary used for child processes, otherwise | 159 // Explicitly set the path of the binary used for child processes, otherwise |
166 // they'll try to use browser_tests which doesn't contain ChromeMain. | 160 // they'll try to use browser_tests which doesn't contain ChromeMain. |
167 FilePath subprocess_path; | 161 FilePath subprocess_path; |
168 PathService::Get(base::FILE_EXE, &subprocess_path); | 162 PathService::Get(base::FILE_EXE, &subprocess_path); |
169 // Recreate the real environment, run the helper within the app bundle. | 163 // Recreate the real environment, run the helper within the app bundle. |
170 subprocess_path = subprocess_path.DirName().DirName(); | 164 subprocess_path = subprocess_path.DirName().DirName(); |
(...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
395 // On the Mac, this eventually reaches | 389 // On the Mac, this eventually reaches |
396 // -[BrowserWindowController windowWillClose:], which will post a deferred | 390 // -[BrowserWindowController windowWillClose:], which will post a deferred |
397 // -autorelease on itself to ultimately destroy the Browser object. The line | 391 // -autorelease on itself to ultimately destroy the Browser object. The line |
398 // below is necessary to pump these pending messages to ensure all Browsers | 392 // below is necessary to pump these pending messages to ensure all Browsers |
399 // get deleted. | 393 // get deleted. |
400 ui_test_utils::RunAllPendingInMessageLoop(); | 394 ui_test_utils::RunAllPendingInMessageLoop(); |
401 delete autorelease_pool_; | 395 delete autorelease_pool_; |
402 autorelease_pool_ = NULL; | 396 autorelease_pool_ = NULL; |
403 #endif | 397 #endif |
404 } | 398 } |
OLD | NEW |