diff options
author | gbillock@chromium.org <gbillock@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-08-17 19:36:06 +0000 |
---|---|---|
committer | gbillock@chromium.org <gbillock@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-08-17 19:36:06 +0000 |
commit | 6b4e8e4d926b90d49668c0bf5189e60c60b71762 (patch) | |
tree | 7285f9d2dcea8f07de6a0c3e5f8a113841b12317 | |
parent | ec41a1d0f8d75e3b21ea4db6dbbb432e08a8e923 (diff) | |
download | chromium_src-6b4e8e4d926b90d49668c0bf5189e60c60b71762.zip chromium_src-6b4e8e4d926b90d49668c0bf5189e60c60b71762.tar.gz chromium_src-6b4e8e4d926b90d49668c0bf5189e60c60b71762.tar.bz2 |
Revert 96617
Revert 96593 (Original review URL http://codereview.chromium.org/7489019)
Fix up various browser tests not to use WaitForNavigation.
Now with corrected pdf browsertest
R=phajdan.jr@chromium.org
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/7645001
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@97181 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | chrome/browser/browser_focus_uitest.cc | 39 | ||||
-rw-r--r-- | chrome/browser/crash_recovery_browsertest.cc | 25 | ||||
-rw-r--r-- | chrome/browser/geolocation/geolocation_browsertest.cc | 16 | ||||
-rw-r--r-- | chrome/browser/pdf_browsertest.cc | 6 | ||||
-rw-r--r-- | chrome/browser/sidebar/sidebar_browsertest.cc | 12 | ||||
-rw-r--r-- | chrome/browser/ssl/ssl_browser_tests.cc | 153 | ||||
-rw-r--r-- | chrome/browser/ui/find_bar/find_bar_host_browsertest.cc | 22 | ||||
-rw-r--r-- | chrome/test/base/ui_test_utils.cc | 1 | ||||
-rw-r--r-- | chrome/test/base/ui_test_utils.h | 4 |
9 files changed, 194 insertions, 84 deletions
diff --git a/chrome/browser/browser_focus_uitest.cc b/chrome/browser/browser_focus_uitest.cc index cd23955..68eeb54 100644 --- a/chrome/browser/browser_focus_uitest.cc +++ b/chrome/browser/browser_focus_uitest.cc @@ -14,6 +14,7 @@ #include "chrome/browser/tabs/tab_strip_model.h" #include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/browser_window.h" +#include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h" #include "chrome/browser/ui/view_ids.h" #include "chrome/common/chrome_notification_types.h" #include "chrome/common/chrome_paths.h" @@ -847,11 +848,23 @@ IN_PROC_BROWSER_TEST_F(BrowserFocusTest, FocusOnReload) { ASSERT_TRUE(test_server()->Start()); // Open the new tab, reload. - browser()->NewTab(); + { + ui_test_utils::WindowedNotificationObserver observer( + content::NOTIFICATION_LOAD_STOP, + NotificationService::AllSources()); + browser()->NewTab(); + observer.Wait(); + } ui_test_utils::RunAllPendingInMessageLoop(); - browser()->Reload(CURRENT_TAB); - ASSERT_TRUE(ui_test_utils::WaitForNavigationInCurrentTab(browser())); + { + ui_test_utils::WindowedNotificationObserver observer( + content::NOTIFICATION_LOAD_STOP, + Source<NavigationController>( + &browser()->GetSelectedTabContentsWrapper()->controller())); + browser()->Reload(CURRENT_TAB); + observer.Wait(); + } // Focus should stay on the location bar. ASSERT_TRUE(IsViewFocused(VIEW_ID_LOCATION_BAR)); @@ -859,8 +872,14 @@ IN_PROC_BROWSER_TEST_F(BrowserFocusTest, FocusOnReload) { ui_test_utils::NavigateToURL(browser(), test_server()->GetURL(kSimplePage)); browser()->FocusLocationBar(); ASSERT_TRUE(IsViewFocused(VIEW_ID_LOCATION_BAR)); - browser()->Reload(CURRENT_TAB); - ASSERT_TRUE(ui_test_utils::WaitForNavigationInCurrentTab(browser())); + { + ui_test_utils::WindowedNotificationObserver observer( + content::NOTIFICATION_LOAD_STOP, + Source<NavigationController>( + &browser()->GetSelectedTabContentsWrapper()->controller())); + browser()->Reload(CURRENT_TAB); + observer.Wait(); + } // Focus should now be on the tab contents. browser()->ShowDownloadsTab(); @@ -875,8 +894,14 @@ IN_PROC_BROWSER_TEST_F(BrowserFocusTest, DISABLED_FocusOnReloadCrashedTab) { // Open a regular page, crash, reload. ui_test_utils::NavigateToURL(browser(), test_server()->GetURL(kSimplePage)); ui_test_utils::CrashTab(browser()->GetSelectedTabContents()); - browser()->Reload(CURRENT_TAB); - ASSERT_TRUE(ui_test_utils::WaitForNavigationInCurrentTab(browser())); + { + ui_test_utils::WindowedNotificationObserver observer( + content::NOTIFICATION_LOAD_STOP, + Source<NavigationController>( + &browser()->GetSelectedTabContentsWrapper()->controller())); + browser()->Reload(CURRENT_TAB); + observer.Wait(); + } // Focus should now be on the tab contents. browser()->ShowDownloadsTab(); diff --git a/chrome/browser/crash_recovery_browsertest.cc b/chrome/browser/crash_recovery_browsertest.cc index 3c8d4f2..8a26e5b 100644 --- a/chrome/browser/crash_recovery_browsertest.cc +++ b/chrome/browser/crash_recovery_browsertest.cc @@ -4,6 +4,7 @@ #include "base/file_path.h" #include "chrome/browser/ui/browser.h" +#include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h" #include "chrome/common/url_constants.h" #include "chrome/test/base/in_process_browser_test.h" #include "chrome/test/base/ui_test_utils.h" @@ -15,12 +16,12 @@ namespace { void SimulateRendererCrash(Browser* browser) { + ui_test_utils::WindowedNotificationObserver observer( + content::NOTIFICATION_TAB_CONTENTS_DISCONNECTED, + NotificationService::AllSources()); browser->OpenURL(GURL(chrome::kChromeUICrashURL), GURL(), CURRENT_TAB, PageTransition::TYPED); - LOG(ERROR) << "SimulateRendererCrash, before WaitForNotification"; - ui_test_utils::WaitForNotification( - content::NOTIFICATION_TAB_CONTENTS_DISCONNECTED); - LOG(ERROR) << "SimulateRendererCrash, after WaitForNotification"; + observer.Wait(); } } // namespace @@ -42,10 +43,12 @@ IN_PROC_BROWSER_TEST_F(CrashRecoveryBrowserTest, Reload) { ASSERT_TRUE(ui_test_utils::GetCurrentTabTitle(browser(), &title_before_crash)); SimulateRendererCrash(browser()); + ui_test_utils::WindowedNotificationObserver observer( + content::NOTIFICATION_LOAD_STOP, + Source<NavigationController>( + &browser()->GetSelectedTabContentsWrapper()->controller())); browser()->Reload(CURRENT_TAB); - LOG(ERROR) << "Before WaitForNavigationInCurrentTab"; - ASSERT_TRUE(ui_test_utils::WaitForNavigationInCurrentTab(browser())); - LOG(ERROR) << "After WaitForNavigationInCurrentTab"; + observer.Wait(); ASSERT_TRUE(ui_test_utils::GetCurrentTabTitle(browser(), &title_after_crash)); EXPECT_NE(title_before_crash, title_after_crash); @@ -69,10 +72,12 @@ IN_PROC_BROWSER_TEST_F(CrashRecoveryBrowserTest, LoadInNewTab) { ASSERT_TRUE(ui_test_utils::GetCurrentTabTitle(browser(), &title_before_crash)); SimulateRendererCrash(browser()); + ui_test_utils::WindowedNotificationObserver observer( + content::NOTIFICATION_LOAD_STOP, + Source<NavigationController>( + &browser()->GetSelectedTabContentsWrapper()->controller())); browser()->Reload(CURRENT_TAB); - LOG(ERROR) << "Before WaitForNavigationInCurrentTab"; - ASSERT_TRUE(ui_test_utils::WaitForNavigationInCurrentTab(browser())); - LOG(ERROR) << "After WaitForNavigationInCurrentTab"; + observer.Wait(); ASSERT_TRUE(ui_test_utils::GetCurrentTabTitle(browser(), &title_after_crash)); EXPECT_EQ(title_before_crash, title_after_crash); diff --git a/chrome/browser/geolocation/geolocation_browsertest.cc b/chrome/browser/geolocation/geolocation_browsertest.cc index f4cc87e..43d89bd 100644 --- a/chrome/browser/geolocation/geolocation_browsertest.cc +++ b/chrome/browser/geolocation/geolocation_browsertest.cc @@ -320,11 +320,17 @@ class GeolocationBrowserTest : public InProcessBrowserTest { size_t state_map_size = settings_state.state_map().size(); ASSERT_TRUE(infobar_); LOG(WARNING) << "will set infobar response"; - if (allowed) - infobar_->AsConfirmInfoBarDelegate()->Accept(); - else - infobar_->AsConfirmInfoBarDelegate()->Cancel(); - WaitForNavigation(); + { + ui_test_utils::WindowedNotificationObserver observer( + content::NOTIFICATION_LOAD_STOP, + Source<NavigationController>(&tab_contents_wrapper->controller())); + if (allowed) + infobar_->AsConfirmInfoBarDelegate()->Accept(); + else + infobar_->AsConfirmInfoBarDelegate()->Cancel(); + observer.Wait(); + } + tab_contents_wrapper->RemoveInfoBar(infobar_); LOG(WARNING) << "infobar response set"; infobar_ = NULL; diff --git a/chrome/browser/pdf_browsertest.cc b/chrome/browser/pdf_browsertest.cc index 1e8fabb..b0f92af 100644 --- a/chrome/browser/pdf_browsertest.cc +++ b/chrome/browser/pdf_browsertest.cc @@ -336,12 +336,16 @@ IN_PROC_BROWSER_TEST_F(PDFBrowserTest, MAYBE_OnLoadAndReload) { GURL url = pdf_test_server()->GetURL("files/onload_reload.html"); ui_test_utils::NavigateToURL(browser(), url); + ui_test_utils::WindowedNotificationObserver observer( + content::NOTIFICATION_LOAD_STOP, + Source<NavigationController>( + &browser()->GetSelectedTabContents()->controller())); ASSERT_TRUE(ui_test_utils::ExecuteJavaScript( browser()->GetSelectedTabContents()->render_view_host(), std::wstring(), L"reloadPDF();")); + observer.Wait(); - ASSERT_TRUE(ui_test_utils::WaitForNavigationInCurrentTab(browser())); ASSERT_EQ("success", browser()->GetSelectedTabContents()->GetURL().query()); } diff --git a/chrome/browser/sidebar/sidebar_browsertest.cc b/chrome/browser/sidebar/sidebar_browsertest.cc index 049857b..af59db0 100644 --- a/chrome/browser/sidebar/sidebar_browsertest.cc +++ b/chrome/browser/sidebar/sidebar_browsertest.cc @@ -71,14 +71,15 @@ class SidebarTest : public ExtensionBrowserTest { TabContents* tab = browser()->GetSelectedTabContents(); SidebarManager* sidebar_manager = SidebarManager::GetInstance(); - - sidebar_manager->NavigateSidebar(tab, content_id_, url); - SidebarContainer* sidebar_container = sidebar_manager->GetSidebarContainerFor(tab, content_id_); - TabContents* client_contents = sidebar_container->sidebar_contents(); - ui_test_utils::WaitForNavigation(&client_contents->controller()); + + ui_test_utils::WindowedNotificationObserver observer( + content::NOTIFICATION_LOAD_STOP, + Source<NavigationController>(&client_contents->controller())); + sidebar_manager->NavigateSidebar(tab, content_id_, url); + observer.Wait(); } void ShowSidebar(TabContents* tab) { @@ -199,4 +200,3 @@ IN_PROC_BROWSER_TEST_F(SidebarTest, SidebarNavigate) { } } // namespace - diff --git a/chrome/browser/ssl/ssl_browser_tests.cc b/chrome/browser/ssl/ssl_browser_tests.cc index 5c89ae7..81f7805 100644 --- a/chrome/browser/ssl/ssl_browser_tests.cc +++ b/chrome/browser/ssl/ssl_browser_tests.cc @@ -16,6 +16,7 @@ #include "content/browser/tab_contents/interstitial_page.h" #include "content/browser/tab_contents/navigation_entry.h" #include "content/browser/tab_contents/tab_contents.h" +#include "content/common/notification_service.h" #include "net/base/cert_status_flags.h" #include "net/test/test_server.h" @@ -116,9 +117,11 @@ class SSLUITest : public InProcessBrowserTest { void ProceedThroughInterstitial(TabContents* tab) { InterstitialPage* interstitial_page = tab->interstitial_page(); ASSERT_TRUE(interstitial_page); + ui_test_utils::WindowedNotificationObserver observer( + content::NOTIFICATION_LOAD_STOP, + Source<NavigationController>(&tab->controller())); interstitial_page->Proceed(); - // Wait for the navigation to be done. - ui_test_utils::WaitForNavigation(&(tab->controller())); + observer.Wait(); } static bool GetFilePathWithHostAndPortReplacement( @@ -411,8 +414,13 @@ IN_PROC_BROWSER_TEST_F(SSLUITest, FLAKY_TestHTTPSExpiredCertAndGoForward) { ASSERT_TRUE(entry2); // Now go back so that a page is in the forward history. - tab->controller().GoBack(); - ui_test_utils::WaitForNavigation(&(tab->controller())); + { + ui_test_utils::WindowedNotificationObserver observer( + content::NOTIFICATION_LOAD_STOP, + Source<NavigationController>(&tab->controller())); + tab->controller().GoBack(); + observer.Wait(); + } ASSERT_TRUE(tab->controller().CanGoForward()); NavigationEntry* entry3 = tab->controller().GetActiveEntry(); ASSERT_TRUE(entry1 == entry3); @@ -424,8 +432,13 @@ IN_PROC_BROWSER_TEST_F(SSLUITest, FLAKY_TestHTTPSExpiredCertAndGoForward) { true); // Interstitial showing // Simulate user clicking and holding on forward button. - tab->controller().GoToOffset(1); - ui_test_utils::WaitForNavigation(&(tab->controller())); + { + ui_test_utils::WindowedNotificationObserver observer( + content::NOTIFICATION_LOAD_STOP, + Source<NavigationController>(&tab->controller())); + tab->controller().GoToOffset(1); + observer.Wait(); + } // We should be showing the second good page. EXPECT_FALSE(browser()->GetSelectedTabContents()->interstitial_page()); @@ -597,9 +610,11 @@ IN_PROC_BROWSER_TEST_F(SSLUITest, TestDisplaysInsecureContentTwoTabs) { params.disposition = NEW_FOREGROUND_TAB; params.tabstrip_index = 0; params.source_contents = tab1; + ui_test_utils::WindowedNotificationObserver observer( + content::NOTIFICATION_LOAD_STOP, NotificationService::AllSources()); browser::Navigate(¶ms); TabContentsWrapper* tab2 = params.target_contents; - ui_test_utils::WaitForNavigation(&(tab2->controller())); + observer.Wait(); // The new tab has insecure content. CheckAuthenticatedState(tab2->tab_contents(), true); @@ -634,9 +649,11 @@ IN_PROC_BROWSER_TEST_F(SSLUITest, TestRunsInsecureContentTwoTabs) { browser::NavigateParams params(browser(), url, PageTransition::TYPED); params.disposition = NEW_FOREGROUND_TAB; params.source_contents = tab1; + ui_test_utils::WindowedNotificationObserver observer( + content::NOTIFICATION_LOAD_STOP, NotificationService::AllSources()); browser::Navigate(¶ms); TabContentsWrapper* tab2 = params.target_contents; - ui_test_utils::WaitForNavigation(&(tab2->controller())); + observer.Wait(); // The new tab has insecure content. CheckAuthenticationBrokenState(tab2->tab_contents(), 0, true, false); @@ -807,9 +824,10 @@ IN_PROC_BROWSER_TEST_F(SSLUITest, DISABLED_TestCloseTabWithUnsafePopup) { // Let's add another tab to make sure the browser does not exit when we close // the first tab. GURL url = test_server()->GetURL("files/ssl/google.html"); - TabContentsWrapper* tab2 = - browser()->AddSelectedTabWithURL(url, PageTransition::TYPED); - ui_test_utils::WaitForNavigation(&(tab2->controller())); + ui_test_utils::WindowedNotificationObserver observer( + content::NOTIFICATION_LOAD_STOP, NotificationService::AllSources()); + browser()->AddSelectedTabWithURL(url, PageTransition::TYPED); + observer.Wait(); // Close the first tab. browser()->CloseTabContents(tab1); @@ -952,23 +970,33 @@ IN_PROC_BROWSER_TEST_F(SSLUITest, DISABLED_TestGoodFrameNavigation) { bool success = false; // Now navigate inside the frame. - EXPECT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractBool( - tab->render_view_host(), std::wstring(), - L"window.domAutomationController.send(clickLink('goodHTTPSLink'));", - &success)); - EXPECT_TRUE(success); - ui_test_utils::WaitForNavigation(&tab->controller()); + { + ui_test_utils::WindowedNotificationObserver observer( + content::NOTIFICATION_LOAD_STOP, + Source<NavigationController>(&tab->controller())); + EXPECT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractBool( + tab->render_view_host(), std::wstring(), + L"window.domAutomationController.send(clickLink('goodHTTPSLink'));", + &success)); + ASSERT_TRUE(success); + observer.Wait(); + } // We should still be fine. CheckAuthenticatedState(tab, false); // Now let's hit a bad page. - EXPECT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractBool( - tab->render_view_host(), std::wstring(), - L"window.domAutomationController.send(clickLink('badHTTPSLink'));", - &success)); - EXPECT_TRUE(success); - ui_test_utils::WaitForNavigation(&tab->controller()); + { + ui_test_utils::WindowedNotificationObserver observer( + content::NOTIFICATION_LOAD_STOP, + Source<NavigationController>(&tab->controller())); + EXPECT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractBool( + tab->render_view_host(), std::wstring(), + L"window.domAutomationController.send(clickLink('badHTTPSLink'));", + &success)); + ASSERT_TRUE(success); + observer.Wait(); + } // The security style should still be secure. CheckAuthenticatedState(tab, false); @@ -984,24 +1012,39 @@ IN_PROC_BROWSER_TEST_F(SSLUITest, DISABLED_TestGoodFrameNavigation) { EXPECT_FALSE(is_content_evil); // Now go back, our state should still be OK. - tab->controller().GoBack(); - ui_test_utils::WaitForNavigation(&tab->controller()); + { + ui_test_utils::WindowedNotificationObserver observer( + content::NOTIFICATION_LOAD_STOP, + Source<NavigationController>(&tab->controller())); + tab->controller().GoBack(); + observer.Wait(); + } CheckAuthenticatedState(tab, false); // Navigate to a page served over HTTP. - EXPECT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractBool( - tab->render_view_host(), std::wstring(), - L"window.domAutomationController.send(clickLink('HTTPLink'));", - &success)); - EXPECT_TRUE(success); - ui_test_utils::WaitForNavigation(&tab->controller()); + { + ui_test_utils::WindowedNotificationObserver observer( + content::NOTIFICATION_LOAD_STOP, + Source<NavigationController>(&tab->controller())); + EXPECT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractBool( + tab->render_view_host(), std::wstring(), + L"window.domAutomationController.send(clickLink('HTTPLink'));", + &success)); + ASSERT_TRUE(success); + observer.Wait(); + } // Our state should be insecure. CheckAuthenticatedState(tab, true); // Go back, our state should be unchanged. - tab->controller().GoBack(); - ui_test_utils::WaitForNavigation(&tab->controller()); + { + ui_test_utils::WindowedNotificationObserver observer( + content::NOTIFICATION_LOAD_STOP, + Source<NavigationController>(&tab->controller())); + tab->controller().GoBack(); + observer.Wait(); + } CheckAuthenticatedState(tab, true); } @@ -1028,12 +1071,15 @@ IN_PROC_BROWSER_TEST_F(SSLUITest, FLAKY_TestBadFrameNavigation) { // Navigate to a good frame. bool success = false; + ui_test_utils::WindowedNotificationObserver observer( + content::NOTIFICATION_LOAD_STOP, + Source<NavigationController>(&tab->controller())); EXPECT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractBool( tab->render_view_host(), std::wstring(), L"window.domAutomationController.send(clickLink('goodHTTPSLink'));", &success)); - EXPECT_TRUE(success); - ui_test_utils::WaitForNavigation(&tab->controller()); + ASSERT_TRUE(success); + observer.Wait(); // We should still be authentication broken. CheckAuthenticationBrokenState(tab, net::CERT_STATUS_DATE_INVALID, false, @@ -1060,24 +1106,35 @@ IN_PROC_BROWSER_TEST_F(SSLUITest, DISABLED_TestUnauthenticatedFrameNavigation) { CheckUnauthenticatedState(tab); // Now navigate inside the frame to a secure HTTPS frame. - bool success = false; - EXPECT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractBool( - tab->render_view_host(), std::wstring(), - L"window.domAutomationController.send(clickLink('goodHTTPSLink'));", - &success)); - EXPECT_TRUE(success); - ui_test_utils::WaitForNavigation(&tab->controller()); + { + bool success = false; + ui_test_utils::WindowedNotificationObserver observer( + content::NOTIFICATION_LOAD_STOP, + Source<NavigationController>(&tab->controller())); + EXPECT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractBool( + tab->render_view_host(), std::wstring(), + L"window.domAutomationController.send(clickLink('goodHTTPSLink'));", + &success)); + ASSERT_TRUE(success); + observer.Wait(); + } // We should still be unauthenticated. CheckUnauthenticatedState(tab); // Now navigate to a bad HTTPS frame. - EXPECT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractBool( - tab->render_view_host(), std::wstring(), - L"window.domAutomationController.send(clickLink('badHTTPSLink'));", - &success)); - EXPECT_TRUE(success); - ui_test_utils::WaitForNavigation(&tab->controller()); + { + bool success = false; + ui_test_utils::WindowedNotificationObserver observer( + content::NOTIFICATION_LOAD_STOP, + Source<NavigationController>(&tab->controller())); + EXPECT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractBool( + tab->render_view_host(), std::wstring(), + L"window.domAutomationController.send(clickLink('badHTTPSLink'));", + &success)); + ASSERT_TRUE(success); + observer.Wait(); + } // State should not have changed. CheckUnauthenticatedState(tab); diff --git a/chrome/browser/ui/find_bar/find_bar_host_browsertest.cc b/chrome/browser/ui/find_bar/find_bar_host_browsertest.cc index 5445484..f569772 100644 --- a/chrome/browser/ui/find_bar/find_bar_host_browsertest.cc +++ b/chrome/browser/ui/find_bar/find_bar_host_browsertest.cc @@ -581,8 +581,12 @@ IN_PROC_BROWSER_TEST_F(FindInPageControllerTest, FindDisappearOnNavigate) { EXPECT_TRUE(fully_visible); // Reload the tab and make sure Find window doesn't go away. + ui_test_utils::WindowedNotificationObserver observer( + content::NOTIFICATION_LOAD_STOP, + Source<NavigationController>( + &browser()->GetSelectedTabContentsWrapper()->controller())); browser()->Reload(CURRENT_TAB); - ui_test_utils::WaitForNavigationInCurrentTab(browser()); + observer.Wait(); EXPECT_TRUE(GetFindBarWindowInfo(&position, &fully_visible)); EXPECT_TRUE(fully_visible); @@ -1048,9 +1052,10 @@ IN_PROC_BROWSER_TEST_F(FindInPageControllerTest, MAYBE_NoIncognitoPrepopulate) { // Open a new incognito window and navigate to the same page. Profile* incognito_profile = browser()->profile()->GetOffTheRecordProfile(); Browser* incognito_browser = Browser::Create(incognito_profile); + ui_test_utils::WindowedNotificationObserver observer( + content::NOTIFICATION_LOAD_STOP, NotificationService::AllSources()); incognito_browser->AddSelectedTabWithURL(url, PageTransition::START_PAGE); - ui_test_utils::WaitForNavigation( - &incognito_browser->GetSelectedTabContents()->controller()); + observer.Wait(); incognito_browser->window()->Show(); // Open the find box and make sure that it is prepopulated with "page". @@ -1093,8 +1098,11 @@ IN_PROC_BROWSER_TEST_F(FindInPageControllerTest, ActivateLinkNavigatesPage) { EXPECT_EQ(ordinal, 1); // End the find session, click on the link. + ui_test_utils::WindowedNotificationObserver observer( + content::NOTIFICATION_LOAD_STOP, + Source<NavigationController>(&tab->controller())); tab->find_tab_helper()->StopFinding(FindBarController::kActivateSelection); - EXPECT_TRUE(ui_test_utils::WaitForNavigationInCurrentTab(browser())); + observer.Wait(); } // Tests that FindBar fits within a narrow browser window. @@ -1102,12 +1110,12 @@ IN_PROC_BROWSER_TEST_F(FindInPageControllerTest, FitWindow) { Browser::CreateParams params(Browser::TYPE_POPUP, browser()->profile()); params.initial_bounds = gfx::Rect(0, 0, 250, 500); Browser* popup = Browser::CreateWithParams(params); + ui_test_utils::WindowedNotificationObserver observer( + content::NOTIFICATION_LOAD_STOP, NotificationService::AllSources()); popup->AddSelectedTabWithURL(GURL(chrome::kAboutBlankURL), PageTransition::LINK); - // Wait for the page to finish loading. - ui_test_utils::WaitForNavigation( - &popup->GetSelectedTabContents()->controller()); + observer.Wait(); popup->window()->Show(); // On GTK, bounds change is asynchronous. diff --git a/chrome/test/base/ui_test_utils.cc b/chrome/test/base/ui_test_utils.cc index df7358b..7ee8db6 100644 --- a/chrome/test/base/ui_test_utils.cc +++ b/chrome/test/base/ui_test_utils.cc @@ -57,6 +57,7 @@ namespace ui_test_utils { namespace { // Used to block until a navigation completes. +// TODO(gbillock): this should be merged with TestNavigationObserver class NavigationNotificationObserver : public NotificationObserver { public: NavigationNotificationObserver(const NotificationSource& source, diff --git a/chrome/test/base/ui_test_utils.h b/chrome/test/base/ui_test_utils.h index 84a4e7c..201f82f 100644 --- a/chrome/test/base/ui_test_utils.h +++ b/chrome/test/base/ui_test_utils.h @@ -230,10 +230,14 @@ bool IsViewFocused(const Browser* browser, ViewID vid); void ClickOnView(const Browser* browser, ViewID vid); // Blocks until a notification for given |type| is received. +// TODO(gbillock): remove this race hazard. +// Use WindowedNotificationObserver instead. void WaitForNotification(int type); // Blocks until a notification for given |type| from the specified |source| // is received. +// TODO(gbillock): remove this race hazard. +// Use WindowedNotificationObserver instead. void WaitForNotificationFrom(int type, const NotificationSource& source); |