Chromium Code Reviews| Index: base/task_runner_util_unittest.cc |
| diff --git a/base/task_runner_util_unittest.cc b/base/task_runner_util_unittest.cc |
| index 4c5882629f44d9aafa5c6a6da254a604b9891d60..0d1c86cf822623be70a5126940b0a7a728c78cf2 100644 |
| --- a/base/task_runner_util_unittest.cc |
| +++ b/base/task_runner_util_unittest.cc |
| @@ -20,9 +20,28 @@ void StoreValue(int* destination, int value) { |
| *destination = value; |
| } |
| +int g_foo_destruct_count = 0; |
| + |
| +struct Foo { |
| + ~Foo() { |
| + ++g_foo_destruct_count; |
| + } |
| +}; |
| + |
| +scoped_ptr<Foo> CreateFoo() { |
| + return scoped_ptr<Foo>(new Foo); |
| +} |
| + |
| +void ExpectFoo(scoped_ptr<Foo> foo) { |
| + EXPECT_TRUE(foo.get()); |
| + scoped_ptr<Foo> local_foo(foo.Pass()); |
| + EXPECT_TRUE(local_foo.get()); |
| + EXPECT_FALSE(foo.get()); |
| +} |
| + |
| } // namespace |
| -TEST(TaskRunnerHelpersTest, PostAndReplyWithStatus) { |
| +TEST(TaskRunnerHelpersTest, PostTaskAndReplyWithResult) { |
| MessageLoop message_loop; |
| int result = 0; |
| @@ -37,4 +56,20 @@ TEST(TaskRunnerHelpersTest, PostAndReplyWithStatus) { |
| EXPECT_EQ(42, result); |
| } |
| +TEST(TaskRunnerHelpersTest, PostTaskAndReplyWithResultPassed) { |
| + g_foo_destruct_count = 0; |
| + |
| + MessageLoop message_loop; |
| + |
| + PostTaskAndReplyWithResult( |
| + message_loop.message_loop_proxy(), |
| + FROM_HERE, |
| + Bind(&CreateFoo), |
| + Bind(&ExpectFoo)); |
| + |
| + message_loop.RunAllPending(); |
| + |
| + EXPECT_EQ(g_foo_destruct_count, 1); |
|
willchan no longer on Chromium
2012/05/03 03:28:44
(expected, actual)
|
| +} |
| + |
| } // namespace base |