Revert 224458 "Enabling MediaStreamInfoBarTest.DenyingCameraDoes..."
[chromium-blink-merge.git] / base / mac / bind_objc_block_unittest.mm
bloba4bcd76dbb8c33d05b460e3b451dded5e1b4b49a
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #import "base/mac/bind_objc_block.h"
7 #include "base/callback.h"
8 #include "base/bind.h"
9 #include "base/callback_helpers.h"
10 #include "testing/gtest/include/gtest/gtest.h"
12 namespace {
14 TEST(BindObjcBlockTest, TestScopedClosureRunnerExitScope) {
15   int run_count = 0;
16   int* ptr = &run_count;
17   {
18     base::ScopedClosureRunner runner(base::BindBlock(^{
19         (*ptr)++;
20     }));
21     EXPECT_EQ(0, run_count);
22   }
23   EXPECT_EQ(1, run_count);
26 TEST(BindObjcBlockTest, TestScopedClosureRunnerRelease) {
27   int run_count = 0;
28   int* ptr = &run_count;
29   base::Closure c;
30   {
31     base::ScopedClosureRunner runner(base::BindBlock(^{
32         (*ptr)++;
33     }));
34     c = runner.Release();
35     EXPECT_EQ(0, run_count);
36   }
37   EXPECT_EQ(0, run_count);
38   c.Run();
39   EXPECT_EQ(1, run_count);
42 TEST(BindObjcBlockTest, TestReturnValue) {
43   const int kReturnValue = 42;
44   base::Callback<int(void)> c = base::BindBlock(^{return kReturnValue;});
45   EXPECT_EQ(kReturnValue, c.Run());
48 TEST(BindObjcBlockTest, TestArgument) {
49   const int kArgument = 42;
50   base::Callback<int(int)> c = base::BindBlock(^(int a){return a + 1;});
51   EXPECT_EQ(kArgument + 1, c.Run(kArgument));
54 }  // namespace