summaryrefslogtreecommitdiffstats
path: root/chrome
diff options
context:
space:
mode:
authorphajdan.jr@chromium.org <phajdan.jr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-09-24 23:56:03 +0000
committerphajdan.jr@chromium.org <phajdan.jr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-09-24 23:56:03 +0000
commit2667d63b5cfe019c906024ea85c63abfc89d888b (patch)
tree8816d25b425aca3670ab0e5986a3b6b414a75082 /chrome
parent545a8b0702d8054b669438e9ad3900c1b11a5123 (diff)
downloadchromium_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.cc31
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();