Chromium Code Reviews| Index: mojo/common/common_custom_types_unittest.cc |
| diff --git a/mojo/common/common_custom_types_unittest.cc b/mojo/common/common_custom_types_unittest.cc |
| index fe6bb5da73a6a22aa1649ccfa678c6ffd91942ae..04ef5fea37b9842fcde50dee3690fcd4712bc536 100644 |
| --- a/mojo/common/common_custom_types_unittest.cc |
| +++ b/mojo/common/common_custom_types_unittest.cc |
| @@ -40,16 +40,37 @@ struct BounceTestTraits<base::ListValue> { |
| }; |
| template <typename T> |
| +struct PassTraits { |
| + using Type = const T&; |
| +}; |
| + |
| +template <> |
| +struct PassTraits<base::Time> { |
| + using Type = base::Time; |
| +}; |
| + |
| +template <> |
| +struct PassTraits<base::TimeDelta> { |
| + using Type = base::TimeDelta; |
| +}; |
| + |
| +template <> |
| +struct PassTraits<base::TimeTicks> { |
| + using Type = base::TimeTicks; |
| +}; |
|
dcheng
2016/07/08 10:19:18
I could make this more clever, but it didn't seem
|
| + |
| +template <typename T> |
| void DoExpectResponse(T* expected_value, |
| const base::Closure& closure, |
| - const T& value) { |
| + typename PassTraits<T>::Type value) { |
| BounceTestTraits<T>::ExpectEquality(*expected_value, value); |
| closure.Run(); |
| } |
| template <typename T> |
| -base::Callback<void(const T&)> ExpectResponse(T* expected_value, |
| - const base::Closure& closure) { |
| +base::Callback<void(typename PassTraits<T>::Type)> ExpectResponse( |
| + T* expected_value, |
| + const base::Closure& closure) { |
| return base::Bind(&DoExpectResponse<T>, expected_value, closure); |
| } |
| @@ -74,18 +95,17 @@ class TestTimeImpl : public TestTime { |
| : binding_(this, std::move(request)) {} |
| // TestTime implementation: |
| - void BounceTime(const base::Time& in, |
| - const BounceTimeCallback& callback) override { |
| + void BounceTime(base::Time in, const BounceTimeCallback& callback) override { |
| callback.Run(in); |
| } |
| - void BounceTimeDelta(const base::TimeDelta& in, |
| - const BounceTimeDeltaCallback& callback) override { |
| + void BounceTimeDelta(base::TimeDelta in, |
| + const BounceTimeDeltaCallback& callback) override { |
| callback.Run(in); |
| } |
| - void BounceTimeTicks(const base::TimeTicks& in, |
| - const BounceTimeTicksCallback& callback) override { |
| + void BounceTimeTicks(base::TimeTicks in, |
| + const BounceTimeTicksCallback& callback) override { |
| callback.Run(in); |
| } |