diff options
author | phajdan.jr@chromium.org <phajdan.jr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-09-24 23:56:03 +0000 |
---|---|---|
committer | phajdan.jr@chromium.org <phajdan.jr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-09-24 23:56:03 +0000 |
commit | 2667d63b5cfe019c906024ea85c63abfc89d888b (patch) | |
tree | 8816d25b425aca3670ab0e5986a3b6b414a75082 /chrome | |
parent | 545a8b0702d8054b669438e9ad3900c1b11a5123 (diff) | |
download | chromium_src-2667d63b5cfe019c906024ea85c63abfc89d888b.zip chromium_src-2667d63b5cfe019c906024ea85c63abfc89d888b.tar.gz chromium_src-2667d63b5cfe019c906024ea85c63abfc89d888b.tar.bz2 |
Wait for the history backend to load, which makes AutocompleteBrowserTest.Autocomplete not flaky.
TEST=Covered by browser_tests.
BUG=19876
Review URL: http://codereview.chromium.org/218038
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@27147 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome')
-rw-r--r-- | chrome/browser/autocomplete/autocomplete_browsertest.cc | 31 |
1 files changed, 30 insertions, 1 deletions
diff --git a/chrome/browser/autocomplete/autocomplete_browsertest.cc b/chrome/browser/autocomplete/autocomplete_browsertest.cc index 7af31cb..403a259 100644 --- a/chrome/browser/autocomplete/autocomplete_browsertest.cc +++ b/chrome/browser/autocomplete/autocomplete_browsertest.cc @@ -8,7 +8,12 @@ #include "chrome/browser/autocomplete/autocomplete_popup_model.h" #include "chrome/browser/browser.h" #include "chrome/browser/browser_window.h" +#include "chrome/browser/history/history.h" #include "chrome/browser/location_bar.h" +#include "chrome/browser/profile.h" +#include "chrome/common/notification_registrar.h" +#include "chrome/common/notification_service.h" +#include "chrome/common/notification_type.h" #include "chrome/common/url_constants.h" #include "chrome/test/in_process_browser_test.h" #include "chrome/test/ui_test_utils.h" @@ -30,7 +35,8 @@ std::wstring AutocompleteResultAsString(const AutocompleteResult& result) { } // namespace -class AutocompleteBrowserTest : public InProcessBrowserTest { +class AutocompleteBrowserTest : public InProcessBrowserTest, + public NotificationObserver { protected: LocationBar* GetLocationBar() const { return browser()->window()->GetLocationBar(); @@ -40,6 +46,25 @@ class AutocompleteBrowserTest : public InProcessBrowserTest { return GetLocationBar()->location_entry()->model()->popup_model()-> autocomplete_controller(); } + + void WaitForHistoryBackendToLoad() { + HistoryService* history_service = + browser()->profile()->GetHistoryService(Profile::EXPLICIT_ACCESS); + if (!history_service->backend_loaded()) { + NotificationRegistrar registrar; + registrar.Add(this, NotificationType::HISTORY_LOADED, + NotificationService::AllSources()); + ui_test_utils::RunMessageLoop(); + } + } + + virtual void Observe(NotificationType type, + const NotificationSource& source, + const NotificationDetails& details) { + DCHECK(type == NotificationType::HISTORY_LOADED); + MessageLoop::current()->Quit(); + } + }; IN_PROC_BROWSER_TEST_F(AutocompleteBrowserTest, Basic) { @@ -81,6 +106,10 @@ IN_PROC_BROWSER_TEST_F(AutocompleteBrowserTest, Basic) { } IN_PROC_BROWSER_TEST_F(AutocompleteBrowserTest, Autocomplete) { + // The results depend on the history backend being loaded. Make sure it is + // loaded so that the autocomplete results are consistent. + WaitForHistoryBackendToLoad(); + LocationBar* location_bar = GetLocationBar(); AutocompleteController* autocomplete_controller = GetAutocompleteController(); |