Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(43)

Unified Diff: chrome/browser/autocomplete/autocomplete_browsertest.cc

Issue 218038: Wait for the history backend to load, which makes AutocompleteBrowserTest.Autocomplete not flaky. (Closed)
Patch Set: Created 11 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/autocomplete/autocomplete_browsertest.cc
diff --git a/chrome/browser/autocomplete/autocomplete_browsertest.cc b/chrome/browser/autocomplete/autocomplete_browsertest.cc
index 7af31cb32c4b63a260ac80b07709ca27510d9d01..403a2598cb446fefd9aa6271b2c05c6206bcf5c2 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();
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698