diff options
author | jam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-07-17 18:14:47 +0000 |
---|---|---|
committer | jam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-07-17 18:14:47 +0000 |
commit | 5b6c1a80d09f250f66070dba8dd8a05d38e74db2 (patch) | |
tree | 8bff607411dc0400581dd304c911b59ff80737df /base/task_unittest.cc | |
parent | 04edc039a2f882ddc551265e51447cbd49e91211 (diff) | |
download | chromium_src-5b6c1a80d09f250f66070dba8dd8a05d38e74db2.zip chromium_src-5b6c1a80d09f250f66070dba8dd8a05d38e74db2.tar.gz chromium_src-5b6c1a80d09f250f66070dba8dd8a05d38e74db2.tar.bz2 |
Add a CallbackWithReturnValue as a convenient method of calling callback functions with no arguments and a return value. This is useful in calling all of the getters we have in the code, instead of creating wrapper functions that take a pointer argument.
Review URL: http://codereview.chromium.org/155630
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@20975 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/task_unittest.cc')
-rw-r--r-- | base/task_unittest.cc | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/base/task_unittest.cc b/base/task_unittest.cc new file mode 100644 index 0000000..1fa7c9d --- /dev/null +++ b/base/task_unittest.cc @@ -0,0 +1,40 @@ +// Copyright (c) 2009 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "base/scoped_ptr.h" +#include "base/task.h" + +#include "testing/gtest/include/gtest/gtest.h" + +namespace { + +class HelperObject { + public: + HelperObject() : next_number_(0) { } + int GetNextNumber() { return ++next_number_; } + void GetNextNumberArg(int* number) { *number = GetNextNumber(); } + + private: + int next_number_; +}; + +} // namespace + +TEST(Task, OneArg) { + HelperObject obj; + scoped_ptr<Callback1<int*>::Type> callback( + NewCallback(&obj, &HelperObject::GetNextNumberArg)); + + int number = 0; + callback->Run(&number); + EXPECT_EQ(number, 1); +} + +TEST(Task, ReturnValue) { + HelperObject obj; + scoped_ptr<CallbackWithReturnValue<int>::Type> callback( + NewCallbackWithReturnValue(&obj, &HelperObject::GetNextNumber)); + + EXPECT_EQ(callback->Run(), 1); +} |