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

Unified Diff: media/base/callback_util_unittest.cc

Issue 11359100: Add RunCallback to invoke a callback parameter in unittests. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix typo Created 8 years, 1 month 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 side-by-side diff with in-line comments
Download patch
Index: media/base/callback_util_unittest.cc
diff --git a/media/base/callback_util_unittest.cc b/media/base/callback_util_unittest.cc
new file mode 100644
index 0000000000000000000000000000000000000000..5d7373a0b18ec50d30018a2b5d53a009ad3816d1
--- /dev/null
+++ b/media/base/callback_util_unittest.cc
@@ -0,0 +1,84 @@
+// Copyright (c) 2012 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 "media/base/callback_util.h"
+
+#include "base/bind.h"
+#include "base/callback.h"
+#include "testing/gmock/include/gmock/gmock.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+using testing::ByRef;
+using testing::MockFunction;
+
+namespace media {
+
+typedef base::Callback<void(const bool& src, bool* dst)> TestCallback;
+
+void SetBool(const bool& src, bool* dst) {
+ *dst = src;
+}
+
+TEST(CallbackUtilTest, IsNullCallback) {
+ MockFunction<void(const TestCallback&)> check;
+ EXPECT_CALL(check, Call(IsNullCallback()));
+ check.Call(TestCallback());
+}
+
+TEST(CallbackUtilTest, IsNotNullCallback) {
+ MockFunction<void(const TestCallback&)> check;
+ EXPECT_CALL(check, Call(IsNotNullCallback()));
+ check.Call(base::Bind(&SetBool));
+}
+
+TEST(CallbackUtilTest, RunClosure) {
+ MockFunction<void(const base::Closure&)> check;
+ bool dst = false;
+ EXPECT_CALL(check, Call(IsNotNullCallback()))
+ .WillOnce(RunClosure<0>());
+ check.Call(base::Bind(&SetBool, true, &dst));
+ EXPECT_TRUE(dst);
+}
+
+TEST(CallbackUtilTest, RunCallback0) {
+ MockFunction<void(const TestCallback&)> check;
+ bool dst = false;
+ EXPECT_CALL(check, Call(IsNotNullCallback()))
+ .WillOnce(RunCallback<0>(true, &dst));
+ check.Call(base::Bind(&SetBool));
+ EXPECT_TRUE(dst);
+}
+
+TEST(CallbackUtilTest, RunCallback1) {
+ MockFunction<void(int, const TestCallback&)> check;
+ bool dst = false;
+ EXPECT_CALL(check, Call(0, IsNotNullCallback()))
+ .WillOnce(RunCallback<1>(true, &dst));
+ check.Call(0, base::Bind(&SetBool));
+ EXPECT_TRUE(dst);
+}
+
+TEST(CallbackUtilTest, RunCallbackPassByRef) {
+ MockFunction<void(const TestCallback&)> check;
+ bool dst = false;
+ bool src = false;
+ EXPECT_CALL(check, Call(IsNotNullCallback()))
+ .WillOnce(RunCallback<0>(ByRef(src), &dst));
+ src = true;
+ check.Call(base::Bind(&SetBool));
+ EXPECT_TRUE(dst);
+}
+
+TEST(CallbackUtilTest, RunCallbackPassByValue) {
+ MockFunction<void(const TestCallback&)> check;
+ bool dst = false;
+ bool src = true;
+ EXPECT_CALL(check, Call(IsNotNullCallback()))
+ .WillOnce(RunCallback<0>(src, &dst));
+ src = false;
+ check.Call(base::Bind(&SetBool));
+ EXPECT_TRUE(dst);
+}
+
+} // namespace media

Powered by Google App Engine
This is Rietveld 408576698