[email protected] | ac4c668 | 2012-01-04 00:57:39 | [diff] [blame] | 1 | // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
[email protected] | 0384f84 | 2010-12-16 19:55:09 | [diff] [blame] | 2 | // Use of this source code is governed by a BSD-style license that can be |
3 | // found in the LICENSE file. | ||||
4 | |||||
[email protected] | c694427 | 2012-01-06 22:12:28 | [diff] [blame] | 5 | #include "base/bind_helpers.h" |
6 | |||||
7 | #include "base/callback.h" | ||||
[email protected] | 0b5266d | 2011-10-04 15:28:03 | [diff] [blame] | 8 | #include "base/bind.h" |
[email protected] | 0384f84 | 2010-12-16 19:55:09 | [diff] [blame] | 9 | #include "testing/gtest/include/gtest/gtest.h" |
10 | |||||
11 | namespace { | ||||
12 | |||||
[email protected] | 0b5266d | 2011-10-04 15:28:03 | [diff] [blame] | 13 | void Increment(int* value) { |
14 | (*value)++; | ||||
15 | } | ||||
16 | |||||
[email protected] | c694427 | 2012-01-06 22:12:28 | [diff] [blame] | 17 | TEST(BindHelpersTest, TestScopedClosureRunnerExitScope) { |
[email protected] | 0b5266d | 2011-10-04 15:28:03 | [diff] [blame] | 18 | int run_count = 0; |
19 | { | ||||
[email protected] | 7296f276 | 2011-11-21 19:23:44 | [diff] [blame] | 20 | base::ScopedClosureRunner runner(base::Bind(&Increment, &run_count)); |
[email protected] | 0b5266d | 2011-10-04 15:28:03 | [diff] [blame] | 21 | EXPECT_EQ(0, run_count); |
22 | } | ||||
23 | EXPECT_EQ(1, run_count); | ||||
24 | } | ||||
25 | |||||
[email protected] | c694427 | 2012-01-06 22:12:28 | [diff] [blame] | 26 | TEST(BindHelpersTest, TestScopedClosureRunnerRelease) { |
[email protected] | 0b5266d | 2011-10-04 15:28:03 | [diff] [blame] | 27 | int run_count = 0; |
28 | base::Closure c; | ||||
29 | { | ||||
[email protected] | 7296f276 | 2011-11-21 19:23:44 | [diff] [blame] | 30 | base::ScopedClosureRunner runner(base::Bind(&Increment, &run_count)); |
[email protected] | 0b5266d | 2011-10-04 15:28:03 | [diff] [blame] | 31 | c = runner.Release(); |
32 | EXPECT_EQ(0, run_count); | ||||
33 | } | ||||
34 | EXPECT_EQ(0, run_count); | ||||
35 | c.Run(); | ||||
36 | EXPECT_EQ(1, run_count); | ||||
37 | } | ||||
38 | |||||
[email protected] | 0384f84 | 2010-12-16 19:55:09 | [diff] [blame] | 39 | } // namespace |