| Index: media/base/gmock_callback_support_unittest.cc
|
| diff --git a/media/base/gmock_callback_support_unittest.cc b/media/base/gmock_callback_support_unittest.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..fb1beb9870d8de05ecf50dcc44a360b659087a7d
|
| --- /dev/null
|
| +++ b/media/base/gmock_callback_support_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/gmock_callback_support.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(GmockCallbackSupportTest, IsNullCallback) {
|
| + MockFunction<void(const TestCallback&)> check;
|
| + EXPECT_CALL(check, Call(IsNullCallback()));
|
| + check.Call(TestCallback());
|
| +}
|
| +
|
| +TEST(GmockCallbackSupportTest, IsNotNullCallback) {
|
| + MockFunction<void(const TestCallback&)> check;
|
| + EXPECT_CALL(check, Call(IsNotNullCallback()));
|
| + check.Call(base::Bind(&SetBool));
|
| +}
|
| +
|
| +TEST(GmockCallbackSupportTest, 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(GmockCallbackSupportTest, 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(GmockCallbackSupportTest, 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(GmockCallbackSupportTest, 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(GmockCallbackSupportTest, 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
|
|
|