Index: base/task_unittest.cc |
diff --git a/base/task_unittest.cc b/base/task_unittest.cc |
index 25c201d267b801c0008c2a3074b4fd84755fc253..d6f537738bd7c4c8310113f48f790f9d07917f5d 100644 |
--- a/base/task_unittest.cc |
+++ b/base/task_unittest.cc |
@@ -49,4 +49,58 @@ TEST(TaskTest, TestCancelInDestructor) { |
delete cancelable_task; |
} |
+class DoneTask : public Task { |
+ public: |
+ DoneTask(int* run_count, bool* was_deleted) |
+ : run_count_(run_count), was_deleted_(was_deleted) {} |
awong
2011/05/26 19:01:01
Since you had to break for the initializer list, t
Wez
2011/05/26 20:53:46
Done.
|
+ ~DoneTask() { |
awong
2011/05/26 19:01:01
virtual
Wez
2011/05/26 20:53:46
Done.
|
+ *was_deleted_ = true; |
+ } |
+ |
+ virtual void Run() { |
+ ++(*run_count_); |
+ } |
+ |
+ int* run_count_; |
+ bool* was_deleted_; |
+}; |
+ |
+TEST(TaskTest, TestScopedTaskRunnerExitScope) { |
+ int run_count = 0; |
+ bool was_deleted = false; |
+ { |
+ base::ScopedTaskRunner runner(new DoneTask(&run_count, &was_deleted)); |
+ } |
+ ASSERT_EQ(1, run_count); |
awong
2011/05/26 19:01:01
Use EXPECT_* not ASSERT_* here and in the other ne
Wez
2011/05/26 20:53:46
Done.
|
+ ASSERT_EQ(true, was_deleted); |
awong
2011/05/26 19:01:01
_TRUE, not _EQ
Wez
2011/05/26 20:53:46
Done.
|
+} |
+ |
+TEST(TaskTest, TestScopedTaskRunnerRelease) { |
+ int run_count = 0; |
+ bool was_deleted = false; |
+ { |
+ base::ScopedTaskRunner runner(new DoneTask(&run_count, &was_deleted)); |
+ delete runner.Release(); |
+ ASSERT_EQ(true, was_deleted); |
awong
2011/05/26 19:01:01
ASSERT_TRUE
Wez
2011/05/26 20:53:46
Done.
|
+ } |
+ ASSERT_EQ(0, run_count); |
+} |
+ |
+TEST(TaskTest, TestScopedTaskRunnerManualRun) { |
+ int run_count = 0; |
+ Task* done_task = NULL; |
+ bool was_deleted = false; |
+ { |
+ base::ScopedTaskRunner runner(new DoneTask(&run_count, &was_deleted)); |
+ done_task = runner.Release(); |
+ ASSERT_TRUE(NULL != done_task); |
awong
2011/05/26 19:01:01
ASSERT_EQ?
Wez
2011/05/26 20:53:46
Would need to be ASSERT_NE(), which gets confused
|
+ ASSERT_EQ(false, was_deleted); |
+ done_task->Run(); |
+ ASSERT_EQ(false, was_deleted); |
+ } |
+ ASSERT_EQ(1, run_count); |
+ delete done_task; |
+ ASSERT_EQ(true, was_deleted); |
+} |
+ |
} // namespace |