| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef CC_TEST_BEGIN_FRAME_SOURCE_TEST_H_ | 5 #ifndef CC_TEST_BEGIN_FRAME_SOURCE_TEST_H_ |
| 6 #define CC_TEST_BEGIN_FRAME_SOURCE_TEST_H_ | 6 #define CC_TEST_BEGIN_FRAME_SOURCE_TEST_H_ |
| 7 | 7 |
| 8 #include "base/trace_event/trace_event_argument.h" | 8 #include "base/trace_event/trace_event_argument.h" |
| 9 #include "cc/scheduler/begin_frame_source.h" | 9 #include "cc/scheduler/begin_frame_source.h" |
| 10 #include "cc/test/begin_frame_args_test.h" | 10 #include "cc/test/begin_frame_args_test.h" |
| 11 #include "testing/gmock/include/gmock/gmock.h" | 11 #include "testing/gmock/include/gmock/gmock.h" |
| 12 #include "testing/gtest/include/gtest/gtest.h" | 12 #include "testing/gtest/include/gtest/gtest.h" |
| 13 | 13 |
| 14 // Macros to help set up expected calls on the MockBeginFrameObserver. | 14 // Macros to help set up expected calls on the MockBeginFrameObserver. |
| 15 #define EXPECT_BEGIN_FRAME_DROP(obs, frame_time, deadline, interval) \ | 15 #define EXPECT_BEGIN_FRAME_DROP(obs, source_id, sequence_number, frame_time, \ |
| 16 EXPECT_CALL((obs), \ | 16 deadline, interval) \ |
| 17 OnBeginFrame(CreateBeginFrameArgsForTesting( \ | 17 EXPECT_CALL((obs), OnBeginFrame(CreateBeginFrameArgsForTesting( \ |
| 18 BEGINFRAME_FROM_HERE, frame_time, deadline, interval))) \ | 18 BEGINFRAME_FROM_HERE, source_id, sequence_number, \ |
| 19 .Times(1) \ | 19 frame_time, deadline, interval))) \ |
| 20 .Times(1) \ |
| 20 .InSequence((obs).sequence) | 21 .InSequence((obs).sequence) |
| 21 | 22 |
| 22 #define EXPECT_BEGIN_FRAME_USED(obs, frame_time, deadline, interval) \ | 23 #define EXPECT_BEGIN_FRAME_USED(obs, source_id, sequence_number, frame_time, \ |
| 23 EXPECT_CALL((obs), \ | 24 deadline, interval) \ |
| 24 OnBeginFrame(CreateBeginFrameArgsForTesting( \ | 25 EXPECT_CALL((obs), OnBeginFrame(CreateBeginFrameArgsForTesting( \ |
| 25 BEGINFRAME_FROM_HERE, frame_time, deadline, interval))) \ | 26 BEGINFRAME_FROM_HERE, source_id, sequence_number, \ |
| 26 .InSequence((obs).sequence) \ | 27 frame_time, deadline, interval))) \ |
| 28 .InSequence((obs).sequence) \ |
| 27 .WillOnce(::testing::SaveArg<0>(&((obs).last_begin_frame_args))) | 29 .WillOnce(::testing::SaveArg<0>(&((obs).last_begin_frame_args))) |
| 28 | 30 |
| 29 #define EXPECT_BEGIN_FRAME_USED_MISSED(obs, frame_time, deadline, interval) \ | 31 #define EXPECT_BEGIN_FRAME_USED_MISSED(obs, source_id, sequence_number, \ |
| 30 EXPECT_CALL((obs), OnBeginFrame(CreateBeginFrameArgsForTesting( \ | 32 frame_time, deadline, interval) \ |
| 31 BEGINFRAME_FROM_HERE, frame_time, deadline, interval, \ | 33 EXPECT_CALL( \ |
| 32 BeginFrameArgs::MISSED))) \ | 34 (obs), OnBeginFrame(CreateBeginFrameArgsForTesting( \ |
| 35 BEGINFRAME_FROM_HERE, source_id, sequence_number, frame_time, \ |
| 36 deadline, interval, BeginFrameArgs::MISSED))) \ |
| 33 .InSequence((obs).sequence) \ | 37 .InSequence((obs).sequence) \ |
| 34 .WillOnce(::testing::SaveArg<0>(&((obs).last_begin_frame_args))) | 38 .WillOnce(::testing::SaveArg<0>(&((obs).last_begin_frame_args))) |
| 35 | 39 |
| 36 #define EXPECT_BEGIN_FRAME_SOURCE_PAUSED(obs, paused) \ | 40 #define EXPECT_BEGIN_FRAME_SOURCE_PAUSED(obs, paused) \ |
| 37 EXPECT_CALL((obs), OnBeginFrameSourcePausedChanged(paused)) \ | 41 EXPECT_CALL((obs), OnBeginFrameSourcePausedChanged(paused)) \ |
| 38 .Times(1) \ | 42 .Times(1) \ |
| 39 .InSequence((obs).sequence) | 43 .InSequence((obs).sequence) |
| 40 | 44 |
| 41 // Macros to send BeginFrameArgs on a FakeBeginFrameSink (and verify resulting | 45 // Macros to send BeginFrameArgs on a FakeBeginFrameSink (and verify resulting |
| 42 // observer behaviour). | 46 // observer behaviour). |
| 43 #define SEND_BEGIN_FRAME(args_equal_to, source, frame_time, deadline, \ | 47 #define SEND_BEGIN_FRAME(args_equal_to, source, sequence_number, frame_time, \ |
| 44 interval) \ | 48 deadline, interval) \ |
| 45 { \ | 49 { \ |
| 46 BeginFrameArgs old_args = (source).TestLastUsedBeginFrameArgs(); \ | 50 BeginFrameArgs old_args = (source).TestLastUsedBeginFrameArgs(); \ |
| 47 BeginFrameArgs new_args = CreateBeginFrameArgsForTesting( \ | 51 BeginFrameArgs new_args = CreateBeginFrameArgsForTesting( \ |
| 48 BEGINFRAME_FROM_HERE, frame_time, deadline, interval); \ | 52 BEGINFRAME_FROM_HERE, source.source_id(), sequence_number, frame_time, \ |
| 49 ASSERT_FALSE(old_args == new_args); \ | 53 deadline, interval); \ |
| 50 (source).TestOnBeginFrame(new_args); \ | 54 ASSERT_FALSE(old_args == new_args); \ |
| 51 EXPECT_EQ(args_equal_to, (source).TestLastUsedBeginFrameArgs()); \ | 55 (source).TestOnBeginFrame(new_args); \ |
| 56 EXPECT_EQ(args_equal_to, (source).TestLastUsedBeginFrameArgs()); \ |
| 52 } | 57 } |
| 53 | 58 |
| 54 // When dropping LastUsedBeginFrameArgs **shouldn't** change. | 59 // When dropping LastUsedBeginFrameArgs **shouldn't** change. |
| 55 #define SEND_BEGIN_FRAME_DROP(source, frame_time, deadline, interval) \ | 60 #define SEND_BEGIN_FRAME_DROP(source, sequence_number, frame_time, deadline, \ |
| 56 SEND_BEGIN_FRAME(old_args, source, frame_time, deadline, interval); | 61 interval) \ |
| 62 SEND_BEGIN_FRAME(old_args, source, sequence_number, frame_time, deadline, \ |
| 63 interval); |
| 57 | 64 |
| 58 // When used LastUsedBeginFrameArgs **should** be updated. | 65 // When used LastUsedBeginFrameArgs **should** be updated. |
| 59 #define SEND_BEGIN_FRAME_USED(source, frame_time, deadline, interval) \ | 66 #define SEND_BEGIN_FRAME_USED(source, sequence_number, frame_time, deadline, \ |
| 60 SEND_BEGIN_FRAME(new_args, source, frame_time, deadline, interval); | 67 interval) \ |
| 68 SEND_BEGIN_FRAME(new_args, source, sequence_number, frame_time, deadline, \ |
| 69 interval); |
| 61 | 70 |
| 62 namespace cc { | 71 namespace cc { |
| 63 | 72 |
| 64 class MockBeginFrameObserver : public BeginFrameObserver { | 73 class MockBeginFrameObserver : public BeginFrameObserver { |
| 65 public: | 74 public: |
| 66 MOCK_METHOD1(OnBeginFrame, void(const BeginFrameArgs&)); | 75 MOCK_METHOD1(OnBeginFrame, void(const BeginFrameArgs&)); |
| 67 MOCK_CONST_METHOD0(LastUsedBeginFrameArgs, const BeginFrameArgs&()); | 76 MOCK_CONST_METHOD0(LastUsedBeginFrameArgs, const BeginFrameArgs&()); |
| 68 MOCK_METHOD1(OnBeginFrameSourcePausedChanged, void(bool)); | 77 MOCK_METHOD1(OnBeginFrameSourcePausedChanged, void(bool)); |
| 69 | 78 |
| 70 virtual void AsValueInto(base::trace_event::TracedValue* dict) const; | 79 virtual void AsValueInto(base::trace_event::TracedValue* dict) const; |
| 71 | 80 |
| 72 // A value different from the normal default returned by a BeginFrameObserver | 81 // A value different from the normal default returned by a BeginFrameObserver |
| 73 // so it is easiable traced back here. | 82 // so it is easiable traced back here. |
| 74 static const BeginFrameArgs kDefaultBeginFrameArgs; | 83 static const BeginFrameArgs kDefaultBeginFrameArgs; |
| 75 | 84 |
| 76 MockBeginFrameObserver(); | 85 MockBeginFrameObserver(); |
| 77 virtual ~MockBeginFrameObserver(); | 86 virtual ~MockBeginFrameObserver(); |
| 78 | 87 |
| 79 BeginFrameArgs last_begin_frame_args; | 88 BeginFrameArgs last_begin_frame_args; |
| 80 ::testing::Sequence sequence; | 89 ::testing::Sequence sequence; |
| 81 }; | 90 }; |
| 82 | 91 |
| 83 } // namespace cc | 92 } // namespace cc |
| 84 | 93 |
| 85 #endif // CC_TEST_BEGIN_FRAME_SOURCE_TEST_H_ | 94 #endif // CC_TEST_BEGIN_FRAME_SOURCE_TEST_H_ |
| OLD | NEW |