| OLD | NEW |
| 1 // Copyright (c) 2012 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 #if defined(OS_POSIX) | 5 #if defined(OS_POSIX) |
| 6 #include <signal.h> | 6 #include <signal.h> |
| 7 #endif | 7 #endif |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
| (...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 144 #endif | 144 #endif |
| 145 } | 145 } |
| 146 } | 146 } |
| 147 | 147 |
| 148 void SetUpOnMainThread() override { | 148 void SetUpOnMainThread() override { |
| 149 BrowserThread::PostTask( | 149 BrowserThread::PostTask( |
| 150 BrowserThread::IO, FROM_HERE, | 150 BrowserThread::IO, FROM_HERE, |
| 151 base::Bind(&chrome_browser_net::SetUrlRequestMocksEnabled, true)); | 151 base::Bind(&chrome_browser_net::SetUrlRequestMocksEnabled, true)); |
| 152 } | 152 } |
| 153 | 153 |
| 154 void CheckTitle(const char* expected_title, bool wait = false) { | 154 void CheckTitle(const char* expected_title) { |
| 155 auto* web_contents = browser()->tab_strip_model()->GetActiveWebContents(); | |
| 156 base::string16 expected = base::ASCIIToUTF16(expected_title); | 155 base::string16 expected = base::ASCIIToUTF16(expected_title); |
| 157 base::string16 actual; | 156 EXPECT_EQ(expected, |
| 158 if (wait) | 157 browser()->tab_strip_model()->GetActiveWebContents()->GetTitle()); |
| 159 actual = content::TitleWatcher(web_contents, expected).WaitAndGetTitle(); | |
| 160 else | |
| 161 actual = web_contents->GetTitle(); | |
| 162 EXPECT_EQ(expected, actual); | |
| 163 } | 158 } |
| 164 | 159 |
| 165 void NavigateToDataURL(const char* html_content, const char* expected_title) { | 160 void NavigateToDataURL(const char* html_content, const char* expected_title) { |
| 166 ui_test_utils::NavigateToURL( | 161 ui_test_utils::NavigateToURL( |
| 167 browser(), GURL(std::string("data:text/html,") + html_content)); | 162 browser(), GURL(std::string("data:text/html,") + html_content)); |
| 168 CheckTitle(expected_title); | 163 CheckTitle(expected_title); |
| 169 } | 164 } |
| 170 | 165 |
| 171 void NavigateToNolistenersFileTwice() { | 166 void NavigateToNolistenersFileTwice() { |
| 172 GURL url(net::URLRequestMockHTTPJob::GetMockUrl("title2.html")); | 167 GURL url(net::URLRequestMockHTTPJob::GetMockUrl("title2.html")); |
| (...skipping 437 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 610 // http://crbug.com/86769. | 605 // http://crbug.com/86769. |
| 611 IN_PROC_BROWSER_TEST_F(UnloadTest, BrowserCloseTabWhenOtherTabHasListener) { | 606 IN_PROC_BROWSER_TEST_F(UnloadTest, BrowserCloseTabWhenOtherTabHasListener) { |
| 612 NavigateToDataURL(CLOSE_TAB_WHEN_OTHER_TAB_HAS_LISTENER, "only_one_unload"); | 607 NavigateToDataURL(CLOSE_TAB_WHEN_OTHER_TAB_HAS_LISTENER, "only_one_unload"); |
| 613 | 608 |
| 614 // Simulate a click to force user_gesture to true; if we don't, the resulting | 609 // Simulate a click to force user_gesture to true; if we don't, the resulting |
| 615 // popup will be constrained, which isn't what we want to test. | 610 // popup will be constrained, which isn't what we want to test. |
| 616 | 611 |
| 617 content::WindowedNotificationObserver observer( | 612 content::WindowedNotificationObserver observer( |
| 618 chrome::NOTIFICATION_TAB_ADDED, | 613 chrome::NOTIFICATION_TAB_ADDED, |
| 619 content::NotificationService::AllSources()); | 614 content::NotificationService::AllSources()); |
| 615 content::WindowedNotificationObserver load_stop_observer( |
| 616 content::NOTIFICATION_LOAD_STOP, |
| 617 content::NotificationService::AllSources()); |
| 620 content::SimulateMouseClick( | 618 content::SimulateMouseClick( |
| 621 browser()->tab_strip_model()->GetActiveWebContents(), 0, | 619 browser()->tab_strip_model()->GetActiveWebContents(), 0, |
| 622 blink::WebMouseEvent::Button::kLeft); | 620 blink::WebMouseEvent::Button::kLeft); |
| 623 observer.Wait(); | 621 observer.Wait(); |
| 624 // Need to wait for the title, because the initial page (about:blank) can stop | 622 load_stop_observer.Wait(); |
| 625 // loading before the click handler calls document.write. | 623 CheckTitle("popup"); |
| 626 CheckTitle("popup", true); | |
| 627 | 624 |
| 628 content::WebContentsDestroyedWatcher destroyed_watcher( | 625 content::WebContentsDestroyedWatcher destroyed_watcher( |
| 629 browser()->tab_strip_model()->GetActiveWebContents()); | 626 browser()->tab_strip_model()->GetActiveWebContents()); |
| 630 chrome::CloseTab(browser()); | 627 chrome::CloseTab(browser()); |
| 631 destroyed_watcher.Wait(); | 628 destroyed_watcher.Wait(); |
| 632 | 629 |
| 633 CheckTitle("only_one_unload"); | 630 CheckTitle("only_one_unload"); |
| 634 } | 631 } |
| 635 | 632 |
| 636 IN_PROC_BROWSER_TEST_F(UnloadTest, BrowserListForceCloseNoUnloadListeners) { | 633 IN_PROC_BROWSER_TEST_F(UnloadTest, BrowserListForceCloseNoUnloadListeners) { |
| (...skipping 326 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 963 base::Bind(&UnloadResults::AddSuccess, base::Unretained(&unload_results)), | 960 base::Bind(&UnloadResults::AddSuccess, base::Unretained(&unload_results)), |
| 964 base::Bind(&UnloadResults::AddAbort, base::Unretained(&unload_results)), | 961 base::Bind(&UnloadResults::AddAbort, base::Unretained(&unload_results)), |
| 965 true); | 962 true); |
| 966 window_observer.Wait(); | 963 window_observer.Wait(); |
| 967 EXPECT_EQ(1, unload_results.get_successes()); | 964 EXPECT_EQ(1, unload_results.get_successes()); |
| 968 EXPECT_EQ(0, unload_results.get_aborts()); | 965 EXPECT_EQ(0, unload_results.get_aborts()); |
| 969 } | 966 } |
| 970 | 967 |
| 971 // TODO(ojan): Add tests for unload/beforeunload that have multiple tabs | 968 // TODO(ojan): Add tests for unload/beforeunload that have multiple tabs |
| 972 // and multiple windows. | 969 // and multiple windows. |
| OLD | NEW |