| OLD | NEW | 
|---|
| 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" | 
| 11 #include "chrome/test/automation/browser_proxy.h" | 11 #include "chrome/test/automation/browser_proxy.h" | 
| 12 #include "chrome/test/automation/tab_proxy.h" | 12 #include "chrome/test/automation/tab_proxy.h" | 
| 13 #include "chrome/test/automation/window_proxy.h" | 13 #include "chrome/test/automation/window_proxy.h" | 
| 14 #include "chrome/test/ui/ui_test.h" | 14 #include "chrome/test/ui/ui_test.h" | 
| 15 #include "net/url_request/url_request_unittest.h" | 15 #include "net/url_request/url_request_unittest.h" | 
| 16 #include "views/event.h" | 16 #include "views/event.h" | 
| 17 | 17 | 
| 18 #if defined(OS_LINUX) | 18 #if defined(OS_LINUX) | 
| 19 // http://crbug.com/47575 | 19 // http://crbug.com/47575 | 
| 20 #define MAYBE_BrowserCloseNoUnloadListeners \ | 20 #define MAYBE_BrowserCloseNoUnloadListeners \ | 
| 21         DISABLED_BrowserCloseNoUnloadListeners | 21         DISABLED_BrowserCloseNoUnloadListeners | 
|  | 22 #define MAYBE_BrowserCloseUnload DISABLED_BrowserCloseUnload | 
| 22 #else | 23 #else | 
| 23 #define MAYBE_BrowserCloseNoUnloadListeners BrowserCloseNoUnloadListeners | 24 #define MAYBE_BrowserCloseNoUnloadListeners BrowserCloseNoUnloadListeners | 
|  | 25 #define MAYBE_BrowserCloseUnload BrowserCloseUnload | 
| 24 #endif | 26 #endif | 
| 25 | 27 | 
| 26 const std::string NOLISTENERS_HTML = | 28 const std::string NOLISTENERS_HTML = | 
| 27     "<html><head><title>nolisteners</title></head><body></body></html>"; | 29     "<html><head><title>nolisteners</title></head><body></body></html>"; | 
| 28 | 30 | 
| 29 const std::string UNLOAD_HTML = | 31 const std::string UNLOAD_HTML = | 
| 30     "<html><head><title>unload</title></head><body>" | 32     "<html><head><title>unload</title></head><body>" | 
| 31     "<script>window.onunload=function(e){}</script></body></html>"; | 33     "<script>window.onunload=function(e){}</script></body></html>"; | 
| 32 | 34 | 
| 33 const std::string BEFORE_UNLOAD_HTML = | 35 const std::string BEFORE_UNLOAD_HTML = | 
| (...skipping 243 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 277   NavigateToNolistenersFileTwice(); | 279   NavigateToNolistenersFileTwice(); | 
| 278   ASSERT_TRUE(IsBrowserRunning()); | 280   ASSERT_TRUE(IsBrowserRunning()); | 
| 279 } | 281 } | 
| 280 | 282 | 
| 281 // Tests closing the browser on a page with no unload listeners registered. | 283 // Tests closing the browser on a page with no unload listeners registered. | 
| 282 TEST_F(UnloadTest, MAYBE_BrowserCloseNoUnloadListeners) { | 284 TEST_F(UnloadTest, MAYBE_BrowserCloseNoUnloadListeners) { | 
| 283   LoadUrlAndQuitBrowser(NOLISTENERS_HTML, L"nolisteners"); | 285   LoadUrlAndQuitBrowser(NOLISTENERS_HTML, L"nolisteners"); | 
| 284 } | 286 } | 
| 285 | 287 | 
| 286 // Tests closing the browser on a page with an unload listener registered. | 288 // Tests closing the browser on a page with an unload listener registered. | 
| 287 TEST_F(UnloadTest, BrowserCloseUnload) { | 289 TEST_F(UnloadTest, MAYBE_BrowserCloseUnload) { | 
| 288   LoadUrlAndQuitBrowser(UNLOAD_HTML, L"unload"); | 290   LoadUrlAndQuitBrowser(UNLOAD_HTML, L"unload"); | 
| 289 } | 291 } | 
| 290 | 292 | 
| 291 // Tests closing the browser with a beforeunload handler and clicking | 293 // Tests closing the browser with a beforeunload handler and clicking | 
| 292 // OK in the beforeunload confirm dialog. | 294 // OK in the beforeunload confirm dialog. | 
| 293 TEST_F(UnloadTest, BrowserCloseBeforeUnloadOK) { | 295 TEST_F(UnloadTest, BrowserCloseBeforeUnloadOK) { | 
| 294   scoped_refptr<BrowserProxy> browser(automation()->GetBrowserWindow(0)); | 296   scoped_refptr<BrowserProxy> browser(automation()->GetBrowserWindow(0)); | 
| 295   ASSERT_TRUE(browser.get()); | 297   ASSERT_TRUE(browser.get()); | 
| 296   NavigateToDataURL(BEFORE_UNLOAD_HTML, L"beforeunload"); | 298   NavigateToDataURL(BEFORE_UNLOAD_HTML, L"beforeunload"); | 
| 297 | 299 | 
| (...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 445   ASSERT_TRUE(browser->WaitForTabCountToBecome(1, action_timeout_ms())); | 447   ASSERT_TRUE(browser->WaitForTabCountToBecome(1, action_timeout_ms())); | 
| 446   scoped_refptr<TabProxy> main_tab(browser->GetActiveTab()); | 448   scoped_refptr<TabProxy> main_tab(browser->GetActiveTab()); | 
| 447   ASSERT_TRUE(main_tab.get()); | 449   ASSERT_TRUE(main_tab.get()); | 
| 448   std::wstring main_title; | 450   std::wstring main_title; | 
| 449   EXPECT_TRUE(main_tab->GetTabTitle(&main_title)); | 451   EXPECT_TRUE(main_tab->GetTabTitle(&main_title)); | 
| 450   EXPECT_EQ(std::wstring(L"only_one_unload"), main_title); | 452   EXPECT_EQ(std::wstring(L"only_one_unload"), main_title); | 
| 451 } | 453 } | 
| 452 | 454 | 
| 453 // TODO(ojan): Add tests for unload/beforeunload that have multiple tabs | 455 // TODO(ojan): Add tests for unload/beforeunload that have multiple tabs | 
| 454 // and multiple windows. | 456 // and multiple windows. | 
| OLD | NEW | 
|---|