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 |