| 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 |