Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(438)

Unified Diff: ui/compositor/compositor_unittest.cc

Issue 1841083007: Remove SendBeginFramesToChildren plumbing (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@scheduler_output_surface_client_set_beginframesource
Patch Set: Remove some comments Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: ui/compositor/compositor_unittest.cc
diff --git a/ui/compositor/compositor_unittest.cc b/ui/compositor/compositor_unittest.cc
index 50180ad1edb9bdb28fd97dab8ea96103727add9b..bb9b6d08653aca0df28e1e978800583a301d61de 100644
--- a/ui/compositor/compositor_unittest.cc
+++ b/ui/compositor/compositor_unittest.cc
@@ -24,11 +24,6 @@ ACTION_P2(RemoveObserver, compositor, observer) {
compositor->RemoveBeginFrameObserver(observer);
}
-class MockCompositorBeginFrameObserver : public CompositorBeginFrameObserver {
- public:
- MOCK_METHOD1(OnSendBeginFrame, void(const cc::BeginFrameArgs&));
-};
-
// Test fixture for tests that require a ui::Compositor with a real task
// runner.
class CompositorTest : public testing::Test {
@@ -91,109 +86,6 @@ TEST_F(CompositorTest, LocksTimeOut) {
}
}
-TEST_F(CompositorTest, AddAndRemoveBeginFrameObserver) {
- cc::BeginFrameArgs args =
- cc::CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE,
- base::TimeTicks::FromInternalValue(33));
-
- MockCompositorBeginFrameObserver test_observer;
- MockCompositorBeginFrameObserver test_observer2;
-
- // Add a single observer.
- compositor()->AddBeginFrameObserver(&test_observer);
- Mock::VerifyAndClearExpectations(&test_observer);
-
- // When |missed_begin_frame_args_| is sent, its type is set to MISSED.
- cc::BeginFrameArgs expected_args(args);
- cc::BeginFrameArgs expected_missed_args(args);
- expected_missed_args.type = cc::BeginFrameArgs::MISSED;
-
- // Simulate to trigger new BeginFrame by using |args|.
- EXPECT_CALL(test_observer, OnSendBeginFrame(expected_args));
- compositor()->SendBeginFramesToChildren(args);
- Mock::VerifyAndClearExpectations(&test_observer);
-
- // When new observer is added, Compositor immediately calls OnSendBeginFrame
- // with |missed_begin_frame_args_|.
- EXPECT_CALL(test_observer2, OnSendBeginFrame(expected_missed_args));
- compositor()->AddBeginFrameObserver(&test_observer2);
- Mock::VerifyAndClearExpectations(&test_observer);
- Mock::VerifyAndClearExpectations(&test_observer2);
-
- // When |test_observer2| is removed and added again, it will be called again.
- EXPECT_CALL(test_observer2, OnSendBeginFrame(expected_missed_args));
- compositor()->RemoveBeginFrameObserver(&test_observer2);
- compositor()->AddBeginFrameObserver(&test_observer2);
- Mock::VerifyAndClearExpectations(&test_observer2);
-
- // When all observer is removed, |missed_begin_frame_args_| is invalidated.
- // So, it is not used for newly added observer.
- EXPECT_CALL(test_observer2, OnSendBeginFrame(_)).Times(0);
- compositor()->RemoveBeginFrameObserver(&test_observer);
- compositor()->RemoveBeginFrameObserver(&test_observer2);
- compositor()->SendBeginFramesToChildren(args);
- compositor()->AddBeginFrameObserver(&test_observer2);
- Mock::VerifyAndClearExpectations(&test_observer2);
-
- compositor()->RemoveBeginFrameObserver(&test_observer2);
-}
-
-TEST_F(CompositorTest, RemoveBeginFrameObserverWhileSendingBeginFrame) {
- cc::BeginFrameArgs args = cc::CreateBeginFrameArgsForTesting(
- BEGINFRAME_FROM_HERE, base::TimeTicks::FromInternalValue(33));
-
- cc::BeginFrameArgs expected_args(args);
- cc::BeginFrameArgs expected_missed_args(args);
- expected_missed_args.type = cc::BeginFrameArgs::MISSED;
-
- // Add both observers, and simulate removal of |test_observer2| during
- // BeginFrame dispatch (implicitly triggered when the observer is added).
- MockCompositorBeginFrameObserver test_observer;
- MockCompositorBeginFrameObserver test_observer2;
- EXPECT_CALL(test_observer, OnSendBeginFrame(expected_args));
- EXPECT_CALL(test_observer2, OnSendBeginFrame(expected_missed_args))
- .WillOnce(RemoveObserver(compositor(), &test_observer2));
-
- // When a new observer is added, Compositor immediately calls OnSendBeginFrame
- // with |missed_begin_frame_args_|.
- compositor()->AddBeginFrameObserver(&test_observer);
- compositor()->SendBeginFramesToChildren(args);
- compositor()->AddBeginFrameObserver(&test_observer2);
- Mock::VerifyAndClearExpectations(&test_observer);
- Mock::VerifyAndClearExpectations(&test_observer2);
-
- // |test_observer2| was removed during the previous implicit BeginFrame
- // dispatch, and should not get the new frame.
- expected_args.type = cc::BeginFrameArgs::NORMAL;
- EXPECT_CALL(test_observer, OnSendBeginFrame(expected_args));
- EXPECT_CALL(test_observer2, OnSendBeginFrame(_)).Times(0);
- compositor()->SendBeginFramesToChildren(args);
- Mock::VerifyAndClearExpectations(&test_observer);
- Mock::VerifyAndClearExpectations(&test_observer2);
-
- // Now remove |test_observer| during explicit BeginFrame dispatch.
- EXPECT_CALL(test_observer, OnSendBeginFrame(expected_args))
- .WillOnce(RemoveObserver(compositor(), &test_observer));
- EXPECT_CALL(test_observer2, OnSendBeginFrame(_)).Times(0);
- compositor()->SendBeginFramesToChildren(args);
- Mock::VerifyAndClearExpectations(&test_observer);
- Mock::VerifyAndClearExpectations(&test_observer2);
-
- // No observers should get the new frame.
- EXPECT_CALL(test_observer, OnSendBeginFrame(_)).Times(0);
- EXPECT_CALL(test_observer2, OnSendBeginFrame(_)).Times(0);
- compositor()->SendBeginFramesToChildren(args);
- Mock::VerifyAndClearExpectations(&test_observer);
- Mock::VerifyAndClearExpectations(&test_observer2);
-
- // Adding a new observer should not trigger a missed frame, as the
- // previous frame had no observers.
- EXPECT_CALL(test_observer, OnSendBeginFrame(_)).Times(0);
- compositor()->AddBeginFrameObserver(&test_observer);
- compositor()->RemoveBeginFrameObserver(&test_observer);
- Mock::VerifyAndClearExpectations(&test_observer);
-}
-
TEST_F(CompositorTest, ReleaseWidgetWithOutputSurfaceNeverCreated) {
compositor()->SetVisible(false);
EXPECT_EQ(gfx::kNullAcceleratedWidget,
« content/browser/renderer_host/render_widget_host_view_aura.cc ('K') | « ui/compositor/compositor.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698