sync_file_system_test_util.cc revision 2385ea399aae016c0806a4f9ef3c9cfe3d2a39df
1// Copyright (c) 2012 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "chrome/browser/sync_file_system/sync_file_system_test_util.h"
6
7#include "base/bind.h"
8#include "base/message_loop/message_loop_proxy.h"
9#include "base/run_loop.h"
10#include "base/single_thread_task_runner.h"
11#include "base/threading/thread.h"
12#include "chrome/browser/sync_file_system/sync_status_code.h"
13#include "content/public/browser/browser_thread.h"
14#include "content/public/test/test_utils.h"
15
16using content::BrowserThread;
17
18namespace sync_file_system {
19
20template <typename R>
21void AssignAndQuit(base::RunLoop* run_loop, R* result_out, R result) {
22  DCHECK(result_out);
23  DCHECK(run_loop);
24  *result_out = result;
25  run_loop->Quit();
26}
27
28template <typename R> base::Callback<void(R)>
29AssignAndQuitCallback(base::RunLoop* run_loop, R* result) {
30  return base::Bind(&AssignAndQuit<R>, run_loop, base::Unretained(result));
31}
32
33// Instantiate versions we know callers will need.
34template base::Callback<void(SyncStatusCode)>
35AssignAndQuitCallback(base::RunLoop*, SyncStatusCode*);
36
37}  // namespace sync_file_system
38