blob: 3ef2d7543540464ddefc06c14d9726078d18a2b0 [file] [log] [blame]
[email protected]ac4c6682012-01-04 00:57:391// Copyright (c) 2012 The Chromium Authors. All rights reserved.
[email protected]0384f842010-12-16 19:55:092// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
[email protected]c6944272012-01-06 22:12:285#include "base/bind_helpers.h"
6
7#include "base/callback.h"
[email protected]0b5266d2011-10-04 15:28:038#include "base/bind.h"
[email protected]0384f842010-12-16 19:55:099#include "testing/gtest/include/gtest/gtest.h"
10
11namespace {
12
[email protected]0b5266d2011-10-04 15:28:0313void Increment(int* value) {
14 (*value)++;
15}
16
[email protected]c6944272012-01-06 22:12:2817TEST(BindHelpersTest, TestScopedClosureRunnerExitScope) {
[email protected]0b5266d2011-10-04 15:28:0318 int run_count = 0;
19 {
[email protected]7296f2762011-11-21 19:23:4420 base::ScopedClosureRunner runner(base::Bind(&Increment, &run_count));
[email protected]0b5266d2011-10-04 15:28:0321 EXPECT_EQ(0, run_count);
22 }
23 EXPECT_EQ(1, run_count);
24}
25
[email protected]c6944272012-01-06 22:12:2826TEST(BindHelpersTest, TestScopedClosureRunnerRelease) {
[email protected]0b5266d2011-10-04 15:28:0327 int run_count = 0;
28 base::Closure c;
29 {
[email protected]7296f2762011-11-21 19:23:4430 base::ScopedClosureRunner runner(base::Bind(&Increment, &run_count));
[email protected]0b5266d2011-10-04 15:28:0331 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]0384f842010-12-16 19:55:0939} // namespace