// Copyright (c) 2010 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef CHROME_BROWSER_WEBDATA_WEB_DATA_SERVICE_TEST_UTIL_H__ #define CHROME_BROWSER_WEBDATA_WEB_DATA_SERVICE_TEST_UTIL_H__ #pragma once #include "base/basictypes.h" #include "base/message_loop.h" #include "chrome/browser/webdata/web_data_service.h" #include "content/browser/browser_thread.h" template <class T> class AutofillWebDataServiceConsumer: public WebDataServiceConsumer { public: AutofillWebDataServiceConsumer() : handle_(0) {} virtual ~AutofillWebDataServiceConsumer() {} virtual void OnWebDataServiceRequestDone(WebDataService::Handle handle, const WDTypedResult* result) { DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); handle_ = handle; const WDResult<T>* wrapped_result = static_cast<const WDResult<T>*>(result); result_ = wrapped_result->GetValue(); MessageLoop::current()->Quit(); } WebDataService::Handle handle() { return handle_; } T& result() { return result_; } private: WebDataService::Handle handle_; T result_; DISALLOW_COPY_AND_ASSIGN(AutofillWebDataServiceConsumer); }; #endif // CHROME_BROWSER_WEBDATA_WEB_DATA_SERVICE_TEST_UTIL_H__