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

Unified Diff: chrome/browser/sync_file_system/drive_backend/callback_helper_unittest.cc

Issue 259503004: [SyncFS] Refine callback helpers (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 6 years, 8 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_file_system/drive_backend/callback_helper_unittest.cc
diff --git a/chrome/browser/sync_file_system/drive_backend/callback_helper_unittest.cc b/chrome/browser/sync_file_system/drive_backend/callback_helper_unittest.cc
index 238d24f2f89bbf64f72d02cabb3d093f6c54b756..b6a3984c177428ee047e5da071f025df76632601 100644
--- a/chrome/browser/sync_file_system/drive_backend/callback_helper_unittest.cc
+++ b/chrome/browser/sync_file_system/drive_backend/callback_helper_unittest.cc
@@ -6,6 +6,7 @@
#include "base/message_loop/message_loop.h"
#include "base/run_loop.h"
+#include "base/threading/thread.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace sync_file_system {
@@ -25,19 +26,32 @@ void CallbackWithPassed(bool* called, scoped_ptr<int>) {
*called = true;
}
+void VerifyCalledOnTaskRunner(base::TaskRunner* task_runner,
+ bool* called) {
+ ASSERT_TRUE(called);
+ ASSERT_TRUE(task_runner);
+
+ EXPECT_TRUE(task_runner->RunsTasksOnCurrentThread());
+ EXPECT_FALSE(*called);
+ *called = true;
+}
+
} // namespace
-TEST(DriveBackendCallbackHelperTest, CreateRelayedCallbackTest) {
+TEST(DriveBackendCallbackHelperTest, BasicTest) {
base::MessageLoop message_loop;
bool called = false;
- CreateRelayedCallback(base::Bind(&SimpleCallback, &called)).Run(0);
+ RelayCallbackToCurrentThread(
+ FROM_HERE,
+ base::Bind(&SimpleCallback, &called)).Run(0);
EXPECT_FALSE(called);
base::RunLoop().RunUntilIdle();
EXPECT_TRUE(called);
called = false;
- CreateRelayedCallback(
+ RelayCallbackToCurrentThread(
+ FROM_HERE,
base::Bind(&CallbackWithPassed, &called))
.Run(scoped_ptr<int>(new int));
EXPECT_FALSE(called);
@@ -45,5 +59,34 @@ TEST(DriveBackendCallbackHelperTest, CreateRelayedCallbackTest) {
EXPECT_TRUE(called);
}
+TEST(DriveBackendCallbackHelperTest, RunOnOtherThreadTest) {
+ base::MessageLoop message_loop;
+ base::Thread thread("WorkerThread");
+ thread.Start();
+
+ scoped_refptr<base::MessageLoopProxy> ui_task_runner =
+ base::MessageLoopProxy::current();
+ scoped_refptr<base::MessageLoopProxy> worker_task_runner =
+ thread.message_loop_proxy();
+
+ bool called = false;
+ base::RunLoop run_loop;
+ worker_task_runner->PostTask(
+ FROM_HERE,
+ RelayCallbackToTaskRunner(
+ ui_task_runner, FROM_HERE,
+ base::Bind(&VerifyCalledOnTaskRunner,
+ ui_task_runner, &called)));
+ worker_task_runner->PostTask(
+ FROM_HERE,
+ RelayCallbackToTaskRunner(
+ ui_task_runner, FROM_HERE,
+ run_loop.QuitClosure()));
+ run_loop.Run();
+ EXPECT_TRUE(called);
+
+ thread.Stop();
+}
+
} // namespace drive_backend
} // namespace sync_file_system

Powered by Google App Engine
This is Rietveld 408576698