| Index: base/callback_unittest.cc
|
| ===================================================================
|
| --- base/callback_unittest.cc (revision 114494)
|
| +++ base/callback_unittest.cc (working copy)
|
| @@ -9,7 +9,6 @@
|
| #include "testing/gtest/include/gtest/gtest.h"
|
|
|
| namespace base {
|
| -
|
| namespace {
|
|
|
| class HelperObject {
|
| @@ -27,41 +26,19 @@
|
| static void Run(internal::BindStateBase*) {
|
| }
|
| };
|
| -} // namespace
|
|
|
| -namespace internal {
|
| -template <typename Runnable, typename RunType, typename BoundArgsType>
|
| -struct BindState;
|
| -
|
| // White-box testpoints to inject into a Callback<> object for checking
|
| -// comparators and emptiness APIs. Use a BindState that is specialized
|
| -// based on a type we declared in the anonymous namespace above to remove any
|
| -// chance of colliding with another instantiation and breaking the
|
| -// one-definition-rule.
|
| -template <>
|
| -struct BindState<void(void), void(void), void(FakeInvoker)>
|
| - : public BindStateBase {
|
| +// comparators and emptiness APIs.
|
| +class FakeBindState1 : public internal::BindStateBase {
|
| public:
|
| typedef FakeInvoker InvokerType;
|
| };
|
|
|
| -template <>
|
| -struct BindState<void(void), void(void),
|
| - void(FakeInvoker, FakeInvoker)>
|
| - : public BindStateBase {
|
| +class FakeBindState2 : public internal::BindStateBase {
|
| public:
|
| typedef FakeInvoker InvokerType;
|
| };
|
| -} // namespace internal
|
|
|
| -namespace {
|
| -
|
| -typedef internal::BindState<void(void), void(void), void(FakeInvoker)>
|
| - FakeBindState1;
|
| -typedef internal::BindState<void(void), void(void),
|
| - void(FakeInvoker, FakeInvoker)>
|
| - FakeBindState2;
|
| -
|
| TEST(CallbackOld, OneArg) {
|
| HelperObject obj;
|
| scoped_ptr<Callback1<int*>::Type> callback(
|
| @@ -83,8 +60,8 @@
|
| class CallbackTest : public ::testing::Test {
|
| public:
|
| CallbackTest()
|
| - : callback_a_(new FakeBindState1()),
|
| - callback_b_(new FakeBindState2()) {
|
| + : callback_a_(MakeBindStateHolder(new FakeBindState1())),
|
| + callback_b_(MakeBindStateHolder(new FakeBindState2())) {
|
| }
|
|
|
| virtual ~CallbackTest() {
|
| @@ -128,7 +105,8 @@
|
| EXPECT_FALSE(callback_b_.Equals(callback_a_));
|
|
|
| // We should compare based on instance, not type.
|
| - Callback<void(void)> callback_c(new FakeBindState1());
|
| + Callback<void(void)> callback_c(
|
| + MakeBindStateHolder(new FakeBindState1()));
|
| Callback<void(void)> callback_a2 = callback_a_;
|
| EXPECT_TRUE(callback_a_.Equals(callback_a2));
|
| EXPECT_FALSE(callback_a_.Equals(callback_c));
|
|
|