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

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

Issue 2400593002: Mus+Ash: Fix the FrameSinkId of the FrameGenerator's CompositorFrameSink (Closed)
Patch Set: Fixed FrameGeneratorTest Created 4 years, 2 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 unified diff | Download patch
« no previous file with comments | « services/ui/ws/frame_generator.cc ('k') | no next file » | 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/ws/platform_display_init_params.h" 13 #include "services/ui/ws/platform_display_init_params.h"
13 #include "services/ui/ws/server_window.h" 14 #include "services/ui/ws/server_window.h"
14 #include "services/ui/ws/server_window_surface_manager.h" 15 #include "services/ui/ws/server_window_surface_manager.h"
15 #include "services/ui/ws/test_server_window_delegate.h" 16 #include "services/ui/ws/test_server_window_delegate.h"
16 #include "services/ui/ws/test_utils.h" 17 #include "services/ui/ws/test_utils.h"
17 #include "testing/gtest/include/gtest/gtest.h" 18 #include "testing/gtest/include/gtest/gtest.h"
18 19
19 namespace ui { 20 namespace ui {
20 namespace ws { 21 namespace ws {
21 namespace test { 22 namespace test {
22 namespace { 23 namespace {
23 24
24 // Makes the window visible and creates the default surface for it. 25 // Makes the window visible and creates the default surface for it.
25 void InitWindow(ServerWindow* window) { 26 void InitWindow(ServerWindow* window) {
26 window->SetVisible(true); 27 window->SetVisible(true);
27 ServerWindowSurfaceManager* surface_manager = 28 ServerWindowSurfaceManager* surface_manager =
28 window->GetOrCreateSurfaceManager(); 29 window->GetOrCreateSurfaceManager();
29 surface_manager->CreateSurface(mojom::SurfaceType::DEFAULT, 30 surface_manager->CreateSurface(mojom::SurfaceType::DEFAULT,
30 mojo::InterfaceRequest<mojom::Surface>(), 31 mojo::InterfaceRequest<mojom::Surface>(),
31 mojom::SurfaceClientPtr()); 32 mojom::SurfaceClientPtr());
32 } 33 }
33 34
34 } // namespace 35 } // namespace
35 36
36 class FrameGeneratorTest : public testing::Test { 37 class FrameGeneratorTest : public testing::Test {
37 public: 38 public:
38 FrameGeneratorTest() {} 39 FrameGeneratorTest() : display_compositor_(new DisplayCompositor()) {}
39 ~FrameGeneratorTest() override {} 40 ~FrameGeneratorTest() override {}
40 41
41 // Calls DrawWindowTree() on |frame_generator_| 42 // Calls DrawWindowTree() on |frame_generator_|
42 void DrawWindowTree(cc::RenderPass* pass); 43 void DrawWindowTree(cc::RenderPass* pass);
43 44
44 ServerWindow* root_window() { 45 ServerWindow* root_window() {
45 return frame_generator_delegate_->GetRootWindow(); 46 return frame_generator_delegate_->GetRootWindow();
46 } 47 }
47 48
48 TestServerWindowDelegate* test_window_delegate() { return &window_delegate_; } 49 TestServerWindowDelegate* test_window_delegate() { return &window_delegate_; }
49 50
50 private: 51 private:
51 // testing::Test: 52 // testing::Test:
52 void SetUp() override; 53 void SetUp() override;
53 void TearDown() override; 54 void TearDown() override;
54 55
56 scoped_refptr<DisplayCompositor> display_compositor_;
55 std::unique_ptr<FrameGenerator> frame_generator_; 57 std::unique_ptr<FrameGenerator> frame_generator_;
56 std::unique_ptr<TestFrameGeneratorDelegate> frame_generator_delegate_; 58 std::unique_ptr<TestFrameGeneratorDelegate> frame_generator_delegate_;
57 TestServerWindowDelegate window_delegate_; 59 TestServerWindowDelegate window_delegate_;
58 60
59 // Needed so that Mojo classes can be initialized for ServerWindow use. 61 // Needed so that Mojo classes can be initialized for ServerWindow use.
60 base::TestMessageLoop message_loop_; 62 base::TestMessageLoop message_loop_;
61 63
62 DISALLOW_COPY_AND_ASSIGN(FrameGeneratorTest); 64 DISALLOW_COPY_AND_ASSIGN(FrameGeneratorTest);
63 }; 65 };
64 66
65 void FrameGeneratorTest::DrawWindowTree(cc::RenderPass* pass) { 67 void FrameGeneratorTest::DrawWindowTree(cc::RenderPass* pass) {
66 frame_generator_->DrawWindowTree(pass, 68 frame_generator_->DrawWindowTree(pass,
67 frame_generator_delegate_->GetRootWindow(), 69 frame_generator_delegate_->GetRootWindow(),
68 gfx::Vector2d(), 1.0f, nullptr); 70 gfx::Vector2d(), 1.0f, nullptr);
69 } 71 }
70 72
71 void FrameGeneratorTest::SetUp() { 73 void FrameGeneratorTest::SetUp() {
72 testing::Test::SetUp(); 74 testing::Test::SetUp();
73 frame_generator_delegate_ = base::MakeUnique<TestFrameGeneratorDelegate>( 75 frame_generator_delegate_ = base::MakeUnique<TestFrameGeneratorDelegate>(
74 base::MakeUnique<ServerWindow>(&window_delegate_, WindowId())); 76 base::MakeUnique<ServerWindow>(&window_delegate_, WindowId()));
75 PlatformDisplayInitParams init_params; 77 PlatformDisplayInitParams init_params;
76 frame_generator_ = base::MakeUnique<FrameGenerator>( 78 frame_generator_ = base::MakeUnique<FrameGenerator>(
77 frame_generator_delegate_.get(), init_params.display_compositor); 79 frame_generator_delegate_.get(), display_compositor_);
78 InitWindow(root_window()); 80 InitWindow(root_window());
79 } 81 }
80 82
81 void FrameGeneratorTest::TearDown() { 83 void FrameGeneratorTest::TearDown() {
82 frame_generator_.reset(); 84 frame_generator_.reset();
83 frame_generator_delegate_.reset(); 85 frame_generator_delegate_.reset();
84 } 86 }
85 87
86 // Tests correctness of the SharedQuadStateList generated by 88 // Tests correctness of the SharedQuadStateList generated by
87 // FrameGenerator::DrawWindowTree(). 89 // FrameGenerator::DrawWindowTree().
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
121 EXPECT_EQ(3u, quad_state_list->size()); 123 EXPECT_EQ(3u, quad_state_list->size());
122 auto it = quad_state_list->begin(); 124 auto it = quad_state_list->begin();
123 EXPECT_EQ(child_opacity * root_opacity, (*it)->opacity); 125 EXPECT_EQ(child_opacity * root_opacity, (*it)->opacity);
124 EXPECT_EQ(child_opacity * root_opacity, (*++it)->opacity); 126 EXPECT_EQ(child_opacity * root_opacity, (*++it)->opacity);
125 EXPECT_EQ(root_opacity, (*++it)->opacity); 127 EXPECT_EQ(root_opacity, (*++it)->opacity);
126 } 128 }
127 129
128 } // namespace test 130 } // namespace test
129 } // namespace ws 131 } // namespace ws
130 } // namespace ui 132 } // namespace ui
OLDNEW
« no previous file with comments | « services/ui/ws/frame_generator.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698