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 3 // found in the LICENSE file. 4 5 #include "base/scoped_ptr.h" 6 #include "base/task.h" 7 8 #include "testing/gtest/include/gtest/gtest.h" 9 10 namespace { 11 12 class HelperObject { 13 public: HelperObject()14 HelperObject() : next_number_(0) { } GetNextNumber()15 int GetNextNumber() { return ++next_number_; } GetNextNumberArg(int * number)16 void GetNextNumberArg(int* number) { *number = GetNextNumber(); } 17 18 private: 19 int next_number_; 20 }; 21 22 } // namespace 23 TEST(Task,OneArg)24TEST(Task, OneArg) { 25 HelperObject obj; 26 scoped_ptr<Callback1<int*>::Type> callback( 27 NewCallback(&obj, &HelperObject::GetNextNumberArg)); 28 29 int number = 0; 30 callback->Run(&number); 31 EXPECT_EQ(number, 1); 32 } 33 TEST(Task,ReturnValue)34TEST(Task, ReturnValue) { 35 HelperObject obj; 36 scoped_ptr<CallbackWithReturnValue<int>::Type> callback( 37 NewCallbackWithReturnValue(&obj, &HelperObject::GetNextNumber)); 38 39 EXPECT_EQ(callback->Run(), 1); 40 } 41