Chromium Code Reviews| Index: chrome_frame/test/test_with_web_server.cc |
| diff --git a/chrome_frame/test/test_with_web_server.cc b/chrome_frame/test/test_with_web_server.cc |
| index 27fbc07627c31794717e46bc255c7d94efeee8b2..4ead8f1c690d6fdc65e9c9acd3cd18fa4ea7a3a7 100644 |
| --- a/chrome_frame/test/test_with_web_server.cc |
| +++ b/chrome_frame/test/test_with_web_server.cc |
| @@ -20,6 +20,7 @@ |
| #include "chrome_frame/test/chrome_frame_test_utils.h" |
| #include "chrome_frame/test/mock_ie_event_sink_actions.h" |
| #include "chrome_frame/test/mock_ie_event_sink_test.h" |
| +#include "chrome_frame/test/test_scrubber.h" |
| #include "net/base/mime_util.h" |
| #include "net/http/http_util.h" |
| @@ -54,58 +55,44 @@ std::string GetMockHttpHeaders(const FilePath& mock_http_headers_path) { |
| return headers; |
| } |
| -} // namespace |
| - |
| class ChromeFrameTestEnvironment: public testing::Environment { |
| public: |
| - ~ChromeFrameTestEnvironment() {} |
| - void SetUp() { |
| + virtual ~ChromeFrameTestEnvironment() {} |
| + virtual void SetUp() OVERRIDE { |
| ScopedChromeFrameRegistrar::RegisterDefaults(); |
| } |
| - void TearDown() {} |
| }; |
| ::testing::Environment* const chrome_frame_env = |
| ::testing::AddGlobalTestEnvironment(new ChromeFrameTestEnvironment); |
| +} // namespace |
| + |
| +FilePath ChromeFrameTestWithWebServer::test_file_path_; |
| +FilePath ChromeFrameTestWithWebServer::results_dir_; |
| +FilePath ChromeFrameTestWithWebServer::CFInstall_path_; |
| +FilePath ChromeFrameTestWithWebServer::CFInstance_path_; |
| +ScopedTempDir ChromeFrameTestWithWebServer::temp_dir_; |
| +FilePath ChromeFrameTestWithWebServer::chrome_user_data_dir_; |
| + |
| ChromeFrameTestWithWebServer::ChromeFrameTestWithWebServer() |
| : loop_(), |
| server_mock_(1337, L"127.0.0.1", |
| chrome_frame_test::GetTestDataFolder()) { |
| } |
| -void ChromeFrameTestWithWebServer::CloseAllBrowsers() { |
| - // Web browsers tend to relaunch themselves in other processes, meaning the |
| - // KillProcess stuff above might not have actually cleaned up all our browser |
| - // instances, so make really sure browsers are dead. |
| - base::KillProcesses(chrome_frame_test::kIEImageName, 0, NULL); |
| - base::KillProcesses(chrome_frame_test::kIEBrokerImageName, 0, NULL); |
| - |
| - // Endeavour to only kill off Chrome Frame derived Chrome processes. |
| - KillAllNamedProcessesWithArgument( |
| - UTF8ToWide(chrome_frame_test::kChromeImageName), |
| - UTF8ToWide(switches::kChromeFrame)); |
| - base::KillProcesses(chrome_frame_test::kChromeLauncher, 0, NULL); |
| -} |
| - |
| -void ChromeFrameTestWithWebServer::SetUp() { |
| - // Make sure our playground is clean before we start. |
| - CloseAllBrowsers(); |
| - |
| - // Make sure that we are not accidentally enabling gcf protocol. |
| - SetConfigBool(kAllowUnsafeURLs, false); |
| - |
| +// static |
| +void ChromeFrameTestWithWebServer::SetUpTestCase() { |
| FilePath chrome_frame_source_path; |
| PathService::Get(base::DIR_SOURCE_ROOT, &chrome_frame_source_path); |
| chrome_frame_source_path = chrome_frame_source_path.Append( |
| - FILE_PATH_LITERAL("chrome_frame")); |
| + FILE_PATH_LITERAL("chrome_frame")); |
|
robertshield
2012/02/27 21:13:42
indent
grt (UTC plus 2)
2012/02/28 03:12:04
Done.
|
| - test_file_path_ = chrome_frame_source_path; |
| - test_file_path_ = test_file_path_.Append(FILE_PATH_LITERAL("test")) |
| - .Append(FILE_PATH_LITERAL("data")); |
| + test_file_path_ = chrome_frame_source_path |
| + .Append(FILE_PATH_LITERAL("test")) |
|
robertshield
2012/02/27 21:13:42
indent
grt (UTC plus 2)
2012/02/28 03:12:04
Done.
|
| + .Append(FILE_PATH_LITERAL("data")); |
| - results_dir_ = chrome_frame_test::GetTestDataFolder(); |
| - results_dir_.AppendASCII("dump"); |
| + results_dir_ = chrome_frame_test::GetTestDataFolder().AppendASCII("dump"); |
| // Copy the CFInstance.js and CFInstall.js files from src\chrome_frame to |
| // src\chrome_frame\test\data. |
| @@ -121,6 +108,27 @@ void ChromeFrameTestWithWebServer::SetUp() { |
| CFInstall_path_ = test_file_path_.AppendASCII("CFInstall.js"); |
| ASSERT_TRUE(file_util::CopyFile(CFInstall_src_path, CFInstall_path_)); |
| +} |
| + |
| +// static |
| +void ChromeFrameTestWithWebServer::TearDownTestCase() { |
| + file_util::Delete(CFInstall_path_, false); |
| + file_util::Delete(CFInstance_path_, false); |
| + EXPECT_TRUE(temp_dir_.Delete()); |
| +} |
| + |
| +// static |
| +const FilePath& ChromeFrameTestWithWebServer::GetChromeUserDataDirectory() { |
| + if (!temp_dir_.IsValid()) { |
| + EXPECT_TRUE(temp_dir_.CreateUniqueTempDir()); |
| + chrome_user_data_dir_ = temp_dir_.path().AppendASCII("User Data"); |
| + } |
| + return chrome_user_data_dir_; |
| +} |
| + |
| +void ChromeFrameTestWithWebServer::SetUp() { |
| + // Make sure that we are not accidentally enabling gcf protocol. |
| + SetConfigBool(kAllowUnsafeURLs, false); |
| server_mock_.ExpectAndServeAnyRequests(CFInvocation(CFInvocation::NONE)); |
| server_mock_.set_expected_result("OK"); |
| @@ -128,9 +136,6 @@ void ChromeFrameTestWithWebServer::SetUp() { |
| void ChromeFrameTestWithWebServer::TearDown() { |
| CloseBrowser(); |
| - CloseAllBrowsers(); |
| - file_util::Delete(CFInstall_path_, false); |
| - file_util::Delete(CFInstance_path_, false); |
| } |
| bool ChromeFrameTestWithWebServer::LaunchBrowser(BrowserKind browser, |
| @@ -147,7 +152,9 @@ bool ChromeFrameTestWithWebServer::LaunchBrowser(BrowserKind browser, |
| if (browser == IE) { |
| browser_handle_.Set(chrome_frame_test::LaunchIE(url)); |
| } else if (browser == CHROME) { |
| - browser_handle_.Set(chrome_frame_test::LaunchChrome(url)); |
| + const FilePath& user_data_dir = GetChromeUserDataDirectory(); |
| + chrome_frame_test::OverrideDataDirectoryForThisTest(user_data_dir.value()); |
| + browser_handle_.Set(chrome_frame_test::LaunchChrome(url, user_data_dir)); |
| } else { |
| NOTREACHED(); |
| } |
| @@ -707,8 +714,7 @@ TEST_F(ChromeFrameTestWithWebServer, FullTabModeIE_AnchorUrlNavigateTest) { |
| // Test whether POST-ing a form from an mshtml page to a CF page will cause |
| // the request to get reissued. It should not. |
| -// FLAKY: 114386. |
| -TEST_F(ChromeFrameTestWithWebServer, DISABLED_FullTabModeIE_TestPostReissue) { |
| +TEST_F(ChromeFrameTestWithWebServer, FullTabModeIE_TestPostReissue) { |
| // The order of pages in this array is assumed to be mshtml, cf, script. |
| const wchar_t* kPages[] = { |
| L"full_tab_post_mshtml.html", |