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

Unified Diff: chrome/browser/sync/test/integration/autofill_helper.cc

Issue 12476031: Refactor notifications of chrome/browser/webdata (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase Created 7 years, 9 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
Index: chrome/browser/sync/test/integration/autofill_helper.cc
diff --git a/chrome/browser/sync/test/integration/autofill_helper.cc b/chrome/browser/sync/test/integration/autofill_helper.cc
index 592d342d22caf41a2596f3e14ff3905d10e45854..3ff7bd12264976b9cc779db8f3dbe32652afaf2a 100644
--- a/chrome/browser/sync/test/integration/autofill_helper.cc
+++ b/chrome/browser/sync/test/integration/autofill_helper.cc
@@ -15,7 +15,6 @@
#include "chrome/browser/webdata/autofill_web_data_service.h"
#include "chrome/browser/webdata/web_database.h"
#include "chrome/common/chrome_notification_types.h"
-#include "chrome/test/base/thread_observer_helper.h"
#include "components/autofill/browser/autofill_common_test.h"
#include "components/autofill/browser/autofill_profile.h"
#include "components/autofill/browser/autofill_type.h"
@@ -34,18 +33,11 @@ ACTION_P(SignalEvent, event) {
event->Signal();
}
-class AutofillDBThreadObserverHelper : public DBThreadObserverHelper {
- protected:
- virtual ~AutofillDBThreadObserverHelper() {}
-
- virtual void RegisterObservers() OVERRIDE {
- registrar_.Add(&observer_,
- chrome::NOTIFICATION_AUTOFILL_ENTRIES_CHANGED,
- content::NotificationService::AllSources());
- registrar_.Add(&observer_,
- chrome::NOTIFICATION_AUTOFILL_PROFILE_CHANGED,
- content::NotificationService::AllSources());
- }
+class MockWebDataServiceObserver
+ : public AutofillWebDataServiceObserverOnDBThread {
+ public:
+ MOCK_METHOD1(AutofillEntriesChanged,
+ void(const AutofillChangeList& changes));
};
class MockPersonalDataManagerObserver : public PersonalDataManagerObserver {
@@ -53,20 +45,6 @@ class MockPersonalDataManagerObserver : public PersonalDataManagerObserver {
MOCK_METHOD0(OnPersonalDataChanged, void());
};
-void RemoveKeyDontBlockForSync(int profile, const AutofillKey& key) {
- WaitableEvent done_event(false, false);
- scoped_refptr<AutofillDBThreadObserverHelper> observer_helper(
- new AutofillDBThreadObserverHelper());
- observer_helper->Init();
-
- EXPECT_CALL(*observer_helper->observer(), Observe(_, _, _)).
- WillOnce(SignalEvent(&done_event));
- scoped_refptr<AutofillWebDataService> wds =
- autofill_helper::GetWebDataService(profile);
- wds->RemoveFormValueForElementName(key.name(), key.value());
- done_event.Wait();
-}
-
void RunOnDBThreadAndSignal(base::Closure task,
base::WaitableEvent* done_event) {
if (!task.is_null()) {
@@ -83,6 +61,30 @@ void RunOnDBThreadAndBlock(base::Closure task) {
done_event.Wait();
}
+void RemoveKeyDontBlockForSync(int profile, const AutofillKey& key) {
+ WaitableEvent done_event(false, false);
+
+ MockWebDataServiceObserver mock_observer;
+ EXPECT_CALL(mock_observer, AutofillEntriesChanged(_))
+ .WillOnce(SignalEvent(&done_event));
+
+ scoped_refptr<AutofillWebDataService> wds =
+ autofill_helper::GetWebDataService(profile);
+
+ void(AutofillWebDataService::*add_observer_func)(
+ AutofillWebDataServiceObserverOnDBThread*) =
+ &AutofillWebDataService::AddObserver;
+ RunOnDBThreadAndBlock(Bind(add_observer_func, wds, &mock_observer));
+
+ wds->RemoveFormValueForElementName(key.name(), key.value());
+ done_event.Wait();
+
+ void(AutofillWebDataService::*remove_observer_func)(
+ AutofillWebDataServiceObserverOnDBThread*) =
+ &AutofillWebDataService::RemoveObserver;
+ RunOnDBThreadAndBlock(Bind(remove_observer_func, wds, &mock_observer));
+}
+
void GetAllAutofillEntriesOnDBThread(AutofillWebDataService* wds,
std::vector<AutofillEntry>* entries) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::DB));
@@ -169,16 +171,25 @@ void AddKeys(int profile, const std::set<AutofillKey>& keys) {
}
WaitableEvent done_event(false, false);
- scoped_refptr<AutofillDBThreadObserverHelper> observer_helper(
- new AutofillDBThreadObserverHelper());
- observer_helper->Init();
+ MockWebDataServiceObserver mock_observer;
+ EXPECT_CALL(mock_observer, AutofillEntriesChanged(_))
+ .WillOnce(SignalEvent(&done_event));
- EXPECT_CALL(*observer_helper->observer(), Observe(_, _, _)).
- WillOnce(SignalEvent(&done_event));
scoped_refptr<AutofillWebDataService> wds = GetWebDataService(profile);
+
+ void(AutofillWebDataService::*add_observer_func)(
+ AutofillWebDataServiceObserverOnDBThread*) =
+ &AutofillWebDataService::AddObserver;
+ RunOnDBThreadAndBlock(Bind(add_observer_func, wds, &mock_observer));
+
wds->AddFormFields(form_fields);
done_event.Wait();
BlockForPendingDBThreadTasks();
+
+ void(AutofillWebDataService::*remove_observer_func)(
+ AutofillWebDataServiceObserverOnDBThread*) =
+ &AutofillWebDataService::RemoveObserver;
+ RunOnDBThreadAndBlock(Bind(remove_observer_func, wds, &mock_observer));
}
void RemoveKey(int profile, const AutofillKey& key) {

Powered by Google App Engine
This is Rietveld 408576698