Index: components/autofill/browser/webdata/web_data_service_unittest.cc |
diff --git a/components/autofill/browser/webdata/web_data_service_unittest.cc b/components/autofill/browser/webdata/web_data_service_unittest.cc |
index e973f338ffa850bfa56d88fb2a55371fccecedc6..9855552f17632f6d662c80c3c6a0a186c3da93b9 100644 |
--- a/components/autofill/browser/webdata/web_data_service_unittest.cc |
+++ b/components/autofill/browser/webdata/web_data_service_unittest.cc |
@@ -17,6 +17,7 @@ |
#include "base/strings/utf_string_conversions.h" |
#include "base/synchronization/waitable_event.h" |
#include "base/time.h" |
+#include "chrome/browser/webdata/web_data_service.h" |
#include "components/autofill/browser/autofill_country.h" |
#include "components/autofill/browser/autofill_profile.h" |
#include "components/autofill/browser/credit_card.h" |
@@ -26,8 +27,10 @@ |
#include "components/autofill/browser/webdata/autofill_webdata_service.h" |
#include "components/autofill/browser/webdata/autofill_webdata_service_observer.h" |
#include "components/autofill/common/form_field_data.h" |
-#include "components/webdata/common/web_data_service_test_util.h" |
#include "components/webdata/common/web_database_service.h" |
+#include "components/webdata/common/web_data_results.h" |
+#include "components/webdata/common/web_data_service_base.h" |
+#include "components/webdata/common/web_data_service_consumer.h" |
#include "content/public/test/test_browser_thread.h" |
#include "testing/gmock/include/gmock/gmock.h" |
#include "testing/gtest/include/gtest/gtest.h" |
@@ -42,6 +45,37 @@ using testing::ElementsAreArray; |
using testing::Pointee; |
using testing::Property; |
+namespace { |
+ |
+template <class T> |
+class AutofillWebDataServiceConsumer: public WebDataServiceConsumer { |
+ public: |
+ AutofillWebDataServiceConsumer() : handle_(0) {} |
+ virtual ~AutofillWebDataServiceConsumer() {} |
+ |
+ virtual void OnWebDataServiceRequestDone(WebDataService::Handle handle, |
+ const WDTypedResult* result) { |
+ using content::BrowserThread; |
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
+ handle_ = handle; |
+ const WDResult<T>* wrapped_result = |
+ static_cast<const WDResult<T>*>(result); |
+ result_ = wrapped_result->GetValue(); |
+ |
+ base::MessageLoop::current()->Quit(); |
+ } |
+ |
+ WebDataService::Handle handle() { return handle_; } |
+ T& result() { return result_; } |
+ |
+ private: |
+ WebDataService::Handle handle_; |
+ T result_; |
+ DISALLOW_COPY_AND_ASSIGN(AutofillWebDataServiceConsumer); |
+}; |
+ |
+} // namespace |
+ |
namespace autofill { |
static const int kWebDataServiceTimeoutSeconds = 8; |
@@ -72,8 +106,10 @@ class WebDataServiceTest : public testing::Test { |
ASSERT_TRUE(temp_dir_.CreateUniqueTempDir()); |
base::FilePath path = temp_dir_.path().AppendASCII("TestWebDB"); |
- wdbs_ = new WebDatabaseService(path, |
- BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI)); |
+ wdbs_ = new WebDatabaseService( |
+ path, |
+ BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI), |
+ BrowserThread::GetMessageLoopProxyForThread(BrowserThread::DB)); |
wdbs_->AddTable(scoped_ptr<WebDatabaseTable>(new AutofillTable("en-US"))); |
wdbs_->LoadDatabase(); |