Chromium Code Reviews| 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 |