OLD | NEW |
1 // Copyright 2011 The Chromium Authors. All rights reserved. | 1 // Copyright 2011 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 #include <deque> | 5 #include <deque> |
6 #include <string> | 6 #include <string> |
7 | 7 |
8 #include "base/basictypes.h" | 8 #include "base/basictypes.h" |
9 #include "base/gtest_prod_util.h" | 9 #include "base/gtest_prod_util.h" |
10 #include "base/test/test_simple_task_runner.h" | 10 #include "base/test/test_simple_task_runner.h" |
(...skipping 20 matching lines...) Expand all Loading... |
31 ::testing::Expectation exp = \ | 31 ::testing::Expectation exp = \ |
32 EXPECT_CALL((obs), OnBeginFrame(args)).InSequence((obs).sequence); \ | 32 EXPECT_CALL((obs), OnBeginFrame(args)).InSequence((obs).sequence); \ |
33 EXPECT_CALL((obs), LastUsedBeginFrameArgs()) \ | 33 EXPECT_CALL((obs), LastUsedBeginFrameArgs()) \ |
34 .Times(::testing::AnyNumber()) \ | 34 .Times(::testing::AnyNumber()) \ |
35 .After(exp) \ | 35 .After(exp) \ |
36 .WillRepeatedly(::testing::Return(args)); \ | 36 .WillRepeatedly(::testing::Return(args)); \ |
37 } | 37 } |
38 | 38 |
39 // Macros to send BeginFrameArgs on a FakeBeginFrameSink (and verify resulting | 39 // Macros to send BeginFrameArgs on a FakeBeginFrameSink (and verify resulting |
40 // observer behaviour). | 40 // observer behaviour). |
41 #define SEND_BEGIN_FRAME( \ | 41 #define SEND_BEGIN_FRAME(args_equal_to, source, frame_time, deadline, \ |
42 args_equal_to, source, frame_time, deadline, interval) \ | 42 interval) \ |
43 { \ | 43 { \ |
44 BeginFrameArgs old_args = (source).TestLastUsedBeginFrameArgs(); \ | 44 BeginFrameArgs old_args = (source).TestLastUsedBeginFrameArgs(); \ |
45 BeginFrameArgs new_args = \ | 45 BeginFrameArgs new_args = \ |
46 CreateBeginFrameArgsForTesting(frame_time, deadline, interval); \ | 46 CreateBeginFrameArgsForTesting(frame_time, deadline, interval); \ |
47 ASSERT_TRUE(!(old_args == new_args)); \ | 47 ASSERT_FALSE(old_args == new_args); \ |
48 (source).TestOnBeginFrame(new_args); \ | 48 (source).TestOnBeginFrame(new_args); \ |
49 EXPECT_EQ(args_equal_to, (source).TestLastUsedBeginFrameArgs()); \ | 49 EXPECT_EQ(args_equal_to, (source).TestLastUsedBeginFrameArgs()); \ |
50 } | 50 } |
51 | 51 |
52 // When dropping LastUsedBeginFrameArgs **shouldn't** change. | 52 // When dropping LastUsedBeginFrameArgs **shouldn't** change. |
53 #define SEND_BEGIN_FRAME_DROP(source, frame_time, deadline, interval) \ | 53 #define SEND_BEGIN_FRAME_DROP(source, frame_time, deadline, interval) \ |
54 SEND_BEGIN_FRAME(old_args, source, frame_time, deadline, interval); | 54 SEND_BEGIN_FRAME(old_args, source, frame_time, deadline, interval); |
55 | 55 |
56 // When used LastUsedBeginFrameArgs **should** be updated. | 56 // When used LastUsedBeginFrameArgs **should** be updated. |
57 #define SEND_BEGIN_FRAME_USED(source, frame_time, deadline, interval) \ | 57 #define SEND_BEGIN_FRAME_USED(source, frame_time, deadline, interval) \ |
(...skipping 429 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
487 obs_ = make_scoped_ptr(new MockBeginFrameObserver()); | 487 obs_ = make_scoped_ptr(new MockBeginFrameObserver()); |
488 source_->AddObserver(obs_.get()); | 488 source_->AddObserver(obs_.get()); |
489 } | 489 } |
490 | 490 |
491 void TearDown() override { obs_.reset(); } | 491 void TearDown() override { obs_.reset(); } |
492 }; | 492 }; |
493 | 493 |
494 TEST_F(SyntheticBeginFrameSourceTest, | 494 TEST_F(SyntheticBeginFrameSourceTest, |
495 SetNeedsBeginFramesCallsOnBeginFrameWithMissedTick) { | 495 SetNeedsBeginFramesCallsOnBeginFrameWithMissedTick) { |
496 now_src_->SetNowMicroseconds(10010); | 496 now_src_->SetNowMicroseconds(10010); |
497 EXPECT_CALL((*obs_), | 497 EXPECT_CALL((*obs_), OnBeginFrame(CreateBeginFrameArgsForTesting( |
498 OnBeginFrame(CreateTypedBeginFrameArgsForTesting( | 498 10000, 20000, 10000, BeginFrameArgs::MISSED))); |
499 10000, 20000, 10000, BeginFrameArgs::MISSED))); | |
500 source_->SetNeedsBeginFrames(true); // Should cause the last tick to be sent | 499 source_->SetNeedsBeginFrames(true); // Should cause the last tick to be sent |
501 // No tasks should need to be run for this to occur. | 500 // No tasks should need to be run for this to occur. |
502 } | 501 } |
503 | 502 |
504 TEST_F(SyntheticBeginFrameSourceTest, | 503 TEST_F(SyntheticBeginFrameSourceTest, |
505 SetNeedsBeginFramesCallsCausesOnBeginFrame) { | 504 SetNeedsBeginFramesCallsCausesOnBeginFrame) { |
506 source_->SetNeedsBeginFrames(true); | 505 source_->SetNeedsBeginFrames(true); |
507 EXPECT_EQ(10000, task_runner_->NextTaskTime().ToInternalValue()); | 506 EXPECT_EQ(10000, task_runner_->NextTaskTime().ToInternalValue()); |
508 | 507 |
509 EXPECT_BEGIN_FRAME_USED(*obs_, 10000, 20000, 10000); | 508 EXPECT_BEGIN_FRAME_USED(*obs_, 10000, 20000, 10000); |
(...skipping 228 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
738 mux_->SetActiveSource(source2_); | 737 mux_->SetActiveSource(source2_); |
739 SEND_BEGIN_FRAME_DROP(*source2_, 750, 1050, 300); | 738 SEND_BEGIN_FRAME_DROP(*source2_, 750, 1050, 300); |
740 SEND_BEGIN_FRAME_USED(*source2_, 1050, 1250, 300); | 739 SEND_BEGIN_FRAME_USED(*source2_, 1050, 1250, 300); |
741 | 740 |
742 mux_->SetActiveSource(source1_); | 741 mux_->SetActiveSource(source1_); |
743 SEND_BEGIN_FRAME_DROP(*source2_, 1100, 1400, 300); | 742 SEND_BEGIN_FRAME_DROP(*source2_, 1100, 1400, 300); |
744 } | 743 } |
745 | 744 |
746 } // namespace | 745 } // namespace |
747 } // namespace cc | 746 } // namespace cc |
OLD | NEW |