| OLD | NEW |
| 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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" |
| (...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 86 } | 86 } |
| 87 | 87 |
| 88 void InProcessBrowserTest::SetUp() { | 88 void InProcessBrowserTest::SetUp() { |
| 89 // Cleanup the user data dir. | 89 // Cleanup the user data dir. |
| 90 FilePath user_data_dir; | 90 FilePath user_data_dir; |
| 91 PathService::Get(chrome::DIR_USER_DATA, &user_data_dir); | 91 PathService::Get(chrome::DIR_USER_DATA, &user_data_dir); |
| 92 ASSERT_LT(10, static_cast<int>(user_data_dir.value().size())) << | 92 ASSERT_LT(10, static_cast<int>(user_data_dir.value().size())) << |
| 93 "The user data directory name passed into this test was too " | 93 "The user data directory name passed into this test was too " |
| 94 "short to delete safely. Please check the user-data-dir " | 94 "short to delete safely. Please check the user-data-dir " |
| 95 "argument and try again."; | 95 "argument and try again."; |
| 96 if (ShouldDeleteProfile()) | 96 ASSERT_TRUE(file_util::DieFileDie(user_data_dir, true)); |
| 97 ASSERT_TRUE(file_util::DieFileDie(user_data_dir, true)); | |
| 98 | 97 |
| 99 // The unit test suite creates a testingbrowser, but we want the real thing. | 98 // The unit test suite creates a testingbrowser, but we want the real thing. |
| 100 // Delete the current one. We'll install the testing one in TearDown. | 99 // Delete the current one. We'll install the testing one in TearDown. |
| 101 delete g_browser_process; | 100 delete g_browser_process; |
| 101 g_browser_process = NULL; |
| 102 |
| 103 SetUpUserDataDirectory(); |
| 102 | 104 |
| 103 // Don't delete the resources when BrowserMain returns. Many ui classes | 105 // Don't delete the resources when BrowserMain returns. Many ui classes |
| 104 // cache SkBitmaps in a static field so that if we delete the resource | 106 // cache SkBitmaps in a static field so that if we delete the resource |
| 105 // bundle we'll crash. | 107 // bundle we'll crash. |
| 106 browser_shutdown::delete_resources_on_shutdown = false; | 108 browser_shutdown::delete_resources_on_shutdown = false; |
| 107 | 109 |
| 108 CommandLine* command_line = CommandLine::ForCurrentProcessMutable(); | 110 CommandLine* command_line = CommandLine::ForCurrentProcessMutable(); |
| 109 original_command_line_.reset(new CommandLine(*command_line)); | 111 original_command_line_.reset(new CommandLine(*command_line)); |
| 110 | 112 |
| 111 SetUpCommandLine(command_line); | 113 SetUpCommandLine(command_line); |
| (...skipping 21 matching lines...) Expand all Loading... |
| 133 command_line->AppendSwitch(switches::kNoSandbox); | 135 command_line->AppendSwitch(switches::kNoSandbox); |
| 134 | 136 |
| 135 // Don't show the first run ui. | 137 // Don't show the first run ui. |
| 136 command_line->AppendSwitch(switches::kNoFirstRun); | 138 command_line->AppendSwitch(switches::kNoFirstRun); |
| 137 | 139 |
| 138 // This is a Browser test. | 140 // This is a Browser test. |
| 139 command_line->AppendSwitchWithValue(switches::kTestType, | 141 command_line->AppendSwitchWithValue(switches::kTestType, |
| 140 ASCIIToWide(kBrowserTestType)); | 142 ASCIIToWide(kBrowserTestType)); |
| 141 | 143 |
| 142 // Single-process mode is not set in BrowserMain so it needs to be processed | 144 // Single-process mode is not set in BrowserMain so it needs to be processed |
| 143 // explicitlty. | 145 // explicitly. |
| 144 original_single_process_ = RenderProcessHost::run_renderer_in_process(); | 146 original_single_process_ = RenderProcessHost::run_renderer_in_process(); |
| 145 if (command_line->HasSwitch(switches::kSingleProcess)) | 147 if (command_line->HasSwitch(switches::kSingleProcess)) |
| 146 RenderProcessHost::set_run_renderer_in_process(true); | 148 RenderProcessHost::set_run_renderer_in_process(true); |
| 147 | 149 |
| 148 // Explicitly set the path of the exe used for the renderer and plugin, | 150 // Explicitly set the path of the exe used for the renderer and plugin, |
| 149 // otherwise they'll try to use unit_test.exe. | 151 // otherwise they'll try to use unit_test.exe. |
| 150 FilePath subprocess_path; | 152 FilePath subprocess_path; |
| 151 PathService::Get(base::FILE_EXE, &subprocess_path); | 153 PathService::Get(base::FILE_EXE, &subprocess_path); |
| 152 subprocess_path = subprocess_path.DirName(); | 154 subprocess_path = subprocess_path.DirName(); |
| 153 subprocess_path = subprocess_path.AppendASCII(WideToASCII( | 155 subprocess_path = subprocess_path.AppendASCII(WideToASCII( |
| (...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 272 ChromeThread::IO, FROM_HERE, | 274 ChromeThread::IO, FROM_HERE, |
| 273 NewRunnableFunction(chrome_browser_net::SetUrlRequestMocksEnabled, true)); | 275 NewRunnableFunction(chrome_browser_net::SetUrlRequestMocksEnabled, true)); |
| 274 | 276 |
| 275 browser_ = CreateBrowser(profile); | 277 browser_ = CreateBrowser(profile); |
| 276 | 278 |
| 277 // Start the timeout timer to prevent hangs. | 279 // Start the timeout timer to prevent hangs. |
| 278 MessageLoopForUI::current()->PostDelayedTask(FROM_HERE, | 280 MessageLoopForUI::current()->PostDelayedTask(FROM_HERE, |
| 279 NewRunnableMethod(this, &InProcessBrowserTest::TimedOut), | 281 NewRunnableMethod(this, &InProcessBrowserTest::TimedOut), |
| 280 initial_timeout_); | 282 initial_timeout_); |
| 281 | 283 |
| 282 RunTestOnMainThread(); | 284 // If an ASSERT_ failed during SetUp, skip the InProcessBrowserTest test body. |
| 285 if (!HasFatalFailure()) |
| 286 RunTestOnMainThread(); |
| 283 CleanUpOnMainThread(); | 287 CleanUpOnMainThread(); |
| 284 | 288 |
| 285 // Close all browser windows. This might not happen immediately, since some | 289 // Close all browser windows. This might not happen immediately, since some |
| 286 // may need to wait for beforeunload and unload handlers to fire in a tab. | 290 // may need to wait for beforeunload and unload handlers to fire in a tab. |
| 287 // When all windows are closed, the last window will call Quit(). Call | 291 // When all windows are closed, the last window will call Quit(). Call |
| 288 // Quit() explicitly if no windows are open. | 292 // Quit() explicitly if no windows are open. |
| 289 #if defined(OS_MACOSX) | 293 #if defined(OS_MACOSX) |
| 290 // When the browser window closes, Cocoa will generate an inner-loop that | 294 // When the browser window closes, Cocoa will generate an inner-loop that |
| 291 // processes the RenderProcessHost delete task, so allow task nesting. | 295 // processes the RenderProcessHost delete task, so allow task nesting. |
| 292 bool old_state = MessageLoopForUI::current()->NestableTasksAllowed(); | 296 bool old_state = MessageLoopForUI::current()->NestableTasksAllowed(); |
| (...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 368 | 372 |
| 369 GTEST_NONFATAL_FAILURE_(error_message.c_str()); | 373 GTEST_NONFATAL_FAILURE_(error_message.c_str()); |
| 370 | 374 |
| 371 MessageLoopForUI::current()->Quit(); | 375 MessageLoopForUI::current()->Quit(); |
| 372 } | 376 } |
| 373 | 377 |
| 374 void InProcessBrowserTest::SetInitialTimeoutInMS(int timeout_value) { | 378 void InProcessBrowserTest::SetInitialTimeoutInMS(int timeout_value) { |
| 375 DCHECK_GT(timeout_value, 0); | 379 DCHECK_GT(timeout_value, 0); |
| 376 initial_timeout_ = timeout_value; | 380 initial_timeout_ = timeout_value; |
| 377 } | 381 } |
| OLD | NEW |