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

Side by Side Diff: services/ui/ws/frame_generator_unittest.cc

Issue 2445873003: Pass root ServerWindow id to FrameGenerator. (Closed)
Patch Set: Address nits. Created 4 years, 1 month 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 unified diff | Download patch
« no previous file with comments | « services/ui/ws/frame_generator.cc ('k') | services/ui/ws/ids.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 "services/ui/ws/frame_generator.h" 5 #include "services/ui/ws/frame_generator.h"
6 6
7 #include <memory> 7 #include <memory>
8 8
9 #include "base/test/test_message_loop.h" 9 #include "base/test/test_message_loop.h"
10 #include "cc/quads/render_pass.h" 10 #include "cc/quads/render_pass.h"
11 #include "cc/quads/shared_quad_state.h" 11 #include "cc/quads/shared_quad_state.h"
12 #include "services/ui/surfaces/display_compositor.h" 12 #include "services/ui/surfaces/display_compositor.h"
13 #include "services/ui/ws/ids.h"
13 #include "services/ui/ws/platform_display_init_params.h" 14 #include "services/ui/ws/platform_display_init_params.h"
14 #include "services/ui/ws/server_window.h" 15 #include "services/ui/ws/server_window.h"
15 #include "services/ui/ws/server_window_compositor_frame_sink_manager.h" 16 #include "services/ui/ws/server_window_compositor_frame_sink_manager.h"
16 #include "services/ui/ws/test_server_window_delegate.h" 17 #include "services/ui/ws/test_server_window_delegate.h"
17 #include "services/ui/ws/test_utils.h" 18 #include "services/ui/ws/test_utils.h"
18 #include "testing/gtest/include/gtest/gtest.h" 19 #include "testing/gtest/include/gtest/gtest.h"
19 20
20 namespace ui { 21 namespace ui {
21 namespace ws { 22 namespace ws {
22 namespace test { 23 namespace test {
23 namespace { 24 namespace {
24 25
26 // Typical id for the display root ServerWindow.
27 constexpr WindowId kRootDisplayId(0, 2);
28
25 // Makes the window visible and creates the default surface for it. 29 // Makes the window visible and creates the default surface for it.
26 void InitWindow(ServerWindow* window) { 30 void InitWindow(ServerWindow* window) {
27 window->SetVisible(true); 31 window->SetVisible(true);
28 ServerWindowCompositorFrameSinkManager* compositor_frame_sink_manager = 32 ServerWindowCompositorFrameSinkManager* compositor_frame_sink_manager =
29 window->GetOrCreateCompositorFrameSinkManager(); 33 window->GetOrCreateCompositorFrameSinkManager();
30 compositor_frame_sink_manager->CreateCompositorFrameSink( 34 compositor_frame_sink_manager->CreateCompositorFrameSink(
31 mojom::CompositorFrameSinkType::DEFAULT, 35 mojom::CompositorFrameSinkType::DEFAULT,
32 mojo::InterfaceRequest<cc::mojom::MojoCompositorFrameSink>(), 36 mojo::InterfaceRequest<cc::mojom::MojoCompositorFrameSink>(),
33 cc::mojom::MojoCompositorFrameSinkClientPtr()); 37 cc::mojom::MojoCompositorFrameSinkClientPtr());
34 } 38 }
35 39
36 } // namespace 40 } // namespace
37 41
38 class FrameGeneratorTest : public testing::Test { 42 class FrameGeneratorTest : public testing::Test {
39 public: 43 public:
40 FrameGeneratorTest() : display_compositor_(new DisplayCompositor(nullptr)) {} 44 FrameGeneratorTest()
45 : display_compositor_(new DisplayCompositor(nullptr)),
46 root_window_(base::MakeUnique<ServerWindow>(&window_delegate_,
47 kRootDisplayId)) {}
41 ~FrameGeneratorTest() override {} 48 ~FrameGeneratorTest() override {}
42 49
43 // Calls DrawWindowTree() on |frame_generator_| 50 // Calls DrawWindowTree() on |frame_generator_|
44 void DrawWindowTree(cc::RenderPass* pass); 51 void DrawWindowTree(cc::RenderPass* pass);
45 52
46 ServerWindow* root_window() { 53 ServerWindow* root_window() {
47 return frame_generator_delegate_->GetRootWindow(); 54 return frame_generator_delegate_->GetRootWindow();
48 } 55 }
49 56
50 TestServerWindowDelegate* test_window_delegate() { return &window_delegate_; } 57 TestServerWindowDelegate* test_window_delegate() { return &window_delegate_; }
51 58
52 private: 59 private:
53 // testing::Test: 60 // testing::Test:
54 void SetUp() override; 61 void SetUp() override;
55 void TearDown() override; 62 void TearDown() override;
56 63
57 scoped_refptr<DisplayCompositor> display_compositor_; 64 scoped_refptr<DisplayCompositor> display_compositor_;
58 std::unique_ptr<FrameGenerator> frame_generator_; 65 std::unique_ptr<FrameGenerator> frame_generator_;
59 std::unique_ptr<TestFrameGeneratorDelegate> frame_generator_delegate_; 66 std::unique_ptr<TestFrameGeneratorDelegate> frame_generator_delegate_;
60 TestServerWindowDelegate window_delegate_; 67 TestServerWindowDelegate window_delegate_;
68 std::unique_ptr<ServerWindow> root_window_;
61 69
62 // Needed so that Mojo classes can be initialized for ServerWindow use. 70 // Needed so that Mojo classes can be initialized for ServerWindow use.
63 base::TestMessageLoop message_loop_; 71 base::TestMessageLoop message_loop_;
64 72
65 DISALLOW_COPY_AND_ASSIGN(FrameGeneratorTest); 73 DISALLOW_COPY_AND_ASSIGN(FrameGeneratorTest);
66 }; 74 };
67 75
68 void FrameGeneratorTest::DrawWindowTree(cc::RenderPass* pass) { 76 void FrameGeneratorTest::DrawWindowTree(cc::RenderPass* pass) {
69 frame_generator_->DrawWindowTree(pass, 77 frame_generator_->DrawWindowTree(pass,
70 frame_generator_delegate_->GetRootWindow(), 78 frame_generator_delegate_->GetRootWindow(),
71 gfx::Vector2d(), 1.0f, nullptr); 79 gfx::Vector2d(), 1.0f, nullptr);
72 } 80 }
73 81
74 void FrameGeneratorTest::SetUp() { 82 void FrameGeneratorTest::SetUp() {
75 testing::Test::SetUp(); 83 testing::Test::SetUp();
76 frame_generator_delegate_ = base::MakeUnique<TestFrameGeneratorDelegate>( 84 frame_generator_delegate_ = base::MakeUnique<TestFrameGeneratorDelegate>(
77 base::MakeUnique<ServerWindow>(&window_delegate_, WindowId())); 85 base::MakeUnique<ServerWindow>(&window_delegate_, WindowId()));
78 PlatformDisplayInitParams init_params; 86 PlatformDisplayInitParams init_params;
79 frame_generator_ = base::MakeUnique<FrameGenerator>( 87 frame_generator_ = base::MakeUnique<FrameGenerator>(
80 frame_generator_delegate_.get(), display_compositor_); 88 frame_generator_delegate_.get(), root_window_.get(), display_compositor_);
81 InitWindow(root_window()); 89 InitWindow(root_window());
82 } 90 }
83 91
84 void FrameGeneratorTest::TearDown() { 92 void FrameGeneratorTest::TearDown() {
85 frame_generator_.reset(); 93 frame_generator_.reset();
86 frame_generator_delegate_.reset(); 94 frame_generator_delegate_.reset();
87 } 95 }
88 96
89 // Tests correctness of the SharedQuadStateList generated by 97 // Tests correctness of the SharedQuadStateList generated by
90 // FrameGenerator::DrawWindowTree(). 98 // FrameGenerator::DrawWindowTree().
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
126 EXPECT_EQ(3u, quad_state_list->size()); 134 EXPECT_EQ(3u, quad_state_list->size());
127 auto it = quad_state_list->begin(); 135 auto it = quad_state_list->begin();
128 EXPECT_EQ(child_opacity * root_opacity, (*it)->opacity); 136 EXPECT_EQ(child_opacity * root_opacity, (*it)->opacity);
129 EXPECT_EQ(child_opacity * root_opacity, (*++it)->opacity); 137 EXPECT_EQ(child_opacity * root_opacity, (*++it)->opacity);
130 EXPECT_EQ(root_opacity, (*++it)->opacity); 138 EXPECT_EQ(root_opacity, (*++it)->opacity);
131 } 139 }
132 140
133 } // namespace test 141 } // namespace test
134 } // namespace ws 142 } // namespace ws
135 } // namespace ui 143 } // namespace ui
OLDNEW
« no previous file with comments | « services/ui/ws/frame_generator.cc ('k') | services/ui/ws/ids.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698