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

Unified Diff: services/ui/ws/frame_generator_unittest.cc

Issue 2763143002: Remove FrameGenerator::root_window_ (Closed)
Patch Set: Created 3 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: services/ui/ws/frame_generator_unittest.cc
diff --git a/services/ui/ws/frame_generator_unittest.cc b/services/ui/ws/frame_generator_unittest.cc
index b2d626e48a938f8ee4eade4545c1e6c256caa62f..459aa914e5030be319cb704b45925c2c667f26f7 100644
--- a/services/ui/ws/frame_generator_unittest.cc
+++ b/services/ui/ws/frame_generator_unittest.cc
@@ -150,17 +150,28 @@ class FrameGeneratorTest : public testing::Test {
constexpr float kRefreshRate = 0.f;
constexpr bool kTickAutomatically = false;
+ constexpr bool is_window_visible = true;
begin_frame_source_ = base::MakeUnique<cc::FakeExternalBeginFrameSource>(
kRefreshRate, kTickAutomatically);
compositor_frame_sink_->SetBeginFrameSource(begin_frame_source_.get());
server_window_delegate_ = base::MakeUnique<TestServerWindowDelegate>();
- root_window_ = base::MakeUnique<ServerWindow>(server_window_delegate_.get(),
- WindowId());
- root_window_->SetVisible(true);
frame_generator_ = base::MakeUnique<FrameGenerator>(
- root_window_.get(), std::move(compositor_frame_sink));
+ std::move(compositor_frame_sink), is_window_visible, gfx::Rect(1, 2));
};
+ void InitWithSurfaceInfo() {
+ // FrameGenerator requires a valid SurfaceInfo before generating
+ // CompositorFrames.
+ const cc::SurfaceId kArbitrarySurfaceId(
+ cc::FrameSinkId(1, 1),
+ cc::LocalSurfaceId(1, base::UnguessableToken::Create()));
+ const cc::SurfaceInfo kArbitrarySurfaceInfo(kArbitrarySurfaceId, 1.0f,
+ gfx::Size(100, 100));
+ frame_generator()->OnSurfaceCreated(kArbitrarySurfaceInfo);
+ IssueBeginFrame();
+ EXPECT_EQ(1, NumberOfFramesReceived());
+ }
+
int NumberOfFramesReceived() {
return compositor_frame_sink_->number_frames_received();
}
@@ -259,16 +270,7 @@ TEST_F(FrameGeneratorTest, SetDeviceScaleFactor) {
}
TEST_F(FrameGeneratorTest, SetHighContrastMode) {
- // FrameGenerator requires a valid SurfaceInfo before generating
- // CompositorFrames.
- const cc::SurfaceId kArbitrarySurfaceId(
- cc::FrameSinkId(1, 1),
- cc::LocalSurfaceId(1, base::UnguessableToken::Create()));
- const cc::SurfaceInfo kArbitrarySurfaceInfo(kArbitrarySurfaceId, 1.0f,
- gfx::Size(100, 100));
- frame_generator()->OnSurfaceCreated(kArbitrarySurfaceInfo);
- IssueBeginFrame();
- EXPECT_EQ(1, NumberOfFramesReceived());
+ InitWithSurfaceInfo();
// Changing high contrast mode should trigger a BeginFrame.
frame_generator()->SetHighContrastMode(true);
@@ -282,6 +284,42 @@ TEST_F(FrameGeneratorTest, SetHighContrastMode) {
EXPECT_EQ(expected_filters, render_pass_list.front()->filters);
}
+TEST_F(FrameGeneratorTest, VisibilityChanged) {
+ InitWithSurfaceInfo();
+
+ frame_generator()->OnWindowVisibilityChanged(false);
+ IssueBeginFrame();
+ EXPECT_EQ(1, NumberOfFramesReceived());
+
+ frame_generator()->OnWindowVisibilityChanged(true);
+ IssueBeginFrame();
+ EXPECT_EQ(2, NumberOfFramesReceived());
+}
+
+TEST_F(FrameGeneratorTest, WindowBoundsChanged) {
+ InitWithSurfaceInfo();
+
+ // Window bounds change triggers a BeginFrame.
+ constexpr int expected_render_pass_id = 1;
+ const gfx::Rect kArbitraryRect(3, 4);
+ frame_generator()->OnWindowBoundsChanged(kArbitraryRect);
+ IssueBeginFrame();
+ EXPECT_EQ(2, NumberOfFramesReceived());
+ cc::RenderPass* received_render_pass = LastRenderPassList().front().get();
+ EXPECT_EQ(expected_render_pass_id, received_render_pass->id);
+ EXPECT_EQ(kArbitraryRect, received_render_pass->output_rect);
+ EXPECT_EQ(kArbitraryRect, received_render_pass->damage_rect);
+ EXPECT_EQ(gfx::Transform(), received_render_pass->transform_to_root_target);
+}
+
+TEST_F(FrameGeneratorTest, WindowDamaged) {
+ InitWithSurfaceInfo();
+
+ frame_generator()->OnWindowDamaged();
+ IssueBeginFrame();
+ EXPECT_EQ(2, NumberOfFramesReceived());
+}
+
} // namespace test
} // namespace ws
} // namespace ui

Powered by Google App Engine
This is Rietveld 408576698