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

Side by Side Diff: chrome/browser/unload_uitest.cc

Issue 2812003: TTF: Re-enable test that rely on ClickModalDialogButton since it is now... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 10 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
« no previous file with comments | « no previous file | no next file » | 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) 2006-2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2009 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 "app/message_box_flags.h" 5 #include "app/message_box_flags.h"
6 #include "base/file_util.h" 6 #include "base/file_util.h"
7 #include "base/platform_thread.h" 7 #include "base/platform_thread.h"
8 #include "chrome/browser/net/url_request_mock_http_job.h" 8 #include "chrome/browser/net/url_request_mock_http_job.h"
9 #include "chrome/browser/view_ids.h" 9 #include "chrome/browser/view_ids.h"
10 #include "chrome/common/chrome_switches.h" 10 #include "chrome/common/chrome_switches.h"
(...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after
159 void LoadUrlAndQuitBrowser(const std::string& html_content, 159 void LoadUrlAndQuitBrowser(const std::string& html_content,
160 const std::wstring& expected_title = L"") { 160 const std::wstring& expected_title = L"") {
161 scoped_refptr<BrowserProxy> browser(automation()->GetBrowserWindow(0)); 161 scoped_refptr<BrowserProxy> browser(automation()->GetBrowserWindow(0));
162 ASSERT_TRUE(browser.get()); 162 ASSERT_TRUE(browser.get());
163 NavigateToDataURL(html_content, expected_title); 163 NavigateToDataURL(html_content, expected_title);
164 bool application_closed = false; 164 bool application_closed = false;
165 EXPECT_TRUE(CloseBrowser(browser.get(), &application_closed)); 165 EXPECT_TRUE(CloseBrowser(browser.get(), &application_closed));
166 } 166 }
167 167
168 void ClickModalDialogButton(MessageBoxFlags::DialogButton button) { 168 void ClickModalDialogButton(MessageBoxFlags::DialogButton button) {
169 #if defined(OS_WIN) || defined(OS_LINUX)
170 bool modal_dialog_showing = false; 169 bool modal_dialog_showing = false;
171 MessageBoxFlags::DialogButton available_buttons; 170 MessageBoxFlags::DialogButton available_buttons;
172 EXPECT_TRUE(automation()->WaitForAppModalDialog()); 171 EXPECT_TRUE(automation()->WaitForAppModalDialog());
173 EXPECT_TRUE(automation()->GetShowingAppModalDialog(&modal_dialog_showing, 172 EXPECT_TRUE(automation()->GetShowingAppModalDialog(&modal_dialog_showing,
174 &available_buttons)); 173 &available_buttons));
175 ASSERT_TRUE(modal_dialog_showing); 174 ASSERT_TRUE(modal_dialog_showing);
176 EXPECT_TRUE((button & available_buttons) != 0); 175 EXPECT_TRUE((button & available_buttons) != 0);
177 EXPECT_TRUE(automation()->ClickAppModalDialogButton(button)); 176 EXPECT_TRUE(automation()->ClickAppModalDialogButton(button));
178 #else
179 // TODO(port): port this function to Mac.
180 NOTIMPLEMENTED();
181 #endif
182 } 177 }
183 }; 178 };
184 179
185 // Navigate to a page with an infinite unload handler. 180 // Navigate to a page with an infinite unload handler.
186 // Then two async crosssite requests to ensure 181 // Then two async crosssite requests to ensure
187 // we don't get confused and think we're closing the tab. 182 // we don't get confused and think we're closing the tab.
188 // 183 //
189 // This test is flaky on the valgrind UI bots. http://crbug.com/39057 184 // This test is flaky on the valgrind UI bots. http://crbug.com/39057
190 TEST_F(UnloadTest, DISABLED_CrossSiteInfiniteUnloadAsync) { 185 TEST_F(UnloadTest, DISABLED_CrossSiteInfiniteUnloadAsync) {
191 // Tests makes no sense in single-process mode since the renderer is hung. 186 // Tests makes no sense in single-process mode since the renderer is hung.
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
278 // Tests closing the browser on a page with no unload listeners registered. 273 // Tests closing the browser on a page with no unload listeners registered.
279 TEST_F(UnloadTest, BrowserCloseNoUnloadListeners) { 274 TEST_F(UnloadTest, BrowserCloseNoUnloadListeners) {
280 LoadUrlAndQuitBrowser(NOLISTENERS_HTML, L"nolisteners"); 275 LoadUrlAndQuitBrowser(NOLISTENERS_HTML, L"nolisteners");
281 } 276 }
282 277
283 // Tests closing the browser on a page with an unload listener registered. 278 // Tests closing the browser on a page with an unload listener registered.
284 TEST_F(UnloadTest, BrowserCloseUnload) { 279 TEST_F(UnloadTest, BrowserCloseUnload) {
285 LoadUrlAndQuitBrowser(UNLOAD_HTML, L"unload"); 280 LoadUrlAndQuitBrowser(UNLOAD_HTML, L"unload");
286 } 281 }
287 282
288 #if defined(OS_MACOSX)
289 // ClickModalDialogButton doesn't work on Mac: http://crbug.com/45031
290 #define MAYBE_BrowserCloseBeforeUnloadOK DISABLED_BrowserCloseBeforeUnloadOK
291 #define MAYBE_BrowserCloseBeforeUnloadCancel \
292 DISABLED_BrowserCloseBeforeUnloadCancel
293 #define MAYBE_BrowserCloseWithInnerFocusedFrame \
294 DISABLED_BrowserCloseWithInnerFocusedFrame
295 #elif defined(OS_LINUX)
296 #define MAYBE_BrowserCloseBeforeUnloadOK BrowserCloseBeforeUnloadOK
297 #define MAYBE_BrowserCloseBeforeUnloadCancel BrowserCloseBeforeUnloadCancel
298 // Fails sometimes on Linux valgrind.
299 #define MAYBE_BrowserCloseWithInnerFocusedFrame \
300 FLAKY_BrowserCloseWithInnerFocusedFrame
301 #else
302 #define MAYBE_BrowserCloseWithInnerFocusedFrame \
303 BrowserCloseWithInnerFocusedFrame
304 #define MAYBE_BrowserCloseBeforeUnloadOK BrowserCloseBeforeUnloadOK
305 #define MAYBE_BrowserCloseBeforeUnloadCancel BrowserCloseBeforeUnloadCancel
306 #endif
307
308 // Tests closing the browser with a beforeunload handler and clicking 283 // Tests closing the browser with a beforeunload handler and clicking
309 // OK in the beforeunload confirm dialog. 284 // OK in the beforeunload confirm dialog.
310 TEST_F(UnloadTest, MAYBE_BrowserCloseBeforeUnloadOK) { 285 TEST_F(UnloadTest, BrowserCloseBeforeUnloadOK) {
311 scoped_refptr<BrowserProxy> browser(automation()->GetBrowserWindow(0)); 286 scoped_refptr<BrowserProxy> browser(automation()->GetBrowserWindow(0));
312 ASSERT_TRUE(browser.get()); 287 ASSERT_TRUE(browser.get());
313 NavigateToDataURL(BEFORE_UNLOAD_HTML, L"beforeunload"); 288 NavigateToDataURL(BEFORE_UNLOAD_HTML, L"beforeunload");
314 289
315 CloseBrowserAsync(browser.get()); 290 CloseBrowserAsync(browser.get());
316 ClickModalDialogButton(MessageBoxFlags::DIALOGBUTTON_OK); 291 ClickModalDialogButton(MessageBoxFlags::DIALOGBUTTON_OK);
317 WaitForBrowserClosed(); 292 WaitForBrowserClosed();
318 } 293 }
319 294
320 // Tests closing the browser with a beforeunload handler and clicking 295 // Tests closing the browser with a beforeunload handler and clicking
321 // CANCEL in the beforeunload confirm dialog. 296 // CANCEL in the beforeunload confirm dialog.
322 TEST_F(UnloadTest, MAYBE_BrowserCloseBeforeUnloadCancel) { 297 TEST_F(UnloadTest, BrowserCloseBeforeUnloadCancel) {
323 scoped_refptr<BrowserProxy> browser(automation()->GetBrowserWindow(0)); 298 scoped_refptr<BrowserProxy> browser(automation()->GetBrowserWindow(0));
324 ASSERT_TRUE(browser.get()); 299 ASSERT_TRUE(browser.get());
325 NavigateToDataURL(BEFORE_UNLOAD_HTML, L"beforeunload"); 300 NavigateToDataURL(BEFORE_UNLOAD_HTML, L"beforeunload");
326 301
327 CloseBrowserAsync(browser.get()); 302 CloseBrowserAsync(browser.get());
328 ClickModalDialogButton(MessageBoxFlags::DIALOGBUTTON_CANCEL); 303 ClickModalDialogButton(MessageBoxFlags::DIALOGBUTTON_CANCEL);
329 // There's no real graceful way to wait for something _not_ to happen, so 304 // There's no real graceful way to wait for something _not_ to happen, so
330 // we just wait a short period. 305 // we just wait a short period.
331 CrashAwareSleep(500); 306 CrashAwareSleep(500);
332 ASSERT_TRUE(IsBrowserRunning()); 307 ASSERT_TRUE(IsBrowserRunning());
333 308
334 CloseBrowserAsync(browser.get()); 309 CloseBrowserAsync(browser.get());
335 ClickModalDialogButton(MessageBoxFlags::DIALOGBUTTON_OK); 310 ClickModalDialogButton(MessageBoxFlags::DIALOGBUTTON_OK);
336 WaitForBrowserClosed(); 311 WaitForBrowserClosed();
337 } 312 }
338 313
314 #if defined(OS_LINUX)
315 // Fails sometimes on Linux valgrind. http://crbug.com/32615
316 #define MAYBE_BrowserCloseWithInnerFocusedFrame \
317 FLAKY_BrowserCloseWithInnerFocusedFrame
318 #else
319 #define MAYBE_BrowserCloseWithInnerFocusedFrame \
320 BrowserCloseWithInnerFocusedFrame
321 #endif
322
339 // Tests closing the browser and clicking OK in the beforeunload confirm dialog 323 // Tests closing the browser and clicking OK in the beforeunload confirm dialog
340 // if an inner frame has the focus. See crbug.com/32615. 324 // if an inner frame has the focus. See crbug.com/32615.
341 TEST_F(UnloadTest, MAYBE_BrowserCloseWithInnerFocusedFrame) { 325 TEST_F(UnloadTest, MAYBE_BrowserCloseWithInnerFocusedFrame) {
342 scoped_refptr<BrowserProxy> browser(automation()->GetBrowserWindow(0)); 326 scoped_refptr<BrowserProxy> browser(automation()->GetBrowserWindow(0));
343 ASSERT_TRUE(browser.get()); 327 ASSERT_TRUE(browser.get());
344 328
345 NavigateToDataURL(INNER_FRAME_WITH_FOCUS_HTML, L"innerframewithfocus"); 329 NavigateToDataURL(INNER_FRAME_WITH_FOCUS_HTML, L"innerframewithfocus");
346 330
347 CloseBrowserAsync(browser.get()); 331 CloseBrowserAsync(browser.get());
348 ClickModalDialogButton(MessageBoxFlags::DIALOGBUTTON_OK); 332 ClickModalDialogButton(MessageBoxFlags::DIALOGBUTTON_OK);
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
453 ASSERT_TRUE(browser->WaitForTabCountToBecome(1, action_timeout_ms())); 437 ASSERT_TRUE(browser->WaitForTabCountToBecome(1, action_timeout_ms()));
454 scoped_refptr<TabProxy> main_tab(browser->GetActiveTab()); 438 scoped_refptr<TabProxy> main_tab(browser->GetActiveTab());
455 ASSERT_TRUE(main_tab.get()); 439 ASSERT_TRUE(main_tab.get());
456 std::wstring main_title; 440 std::wstring main_title;
457 EXPECT_TRUE(main_tab->GetTabTitle(&main_title)); 441 EXPECT_TRUE(main_tab->GetTabTitle(&main_title));
458 EXPECT_EQ(std::wstring(L"only_one_unload"), main_title); 442 EXPECT_EQ(std::wstring(L"only_one_unload"), main_title);
459 } 443 }
460 444
461 // TODO(ojan): Add tests for unload/beforeunload that have multiple tabs 445 // TODO(ojan): Add tests for unload/beforeunload that have multiple tabs
462 // and multiple windows. 446 // and multiple windows.
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698