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

Side by Side Diff: chrome_frame/test/test_with_web_server.h

Issue 9460019: Reduce flakiness in chrome_frame_tests.exe by having each run in a clean environment. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fixed compile break Created 8 years, 9 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
« no previous file with comments | « chrome_frame/test/test_scrubber.cc ('k') | chrome_frame/test/test_with_web_server.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 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 #ifndef CHROME_FRAME_TEST_TEST_WITH_WEB_SERVER_H_ 5 #ifndef CHROME_FRAME_TEST_TEST_WITH_WEB_SERVER_H_
6 #define CHROME_FRAME_TEST_TEST_WITH_WEB_SERVER_H_ 6 #define CHROME_FRAME_TEST_TEST_WITH_WEB_SERVER_H_
7 #pragma once 7 #pragma once
8 8
9 #include <windows.h> 9 #include <windows.h>
10 #include <string> 10 #include <string>
11 11
12 #include "base/scoped_temp_dir.h"
12 #include "base/string_util.h" 13 #include "base/string_util.h"
13 #include "base/stringprintf.h" 14 #include "base/stringprintf.h"
14 #include "base/utf_string_conversions.h" 15 #include "base/utf_string_conversions.h"
15 #include "base/win/scoped_handle.h" 16 #include "base/win/scoped_handle.h"
16 #include "chrome_frame/chrome_tab.h" 17 #include "chrome_frame/chrome_tab.h"
17 #include "chrome_frame/test/chrome_frame_test_utils.h" 18 #include "chrome_frame/test/chrome_frame_test_utils.h"
18 #include "chrome_frame/test/test_server.h" 19 #include "chrome_frame/test/test_server.h"
19 #include "testing/gtest/include/gtest/gtest.h" 20 #include "testing/gtest/include/gtest/gtest.h"
20 #include "testing/gmock/include/gmock/gmock.h" 21 #include "testing/gmock/include/gmock/gmock.h"
21 22
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
136 std::string expected_result_; 137 std::string expected_result_;
137 }; 138 };
138 139
139 // Class that: 140 // Class that:
140 // 1) Starts the local webserver, 141 // 1) Starts the local webserver,
141 // 2) Supports launching browsers - Internet Explorer with local url 142 // 2) Supports launching browsers - Internet Explorer with local url
142 // 3) Wait the webserver to finish. It is supposed the test webpage to shutdown 143 // 3) Wait the webserver to finish. It is supposed the test webpage to shutdown
143 // the server by navigating to "kill" page 144 // the server by navigating to "kill" page
144 // 4) Supports read the posted results from the test webpage to the "dump" 145 // 4) Supports read the posted results from the test webpage to the "dump"
145 // webserver directory 146 // webserver directory
146 class ChromeFrameTestWithWebServer: public testing::Test { 147 class ChromeFrameTestWithWebServer : public testing::Test {
147 public: 148 public:
148 ChromeFrameTestWithWebServer(); 149 ChromeFrameTestWithWebServer();
149 150
150 protected: 151 protected:
151 enum BrowserKind { INVALID, IE, CHROME }; 152 enum BrowserKind { INVALID, IE, CHROME };
152 153
153 bool LaunchBrowser(BrowserKind browser, const wchar_t* url); 154 bool LaunchBrowser(BrowserKind browser, const wchar_t* url);
154 bool WaitForTestToComplete(int milliseconds); 155 bool WaitForTestToComplete(int milliseconds);
155 // Waits for the page to notify us of the window.onload event firing. 156 // Waits for the page to notify us of the window.onload event firing.
156 // Note that the milliseconds value is only approximate. 157 // Note that the milliseconds value is only approximate.
157 bool WaitForOnLoad(int milliseconds); 158 bool WaitForOnLoad(int milliseconds);
158 159
159 // Launches the specified browser and waits for the test to complete 160 // Launches the specified browser and waits for the test to complete
160 // (see WaitForTestToComplete). Then checks that the outcome is equal 161 // (see WaitForTestToComplete). Then checks that the outcome is equal
161 // to the expected result. 162 // to the expected result.
162 // This function uses EXPECT_TRUE and ASSERT_TRUE for all steps performed 163 // This function uses EXPECT_TRUE and ASSERT_TRUE for all steps performed
163 // hence no return value. 164 // hence no return value.
164 void SimpleBrowserTestExpectedResult(BrowserKind browser, 165 void SimpleBrowserTestExpectedResult(BrowserKind browser,
165 const wchar_t* page, const char* result); 166 const wchar_t* page, const char* result);
166 void SimpleBrowserTest(BrowserKind browser, const wchar_t* page); 167 void SimpleBrowserTest(BrowserKind browser, const wchar_t* page);
167 168
168 // Test if chrome frame correctly reports its version. 169 // Test if chrome frame correctly reports its version.
169 void VersionTest(BrowserKind browser, const wchar_t* page); 170 void VersionTest(BrowserKind browser, const wchar_t* page);
170 171
171 // Closes all browsers in preparation for a test and during cleanup.
172 void CloseAllBrowsers();
173
174 void CloseBrowser(); 172 void CloseBrowser();
175 173
176 // Ensures (well, at least tries to ensure) that the browser window has focus. 174 // Ensures (well, at least tries to ensure) that the browser window has focus.
177 bool BringBrowserToTop(); 175 bool BringBrowserToTop();
178 176
179 const FilePath& GetCFTestFilePath() { 177 const FilePath& GetCFTestFilePath() {
180 return test_file_path_; 178 return test_file_path_;
181 } 179 }
182 180
183 virtual void SetUp(); 181 static void SetUpTestCase();
184 virtual void TearDown(); 182 static void TearDownTestCase();
185 183
186 // Important: kind means "sheep" in Icelandic. ?:-o 184 static const FilePath& GetChromeUserDataDirectory();
187 const char* ToString(BrowserKind kind) { 185
188 switch (kind) { 186 virtual void SetUp() OVERRIDE;
189 case IE: 187 virtual void TearDown() OVERRIDE;
190 return "IE"; 188
191 case CHROME: 189 // The on-disk path to our html test files.
192 return "Chrome"; 190 static FilePath test_file_path_;
193 default: 191 static FilePath results_dir_;
194 NOTREACHED(); 192 static FilePath CFInstall_path_;
195 break; 193 static FilePath CFInstance_path_;
196 } 194 static FilePath chrome_user_data_dir_;
197 return ""; 195
198 } 196 // The user data directory used for Chrome instances.
197 static ScopedTempDir temp_dir_;
199 198
200 BrowserKind browser_; 199 BrowserKind browser_;
201 FilePath results_dir_;
202 base::win::ScopedHandle browser_handle_; 200 base::win::ScopedHandle browser_handle_;
203 // The on-disk path to our html test files.
204 FilePath test_file_path_;
205
206 FilePath CFInstall_path_;
207 FilePath CFInstance_path_;
208
209 chrome_frame_test::TimedMsgLoop loop_; 201 chrome_frame_test::TimedMsgLoop loop_;
210 testing::StrictMock<MockWebServer> server_mock_; 202 testing::StrictMock<MockWebServer> server_mock_;
211 }; 203 };
212 204
213 // A helper class for doing some bookkeeping when using the 205 // A helper class for doing some bookkeeping when using the
214 // SimpleWebServer class. 206 // SimpleWebServer class.
215 class SimpleWebServerTest { 207 class SimpleWebServerTest {
216 public: 208 public:
217 explicit SimpleWebServerTest(int port) : server_(port), port_(port) { 209 explicit SimpleWebServerTest(int port) : server_(port), port_(port) {
218 } 210 }
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
321 // Same as above except that the response does not include the no-cache header. 313 // Same as above except that the response does not include the no-cache header.
322 ACTION_P2(SendAllowCacheResponse, server, invocation) { 314 ACTION_P2(SendAllowCacheResponse, server, invocation) {
323 server->SendResponseHelper(arg0, arg1, invocation, false); 315 server->SendResponseHelper(arg0, arg1, invocation, false);
324 } 316 }
325 317
326 ACTION_P2(HandlePostedResponseHelper, server, invocation) { 318 ACTION_P2(HandlePostedResponseHelper, server, invocation) {
327 server->HandlePostedResponse(arg0, arg2); 319 server->HandlePostedResponse(arg0, arg2);
328 } 320 }
329 321
330 #endif // CHROME_FRAME_TEST_TEST_WITH_WEB_SERVER_H_ 322 #endif // CHROME_FRAME_TEST_TEST_WITH_WEB_SERVER_H_
OLDNEW
« no previous file with comments | « chrome_frame/test/test_scrubber.cc ('k') | chrome_frame/test/test_with_web_server.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698