OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "base/callback_helpers.h" | 5 #include "base/callback_helpers.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/callback.h" | 8 #include "base/callback.h" |
9 #include "testing/gtest/include/gtest/gtest.h" | 9 #include "testing/gtest/include/gtest/gtest.h" |
10 | 10 |
11 namespace { | 11 namespace { |
12 | 12 |
13 void Increment(int* value) { | 13 void Increment(int* value) { |
14 (*value)++; | 14 (*value)++; |
15 } | 15 } |
16 | 16 |
| 17 TEST(CallbackHelpersTest, TestResetAndReturn) { |
| 18 int run_count = 0; |
| 19 |
| 20 base::Closure cb = base::Bind(&Increment, &run_count); |
| 21 EXPECT_EQ(0, run_count); |
| 22 base::ResetAndReturn(&cb).Run(); |
| 23 EXPECT_EQ(1, run_count); |
| 24 EXPECT_FALSE(cb); |
| 25 |
| 26 run_count = 0; |
| 27 |
| 28 base::OnceClosure cb2 = base::BindOnce(&Increment, &run_count); |
| 29 EXPECT_EQ(0, run_count); |
| 30 base::ResetAndReturn(&cb2).Run(); |
| 31 EXPECT_EQ(1, run_count); |
| 32 EXPECT_FALSE(cb2); |
| 33 } |
| 34 |
17 TEST(CallbackHelpersTest, TestScopedClosureRunnerExitScope) { | 35 TEST(CallbackHelpersTest, TestScopedClosureRunnerExitScope) { |
18 int run_count = 0; | 36 int run_count = 0; |
19 { | 37 { |
20 base::ScopedClosureRunner runner(base::Bind(&Increment, &run_count)); | 38 base::ScopedClosureRunner runner(base::Bind(&Increment, &run_count)); |
21 EXPECT_EQ(0, run_count); | 39 EXPECT_EQ(0, run_count); |
22 } | 40 } |
23 EXPECT_EQ(1, run_count); | 41 EXPECT_EQ(1, run_count); |
24 } | 42 } |
25 | 43 |
26 TEST(CallbackHelpersTest, TestScopedClosureRunnerRelease) { | 44 TEST(CallbackHelpersTest, TestScopedClosureRunnerRelease) { |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
85 EXPECT_EQ(0, run_count_2); | 103 EXPECT_EQ(0, run_count_2); |
86 } | 104 } |
87 EXPECT_EQ(0, run_count_1); | 105 EXPECT_EQ(0, run_count_1); |
88 EXPECT_EQ(0, run_count_2); | 106 EXPECT_EQ(0, run_count_2); |
89 } | 107 } |
90 EXPECT_EQ(0, run_count_1); | 108 EXPECT_EQ(0, run_count_1); |
91 EXPECT_EQ(1, run_count_2); | 109 EXPECT_EQ(1, run_count_2); |
92 } | 110 } |
93 | 111 |
94 } // namespace | 112 } // namespace |
OLD | NEW |