| Index: base/callback_helpers_unittest.cc
|
| diff --git a/base/callback_helpers_unittest.cc b/base/callback_helpers_unittest.cc
|
| index 3b17a6b754c81d8f4b0a5417b2f266f4026ee657..0e42852f67315b69bdb6e79c93d16c23ff58d448 100644
|
| --- a/base/callback_helpers_unittest.cc
|
| +++ b/base/callback_helpers_unittest.cc
|
| @@ -58,4 +58,47 @@ TEST(BindHelpersTest, TestScopedClosureRunnerReset) {
|
| EXPECT_EQ(1, run_count_3);
|
| }
|
|
|
| +TEST(BindHelpersTest, TestScopedClosureRunnerMoveConstructor) {
|
| + int run_count = 0;
|
| + {
|
| + std::unique_ptr<base::ScopedClosureRunner> runner(
|
| + new base::ScopedClosureRunner(base::Bind(&Increment, &run_count)));
|
| + base::ScopedClosureRunner runner2(std::move(*runner));
|
| + runner.reset();
|
| + EXPECT_EQ(0, run_count);
|
| + }
|
| + EXPECT_EQ(1, run_count);
|
| +}
|
| +
|
| +TEST(BindHelpersTest, TestScopedClosureRunnerMoveAssignment) {
|
| + int run_count = 0;
|
| + {
|
| + base::ScopedClosureRunner runner;
|
| + {
|
| + base::ScopedClosureRunner runner2(base::Bind(&Increment, &run_count));
|
| + runner = std::move(runner2);
|
| + }
|
| + EXPECT_EQ(0, run_count);
|
| + }
|
| + EXPECT_EQ(1, run_count);
|
| +}
|
| +
|
| +TEST(BindHelpersTest, TestScopedClosureRunnerRunOnReplace) {
|
| + int run_count1 = 0;
|
| + int run_count2 = 0;
|
| + {
|
| + base::ScopedClosureRunner runner1(base::Bind(&Increment, &run_count1));
|
| + {
|
| + base::ScopedClosureRunner runner2(base::Bind(&Increment, &run_count2));
|
| + runner1 = std::move(runner2);
|
| + EXPECT_EQ(1, run_count1);
|
| + EXPECT_EQ(0, run_count2);
|
| + }
|
| + EXPECT_EQ(1, run_count1);
|
| + EXPECT_EQ(0, run_count2);
|
| + }
|
| + EXPECT_EQ(1, run_count1);
|
| + EXPECT_EQ(1, run_count2);
|
| +}
|
| +
|
| } // namespace
|
|
|