Chromium Code Reviews| Index: chrome/browser/sync_file_system/drive_backend/drive_backend_test_util.h |
| diff --git a/chrome/browser/sync_file_system/drive_backend/drive_backend_test_util.h b/chrome/browser/sync_file_system/drive_backend/drive_backend_test_util.h |
| index bcb96a0b67a4f88d05c4bbba3930a65ead56e8c5..39ebb6a5b689b2cbad3a8b8c86ce42885ede4ccb 100644 |
| --- a/chrome/browser/sync_file_system/drive_backend/drive_backend_test_util.h |
| +++ b/chrome/browser/sync_file_system/drive_backend/drive_backend_test_util.h |
| @@ -5,9 +5,13 @@ |
| #ifndef CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_DRIVE_BACKEND_TEST_UTIL_H_ |
| #define CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_DRIVE_BACKEND_TEST_UTIL_H_ |
| +#include "base/bind.h" |
| +#include "base/callback.h" |
| +#include "base/callback_internal.h" |
| #include "base/memory/scoped_ptr.h" |
| #include "chrome/browser/google_apis/gdata_errorcode.h" |
| #include "chrome/browser/sync_file_system/sync_status_code.h" |
| +#include "testing/gtest/include/gtest/gtest.h" |
| namespace google_apis { |
| class FileResource; |
| @@ -38,17 +42,39 @@ void ExpectEquivalentResourceAndMetadata( |
| void ExpectEquivalentMetadataAndTracker(const FileMetadata& metadata, |
| const FileTracker& tracker); |
| -void SyncStatusResultCallback(SyncStatusCode* status_out, |
| - SyncStatusCode status); |
| -void DatabaseCreateResultCallback(SyncStatusCode* status_out, |
| - scoped_ptr<MetadataDatabase>* database_out, |
| - SyncStatusCode status, |
| - scoped_ptr<MetadataDatabase> database); |
| -void ResourceEntryResultCallback( |
| - google_apis::GDataErrorCode* error_out, |
| - scoped_ptr<google_apis::ResourceEntry>* entry_out, |
| - google_apis::GDataErrorCode error, |
| - scoped_ptr<google_apis::ResourceEntry> entry); |
| +template <typename Arg> |
| +void ReceiveResult1(bool* done, Arg* arg_out, Arg arg) { |
| + EXPECT_FALSE(*done); |
| + *done = true; |
| + *arg_out = base::internal::CallbackForward(arg); |
| +} |
| + |
| +template <typename Arg1, typename Arg2> |
| +void ReceiveResult2(bool* done, |
| + Arg1* arg1_out, |
| + Arg2* arg2_out, |
| + Arg1 arg1, |
| + Arg2 arg2) { |
| + EXPECT_FALSE(*done); |
| + *done = true; |
| + *arg1_out = base::internal::CallbackForward(arg1); |
| + *arg2_out = base::internal::CallbackForward(arg2); |
| +} |
| + |
| +template <typename Arg> |
| +base::Callback<void(Arg)> CreateResultReceiver(Arg* arg_out) { |
| + return base::Bind(&ReceiveResult1<Arg>, |
| + base::Owned(new bool(false)), arg_out); |
| +} |
| + |
| + |
| +template <typename Arg1, typename Arg2> |
| +base::Callback<void(Arg1, Arg2)> CreateResultReceiver(Arg1* arg1_out, |
| + Arg2* arg2_out) { |
| + return base::Bind(&ReceiveResult2<Arg1, Arg2>, |
| + base::Owned(new bool(false)), |
| + arg1_out, arg2_out); |
|
kinuko
2013/09/18 07:22:24
Can we have these helpers in c/b/sync_file_system/
tzik
2013/09/18 07:53:45
Done.
|
| +} |
| } // namespace test_util |
| } // namespace drive_backend |