Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(48)

Side by Side Diff: base/callback_unittest.cc

Issue 6538045: Callback: Replumb the type-inference. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/base
Patch Set: rebased Created 9 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « base/callback.h.pump ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 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.h" 5 #include "base/callback.h"
6 #include "base/callback_internal.h" 6 #include "base/callback_internal.h"
7 #include "base/scoped_ptr.h" 7 #include "base/scoped_ptr.h"
8 8
9 #include "testing/gtest/include/gtest/gtest.h" 9 #include "testing/gtest/include/gtest/gtest.h"
10 10
11 namespace base { 11 namespace base {
12 namespace { 12 namespace {
13 13
14 class HelperObject { 14 class HelperObject {
15 public: 15 public:
16 HelperObject() : next_number_(0) { } 16 HelperObject() : next_number_(0) { }
17 int GetNextNumber() { return ++next_number_; } 17 int GetNextNumber() { return ++next_number_; }
18 void GetNextNumberArg(int* number) { *number = GetNextNumber(); } 18 void GetNextNumberArg(int* number) { *number = GetNextNumber(); }
19 19
20 private: 20 private:
21 int next_number_; 21 int next_number_;
22 }; 22 };
23 23
24 struct FakeTraits { 24 struct FakeInvoker {
25 static void DoInvoke(internal::InvokerStorageBase*) { 25 static void DoInvoke(internal::InvokerStorageBase*) {
26 } 26 }
27 }; 27 };
28 28
29 // White-box testpoints to inject into a Callback<> object for checking 29 // White-box testpoints to inject into a Callback<> object for checking
30 // comparators and emptiness APIs. 30 // comparators and emptiness APIs.
31 class FakeInvokerStorage1 : public internal::InvokerStorageBase { 31 class FakeInvokerStorage1 : public internal::InvokerStorageBase {
32 public: 32 public:
33 typedef FakeTraits FunctionTraits; 33 typedef FakeInvoker Invoker;
34 }; 34 };
35 35
36 class FakeInvokerStorage2 : public internal::InvokerStorageBase { 36 class FakeInvokerStorage2 : public internal::InvokerStorageBase {
37 public: 37 public:
38 typedef FakeTraits FunctionTraits; 38 typedef FakeInvoker Invoker;
39 }; 39 };
40 40
41 TEST(CallbackOld, OneArg) { 41 TEST(CallbackOld, OneArg) {
42 HelperObject obj; 42 HelperObject obj;
43 scoped_ptr<Callback1<int*>::Type> callback( 43 scoped_ptr<Callback1<int*>::Type> callback(
44 NewCallback(&obj, &HelperObject::GetNextNumberArg)); 44 NewCallback(&obj, &HelperObject::GetNextNumberArg));
45 45
46 int number = 0; 46 int number = 0;
47 callback->Run(&number); 47 callback->Run(&number);
48 EXPECT_EQ(number, 1); 48 EXPECT_EQ(number, 1);
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
121 ASSERT_FALSE(callback_a_.Equals(null_callback_)); 121 ASSERT_FALSE(callback_a_.Equals(null_callback_));
122 122
123 callback_a_.Reset(); 123 callback_a_.Reset();
124 124
125 EXPECT_TRUE(callback_a_.is_null()); 125 EXPECT_TRUE(callback_a_.is_null());
126 EXPECT_TRUE(callback_a_.Equals(null_callback_)); 126 EXPECT_TRUE(callback_a_.Equals(null_callback_));
127 } 127 }
128 128
129 } // namespace 129 } // namespace
130 } // namespace base 130 } // namespace base
OLDNEW
« no previous file with comments | « base/callback.h.pump ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698