|  | // This file was GENERATED by command: | 
|  | //     pump.py mock_callback.h.pump | 
|  | // DO NOT EDIT BY HAND!!! | 
|  |  | 
|  | // Copyright 2017 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. | 
|  |  | 
|  | // Analogous to GMock's built-in MockFunction, but for base::Callback instead of | 
|  | // std::function. It takes the full callback type as a parameter, so that it can | 
|  | // support both OnceCallback and RepeatingCallback. | 
|  | // | 
|  | // Use: | 
|  | //   using FooCallback = base::Callback<int(std::string)>; | 
|  | // | 
|  | //   TEST(FooTest, RunsCallbackWithBarArgument) { | 
|  | //     base::MockCallback<FooCallback> callback; | 
|  | //     EXPECT_CALL(callback, Run("bar")).WillOnce(Return(1)); | 
|  | //     Foo(callback.Get()); | 
|  | //   } | 
|  | // | 
|  | // Can be used with StrictMock and NiceMock. Caller must ensure that it outlives | 
|  | // any base::Callback obtained from it. | 
|  |  | 
|  | #ifndef BASE_TEST_MOCK_CALLBACK_H_ | 
|  | #define BASE_TEST_MOCK_CALLBACK_H_ | 
|  |  | 
|  | #include "base/bind.h" | 
|  | #include "base/callback.h" | 
|  | #include "base/macros.h" | 
|  | #include "testing/gmock/include/gmock/gmock.h" | 
|  |  | 
|  | namespace base { | 
|  |  | 
|  | // clang-format off | 
|  |  | 
|  | template <typename F> | 
|  | class MockCallback; | 
|  |  | 
|  | template <typename R> | 
|  | class MockCallback<Callback<R()>> { | 
|  | public: | 
|  | MockCallback() = default; | 
|  | MOCK_METHOD0_T(Run, R()); | 
|  |  | 
|  | Callback<R()> Get() { | 
|  | return Bind(&MockCallback::Run, Unretained(this)); | 
|  | } | 
|  |  | 
|  | private: | 
|  | DISALLOW_COPY_AND_ASSIGN(MockCallback); | 
|  | }; | 
|  |  | 
|  | template <typename R> | 
|  | class MockCallback<OnceCallback<R()>> { | 
|  | public: | 
|  | MockCallback() = default; | 
|  | MOCK_METHOD0_T(Run, R()); | 
|  |  | 
|  | OnceCallback<R()> Get() { | 
|  | return BindOnce(&MockCallback::Run, Unretained(this)); | 
|  | } | 
|  |  | 
|  | private: | 
|  | DISALLOW_COPY_AND_ASSIGN(MockCallback); | 
|  | }; | 
|  |  | 
|  | template <typename R, typename A1> | 
|  | class MockCallback<Callback<R(A1)>> { | 
|  | public: | 
|  | MockCallback() = default; | 
|  | MOCK_METHOD1_T(Run, R(A1)); | 
|  |  | 
|  | Callback<R(A1)> Get() { | 
|  | return Bind(&MockCallback::Run, Unretained(this)); | 
|  | } | 
|  |  | 
|  | private: | 
|  | DISALLOW_COPY_AND_ASSIGN(MockCallback); | 
|  | }; | 
|  |  | 
|  | template <typename R, typename A1> | 
|  | class MockCallback<OnceCallback<R(A1)>> { | 
|  | public: | 
|  | MockCallback() = default; | 
|  | MOCK_METHOD1_T(Run, R(A1)); | 
|  |  | 
|  | OnceCallback<R(A1)> Get() { | 
|  | return BindOnce(&MockCallback::Run, Unretained(this)); | 
|  | } | 
|  |  | 
|  | private: | 
|  | DISALLOW_COPY_AND_ASSIGN(MockCallback); | 
|  | }; | 
|  |  | 
|  | template <typename R, typename A1, typename A2> | 
|  | class MockCallback<Callback<R(A1, A2)>> { | 
|  | public: | 
|  | MockCallback() = default; | 
|  | MOCK_METHOD2_T(Run, R(A1, A2)); | 
|  |  | 
|  | Callback<R(A1, A2)> Get() { | 
|  | return Bind(&MockCallback::Run, Unretained(this)); | 
|  | } | 
|  |  | 
|  | private: | 
|  | DISALLOW_COPY_AND_ASSIGN(MockCallback); | 
|  | }; | 
|  |  | 
|  | template <typename R, typename A1, typename A2> | 
|  | class MockCallback<OnceCallback<R(A1, A2)>> { | 
|  | public: | 
|  | MockCallback() = default; | 
|  | MOCK_METHOD2_T(Run, R(A1, A2)); | 
|  |  | 
|  | OnceCallback<R(A1, A2)> Get() { | 
|  | return BindOnce(&MockCallback::Run, Unretained(this)); | 
|  | } | 
|  |  | 
|  | private: | 
|  | DISALLOW_COPY_AND_ASSIGN(MockCallback); | 
|  | }; | 
|  |  | 
|  | template <typename R, typename A1, typename A2, typename A3> | 
|  | class MockCallback<Callback<R(A1, A2, A3)>> { | 
|  | public: | 
|  | MockCallback() = default; | 
|  | MOCK_METHOD3_T(Run, R(A1, A2, A3)); | 
|  |  | 
|  | Callback<R(A1, A2, A3)> Get() { | 
|  | return Bind(&MockCallback::Run, Unretained(this)); | 
|  | } | 
|  |  | 
|  | private: | 
|  | DISALLOW_COPY_AND_ASSIGN(MockCallback); | 
|  | }; | 
|  |  | 
|  | template <typename R, typename A1, typename A2, typename A3> | 
|  | class MockCallback<OnceCallback<R(A1, A2, A3)>> { | 
|  | public: | 
|  | MockCallback() = default; | 
|  | MOCK_METHOD3_T(Run, R(A1, A2, A3)); | 
|  |  | 
|  | OnceCallback<R(A1, A2, A3)> Get() { | 
|  | return BindOnce(&MockCallback::Run, Unretained(this)); | 
|  | } | 
|  |  | 
|  | private: | 
|  | DISALLOW_COPY_AND_ASSIGN(MockCallback); | 
|  | }; | 
|  |  | 
|  | template <typename R, typename A1, typename A2, typename A3, typename A4> | 
|  | class MockCallback<Callback<R(A1, A2, A3, A4)>> { | 
|  | public: | 
|  | MockCallback() = default; | 
|  | MOCK_METHOD4_T(Run, R(A1, A2, A3, A4)); | 
|  |  | 
|  | Callback<R(A1, A2, A3, A4)> Get() { | 
|  | return Bind(&MockCallback::Run, Unretained(this)); | 
|  | } | 
|  |  | 
|  | private: | 
|  | DISALLOW_COPY_AND_ASSIGN(MockCallback); | 
|  | }; | 
|  |  | 
|  | template <typename R, typename A1, typename A2, typename A3, typename A4> | 
|  | class MockCallback<OnceCallback<R(A1, A2, A3, A4)>> { | 
|  | public: | 
|  | MockCallback() = default; | 
|  | MOCK_METHOD4_T(Run, R(A1, A2, A3, A4)); | 
|  |  | 
|  | OnceCallback<R(A1, A2, A3, A4)> Get() { | 
|  | return BindOnce(&MockCallback::Run, Unretained(this)); | 
|  | } | 
|  |  | 
|  | private: | 
|  | DISALLOW_COPY_AND_ASSIGN(MockCallback); | 
|  | }; | 
|  |  | 
|  | template <typename R, typename A1, typename A2, typename A3, typename A4, | 
|  | typename A5> | 
|  | class MockCallback<Callback<R(A1, A2, A3, A4, A5)>> { | 
|  | public: | 
|  | MockCallback() = default; | 
|  | MOCK_METHOD5_T(Run, R(A1, A2, A3, A4, A5)); | 
|  |  | 
|  | Callback<R(A1, A2, A3, A4, A5)> Get() { | 
|  | return Bind(&MockCallback::Run, Unretained(this)); | 
|  | } | 
|  |  | 
|  | private: | 
|  | DISALLOW_COPY_AND_ASSIGN(MockCallback); | 
|  | }; | 
|  |  | 
|  | template <typename R, typename A1, typename A2, typename A3, typename A4, | 
|  | typename A5> | 
|  | class MockCallback<OnceCallback<R(A1, A2, A3, A4, A5)>> { | 
|  | public: | 
|  | MockCallback() = default; | 
|  | MOCK_METHOD5_T(Run, R(A1, A2, A3, A4, A5)); | 
|  |  | 
|  | OnceCallback<R(A1, A2, A3, A4, A5)> Get() { | 
|  | return BindOnce(&MockCallback::Run, Unretained(this)); | 
|  | } | 
|  |  | 
|  | private: | 
|  | DISALLOW_COPY_AND_ASSIGN(MockCallback); | 
|  | }; | 
|  |  | 
|  | template <typename R, typename A1, typename A2, typename A3, typename A4, | 
|  | typename A5, typename A6> | 
|  | class MockCallback<Callback<R(A1, A2, A3, A4, A5, A6)>> { | 
|  | public: | 
|  | MockCallback() = default; | 
|  | MOCK_METHOD6_T(Run, R(A1, A2, A3, A4, A5, A6)); | 
|  |  | 
|  | Callback<R(A1, A2, A3, A4, A5, A6)> Get() { | 
|  | return Bind(&MockCallback::Run, Unretained(this)); | 
|  | } | 
|  |  | 
|  | private: | 
|  | DISALLOW_COPY_AND_ASSIGN(MockCallback); | 
|  | }; | 
|  |  | 
|  | template <typename R, typename A1, typename A2, typename A3, typename A4, | 
|  | typename A5, typename A6> | 
|  | class MockCallback<OnceCallback<R(A1, A2, A3, A4, A5, A6)>> { | 
|  | public: | 
|  | MockCallback() = default; | 
|  | MOCK_METHOD6_T(Run, R(A1, A2, A3, A4, A5, A6)); | 
|  |  | 
|  | OnceCallback<R(A1, A2, A3, A4, A5, A6)> Get() { | 
|  | return BindOnce(&MockCallback::Run, Unretained(this)); | 
|  | } | 
|  |  | 
|  | private: | 
|  | DISALLOW_COPY_AND_ASSIGN(MockCallback); | 
|  | }; | 
|  |  | 
|  | template <typename R, typename A1, typename A2, typename A3, typename A4, | 
|  | typename A5, typename A6, typename A7> | 
|  | class MockCallback<Callback<R(A1, A2, A3, A4, A5, A6, A7)>> { | 
|  | public: | 
|  | MockCallback() = default; | 
|  | MOCK_METHOD7_T(Run, R(A1, A2, A3, A4, A5, A6, A7)); | 
|  |  | 
|  | Callback<R(A1, A2, A3, A4, A5, A6, A7)> Get() { | 
|  | return Bind(&MockCallback::Run, Unretained(this)); | 
|  | } | 
|  |  | 
|  | private: | 
|  | DISALLOW_COPY_AND_ASSIGN(MockCallback); | 
|  | }; | 
|  |  | 
|  | template <typename R, typename A1, typename A2, typename A3, typename A4, | 
|  | typename A5, typename A6, typename A7> | 
|  | class MockCallback<OnceCallback<R(A1, A2, A3, A4, A5, A6, A7)>> { | 
|  | public: | 
|  | MockCallback() = default; | 
|  | MOCK_METHOD7_T(Run, R(A1, A2, A3, A4, A5, A6, A7)); | 
|  |  | 
|  | OnceCallback<R(A1, A2, A3, A4, A5, A6, A7)> Get() { | 
|  | return BindOnce(&MockCallback::Run, Unretained(this)); | 
|  | } | 
|  |  | 
|  | private: | 
|  | DISALLOW_COPY_AND_ASSIGN(MockCallback); | 
|  | }; | 
|  |  | 
|  | template <typename R, typename A1, typename A2, typename A3, typename A4, | 
|  | typename A5, typename A6, typename A7, typename A8> | 
|  | class MockCallback<Callback<R(A1, A2, A3, A4, A5, A6, A7, A8)>> { | 
|  | public: | 
|  | MockCallback() = default; | 
|  | MOCK_METHOD8_T(Run, R(A1, A2, A3, A4, A5, A6, A7, A8)); | 
|  |  | 
|  | Callback<R(A1, A2, A3, A4, A5, A6, A7, A8)> Get() { | 
|  | return Bind(&MockCallback::Run, Unretained(this)); | 
|  | } | 
|  |  | 
|  | private: | 
|  | DISALLOW_COPY_AND_ASSIGN(MockCallback); | 
|  | }; | 
|  |  | 
|  | template <typename R, typename A1, typename A2, typename A3, typename A4, | 
|  | typename A5, typename A6, typename A7, typename A8> | 
|  | class MockCallback<OnceCallback<R(A1, A2, A3, A4, A5, A6, A7, A8)>> { | 
|  | public: | 
|  | MockCallback() = default; | 
|  | MOCK_METHOD8_T(Run, R(A1, A2, A3, A4, A5, A6, A7, A8)); | 
|  |  | 
|  | OnceCallback<R(A1, A2, A3, A4, A5, A6, A7, A8)> Get() { | 
|  | return BindOnce(&MockCallback::Run, Unretained(this)); | 
|  | } | 
|  |  | 
|  | private: | 
|  | DISALLOW_COPY_AND_ASSIGN(MockCallback); | 
|  | }; | 
|  |  | 
|  | template <typename R, typename A1, typename A2, typename A3, typename A4, | 
|  | typename A5, typename A6, typename A7, typename A8, typename A9> | 
|  | class MockCallback<Callback<R(A1, A2, A3, A4, A5, A6, A7, A8, A9)>> { | 
|  | public: | 
|  | MockCallback() = default; | 
|  | MOCK_METHOD9_T(Run, R(A1, A2, A3, A4, A5, A6, A7, A8, A9)); | 
|  |  | 
|  | Callback<R(A1, A2, A3, A4, A5, A6, A7, A8, A9)> Get() { | 
|  | return Bind(&MockCallback::Run, Unretained(this)); | 
|  | } | 
|  |  | 
|  | private: | 
|  | DISALLOW_COPY_AND_ASSIGN(MockCallback); | 
|  | }; | 
|  |  | 
|  | template <typename R, typename A1, typename A2, typename A3, typename A4, | 
|  | typename A5, typename A6, typename A7, typename A8, typename A9> | 
|  | class MockCallback<OnceCallback<R(A1, A2, A3, A4, A5, A6, A7, A8, A9)>> { | 
|  | public: | 
|  | MockCallback() = default; | 
|  | MOCK_METHOD9_T(Run, R(A1, A2, A3, A4, A5, A6, A7, A8, A9)); | 
|  |  | 
|  | OnceCallback<R(A1, A2, A3, A4, A5, A6, A7, A8, A9)> Get() { | 
|  | return BindOnce(&MockCallback::Run, Unretained(this)); | 
|  | } | 
|  |  | 
|  | private: | 
|  | DISALLOW_COPY_AND_ASSIGN(MockCallback); | 
|  | }; | 
|  |  | 
|  | template <typename R, typename A1, typename A2, typename A3, typename A4, | 
|  | typename A5, typename A6, typename A7, typename A8, typename A9, | 
|  | typename A10> | 
|  | class MockCallback<Callback<R(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10)>> { | 
|  | public: | 
|  | MockCallback() = default; | 
|  | MOCK_METHOD10_T(Run, R(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10)); | 
|  |  | 
|  | Callback<R(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10)> Get() { | 
|  | return Bind(&MockCallback::Run, Unretained(this)); | 
|  | } | 
|  |  | 
|  | private: | 
|  | DISALLOW_COPY_AND_ASSIGN(MockCallback); | 
|  | }; | 
|  |  | 
|  | template <typename R, typename A1, typename A2, typename A3, typename A4, | 
|  | typename A5, typename A6, typename A7, typename A8, typename A9, | 
|  | typename A10> | 
|  | class MockCallback<OnceCallback<R(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10)>> { | 
|  | public: | 
|  | MockCallback() = default; | 
|  | MOCK_METHOD10_T(Run, R(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10)); | 
|  |  | 
|  | OnceCallback<R(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10)> Get() { | 
|  | return BindOnce(&MockCallback::Run, Unretained(this)); | 
|  | } | 
|  |  | 
|  | private: | 
|  | DISALLOW_COPY_AND_ASSIGN(MockCallback); | 
|  | }; | 
|  |  | 
|  | // clang-format on | 
|  |  | 
|  | }  // namespace base | 
|  |  | 
|  | #endif  // BASE_TEST_MOCK_CALLBACK_H_ |